{"version":3,"sources":["/./$_lazy_route_resource lazy namespace object","/./lib/common/export-csv.ts","/./lib/common/export-pdf.ts","/./lib/common/index.ts","/./lib/common/keycodes.ts","/./lib/common/models/menu-item.model.ts","/./lib/common/models/select-item.model.ts","/./lib/common/utils/array-utils.ts","/./lib/common/utils/date-utils.ts","/./lib/common/utils/dom-utils.ts","/./lib/common/utils/index.ts","/./lib/common/utils/object-utils.ts","/./lib/common/utils/utils.ts","/./lib/common/validators.ts","/./lib/context-menu/context-menu-module.ts","/./lib/context-menu/context-menu.component.ts","/./lib/context-menu/index.ts","/./lib/daterangepicker/daterangepicker.component.scss","/./lib/daterangepicker/daterangepicker.component.ts","/./lib/daterangepicker/daterangepicker.directive.ts","/./lib/directives/directives.module.ts","/./lib/directives/document-click/document-click.directive.ts","/./lib/directives/numeric/numeric.directive.ts","/./lib/directives/special-chars/special-chars.directive.ts","/./lib/directives/two-digit/two-digit-decima-number.directive.ts","/./lib/drag-drop/drag-drop-module.ts","/./lib/drag-drop/droppable.directive.ts","/./lib/drag-drop/index.ts","/./lib/draggable/draggable-module.ts","/./lib/draggable/draggable.directive.ts","/./lib/draggable/index.ts","/./lib/dropdown-multilevel/dropdown-multilevel.component.scss","/./lib/dropdown-multilevel/dropdown-multilevel.component.ts","/./lib/dropdown-multilevel/dropdown-multilevel.module.ts","/./lib/dropdown-multilevel/index.ts","/./lib/dropdown-select/dropdown-select-module.ts","/./lib/dropdown-select/dropdown-select.component.css","/./lib/dropdown-select/dropdown-select.component.ts","/./lib/dropdown-select/index.ts","/./lib/dropdown/dropdown-module.ts","/./lib/dropdown/dropdown.directive.ts","/./lib/dropdown/dropdown.service.ts","/./lib/dropdown/dropdown.ts","/./lib/dropdown/index.ts","/./lib/dt-column-toggler/dt-column-toggler.component.ts","/./lib/dt-column-toggler/dt-column-toggler.module.ts","/./lib/dt-column-toggler/index.ts","/./lib/dt-toolbar/dt-toolbar-module.ts","/./lib/dt-toolbar/dt-toolbar.component.css","/./lib/dt-toolbar/dt-toolbar.component.ts","/./lib/dt-toolbar/index.ts","/./lib/dt-translate/dt-messages.ts","/./lib/dt-translate/index.ts","/./lib/dual-list-box/dual-list-box-module.ts","/./lib/dual-list-box/dual-list-box.component.css","/./lib/dual-list-box/dual-list-box.component.ts","/./lib/dual-list-box/index.ts","/./lib/dynamic-form/calendar.component.ts","/./lib/dynamic-form/checkbox.component.ts","/./lib/dynamic-form/dynamic-form-element.ts","/./lib/dynamic-form/dynamic-form-module.ts","/./lib/dynamic-form/dynamic-form.component.ts","/./lib/dynamic-form/index.ts","/./lib/dynamic-form/input-option.component.ts","/./lib/dynamic-form/input-text.component.ts","/./lib/dynamic-form/input.component.ts","/./lib/dynamic-form/radio.component.ts","/./lib/dynamic-form/select-dropdown.component.ts","/./lib/dynamic-form/select-popup.component.ts","/./lib/dynamic-form/select.component.ts","/./lib/dynamic-form/textarea.component.ts","/./lib/filters-tabs/column-setup/column-setup.component.scss","/./lib/filters-tabs/column-setup/column-setup.component.ts","/./lib/filters-tabs/filters-tabs.component.scss","/./lib/filters-tabs/filters-tabs.component.ts","/./lib/filters-tabs/filters-tabs.module.ts","/./lib/filters-tabs/index.ts","/./lib/filters-tabs/search-criteria/search-criteria.component.scss","/./lib/filters-tabs/search-criteria/search-criteria.component.ts","/./lib/http-interceptors/api-interceptor.ts","/./lib/http-interceptors/index.ts","/./lib/inline-edit/after-view-focus-directory.ts","/./lib/inline-edit/index.ts","/./lib/inline-edit/inline-edit-module.ts","/./lib/inline-edit/inline-edit.component.css","/./lib/inline-edit/inline-edit.component.ts","/./lib/modal-edit-form/index.ts","/./lib/modal-edit-form/modal-edit-form-module.ts","/./lib/modal-edit-form/modal-edit-form.component.ts","/./lib/modal-select/index.ts","/./lib/modal-select/modal-select-module.ts","/./lib/modal-select/modal-select.component.css","/./lib/modal-select/modal-select.component.ts","/./lib/modal/index.ts","/./lib/modal/modal-module.ts","/./lib/modal/modal.component.css","/./lib/modal/modal.component.ts","/./lib/nav-menu/nav-item.component.ts","/./lib/nav-menu/nav-menu.component.ts","/./lib/nav-menu/nav-menu.module.ts","/./lib/ng-crud-table/base/cdt-settings.ts","/./lib/ng-crud-table/base/data-manager.ts","/./lib/ng-crud-table/base/index.ts","/./lib/ng-crud-table/base/types.ts","/./lib/ng-crud-table/components/crud-table/crud-table.component.css","/./lib/ng-crud-table/components/crud-table/crud-table.component.ts","/./lib/ng-crud-table/crud-table-module.ts","/./lib/ng-crud-table/index.ts","/./lib/ng-data-table/base/cell.ts","/./lib/ng-data-table/base/column-base.ts","/./lib/ng-data-table/base/column-model-generator.ts","/./lib/ng-data-table/base/column.ts","/./lib/ng-data-table/base/data-aggregation.ts","/./lib/ng-data-table/base/data-filter.ts","/./lib/ng-data-table/base/data-pager.ts","/./lib/ng-data-table/base/data-selection.ts","/./lib/ng-data-table/base/data-sort.ts","/./lib/ng-data-table/base/data-table.ts","/./lib/ng-data-table/base/dimensions.ts","/./lib/ng-data-table/base/event-helper.ts","/./lib/ng-data-table/base/events.ts","/./lib/ng-data-table/base/index.ts","/./lib/ng-data-table/base/keyboard-action.ts","/./lib/ng-data-table/base/local-data-source.ts","/./lib/ng-data-table/base/row-group.ts","/./lib/ng-data-table/base/row-model-generator.ts","/./lib/ng-data-table/base/row.ts","/./lib/ng-data-table/base/settings.ts","/./lib/ng-data-table/base/types.ts","/./lib/ng-data-table/components/body/body-cell-edit.component.ts","/./lib/ng-data-table/components/body/body-cell.component.ts","/./lib/ng-data-table/components/body/body-row.component.ts","/./lib/ng-data-table/components/body/body.component.ts","/./lib/ng-data-table/components/data-table/data-table.component.css","/./lib/ng-data-table/components/data-table/data-table.component.ts","/./lib/ng-data-table/components/filter/filter.component.ts","/./lib/ng-data-table/components/filter/list-filter.component.ts","/./lib/ng-data-table/components/filter/range-filter.component.ts","/./lib/ng-data-table/components/filter/string-filter.component.ts","/./lib/ng-data-table/components/header/header-cell.component.ts","/./lib/ng-data-table/components/header/header.component.ts","/./lib/ng-data-table/data-table-module.ts","/./lib/ng-data-table/directives/body-click.directive.ts","/./lib/ng-data-table/directives/body-contextmenu.directive.ts","/./lib/ng-data-table/directives/body-dblclick.directive.ts","/./lib/ng-data-table/directives/body-keydown.directive.ts","/./lib/ng-data-table/directives/body-mouseover.directive.ts","/./lib/ng-data-table/directives/header-template.directive.ts","/./lib/ng-data-table/directives/row-group-template.directive.ts","/./lib/ng-data-table/index.ts","/./lib/ng-tree-table/index.ts","/./lib/ng-tree-table/tree-table-module.ts","/./lib/ng-tree-table/tree-table.component.ts","/./lib/ng-tree-table/tree-table.ts","/./lib/notify/index.ts","/./lib/notify/notify-item.component.ts","/./lib/notify/notify-module.ts","/./lib/notify/notify.component.css","/./lib/notify/notify.component.ts","/./lib/notify/notify.service.ts","/./lib/pagination/index.ts","/./lib/pagination/pagination-module.ts","/./lib/pagination/pagination.component.css","/./lib/pagination/pagination.component.ts","/./lib/pipes/Highlight.pipe.ts","/./lib/pipes/critDelim.pipe.ts","/./lib/pipes/filter.pipe.ts","/./lib/pipes/index.ts","/./lib/pipes/maps.pipe.ts","/./lib/pipes/order.pipe.ts","/./lib/pipes/paginate.pipe.ts","/./lib/pipes/title.pipe.ts","/./lib/resizable/index.ts","/./lib/resizable/resizable-module.ts","/./lib/resizable/resizable.css","/./lib/resizable/resizable.directive.ts","/./lib/row-view/index.ts","/./lib/row-view/row-view-module.ts","/./lib/row-view/row-view.component.css","/./lib/row-view/row-view.component.ts","/./lib/scroller/index.ts","/./lib/scroller/row-height-cache.ts","/./lib/scroller/scroller-module.ts","/./lib/scroller/scroller.component.css","/./lib/scroller/scroller.component.ts","/./lib/select-list/index.ts","/./lib/select-list/select-list-module.ts","/./lib/select-list/select-list.component.ts","/./lib/styles/buttons.css","/./lib/styles/checkbox.css","/./lib/styles/clearable-input.css","/./lib/styles/context-menu.css","/./lib/styles/dual-list-box.css","/./lib/styles/icons.css","/./lib/styles/input-group.css","/./lib/styles/input.css","/./lib/styles/list-menu.css","/./lib/styles/radio.css","/./lib/styles/select-list.css","/./lib/styles/spinners.css","/./lib/switches/components/multi-state-switch/multi-state-switch.component.scss","/./lib/switches/components/multi-state-switch/multi-state-switch.component.ts","/./lib/switches/components/rect-switch/rect-switch.component.ts","/./lib/switches/components/round-switch/round-switch.component.ts","/./lib/switches/components/switches/switches.component.scss","/./lib/switches/components/switches/switches.component.ts","/./lib/switches/index.ts","/./lib/switches/switches.module.ts","/./lib/tabs/index.ts","/./lib/tabs/tabs.component.scss","/./lib/tabs/tabs.component.ts","/./lib/tabs/tabs.module.ts","/./lib/tree-view/index.ts","/./lib/tree-view/tree-view-module.ts","/./lib/tree-view/tree-view-node.component.ts","/./lib/tree-view/tree-view.component.css","/./lib/tree-view/tree-view.component.ts","/./lib/tree-view/tree-view.css","/./lib/tree/index.ts","/./lib/tree/tree-builder.ts","/./lib/tree/tree-flattener.ts","/./lib/tree/tree-helper.ts","/./lib/tree/tree-node.ts","/./lib/tree/tree.ts","/./lib/tree/types.ts","/./lib/vert-tab-color/index.ts","/./lib/vert-tab-color/vert-tab-color.component.scss","/./lib/vert-tab-color/vert-tab-color.component.ts","/./lib/vert-tab-color/vert-tab-color.module.ts","/./node_modules/moment/locale sync ^\\.\\/.*$","/./lib/context-menu/context-menu.component.html","/./lib/daterangepicker/daterangepicker.component.html","/./lib/dropdown-multilevel/dropdown-multilevel.component.html","/./lib/dropdown-select/dropdown-select.component.html","/./lib/dt-column-toggler/dt-column-toggler.component.html","/./lib/dt-toolbar/dt-toolbar.component.html","/./lib/dual-list-box/dual-list-box.component.html","/./lib/dynamic-form/dynamic-form.component.html","/./lib/filters-tabs/column-setup/column-setup.component.html","/./lib/filters-tabs/filters-tabs.component.html","/./lib/filters-tabs/search-criteria/search-criteria.component.html","/./lib/inline-edit/inline-edit.component.html","/./lib/modal-edit-form/modal-edit-form.component.html","/./lib/modal-select/modal-select.component.html","/./lib/modal/modal.component.html","/./lib/nav-menu/nav-item.component.html","/./lib/ng-crud-table/components/crud-table/crud-table.component.html","/./lib/ng-data-table/components/body/body-cell-edit.component.html","/./lib/ng-data-table/components/body/body-cell.component.html","/./lib/ng-data-table/components/body/body-row.component.html","/./lib/ng-data-table/components/body/body.component.html","/./lib/ng-data-table/components/data-table/data-table.component.html","/./lib/ng-data-table/components/filter/filter.component.html","/./lib/ng-data-table/components/filter/list-filter.component.html","/./lib/ng-data-table/components/filter/range-filter.component.html","/./lib/ng-data-table/components/filter/string-filter.component.html","/./lib/ng-data-table/components/header/header-cell.component.html","/./lib/ng-data-table/components/header/header.component.html","/./lib/ng-tree-table/tree-table.component.html","/./lib/pagination/pagination.component.html","/./lib/row-view/row-view.component.html","/./lib/scroller/scroller.component.html","/./lib/select-list/select-list.component.html","/./lib/switches/components/multi-state-switch/multi-state-switch.component.html","/./lib/switches/components/rect-switch/rect-switch.component.html","/./lib/switches/components/round-switch/round-switch.component.html","/./lib/switches/components/switches/switches.component.html","/./lib/tabs/tabs.component.html","/./lib/tree-view/tree-view.component.html","/./lib/vert-tab-color/vert-tab-color.component.html","/./src/app/app.component.html","/./src/app/dashboard/dashboard.component.html","/./src/app/filters/filters.component.html","/./src/app/graphics/analysis/analysis.component.html","/./src/app/graphics/call-process/call-process.component.html","/./src/app/graphics/nettest/nettest.component.html","/./src/app/login/forgot-password/forgot-password.component.html","/./src/app/login/licence-check/licence-check.component.html","/./src/app/login/login-config/login-config.component.html","/./src/app/login/login.component.html","/./src/app/login/logout/logout.component.html","/./src/app/output-results/advanced-markers/advanced-markers.component.html","/./src/app/output-results/audio-player-popup/audio-player-popup.component.html","/./src/app/output-results/custom-gmaps-main/custom-gmaps-main.component.html","/./src/app/output-results/custom-report/custom-report.component.html","/./src/app/output-results/customreportlinechart/customreportlinechart.component.html","/./src/app/output-results/google-map/google-map.component.html","/./src/app/output-results/googlemaplegendpopup/googlemaplegendpopup.component.html","/./src/app/output-results/googlemapstatuspopup/googlemapstatuspopup.component.html","/./src/app/output-results/itsviewer/itsviewer.component.html","/./src/app/output-results/leaflet-gmap/leaflet-gmap.component.html","/./src/app/output-results/test-jsgoogle-map/test-jsgoogle-map.component.html","/./src/app/popups/custom/pdf-viewer-ng2/pdf-viewer-ng2.component.html","/./src/app/results/audio-delay/audio-delay.component.html","/./src/app/results/call-events/call-events.component.html","/./src/app/results/emu/emu.component.html","/./src/app/results/fax/fax.component.html","/./src/app/results/mobinforslts/mobinforslts.component.html","/./src/app/results/nettestrslts/nettestrslts.component.html","/./src/app/results/pesq/pesq.component.html","/./src/app/results/polqa/polqa.component.html","/./src/app/results/vac/vac.component.html","/./src/app/results/vba/vba.component.html","/./src/app/shared/basic/basic.component.html","/./src/app/shared/components/api-recall-button/api-recall-button.component.html","/./src/app/shared/components/common-filter/common-filter.component.html","/./src/app/shared/components/confirm-dialog/confirm-dialog.component.html","/./src/app/shared/components/daterangepicker/daterangepicker.component.html","/./src/app/shared/components/download-file/download-file.component.html","/./src/app/shared/components/explore-options/explore-options.component.html","/./src/app/shared/components/explore-options/image-popup-modals/image-popup-modals.component.html","/./src/app/shared/components/load-filter/load-filter.component.html","/./src/app/shared/components/screen-second-header/screen-second-header.component.html","/./src/app/shared/components/screen-top-header/screen-top-header.component.html","/./src/app/shared/components/spinners/bold-spin/bold-spin.component.html","/./src/app/shared/components/spinners/loading-spin/loading-spin.component.html","/./src/app/shared/components/spinners/magnify-spin/magnify-spin.component.html","/./src/app/shared/components/spinners/three-spin/three-spin.component.html","/./src/app/shared/components/sub-results-selection/sub-results-selection.component.html","/./src/app/shared/components/synopsis/synopsis.component.html","/./src/app/shared/components/title/title.component.html","/./src/app/shared/components/upload-file/upload-file.component.html","/./src/app/shared/components/url-reload-button/url-reload-button.component.html","/./src/app/shared/components/user-info/user-info.component.html","/./src/app/shared/header-demo/header-demo.component.html","/./src/app/shared/mat-table/mat-table.component.html","/./src/app/shared/ngx-dt/ngx-dt.component.html","/./src/app/statistics/audio-and-delay-statistics-pie-chart/audio-and-delay-statistics-pie-chart.component.html","/./src/app/statistics/network-status/command-center/command-center.component.html","/./src/app/statistics/network-status/file-monitor/file-monitor.component.html","/./src/app/statistics/network-status/mobile/mobile.component.html","/./src/app/statistics/network-status/network-status.component.html","/./src/app/statistics/network-status/v-mobile/v-mobile.component.html","/./src/app/statistics/network-status/v-mobilescrparams/v-mobilescrparams.component.html","/./src/app/statistics/network-status/vqt/vqt.component.html","/./src/app/statistics/network-status/vquad/vquad.component.html","/./src/app/statistics/network-status/vquadbtfxo/vquadbtfxo.component.html","/./src/app/statistics/network-status/vquadscrparams/vquadscrparams.component.html","/./src/app/statistics/scheduler-status/scheduler-status.component.html","/./src/app/statistics/voice-quality-statistics-pie-chart/voice-quality-statistics-pie-chart.component.html","/./src/app/welcome/welcome.component.html","/./src/app/app-routing.module.ts","/./src/app/app.component.scss","/./src/app/app.component.ts","/./src/app/app.module.ts","/./src/app/dashboard/dashboard.component.scss","/./src/app/dashboard/dashboard.component.ts","/./src/app/filters/filters.component.scss","/./src/app/filters/filters.component.ts","/./src/app/graphics/analysis/analysis.component.scss","/./src/app/graphics/analysis/analysis.component.ts","/./src/app/graphics/call-process/call-process.component.scss","/./src/app/graphics/call-process/call-process.component.ts","/./src/app/graphics/nettest/nettest.component.scss","/./src/app/graphics/nettest/nettest.component.ts","/./src/app/http-interceptors/api-interceptor.ts","/./src/app/http-interceptors/index.ts","/./src/app/login/forgot-password/forgot-password.component.scss","/./src/app/login/forgot-password/forgot-password.component.ts","/./src/app/login/licence-check/licence-check.component.scss","/./src/app/login/licence-check/licence-check.component.ts","/./src/app/login/login-config/login-config.component.scss","/./src/app/login/login-config/login-config.component.ts","/./src/app/login/login.component.scss","/./src/app/login/login.component.ts","/./src/app/login/logout/logout.component.scss","/./src/app/login/logout/logout.component.ts","/./src/app/material/material.module.ts","/./src/app/output-results/advanced-markers/advanced-markers.component.scss","/./src/app/output-results/advanced-markers/advanced-markers.component.ts","/./src/app/output-results/audio-player-popup/audio-player-popup.component.scss","/./src/app/output-results/audio-player-popup/audio-player-popup.component.ts","/./src/app/output-results/custom-gmaps-main/custom-gmaps-main.component.scss","/./src/app/output-results/custom-gmaps-main/custom-gmaps-main.component.ts","/./src/app/output-results/custom-report/custom-report.component.scss","/./src/app/output-results/custom-report/custom-report.component.ts","/./src/app/output-results/customreportlinechart/customreportlinechart.component.scss","/./src/app/output-results/customreportlinechart/customreportlinechart.component.ts","/./src/app/output-results/google-map/google-map.component.scss","/./src/app/output-results/google-map/google-map.component.ts","/./src/app/output-results/googlemaplegendpopup/googlemaplegendpopup.component.scss","/./src/app/output-results/googlemaplegendpopup/googlemaplegendpopup.component.ts","/./src/app/output-results/googlemapstatuspopup/googlemapstatuspopup.component.scss","/./src/app/output-results/googlemapstatuspopup/googlemapstatuspopup.component.ts","/./src/app/output-results/itsviewer/itsviewer.component.scss","/./src/app/output-results/itsviewer/itsviewer.component.ts","/./src/app/output-results/leaflet-gmap/leaflet-gmap.component.scss","/./src/app/output-results/leaflet-gmap/leaflet-gmap.component.ts","/./src/app/output-results/test-jsgoogle-map/test-jsgoogle-map.component.scss","/./src/app/output-results/test-jsgoogle-map/test-jsgoogle-map.component.ts","/./src/app/popups/custom/pdf-viewer-ng2/index.ts","/./src/app/popups/custom/pdf-viewer-ng2/pdf-viewer-ng2.component.scss","/./src/app/popups/custom/pdf-viewer-ng2/pdf-viewer-ng2.component.ts","/./src/app/popups/custom/pdf-viewer-ng2/pdf-viewer-ng2.module.ts","/./src/app/results/audio-delay/audio-delay.component.scss","/./src/app/results/audio-delay/audio-delay.component.ts","/./src/app/results/call-events/call-events.component.scss","/./src/app/results/call-events/call-events.component.ts","/./src/app/results/emu/emu.component.scss","/./src/app/results/emu/emu.component.ts","/./src/app/results/fax/fax.component.scss","/./src/app/results/fax/fax.component.ts","/./src/app/results/mobinforslts/mobinforslts.component.scss","/./src/app/results/mobinforslts/mobinforslts.component.ts","/./src/app/results/nettestrslts/nettestrslts.component.scss","/./src/app/results/nettestrslts/nettestrslts.component.ts","/./src/app/results/pesq/pesq.component.scss","/./src/app/results/pesq/pesq.component.ts","/./src/app/results/polqa/polqa.component.scss","/./src/app/results/polqa/polqa.component.ts","/./src/app/results/vac/vac.component.scss","/./src/app/results/vac/vac.component.ts","/./src/app/results/vba/vba.component.scss","/./src/app/results/vba/vba.component.ts","/./src/app/shared/animations/fly-in-out.animation.ts","/./src/app/shared/basic/basic.component.scss","/./src/app/shared/basic/basic.component.ts","/./src/app/shared/columns.ts","/./src/app/shared/components/api-recall-button/api-recall-button.component.scss","/./src/app/shared/components/api-recall-button/api-recall-button.component.ts","/./src/app/shared/components/common-filter/common-filter.component.scss","/./src/app/shared/components/common-filter/common-filter.component.ts","/./src/app/shared/components/confirm-dialog/confirm-dialog.component.scss","/./src/app/shared/components/confirm-dialog/confirm-dialog.component.ts","/./src/app/shared/components/daterangepicker/daterangepicker.component.scss","/./src/app/shared/components/daterangepicker/daterangepicker.component.ts","/./src/app/shared/components/daterangepicker/daterangepicker.directive.ts","/./src/app/shared/components/download-file/download-file.component.scss","/./src/app/shared/components/download-file/download-file.component.ts","/./src/app/shared/components/explore-options/explore-options.component.scss","/./src/app/shared/components/explore-options/explore-options.component.ts","/./src/app/shared/components/explore-options/image-popup-modals/image-popup-modals.component.scss","/./src/app/shared/components/explore-options/image-popup-modals/image-popup-modals.component.ts","/./src/app/shared/components/load-filter/load-filter.component.scss","/./src/app/shared/components/load-filter/load-filter.component.ts","/./src/app/shared/components/screen-second-header/screen-second-header.component.scss","/./src/app/shared/components/screen-second-header/screen-second-header.component.ts","/./src/app/shared/components/screen-top-header/screen-top-header.component.scss","/./src/app/shared/components/screen-top-header/screen-top-header.component.ts","/./src/app/shared/components/spinners/bold-spin/bold-spin.component.scss","/./src/app/shared/components/spinners/bold-spin/bold-spin.component.ts","/./src/app/shared/components/spinners/loading-spin/loading-spin.component.scss","/./src/app/shared/components/spinners/loading-spin/loading-spin.component.ts","/./src/app/shared/components/spinners/magnify-spin/magnify-spin.component.scss","/./src/app/shared/components/spinners/magnify-spin/magnify-spin.component.ts","/./src/app/shared/components/spinners/three-spin/three-spin.component.scss","/./src/app/shared/components/spinners/three-spin/three-spin.component.ts","/./src/app/shared/components/sub-results-selection/sub-results-selection.component.scss","/./src/app/shared/components/sub-results-selection/sub-results-selection.component.ts","/./src/app/shared/components/synopsis/synopsis.component.scss","/./src/app/shared/components/synopsis/synopsis.component.ts","/./src/app/shared/components/title/title.component.scss","/./src/app/shared/components/title/title.component.ts","/./src/app/shared/components/upload-file/upload-file.component.scss","/./src/app/shared/components/upload-file/upload-file.component.ts","/./src/app/shared/components/url-reload-button/url-reload-button.component.scss","/./src/app/shared/components/url-reload-button/url-reload-button.component.ts","/./src/app/shared/components/user-info/user-info.component.scss","/./src/app/shared/components/user-info/user-info.component.ts","/./src/app/shared/demo.service.ts","/./src/app/shared/directives/numeric.directive.ts","/./src/app/shared/directives/two-digit-decima-number.directive.ts","/./src/app/shared/functions/title.ts","/./src/app/shared/header-demo.service.ts","/./src/app/shared/header-demo/header-demo.component.scss","/./src/app/shared/header-demo/header-demo.component.ts","/./src/app/shared/mat-table/mat-table.component.scss","/./src/app/shared/mat-table/mat-table.component.ts","/./src/app/shared/mat-table/services/call-events.service.ts","/./src/app/shared/models/AUDIODELAYDATA.ts","/./src/app/shared/models/CONNDROPDATA.ts","/./src/app/shared/models/CUSTOMREPORTS_GROUP.ts","/./src/app/shared/models/Common/common-filter.ts","/./src/app/shared/models/Configuration/CustomStatsConfig.ts","/./src/app/shared/models/Configuration/GMaps/GMaps.ts","/./src/app/shared/models/Configuration/GoogleMap/MapConfig.ts","/./src/app/shared/models/DNSDATA.ts","/./src/app/shared/models/EMAILDATA.ts","/./src/app/shared/models/EMUDATA.ts","/./src/app/shared/models/EModule.ts","/./src/app/shared/models/FAXDATA.ts","/./src/app/shared/models/FTPDATA.ts","/./src/app/shared/models/Filters/Filters.ts","/./src/app/shared/models/GENERALINFO.ts","/./src/app/shared/models/GRAPHRSLTVIEW_GROUP.ts","/./src/app/shared/models/HTTPDATA.ts","/./src/app/shared/models/MAINFILTER.ts","/./src/app/shared/models/ROUTEDATA.ts","/./src/app/shared/models/Remote Operations/network-status.ts","/./src/app/shared/models/Remote Operations/remote-operations.ts","/./src/app/shared/models/SIMINFO.ts","/./src/app/shared/models/SMSDATA.ts","/./src/app/shared/models/Scheduler/Job.ts","/./src/app/shared/models/Scheduler/scheduler-status.ts","/./src/app/shared/models/SystemSettingConfig.ts","/./src/app/shared/models/TCPDATA.ts","/./src/app/shared/models/UDPDATA.ts","/./src/app/shared/models/UEINFO.ts","/./src/app/shared/models/VACDATA.ts","/./src/app/shared/models/VOIPDATA.ts","/./src/app/shared/models/VQTPESQDATA.ts","/./src/app/shared/models/VQTPOLQADATA.ts","/./src/app/shared/models/VQUADDATA.ts","/./src/app/shared/models/common.ts","/./src/app/shared/models/index.ts","/./src/app/shared/ngx-dt/ngx-dt.component.scss","/./src/app/shared/ngx-dt/ngx-dt.component.ts","/./src/app/shared/pipes/data-cols.pipe.ts","/./src/app/shared/pipes/date-format.pipe.ts","/./src/app/shared/pipes/highlight.pipe.ts","/./src/app/shared/pipes/network-status.pipe.ts","/./src/app/shared/services/common-filter/common-filter.service.ts","/./src/app/shared/services/filters/filters.service.ts","/./src/app/shared/services/google-maps/google-maps.service.ts","/./src/app/shared/services/graphics/analysis.service.ts","/./src/app/shared/services/graphics/call-process.service.ts","/./src/app/shared/services/graphics/nettest.service.ts","/./src/app/shared/services/master/results/results.service.ts","/./src/app/shared/services/system-settings/system-settings.service.ts","/./src/app/statistics/audio-and-delay-statistics-pie-chart/audio-and-delay-statistics-pie-chart.component.scss","/./src/app/statistics/audio-and-delay-statistics-pie-chart/audio-and-delay-statistics-pie-chart.component.ts","/./src/app/statistics/network-status/command-center/command-center.component.scss","/./src/app/statistics/network-status/command-center/command-center.component.ts","/./src/app/statistics/network-status/file-monitor/file-monitor.component.ts","/./src/app/statistics/network-status/mobile/mobile.component.ts","/./src/app/statistics/network-status/network-status.component.scss","/./src/app/statistics/network-status/network-status.component.ts","/./src/app/statistics/network-status/v-mobile/v-mobile.component.scss","/./src/app/statistics/network-status/v-mobile/v-mobile.component.ts","/./src/app/statistics/network-status/v-mobilescrparams/v-mobilescrparams.component.scss","/./src/app/statistics/network-status/v-mobilescrparams/v-mobilescrparams.component.ts","/./src/app/statistics/network-status/vqt/vqt.component.ts","/./src/app/statistics/network-status/vquad/vquad.component.scss","/./src/app/statistics/network-status/vquad/vquad.component.ts","/./src/app/statistics/network-status/vquadbtfxo/vquadbtfxo.component.scss","/./src/app/statistics/network-status/vquadbtfxo/vquadbtfxo.component.ts","/./src/app/statistics/network-status/vquadscrparams/vquadscrparams.component.scss","/./src/app/statistics/network-status/vquadscrparams/vquadscrparams.component.ts","/./src/app/statistics/scheduler-status/scheduler-status.component.scss","/./src/app/statistics/scheduler-status/scheduler-status.component.ts","/./src/app/statistics/voice-quality-statistics-pie-chart/voice-quality-statistics-pie-chart.component.scss","/./src/app/statistics/voice-quality-statistics-pie-chart/voice-quality-statistics-pie-chart.component.ts","/./src/app/welcome/welcome.component.scss","/./src/app/welcome/welcome.component.ts","/./src/environments/environment.ts","/./src/main.ts","/fs (ignored)","/crypto (ignored)","/stream (ignored)","webpack:///fs (ignored)?c553","webpack:///crypto (ignored)?1e9a","webpack:///stream (ignored)?3ea2"],"names":[],"mappings":"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AAQ,CAAC;YACR,YAAY,EAAE,CAAC,+EAAqB,CAAC;YACrC,OAAO,EAAE,CAAC,+EAAqB,CAAC;YAChC,OAAO,EAAE;gBACP,4DAAY;aACb;SACF,CAAC;OACW,kBAAkB,CAAI;IAAD,yBAAC;CAAA;AAAJ;;;;;;;;;;;;ACb/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAE5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAE5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;YAC5C,EAAE,cAAc,EAAE,aAAa,E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AiB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,E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","file":"main.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","export interface CSVargs {\n rows: any[];\n keys: string[];\n titles: string[];\n filename?: string;\n columnDelimiter?: string;\n lineDelimiter?: string;\n}\n\nexport function downloadCSV(args: CSVargs) {\n args.filename = args.filename || 'export.csv';\n args.columnDelimiter = args.columnDelimiter || ';';\n args.lineDelimiter = args.lineDelimiter || '\\n';\n\n let csv = convertArrayOfObjectsToCSV(args);\n if (csv == null) { return; }\n\n if (!csv.match(/^data:text\\/csv/i)) {\n const bom = '\\uFEFF';\n csv = 'data:text/csv;charset=utf-8,' + bom + csv;\n }\n const data = encodeURI(csv);\n\n const link = document.createElement('a');\n link.setAttribute('href', data);\n link.setAttribute('download', args.filename);\n link.click();\n}\n\nfunction convertArrayOfObjectsToCSV(args: CSVargs) {\n if (!args.rows || !args.rows.length) {\n return;\n }\n if (!args.keys || !args.keys.length) {\n args.keys = Object.keys(args.rows[0]);\n }\n if (!args.titles || !args.titles.length) {\n args.titles = args.keys;\n }\n let result = '';\n result += '\"' + args.titles.join('\"' + args.columnDelimiter + '\"') + '\"';\n result += args.lineDelimiter;\n\n args.rows.forEach(item => {\n let ctr = 0;\n args.keys.forEach(key => {\n if (ctr > 0) {\n result += args.columnDelimiter;\n }\n result += '\"' + item[key] + '\"';\n ctr++;\n });\n result += args.lineDelimiter;\n });\n return result;\n}\n","export interface PDFargs {\n rows: any[];\n keys: string[];\n}\n\nexport function downloadPDF(args: PDFargs) {\n\n let pdf = convertArrayOfObjectsToPDF(args);\n if (pdf.length == 0) { return; }\n else\n return pdf;\n}\n\nfunction convertArrayOfObjectsToPDF(args: PDFargs) {\n let result = [];\n\n args.rows.forEach(item => {\n args.keys.forEach(key => {\n result.push(item[key]);\n });\n });\n return result;\n}\n","export * from './models/select-item.model';\nexport * from './models/menu-item.model';\nexport * from './validators';\nexport * from './keycodes';\nexport * from './export-csv';\nexport * from './export-pdf';\nexport * from './utils';\nexport * from './input-type';\n","export enum Keys {\n BACKSPACE = 8,\n TAB = 9,\n ENTER = 13,\n ESCAPE = 27,\n SPACE = 32,\n LEFT = 37,\n UP = 38,\n RIGHT = 39,\n DOWN = 40,\n DELETE = 46,\n KEY_F2 = 113,\n\n CARET = 94,\n SEMICOLON = 59,\n HASH = 35,\n AMPERSAND = 38,\n PLUS = 43,\n PIPE = 124,\n}\n","export class MenuItem {\n id?: string;\n label?: string;\n icon?: string;\n command?: (event?: any) => void;\n url?: string;\n routerLink?: any;\n disabled?: boolean;\n}\n","export class SelectItem {\n id: any;\n name: string;\n parentId?: any;\n alias?: string;//Newly Added for Config and Filter screens, ? means optional - IMP\n origName?: string;\n children?: any[];\n showSubUL?: number;\n}\n","export function arrayMove(array: T[], fromIndex: number, toIndex: number): void {\n fromIndex = clamp(fromIndex, array.length - 1);\n toIndex = clamp(toIndex, array.length - 1);\n\n if (fromIndex !== toIndex) {\n array.splice(toIndex, 0, array.splice(fromIndex, 1)[0]);\n }\n}\n\nexport function arrayTransfer(arrayFrom: T[], arrayTo: T[], fromIndex: number, toIndex: number): void {\n fromIndex = clamp(fromIndex, arrayFrom.length - 1);\n toIndex = clamp(toIndex, arrayTo.length);\n\n if (arrayFrom.length) {\n arrayTo.splice(toIndex, 0, arrayFrom.splice(fromIndex, 1)[0]);\n }\n}\n\nfunction clamp(a: number, b: number): number {\n return Math.max(0, Math.min(a, b));\n}\n\nexport function arrayPaginate(array: T[], currentPage: number, perPage: number): T[] {\n if (!array || !currentPage || !perPage) {\n return array;\n }\n const start = (currentPage - 1) * perPage;\n const end = perPage > -1 ? (start + perPage) : array.length;\n return array.slice(start, end);\n}\n","import * as moment from 'moment';\r\n\r\nexport function inputFormattedDate(type: string, value: any) {\r\n if (value) {\r\n if (value instanceof Date) {\r\n value = value.toISOString();\r\n }\r\n //console.log(value + type);\r\n\r\n if (type === 'datetime-local') {\r\n return value.slice(0, 16);\r\n } else if (type === 'date') {\r\n return value.slice(0, 10);\r\n } else if (type === 'month') {\r\n return value.slice(0, 7);\r\n }\r\n }\r\n return value;\r\n}\r\n\r\nexport type LastDateType = 'year' | 'month' | '6months' | '24hours' | 'hour' | '7days' | '10min' | 'yesterday' | 'today' | 'custom' | '12hours';\r\n\r\nexport function lastDateFunc(name, Timezone_GMT?, DB_BRDiff?) {\r\n //debugger\r\n let value = getLastDate(name, Timezone_GMT, DB_BRDiff);//inputFormattedDate(this.column.type, getLastDate(name).toISOString());\r\n let dt: Date = new Date();\r\n let yestOrTodayNameTo = name;\r\n if (name === 'yesterday') {\r\n dt = new Date(Date.now() + -1 * 24 * 3600 * 1000);\r\n yestOrTodayNameTo = name + 'To';\r\n }\r\n else if (name === 'today') {\r\n yestOrTodayNameTo = name + 'To';\r\n }\r\n let valueTo = formatDate(dt, Timezone_GMT, DB_BRDiff, yestOrTodayNameTo);\r\n\r\n return value + \"^\" + valueTo;\r\n}\r\n\r\nexport function getLastDate(type: LastDateType, Timezone_GMT, DB_BRDiff) {\r\n let dt: Date;\r\n //debugger\r\n if (type === 'year') {\r\n dt = new Date();\r\n dt.setMonth(dt.getMonth() - 12);\r\n } else if (type === 'month') {\r\n dt = new Date();\r\n dt.setMonth(dt.getMonth() - 1);\r\n } else if (type === '6months') {\r\n dt = new Date();\r\n dt.setMonth(dt.getMonth() - 6);\r\n } else if (type === '7days') {\r\n dt = new Date(Date.now() + -7 * 24 * 3600 * 1000);\r\n } else if (type === 'yesterday') {\r\n dt = new Date(Date.now() + -1 * 24 * 3600 * 1000);\r\n //dt.setHours(0);\r\n //dt.setMinutes(0);\r\n //dt.setSeconds(0);\r\n\r\n //DB_BRDiff = 0;\r\n } else if (type === 'today') {\r\n dt = new Date(Date.now());\r\n //dt.setHours(0);\r\n //dt.setMinutes(0);\r\n //dt.setSeconds(0);\r\n\r\n //DB_BRDiff = 0;\r\n } else if (type === '24hours') {\r\n dt = new Date(Date.now() + -1 * 24 * 3600 * 1000);\r\n } else if (type === '12hours') {\r\n dt = new Date(Date.now() + -12 * 3600 * 1000);\r\n } else if (type === 'hour') {\r\n dt = new Date(Date.now() + -1 * 3600 * 1000);\r\n } else if (type === '10min') {\r\n dt = new Date(Date.now() + -1 * 600 * 1000);\r\n } else if (type === 'custom') {\r\n dt = new Date(Date.now());\r\n }\r\n\r\n return formatDate(dt, Timezone_GMT, DB_BRDiff, type);\r\n}\r\n\r\nexport function formatDateOld(date: Date) {\r\n return moment(date).format(\"YYYY-MM-DD HH:mm\")\r\n}\r\n\r\nexport function formatDate(dtActual: Date, Timezone_GMT?, DB_BRDiff?, type?)\r\n{\r\n let dt = dtActual;\r\n if (DB_BRDiff != undefined) {\r\n if (type)\r\n dt = formatLocalToDBTZDate(dtActual, Timezone_GMT, DB_BRDiff, type);\r\n else\r\n dt = formatLocalToDBTZDate(dtActual, Timezone_GMT, DB_BRDiff);\r\n }\r\n let myMonth = dt.getMonth() + 1;\r\n if (myMonth > 12)\r\n myMonth = 1;\r\n let myStrMonth = myMonth.toString();\r\n if (myStrMonth.length == 1)\r\n myStrMonth = \"0\" + myStrMonth;\r\n\r\n let myDate = dt.getDate();\r\n let myStrDate = myDate.toString();\r\n if (myStrDate.length == 1)\r\n myStrDate = \"0\" + myStrDate;\r\n\r\n var newDate = myStrMonth + \"/\" + myStrDate + \"/\" + dt.getFullYear() + \" \" + (dt.toTimeString().split(\" \"))[0];\r\n return newDate;\r\n}\r\n\r\n//TZ filter when ON - change fetched DB TZ records and search dates also to browser TZ while displaying on screen\r\nexport function formatDBTZDateToLocalDate(dt: string, Timezone_GMT, DB_BRDiff, MainFilterID) {\r\n if (dt.length == 0 || MainFilterID == 0)\r\n return dt;\r\n let dtNew = new Date(dt);\r\n //console.log(formatDate(dtNew))\r\n if (DB_BRDiff != -500) {\r\n let currentTime = dtNew.getTime();\r\n dtNew = new Date(currentTime + DB_BRDiff * 60 * 60 * 1000);//converts DB TZ time to UTC time\r\n }\r\n //console.log(formatDate(dtNew))\r\n\r\n return formatDate(dtNew);\r\n}\r\n\r\n//\r\n//export function formatUTCToLocalDate(dt: Date) {\r\n //https://stackoverflow.com/questions/57409178/how-to-convert-datetime-utc-to-local-time-angular\r\n //let dtNew = new Date(formatDate(dt) + ' UTC'); - ONLY UTC conversion\r\n //return formatDate(dtNew);\r\n//}\r\n\r\n//TZ filter when OFF - change only search dates to DB TZ and display records as it is\r\nexport function formatLocalToDBTZDate(dt: Date, Timezone_GMT, DB_BRDiff, type?) {\r\n //console.log(new Date().toISOString());\r\n //console.log((new Date()).getTimezoneOffset())\r\n ////https://stackoverflow.com/questions/10830357/javascript-toisostring-ignores-timezone-offset\r\n //let tzoffset = (new Date()).getTimezoneOffset(); //UTC offset in minutes\r\n let dtNew: Date = dt;\r\n //console.log(DB_BRDiff)\r\n if (DB_BRDiff != -500) {\r\n //dtNew.setMinutes(dtNew.getMinutes() + tzoffset);//Converts to UTC\r\n ////let localISOTime = new Date(Date.now() + tzoffset);\r\n ////console.log(formatDate(localISOTime))\r\n //https://www.tutorialspoint.com/How-to-add-2-hours-to-a-JavaScript-Date-object\r\n let currentTime = dtNew.getTime();\r\n dtNew = new Date(currentTime - DB_BRDiff * 60 * 60 * 1000);//add hours to match with the DB timezone and thus converted date displayed\r\n }\r\n if (type == 'yesterdayTo') {\r\n dtNew.setHours(23);\r\n dtNew.setMinutes(59);\r\n dtNew.setSeconds(59);\r\n }\r\n else if (type == 'yesterday' || type == 'today') {\r\n dtNew.setHours(0);\r\n dtNew.setMinutes(0);\r\n dtNew.setSeconds(0);\r\n }\r\n //console.log(dtNew)\r\n return dtNew;\r\n}\r\n","export function isLeftButton(event: MouseEvent | TouchEvent) {\n return (event.type === 'mousedown' && (event as MouseEvent).button === 0);\n}\n\nexport function getEvent(event: MouseEvent | TouchEvent): MouseEvent | Touch {\n if (event.type === 'touchend' || event.type === 'touchcancel') {\n return (event as TouchEvent).changedTouches[0];\n }\n return event.type.startsWith('touch') ? (event as TouchEvent).targetTouches[0] : event as MouseEvent;\n}\n\nexport function maxZIndex(selectors: string = 'body *') {\n return Array.from(document.querySelectorAll(selectors))\n .map(a => parseFloat(window.getComputedStyle(a).zIndex))\n .filter(a => !isNaN(a))\n .sort((a, b) => a - b)\n .pop() || 0;\n}\n\nexport function findAncestor(el, selectors) {\n if (typeof el.closest === 'function') {\n return el.closest(selectors) || null;\n }\n while (el) {\n if (el.matches(selectors)) {\n return el;\n }\n el = el.parentElement;\n }\n return null;\n}\n\nexport function supportsStickyPosition(): boolean {\n if (!('CSS' in window)) {\n return false;\n }\n return (\n CSS.supports('position', 'sticky') ||\n CSS.supports('position', '-webkit-sticky')\n );\n}\n","export * from './utils';\nexport * from './array-utils';\nexport * from './object-utils';\nexport * from './date-utils';\nexport * from './dom-utils';\n","import { isBlank } from './utils';\r\n\r\nexport function getDeepValue(data: any, path: string): any {\r\n if (!data) {\r\n return '';\r\n }\r\n if (data[path] !== undefined) {\r\n return data[path];\r\n }\r\n const fields = path.split('.');\r\n let currentObject = data;\r\n for (const field of fields) {\r\n currentObject = currentObject[field];\r\n if (isBlank(currentObject)) {\r\n return '';\r\n }\r\n }\r\n return currentObject;\r\n}\r\n\r\n//2013-04-14T14:49:52 - Original\r\nexport function getDateValue(data: any, path: string, splitChar?): any {\r\n if (!data || data[path] == undefined || data[path].length <= 0) {\r\n return '';\r\n }\r\n let splitCharFinal = 'T';\r\n if (splitChar) {\r\n splitCharFinal = splitChar;\r\n }\r\n //console.log(data)\r\n let currentObject = data;\r\n if (path.indexOf(\"Timestamp\") != -1 || path.indexOf(\"TimeStamp\") != -1) {\r\n let time = (data[path].split(splitCharFinal))[1];//(data[path].split(splitCharFinal))[1];\r\n let date = (data[path].split(splitCharFinal))[0].split('-');//(data[path].split(splitCharFinal))[0].split('-');\r\n if (splitCharFinal == 'T')\r\n currentObject = date[1] + \"/\" + date[2] + \"/\" + date[0] + \" \" + time;\r\n else\r\n currentObject = date[1] + \"/\" + date[0] + \"/\" + date[2] + \" \" + time;\r\n }\r\n\r\n return currentObject;\r\n}\r\nexport function getPOLQAValue(data: any, path: string) {\r\n if (!data || data[path] == undefined || data[path].length <= 0) {\r\n return '';\r\n }\r\n\r\n if (data[path] == 0)\r\n return data[path].toString().replace('0', 'N/A');\r\n else\r\n return data[path];\r\n}\r\nexport function getDateValueViaValue(value: any, splitChar?): any {\r\n let splitCharFinal = 'T';\r\n if (splitChar) {\r\n splitCharFinal = splitChar;\r\n }\r\n //console.log(data)\r\n let currentObject = value;\r\n let time = (value.split(splitCharFinal))[1];//(data[path].split(splitCharFinal))[1];\r\n let date = (value.split(splitCharFinal))[0].split('-');//(data[path].split(splitCharFinal))[0].split('-');\r\n if (splitCharFinal == 'T')\r\n currentObject = date[1] + \"/\" + date[2] + \"/\" + date[0] + \" \" + time;\r\n else\r\n currentObject = date[1] + \"/\" + date[0] + \"/\" + date[2] + \" \" + time;\r\n\r\n return currentObject;\r\n}\r\nexport function getDateValueRowGrp(dateItem) {\r\n let time = (dateItem.split('T'))[1];//(data[path].split('T'))[1];\r\n let date = (dateItem.split('T'))[0].split('-');//(data[path].split('T'))[0].split('-');\r\n let currentObject = date[1] + \"/\" + date[2] + \"/\" + date[0] + \" \" + time;\r\n return currentObject;\r\n}\r\n\r\n\r\n\r\n//https://stackoverflow.com/questions/52110419/angular-4-settimeout-with-variable-delay-and-wait/52110528\r\n//https://www.learn-it-with-examples.com/development/html-css-javascript/angular/settimeout-angular-example.html\r\nexport function iterateAndWait(times) {\r\n let i = 0;\r\n (function repeat(times) {\r\n if (++i > times) return;\r\n setTimeout(function () {\r\n //console.log(\"Iteration: \" + i);\r\n repeat();\r\n }, 1000);\r\n })();\r\n}\r\n","export function isBlank(val: any): boolean {\n if (val !== null && val !== undefined) {\n if ((typeof val === 'string' && val.trim().length === 0) ||\n (val instanceof Array && val.length === 0) ||\n (Object.keys(val).length === 0 && val.constructor === Object)) {\n return true;\n } else {\n return false;\n }\n }\n return true;\n}\n\nexport function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import {isBlank} from './utils';\n\nexport interface Validation {\n required?: boolean;\n minLength?: number;\n maxLength?: number;\n pattern?: string | RegExp;\n}\n\nexport class Validators {\n\n static get(validation: Validation): (name: string, value: any) => string[] {\n return (name: string, value: any) => Validators.validate(name, value, validation);\n }\n\n static validate(name: string, value: any, validation: Validation): string[] {\n const temp: string[] = [];\n if (!validation) {\n return temp;\n }\n const length: number = !isBlank(value) ? value.toString().length : 0;\n\n if (validation.required && isBlank(value)) {\n temp.push(`${name} is required.`);\n }\n if (validation.minLength && length < validation.minLength) {\n temp.push(`${name} has to be at least ${validation.minLength} characters long. ActualLength: ${length}`);\n }\n if (validation.maxLength && length > validation.maxLength) {\n temp.push(`${name} can't be longer then ${validation.maxLength} characters. ActualLength: ${length}`);\n }\n if (validation.pattern && value) {\n const patternResult = Validators.patternValidate(name, value, validation.pattern);\n if (patternResult) {\n temp.push(patternResult);\n }\n }\n return temp;\n }\n\n static patternValidate(name: string, value: any, pattern: string | RegExp): string {\n let regex: RegExp;\n let regexStr: string;\n if (typeof pattern === 'string') {\n regexStr = pattern;\n regex = new RegExp(regexStr);\n } else {\n regexStr = pattern.toString();\n regex = pattern;\n }\n return regex.test(value) ? null : `${name} must match this pattern: ${regexStr}.`;\n }\n\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ContextMenuComponent} from './context-menu.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n ContextMenuComponent,\n ],\n exports: [\n ContextMenuComponent,\n ],\n providers: []\n})\nexport class ContextMenuModule {}\n","import {\n Component, Input, HostListener, ChangeDetectionStrategy, ChangeDetectorRef,\n HostBinding, ElementRef, ViewEncapsulation, OnInit, OnDestroy\n} from '@angular/core';\nimport { MenuEventArgs } from './types';\nimport { Dropdown } from '../dropdown';\nimport { MenuItem } from '../common';\nimport { isBlank } from '../common/utils';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'app-context-menu',\n templateUrl: './context-menu.component.html',\n styleUrls: ['../styles/context-menu.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class ContextMenuComponent implements OnInit, OnDestroy {\n\n @Input() menu: MenuItem[] = [];\n\n left: number;\n top: number;\n\n @HostBinding('class.dt-context-menu') cssClass = true;\n\n @HostBinding('style.left.px')\n get getLeft(): number {\n return this.left;\n }\n\n @HostBinding('style.top.px')\n get getTop(): number {\n return this.top;\n }\n\n @HostBinding('style.display')\n get getDisplay(): string {\n return (this.dropdown.isOpen && this.menu.length > 0) ? 'block' : 'none';\n }\n\n private eventArgs: MenuEventArgs;\n private dropdown: Dropdown;\n private subscriptions: Subscription[] = [];\n\n constructor(private element: ElementRef, private cd: ChangeDetectorRef) {\n this.dropdown = new Dropdown(this.element.nativeElement);\n }\n\n ngOnInit() {\n const subDropdown = this.dropdown.isOpenSource$.subscribe(() => {\n this.cd.markForCheck();\n });\n this.subscriptions.push(subDropdown);\n }\n\n ngOnDestroy() {\n this.dropdown.removeEventListeners();\n this.subscriptions.forEach(s => s.unsubscribe());\n }\n\n @HostListener('window:resize')\n onWindowResize(): void {\n this.dropdown.closeDropdown();\n }\n\n getPositionMenu(left: number, top: number) {\n const menu = this.element.nativeElement;\n const {height, width} = this.getHiddenElementOuterSizes(menu);\n // flip\n if (left + width - window.pageXOffset > window.innerWidth) {\n left -= width;\n }\n // flip\n if (top + height - window.pageYOffset > window.innerHeight) {\n top -= height;\n }\n // fit\n if (left < document.body.scrollLeft) {\n left = document.body.scrollLeft;\n }\n // fit\n if (top < document.body.scrollTop) {\n top = document.body.scrollTop;\n }\n return { left, top };\n }\n\n getHiddenElementOuterSizes(element: HTMLElement) {\n if (element.offsetParent) {\n return { height: element.offsetHeight, width: element.offsetWidth };\n }\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n const elementHeight = element.offsetHeight;\n const elementWidth = element.offsetWidth;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n\n return { height: elementHeight, width: elementWidth };\n }\n\n show(event: MenuEventArgs) {\n this.eventArgs = event;\n let coords;\n if (!isBlank(event.left) && !isBlank(event.top)) {\n coords = this.getPositionMenu(event.left, event.top);\n this.dropdown.selectContainerClicked = true;\n } else {\n coords = this.getPositionMenu(event.originalEvent.pageX + 1, event.originalEvent.pageY + 1);\n }\n event.originalEvent.preventDefault();\n\n if (this.top === coords.top && this.left === coords.left) {\n this.dropdown.toggleDropdown();\n } else {\n this.top = coords.top;\n this.left = coords.left;\n this.dropdown.closeDropdown();\n this.dropdown.openDropdown();\n }\n }\n\n hide() {\n this.dropdown.closeDropdown();\n }\n\n itemClick(event, item: MenuItem) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n if (!item.url) {\n event.preventDefault();\n }\n if (item.command) {\n item.command(this.eventArgs.data);\n }\n this.dropdown.isOpen = false;\n }\n\n}\n","export * from './context-menu-module';\nexport * from './context-menu.component';\nexport * from './types';\n","module.exports = \"/*\\n* variables\\n*/\\n/*\\n* styles\\n*/\\n.md-drppicker {\\n position: absolute;\\n font-family: Roboto, sans-serif;\\n color: inherit;\\n background-color: #fff;\\n border-radius: 4px;\\n width: 278px;\\n padding: 4px;\\n margin-top: -10px;\\n overflow: hidden;\\n z-index: 1000;\\n font-size: 12px;\\n /*14px; - calendar size - IMP*/\\n background-color: #ffffff;\\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16), 0 2px 8px 0 rgba(0, 0, 0, 0.12);\\n /* ranges */\\n /* button */\\n}\\n.md-drppicker.double {\\n width: auto;\\n}\\n.md-drppicker.inline {\\n position: relative;\\n display: inline-block;\\n}\\n.md-drppicker:before, .md-drppicker:after {\\n position: absolute;\\n display: inline-block;\\n border-bottom-color: rgba(0, 0, 0, 0.2);\\n content: \\\"\\\";\\n}\\n.md-drppicker.openscenter:before {\\n left: 0;\\n right: 0;\\n width: 0;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n.md-drppicker.openscenter:after {\\n left: 0;\\n right: 0;\\n width: 0;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n.md-drppicker.single .ranges, .md-drppicker.single .calendar {\\n float: none;\\n}\\n.md-drppicker.shown {\\n -ms-transform: scale(1);\\n transform: scale(1);\\n transition: all 0.1s ease-in-out;\\n -ms-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.md-drppicker.shown.drops-up-left {\\n -ms-transform-origin: 100% 100%;\\n transform-origin: 100% 100%;\\n}\\n.md-drppicker.shown.drops-up-right {\\n -ms-transform-origin: 0 100%;\\n transform-origin: 0 100%;\\n}\\n.md-drppicker.shown.drops-down-left {\\n -ms-transform-origin: 100% 0;\\n transform-origin: 100% 0;\\n}\\n.md-drppicker.shown.drops-down-right {\\n -ms-transform-origin: 0 0;\\n transform-origin: 0 0;\\n}\\n.md-drppicker.shown.drops-down-center {\\n -ms-transform-origin: NaN%;\\n transform-origin: NaN%;\\n}\\n.md-drppicker.shown.drops-up-center {\\n -ms-transform-origin: 50%;\\n transform-origin: 50%;\\n}\\n.md-drppicker.shown .calendar {\\n display: block;\\n}\\n.md-drppicker.hidden {\\n transition: all 0.1s ease;\\n -ms-transform: scale(0);\\n transform: scale(0);\\n -ms-transform-origin: 0 0;\\n transform-origin: 0 0;\\n cursor: default;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.md-drppicker.hidden.drops-up-left {\\n -ms-transform-origin: 100% 100%;\\n transform-origin: 100% 100%;\\n}\\n.md-drppicker.hidden.drops-up-right {\\n -ms-transform-origin: 0 100%;\\n transform-origin: 0 100%;\\n}\\n.md-drppicker.hidden.drops-down-left {\\n -ms-transform-origin: 100% 0;\\n transform-origin: 100% 0;\\n}\\n.md-drppicker.hidden.drops-down-right {\\n -ms-transform-origin: 0 0;\\n transform-origin: 0 0;\\n}\\n.md-drppicker.hidden.drops-down-center {\\n -ms-transform-origin: NaN%;\\n transform-origin: NaN%;\\n}\\n.md-drppicker.hidden.drops-up-center {\\n -ms-transform-origin: 50%;\\n transform-origin: 50%;\\n}\\n.md-drppicker.hidden .calendar {\\n display: none;\\n}\\n.md-drppicker .calendar {\\n /* display: none; */\\n max-width: 270px;\\n margin: 4px;\\n}\\n.md-drppicker .calendar.single .calendar-table {\\n border: none;\\n}\\n.md-drppicker .calendar th, .md-drppicker .calendar td {\\n padding: 0;\\n white-space: nowrap;\\n text-align: center;\\n min-width: 32px;\\n}\\n.md-drppicker .calendar th span, .md-drppicker .calendar td span {\\n pointer-events: none;\\n}\\n.md-drppicker .calendar-table {\\n border: 1px solid #fff;\\n padding: 4px;\\n border-radius: 4px;\\n background-color: #fff;\\n}\\n.md-drppicker table {\\n width: 100%;\\n margin: 0;\\n}\\n.md-drppicker th {\\n color: #988c8c;\\n}\\n.md-drppicker td, .md-drppicker th {\\n text-align: center;\\n width: 20px;\\n height: 20px;\\n border-radius: 4px;\\n border: 1px solid transparent;\\n white-space: nowrap;\\n cursor: pointer;\\n height: 2em;\\n width: 2em;\\n}\\n.md-drppicker td.available.prev, .md-drppicker th.available.prev {\\n display: block;\\n background-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K\\\");\\n background-repeat: no-repeat;\\n background-size: 0.5em;\\n background-position: center;\\n opacity: 0.8;\\n transition: background-color 0.2s ease;\\n border-radius: 2em;\\n}\\n.md-drppicker td.available.prev:hover, .md-drppicker th.available.prev:hover {\\n margin: 0;\\n}\\n.md-drppicker td.available.next, .md-drppicker th.available.next {\\n -ms-transform: rotate(180deg);\\n transform: rotate(180deg);\\n display: block;\\n background-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K\\\");\\n background-repeat: no-repeat;\\n background-size: 0.5em;\\n background-position: center;\\n opacity: 0.8;\\n transition: background-color 0.2s ease;\\n border-radius: 2em;\\n}\\n.md-drppicker td.available.next:hover, .md-drppicker th.available.next:hover {\\n margin: 0;\\n -ms-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n.md-drppicker td.available:hover, .md-drppicker th.available:hover {\\n background-color: #eee;\\n border-color: transparent;\\n color: inherit;\\n background-repeat: no-repeat;\\n background-size: 0.5em;\\n background-position: center;\\n margin: 0.25em 0;\\n opacity: 0.8;\\n /*transition: background-color .2s ease;*/\\n border-radius: 2em;\\n -ms-transform: scale(1);\\n transform: scale(1);\\n transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;\\n}\\n.md-drppicker td.week, .md-drppicker th.week {\\n font-size: 80%;\\n color: #ccc;\\n}\\n.md-drppicker td {\\n margin: 0.25em 0;\\n opacity: 0.8;\\n transition: background-color 0.2s ease;\\n border-radius: 2em;\\n -ms-transform: scale(1);\\n transform: scale(1);\\n transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;\\n}\\n.md-drppicker td.off, .md-drppicker td.off.in-range, .md-drppicker td.off.start-date, .md-drppicker td.off.end-date {\\n background-color: #fff;\\n border-color: transparent;\\n color: #999;\\n}\\n.md-drppicker td.in-range {\\n background-color: #dde2e4;\\n border-color: transparent;\\n color: #000;\\n border-radius: 0;\\n}\\n.md-drppicker td.start-date {\\n border-radius: 2em 0 0 2em;\\n}\\n.md-drppicker td.end-date {\\n border-radius: 0 2em 2em 0;\\n}\\n.md-drppicker td.start-date.end-date {\\n border-radius: 4px;\\n}\\n.md-drppicker td.active {\\n transition: background 300ms ease-out;\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.md-drppicker td.active, .md-drppicker td.active:hover {\\n background-color: #2196F3;\\n border-color: transparent;\\n color: #fff;\\n}\\n.md-drppicker th.month {\\n width: auto;\\n}\\n.md-drppicker td.disabled, .md-drppicker option.disabled {\\n color: #999;\\n cursor: not-allowed;\\n text-decoration: line-through;\\n}\\n.md-drppicker select {\\n display: inline-block;\\n background-color: rgba(255, 255, 255, 0.9);\\n width: 100%;\\n padding: 5px;\\n border: 1px solid #f2f2f2;\\n border-radius: 2px;\\n height: 3rem;\\n}\\n.md-drppicker select.monthselect, .md-drppicker select.yearselect {\\n font-size: 12px;\\n padding: 1px;\\n height: auto;\\n margin: 0;\\n cursor: default;\\n}\\n.md-drppicker select.hourselect, .md-drppicker select.minuteselect, .md-drppicker select.secondselect, .md-drppicker select.ampmselect {\\n width: 50px;\\n margin: 0 auto;\\n background: #eee;\\n border: 1px solid #eee;\\n padding: 2px;\\n outline: 0;\\n font-size: 12px;\\n}\\n.md-drppicker select.monthselect, .md-drppicker select.yearselect {\\n cursor: pointer;\\n opacity: 0;\\n position: absolute;\\n top: 0;\\n left: 0;\\n margin: 0;\\n padding: 0;\\n}\\n.md-drppicker th.month > div {\\n position: relative;\\n display: inline-block;\\n}\\n.md-drppicker .calendar-time {\\n text-align: center;\\n margin: 4px auto 0 auto;\\n line-height: 30px;\\n position: relative;\\n}\\n.md-drppicker .calendar-time select.disabled {\\n color: #ccc;\\n cursor: not-allowed;\\n}\\n.md-drppicker .label-input {\\n border: 1px solid #ccc;\\n border-radius: 4px;\\n color: #555;\\n height: 30px;\\n line-height: 30px;\\n display: block;\\n vertical-align: middle;\\n margin: 0 auto 5px auto;\\n padding: 0 0 0 28px;\\n width: 100%;\\n}\\n.md-drppicker .label-input.active {\\n border: 1px solid #08c;\\n border-radius: 4px;\\n}\\n.md-drppicker .md-drppicker_input {\\n position: relative;\\n padding: 0 30px 0 0;\\n}\\n.md-drppicker .md-drppicker_input i, .md-drppicker .md-drppicker_input svg {\\n position: absolute;\\n left: 8px;\\n top: 8px;\\n}\\n.md-drppicker.rtl .label-input {\\n padding-right: 28px;\\n padding-left: 6px;\\n}\\n.md-drppicker.rtl .md-drppicker_input i, .md-drppicker.rtl .md-drppicker_input svg {\\n left: auto;\\n right: 8px;\\n}\\n.md-drppicker .show-ranges .drp-calendar.left {\\n border-left: 1px solid #ddd;\\n}\\n.md-drppicker .ranges {\\n float: none;\\n text-align: left;\\n margin: 0;\\n}\\n.md-drppicker .ranges ul {\\n list-style: none;\\n margin: 0 auto;\\n padding: 0;\\n width: 100%;\\n}\\n.md-drppicker .ranges ul li {\\n font-size: 12px;\\n}\\n.md-drppicker .ranges ul li button {\\n /*padding: 8px 12px; - IMP between left options*/\\n width: 100%;\\n background: none;\\n border: none;\\n text-align: left;\\n cursor: pointer;\\n}\\n.md-drppicker .ranges ul li button.active {\\n background-color: #2196F3;\\n color: #fff;\\n}\\n.md-drppicker .ranges ul li button[disabled] {\\n opacity: 0.3;\\n}\\n.md-drppicker .ranges ul li button:active {\\n background: transparent;\\n}\\n.md-drppicker .ranges ul li:hover {\\n background-color: #eee;\\n}\\n.md-drppicker .show-calendar .ranges {\\n margin-top: 8px;\\n}\\n.md-drppicker [hidden] {\\n display: none;\\n}\\n.md-drppicker .buttons {\\n text-align: right;\\n margin: 0 5px 5px 0;\\n}\\n.md-drppicker .btn {\\n position: relative;\\n overflow: hidden;\\n border-width: 0;\\n outline: none;\\n padding: 0px 6px;\\n cursor: pointer;\\n border-radius: 2px;\\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);\\n background-color: #2196F3;\\n color: #ecf0f1;\\n transition: background-color 0.4s;\\n height: auto;\\n text-transform: uppercase;\\n line-height: 36px;\\n font-size: 12px;\\n border: none;\\n}\\n.md-drppicker .btn:hover, .md-drppicker .btn:focus {\\n background-color: #2196F3;\\n}\\n.md-drppicker .btn > * {\\n position: relative;\\n}\\n.md-drppicker .btn span {\\n display: block;\\n padding: 12px 24px;\\n}\\n.md-drppicker .btn:before {\\n content: \\\"\\\";\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n display: block;\\n width: 0;\\n padding-top: 0;\\n border-radius: 100%;\\n background-color: rgba(236, 240, 241, 0.3);\\n -ms-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n}\\n.md-drppicker .btn:active:before {\\n width: 120%;\\n padding-top: 120%;\\n transition: width 0.2s ease-out, padding-top 0.2s ease-out;\\n}\\n.md-drppicker .btn:disabled {\\n opacity: 0.5;\\n}\\n.md-drppicker .btn.btn-default {\\n color: black;\\n background-color: gainsboro;\\n}\\n.md-drppicker .clear {\\n box-shadow: none;\\n background-color: #ffffff !important;\\n}\\n.md-drppicker .clear svg {\\n color: #eb3232;\\n fill: currentColor;\\n}\\n@media (min-width: 564px) {\\n .md-drppicker {\\n width: auto;\\n }\\n .md-drppicker.single .calendar.left {\\n clear: none;\\n }\\n .md-drppicker.ltr {\\n direction: ltr;\\n text-align: left;\\n }\\n .md-drppicker.ltr .calendar.left {\\n clear: left;\\n /*margin-right: 1.5em;*/\\n }\\n .md-drppicker.ltr .calendar.left .calendar-table {\\n border-right: none;\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n }\\n .md-drppicker.ltr .calendar.right {\\n margin-left: 0;\\n }\\n .md-drppicker.ltr .calendar.right .calendar-table {\\n border-left: none;\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n }\\n .md-drppicker.ltr .left .md-drppicker_input {\\n padding-right: 35px;\\n }\\n .md-drppicker.ltr .right .md-drppicker_input {\\n padding-right: 35px;\\n }\\n .md-drppicker.ltr .calendar.left .calendar-table {\\n padding-right: 12px;\\n }\\n .md-drppicker.ltr .ranges, .md-drppicker.ltr .calendar {\\n float: left;\\n }\\n .md-drppicker.rtl {\\n direction: rtl;\\n text-align: right;\\n }\\n .md-drppicker.rtl .calendar.left {\\n clear: right;\\n margin-left: 0;\\n }\\n .md-drppicker.rtl .calendar.left .calendar-table {\\n border-left: none;\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n }\\n .md-drppicker.rtl .calendar.right {\\n margin-right: 0;\\n }\\n .md-drppicker.rtl .calendar.right .calendar-table {\\n border-right: none;\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n }\\n .md-drppicker.rtl .left .md-drppicker_input {\\n padding-left: 12px;\\n }\\n .md-drppicker.rtl .calendar.left .calendar-table {\\n padding-left: 12px;\\n }\\n .md-drppicker.rtl .ranges, .md-drppicker.rtl .calendar {\\n text-align: right;\\n float: right;\\n }\\n\\n .drp-animate {\\n -ms-transform: translate(0);\\n transform: translate(0);\\n transition: transform 0.2s ease, opacity 0.2s ease;\\n }\\n .drp-animate.drp-picker-site-this {\\n transition-timing-function: linear;\\n }\\n .drp-animate.drp-animate-right {\\n -ms-transform: translateX(10%);\\n transform: translateX(10%);\\n opacity: 0;\\n }\\n .drp-animate.drp-animate-left {\\n -ms-transform: translateX(-10%);\\n transform: translateX(-10%);\\n opacity: 0;\\n }\\n}\\n@media (min-width: 730px) {\\n .md-drppicker .ranges {\\n width: auto;\\n }\\n .md-drppicker.ltr .ranges {\\n float: left;\\n }\\n .md-drppicker.rtl .ranges {\\n float: right;\\n }\\n .md-drppicker .calendar.left {\\n clear: none !important;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kYXRlcmFuZ2VwaWNrZXIvRDpcXFNyY3dlYlxcVlMyMDE3IFByb2plY3RzXFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3L2xpYlxcZGF0ZXJhbmdlcGlja2VyXFxkYXRlcmFuZ2VwaWNrZXIuY29tcG9uZW50LnNjc3MiLCJsaWIvZGF0ZXJhbmdlcGlja2VyL2RhdGVyYW5nZXBpY2tlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Q0FBQTtBQStEQTs7Q0FBQTtBQUdBO0VBQ0Usa0JBQUE7RUFDQSwrQkFBQTtFQUNBLGNBbEVtQjtFQW1FbkIsc0JBbEVzQjtFQW1FdEIsa0JBQUE7RUFDQSxZQTlDbUI7RUErQ25CLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsYUFBQTtFQUNBLGVBQUE7RUFBZ0IsOEJBQUE7RUFDaEIseUJBQUE7RUFDQSw0RUFBQTtFQXNZQSxXQUFBO0VBMkRBLFdBQUE7QUN6ZkY7QUQwREU7RUFDRSxXQXZEd0I7QUNENUI7QUQyREU7RUFDRSxrQkFBQTtFQUNBLHFCQUFBO0FDekRKO0FENERFO0VBQ0Usa0JBQUE7RUFDQSxxQkFBQTtFQUNBLHVDQUFBO0VBQ0EsV0FBQTtBQzFESjtBRGdFSTtFQUNFLE9BQUE7RUFDQSxRQUFBO0VBQ0EsUUFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7QUM5RE47QURpRUk7RUFDRSxPQUFBO0VBQ0EsUUFBQTtFQUNBLFFBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0FDL0ROO0FEb0VJO0VBQ0UsV0FBQTtBQ2xFTjtBRHNFRTtFQUNFLHVCQUFBO01BQUEsbUJBQUE7RUFDQSxnQ0FBQTtFQUNBLHlCQUFBO01BQUEscUJBQUE7RUFDQSwyQkFBQTtFQUNBLHlCQUFBO0VBQ0Esc0JBQUE7RUFDQSxxQkFBQTtFQUNBLGlCQUFBO0FDcEVKO0FEc0VJO0VBQ0UsK0JBQUE7TUFBQSwyQkFBQTtBQ3BFTjtBRHVFSTtFQUNFLDRC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S0U7SUFDRSxjQUFBO0lBQ0EsZ0JBQUE7RUMxS0o7RUQ2S007SUFDRSxXQUFBO0lBQ0EsdUJBQUE7RUMzS1I7RUQ0S1E7SUFDRSxrQkFBQTtJQUNBLDBCQUFBO0lBQ0EsNkJBQUE7RUMxS1Y7RUQ4S007SUFDRSxjQUFBO0VDNUtSO0VEOEtRO0lBQ0UsaUJBQUE7SUFDQSx5QkFBQTtJQUNBLDRCQUFBO0VDNUtWO0VEaUxJO0lBQ0UsbUJBQUE7RUMvS047RURrTEk7SUFDRSxtQkFBQTtFQ2hMTjtFRG1MSTtJQUNFLG1CQUFBO0VDakxOO0VEb0xJO0lBQ0UsV0FBQTtFQ2xMTjtFRHNMRTtJQUNFLGNBQUE7SUFDQSxpQkFBQTtFQ3BMSjtFRHVMTTtJQUNFLFlBQUE7SUFDQSxjQUFBO0VDckxSO0VEdUxRO0lBQ0UsaUJBQUE7SUFDQSx5QkFBQTtJQUNBLDRCQUFBO0VDckxWO0VEeUxNO0lBQ0UsZUFBQTtFQ3ZMUjtFRHlMUTtJQUNFLGtCQUFBO0lBQ0EsMEJBQUE7SUFDQSw2QkFBQTtFQ3ZMVjtFRDRMSTtJQUNFLGtCQUFBO0VDMUxOO0VENkxJO0lBQ0Usa0JBQUE7RUMzTE47RUQ4TEk7SUFDRSxpQkFBQTtJQUNBLFlBQUE7RUM1TE47O0VEaU1BO0lBQ0UsMkJBQUE7UUFBQSx1QkFBQTtJQUNBLGtEQUFBO0VDOUxGO0VEZ01FO0lBQ0Usa0NBQUE7RUM5TEo7RURpTUU7SUFDRSw4QkFBQTtRQUFBLDBCQUFBO0lBQ0EsVUFBQTtFQy9MSjtFRGtNRTtJQUNFLCtCQUFBO1FBQUEsMkJBQUE7SUFDQSxVQUFBO0VDaE1KO0FBQ0Y7QURvTUE7RUFFSTtJQUNFLFdBQUE7RUNuTUo7RUR1TUk7SUFDRSxXQUFBO0VDck1OO0VEME1JO0lBQ0UsWUFBQTtFQ3hNTjtFRDRNRTtJQUNFLHNCQUFBO0VDMU1KO0FBQ0YiLCJmaWxlIjoibGliL2RhdGVyYW5nZXBpY2tlci9kYXRlcmFuZ2VwaWNrZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4qICB2YXJpYWJsZXNcclxuKi9cclxuJG1kLWRycHBpY2tlci1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcclxuJG1kLWRycHBpY2tlci1iZy1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcclxuXHJcbiRtZC1kcnBwaWNrZXItY2VsbC1jb2xvcjogJG1kLWRycHBpY2tlci1jb2xvciAhZGVmYXVsdDtcclxuJG1kLWRycHBpY2tlci1jZWxsLWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XHJcbiRtZC1kcnBwaWNrZXItY2VsbC1iZy1jb2xvcjogJG1kLWRycHBpY2tlci1iZy1jb2xvciAhZGVmYXVsdDtcclxuXHJcbiRtZC1kcnBwaWNrZXItY2VsbC1ob3Zlci1jb2xvcjogJG1kLWRycHBpY2tlci1jb2xvciAhZGVmYXVsdDtcclxuJG1kLWRycHBpY2tlci1jZWxsLWhvdmVyLWJvcmRlci1jb2xvcjogJG1kLWRycHBpY2tlci1jZWxsLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcclxuJG1kLWRycHBpY2tlci1jZWxsLWhvdmVyLWJnLWNvbG9yOiAjZWVlICFkZWZhdWx0O1xyXG5cclxuJG1kLWRycHBpY2tlci1pbi1yYW5nZS1jb2xvcjogIzAwMCAhZGVmYXVsdDtcclxuJG1kLWRycHBpY2tlci1pbi1yYW5nZS1ib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xyXG4kbWQtZHJwcGlja2VyLWluLXJhbmdlLWJnLWNvbG9yOiAjZGRlMmU0ICFkZWZhdWx0O1xyXG5cclxuJG1kLWRycHBpY2tlci1hY3RpdmUtY29sb3I6ICNmZmYgIWRlZmF1bHQ7XHJcbiRtZC1kcnBwaWNrZXItYWN0aXZlLWJnLWNvbG9yOiAjMjE5NkYzICFkZWZhdWx0O1xyXG4kbWQtZHJwcGlja2VyLWFjdGl2ZS1ib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xyXG5cclxuJG1kLWRycHBpY2tlci11bnNlbGVjdGVkLWNvbG9yOiAjOTk5ICFkZWZhdWx0O1xyXG4kbWQtZHJwcGlja2VyLXVuc2VsZWN0ZWQtYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcclxuJG1kLWRycHBpY2tlci11bnNlbGVjdGVkLWJnLWNvbG9yOiAjZmZmICFkZWZhdWx0O1xyXG5cclxuJG1kLWRycHBpY2tlci13aWR0aDogMjc4cHggIWRlZmF1bHQ7XHJcbiRtZC1kcnBwaWNrZXItd2lkdGgtZG91YmxlOiBhdXRvICFkZWZhdWx0O1xyXG4kbWQtZHJwcGlja2VyLWJvcmRlci1jb2xvcjogI2NjYyAhZGVmYXVsdDtcclxuXHJcbiRtZC1kcnBwaWNrZXItY2FsZW5kYXItbWFyZ2luOiA0cHggIWRlZmF1bHQ7XHJcbiRtZC1kcnBwaWNrZXItY2FsZW5kYXItYmctY29sb3I6ICRtZC1kcnBwaWNrZXItYmctY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4kbWQtZHJwcGlja2VyLWNhbGVuZGFyLWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XHJcbiRtZC1kcnBwaWNrZXItY2FsZW5kYXItYm9yZGVyLWNvbG9yOiAkbWQtZHJwcGlja2VyLWJnLWNvbG9yICFkZWZhdWx0O1xyXG4kbWQtZHJwcGlja2VyLWNhbGVuZGFyLWJvcmRlci1yYWRpdXM6IDRweCAhZGVmYXVsdDtcclxuXHJcbiRtZC1kcnBwaWNrZXItY2VsbC1zaXplOiAyMHB4ICFkZWZhdWx0O1xyXG4kbWQtZHJwcGlja2VyLWNlbGwtd2lkdGg6ICRtZC1kcnBwaWNrZXItY2VsbC1zaXplICFkZWZhdWx0O1xyXG4kbWQtZHJwcGlja2VyLWNlbGwtaGVpZ2h0OiAkbWQtZHJwcGlja2VyLWNlbGwtc2l6ZSAhZGVmYXVsdDtcclxuXHJcbiRtZC1kcnBwaWNrZXItY2VsbC1ib3JkZXItcmFkaXVzOiAkbWQtZHJwcGlja2VyLWNhbGVuZGFyLWJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XHJcbiRtZC1kcnBwaWNrZXItY2VsbC1ib3JkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xyXG5cclxuJG1kLWRycHBpY2tlci1jb250cm9sLWhlaWdodDogMzBweCAhZGVmYXVsdDtcclxuJG1kLWRycHBpY2tlci1jb250cm9sLWxpbmUtaGVpZ2h0OiAkbWQtZHJwcGlja2VyLWNvbnRyb2wtaGVpZ2h0ICFkZWZhdWx0O1xyXG4kbWQtZHJwcGlja2VyLWNvbnRyb2wtY29sb3I6ICM1NTUgIWRlZmF1bHQ7XHJcblxyXG4kbWQtZHJwcGlja2VyLWNvbnRyb2wtYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcclxuJG1kLWRycHBpY2tlci1jb250cm9sLWJvcmRlci1jb2xvcjogI2NjYyAhZGVmYXVsdDtcclxuJG1kLWRycHBpY2tlci1jb250cm9sLWJvcmRlci1yYWRpdXM6IDRweCAhZGVmYXVsdDtcclxuXHJcbiRtZC1kcnBwaWNrZXItY29udHJvbC1hY3RpdmUtYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcclxuJG1kLWRycHBpY2tlci1jb250cm9sLWFjdGl2ZS1ib3JkZXItY29sb3I6ICMwOGMgIWRlZmF1bHQ7XHJcbiRtZC1kcnBwaWNrZXItY29udHJvbC1hY3RpdmUtYm9yZGVyLXJhZGl1czogJG1kLWRycHBpY2tlci1jb250cm9sLWJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XHJcblxyXG4kbWQtZHJwcGlja2VyLWNvbnRyb2wtZGlzYWJsZWQtY29sb3I6ICNjY2MgIWRlZmF1bHQ7XHJcbi8vIFNlbGVjdFxyXG4kc2VsZWN0LWJvcmRlcjogMXB4IHNvbGlkICNmMmYyZjIgIWRlZmF1bHQ7XHJcbiRzZWxlY3QtYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkwKSAhZGVmYXVsdDtcclxuJHNlbGVjdC1wYWRkaW5nOiA1cHggIWRlZmF1bHQ7XHJcbiRzZWxlY3QtcmFkaXVzOiAycHggIWRlZmF1bHQ7XHJcbiRpbnB1dC1oZWlnaHQ6IDNyZW0gIWRlZmF1bHQ7XHJcbi8qXHJcbiogc3R5bGVzXHJcbiovXHJcbi5tZC1kcnBwaWNrZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xyXG4gIGNvbG9yOiAkbWQtZHJwcGlja2VyLWNvbG9yO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICRtZC1kcnBwaWNrZXItYmctY29sb3I7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIHdpZHRoOiAkbWQtZHJwcGlja2VyLXdpZHRoO1xyXG4gIHBhZGRpbmc6IDRweDtcclxuICBtYXJnaW4tdG9wOiAtMTBweDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHotaW5kZXg6IDEwMDA7XHJcbiAgZm9udC1zaXplOiAxMnB4Oy8qMTRweDsgLSBjYWxlbmRhciBzaXplIC0gSU1QKi9cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xyXG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4xNiksIDAgMnB4IDhweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XHJcblxyXG4gICYuZG91YmxlIHtcclxuICAgIHdpZHRoOiAkbWQtZHJwcGlja2VyLXdpZHRoLWRvdWJsZTtcclxuICB9XHJcblxyXG4gICYuaW5saW5lIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB9XHJcblxyXG4gICY6YmVmb3JlLCAmOmFmdGVyIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yKTtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICAmLm9wZW5zY2VudGVyIHtcclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgIHdpZHRoOiAwO1xyXG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgd2lkdGg6IDA7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnNpbmdsZSB7XHJcbiAgICAucmFuZ2VzLCAuY2FsZW5kYXIge1xyXG4gICAgICBmbG9hdDogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuc2hvd24ge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2UtaW4tb3V0O1xyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xyXG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xyXG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuXHJcbiAgICAmLmRyb3BzLXVwLWxlZnQge1xyXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgJi5kcm9wcy11cC1yaWdodCB7XHJcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAmLmRyb3BzLWRvd24tbGVmdCB7XHJcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcclxuICAgIH1cclxuXHJcbiAgICAmLmRyb3BzLWRvd24tcmlnaHQge1xyXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XHJcbiAgICB9XHJcblxyXG4gICAgJi5kcm9wcy1kb3duLWNlbnRlciB7XHJcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSUgMDtcclxuICAgIH1cclxuXHJcbiAgICAmLmRyb3BzLXVwLWNlbnRlciB7XHJcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSUgMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAuY2FsZW5kYXIge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuaGlkZGVuIHtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2U7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xyXG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xyXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xyXG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuXHJcbiAgICAmLmRyb3BzLXVwLWxlZnQge1xyXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgJi5kcm9wcy11cC1yaWdodCB7XHJcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAmLmRyb3BzLWRvd24tbGVmdCB7XHJcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcclxuICAgIH1cclxuXHJcbiAgICAmLmRyb3BzLWRvd24tcmlnaHQge1xyXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XHJcbiAgICB9XHJcblxyXG4gICAgJi5kcm9wcy1kb3duLWNlbnRlciB7XHJcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSUgMDtcclxuICAgIH1cclxuXHJcbiAgICAmLmRyb3BzLXVwLWNlbnRlciB7XHJcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSUgMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICAuY2FsZW5kYXIge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNhbGVuZGFyIHtcclxuICAgIC8qIGRpc3BsYXk6IG5vbmU7ICovXHJcbiAgICBtYXgtd2lkdGg6ICRtZC1kcnBwaWNrZXItd2lkdGggLSAoJG1kLWRycHBpY2tlci1jYWxlbmRhci1tYXJnaW4gKiAyKTtcclxuICAgIG1hcmdpbjogJG1kLWRycHBpY2tlci1jYWxlbmRhci1tYXJnaW47XHJcblxyXG4gICAgJi5zaW5nbGUge1xyXG4gICAgICAuY2FsZW5kYXItdGFibGUge1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoLCB0ZCB7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgbWluLXdpZHRoOiAzMnB4O1xyXG5cclxuICAgICAgc3BhbiB7XHJcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5jYWxlbmRhci10YWJsZSB7XHJcbiAgICBib3JkZXI6ICRtZC1kcnBwaWNrZXItY2FsZW5kYXItYm9yZGVyLXNpemUgc29saWQgJG1kLWRycHBpY2tlci1jYWxlbmRhci1ib3JkZXItY29sb3I7XHJcbiAgICBwYWRkaW5nOiAkbWQtZHJwcGlja2VyLWNhbGVuZGFyLW1hcmdpbjtcclxuICAgIGJvcmRlci1yYWRpdXM6ICRtZC1kcnBwaWNrZXItY2FsZW5kYXItYm9yZGVyLXJhZGl1cztcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRtZC1kcnBwaWNrZXItY2FsZW5kYXItYmctY29sb3I7XHJcbiAgfVxyXG5cclxuICB0YWJsZSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcblxyXG4gIHRoIHtcclxuICAgIGNvbG9yOiAjOTg4YzhjO1xyXG4gIH1cclxuXHJcbiAgdGQsIHRoIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHdpZHRoOiAkbWQtZHJwcGlja2VyLWNlbGwtd2lkdGg7XHJcbiAgICBoZWlnaHQ6ICRtZC1kcnBwaWNrZXItY2VsbC1oZWlnaHQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkbWQtZHJwcGlja2VyLWNlbGwtYm9yZGVyLXJhZGl1cztcclxuICAgIGJvcmRlcjogJG1kLWRycHBpY2tlci1jZWxsLWJvcmRlci1zaXplIHNvbGlkICRtZC1kcnBwaWNrZXItY2VsbC1ib3JkZXItY29sb3I7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgaGVpZ2h0OiAyZW07XHJcbiAgICB3aWR0aDogMmVtO1xyXG5cclxuICAgICYuYXZhaWxhYmxlIHtcclxuICAgICAgJi5wcmV2IHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIyWlhKemFXOXVQU0l4TGpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZzBLQ1NCMmFXVjNRbTk0UFNJd0lEQWdNeTQzSURZaUlHVnVZV0pzWlMxaVlXTnJaM0p2ZFc1a1BTSnVaWGNnTUNBd0lETXVOeUEySWlCNGJXdzZjM0JoWTJVOUluQnlaWE5sY25abElqNE5DanhuUGcwS0NUeHdZWFJvSUdROUlrMHpMamNzTUM0M1RERXVOQ3d6YkRJdU15d3lMak5NTXl3MlREQXNNMnd6TFROTU15NDNMREF1TjNvaUx6NE5Dand2Wno0TkNqd3ZjM1puUGcwS1wiKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogLjVlbTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICAgICAgb3BhY2l0eTogLjg7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAyZW07XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi5uZXh0IHtcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjJaWEp6YVc5dVBTSXhMakVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnMEtDU0IyYVdWM1FtOTRQU0l3SURBZ015NDNJRFlpSUdWdVlXSnNaUzFpWVdOclozSnZkVzVrUFNKdVpYY2dNQ0F3SURNdU55QTJJaUI0Yld3NmMzQmhZMlU5SW5CeVpYTmxjblpsSWo0TkNqeG5QZzBLQ1R4d1lYUm9JR1E5SWswekxqY3NNQzQzVERFdU5Dd3piREl1TXl3eUxqTk1NeXcyVERBc00yd3pMVE5NTXk0M0xEQXVOM29pTHo0TkNqd3ZaejROQ2p3dmMzWm5QZzBLXCIpO1xyXG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAuNWVtO1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgICAgICBvcGFjaXR5OiAuODtcclxuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJlbTtcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1kLWRycHBpY2tlci1jZWxsLWhvdmVyLWJnLWNvbG9yO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogJG1kLWRycHBpY2tlci1jZWxsLWhvdmVyLWJvcmRlci1jb2xvcjtcclxuICAgICAgICBjb2xvcjogJG1kLWRycHBpY2tlci1jZWxsLWhvdmVyLWNvbG9yO1xyXG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAuNWVtO1xyXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICAgICAgICBtYXJnaW46IC4yNWVtIDA7XHJcbiAgICAgICAgb3BhY2l0eTogLjg7XHJcbiAgICAgICAgLyp0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlOyovXHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMmVtO1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDQ1MG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSAwbXM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLndlZWsge1xyXG4gICAgICBmb250LXNpemU6IDgwJTtcclxuICAgICAgY29sb3I6ICNjY2M7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0ZCB7XHJcbiAgICBtYXJnaW46IC4yNWVtIDA7XHJcbiAgICBvcGFjaXR5OiAuODtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjJzIGVhc2U7XHJcbiAgICBib3JkZXItcmFkaXVzOiAyZW07XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDQ1MG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSAwbXM7XHJcblxyXG4gICAgJi5vZmYge1xyXG4gICAgICAmLCAmLmluLXJhbmdlLCAmLnN0YXJ0LWRhdGUsICYuZW5kLWRhdGUge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtZC1kcnBwaWNrZXItdW5zZWxlY3RlZC1iZy1jb2xvcjtcclxuICAgICAgICBib3JkZXItY29sb3I6ICRtZC1kcnBwaWNrZXItdW5zZWxlY3RlZC1ib3JkZXItY29sb3I7XHJcbiAgICAgICAgY29sb3I6ICRtZC1kcnBwaWNrZXItdW5zZWxlY3RlZC1jb2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy9cclxuICAgIC8vIERhdGUgUmFuZ2VcclxuICAgICYuaW4tcmFuZ2Uge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWQtZHJwcGlja2VyLWluLXJhbmdlLWJnLWNvbG9yO1xyXG4gICAgICBib3JkZXItY29sb3I6ICRtZC1kcnBwaWNrZXItaW4tcmFuZ2UtYm9yZGVyLWNvbG9yO1xyXG4gICAgICBjb2xvcjogJG1kLWRycHBpY2tlci1pbi1yYW5nZS1jb2xvcjtcclxuICAgICAgLy8gVE9ETzogU2hvdWxkIHRoaXMgYmUgc3RhdGljIG9yIHNob3VsZCBpdCBiZSBwYXJhbWV0ZXJpemVkP1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgfVxyXG5cclxuICAgICYuc3RhcnQtZGF0ZSB7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJlbSAwIDAgMmVtO1xyXG4gICAgfVxyXG5cclxuICAgICYuZW5kLWRhdGUge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAwIDJlbSAyZW0gMDtcclxuICAgIH1cclxuXHJcbiAgICAmLnN0YXJ0LWRhdGUuZW5kLWRhdGUge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAkbWQtZHJwcGlja2VyLWNlbGwtYm9yZGVyLXJhZGl1cztcclxuICAgIH1cclxuXHJcbiAgICAmLmFjdGl2ZSB7XHJcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMzAwbXMgZWFzZS1vdXQ7XHJcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuXHJcbiAgICAgICYsICY6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtZC1kcnBwaWNrZXItYWN0aXZlLWJnLWNvbG9yO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogJG1kLWRycHBpY2tlci1hY3RpdmUtYm9yZGVyLWNvbG9yO1xyXG4gICAgICAgIGNvbG9yOiAkbWQtZHJwcGlja2VyLWFjdGl2ZS1jb2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGgge1xyXG4gICAgJi5tb250aCB7XHJcbiAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyBkaXNhYmxlZCBjb250cm9sc1xyXG4gIHRkLCBvcHRpb24ge1xyXG4gICAgJi5kaXNhYmxlZCB7XHJcbiAgICAgIGNvbG9yOiAjOTk5O1xyXG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdCB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJhY2tncm91bmQ7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmc6ICRzZWxlY3QtcGFkZGluZztcclxuICAgIGJvcmRlcjogJHNlbGVjdC1ib3JkZXI7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkc2VsZWN0LXJhZGl1cztcclxuICAgIGhlaWdodDogJGlucHV0LWhlaWdodDtcclxuXHJcbiAgICAmLm1vbnRoc2VsZWN0LCAmLnllYXJzZWxlY3Qge1xyXG4gICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgIHBhZGRpbmc6IDFweDtcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgIH1cclxuXHJcbiAgICAmLmhvdXJzZWxlY3QsXHJcbiAgICAmLm1pbnV0ZXNlbGVjdCxcclxuICAgICYuc2Vjb25kc2VsZWN0LFxyXG4gICAgJi5hbXBtc2VsZWN0IHtcclxuICAgICAgd2lkdGg6IDUwcHg7XHJcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICBiYWNrZ3JvdW5kOiAjZWVlO1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xyXG4gICAgICBwYWRkaW5nOiAycHg7XHJcbiAgICAgIG91dGxpbmU6IDA7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIH1cclxuXHJcbiAgICAmLm1vbnRoc2VsZWN0LFxyXG4gICAgJi55ZWFyc2VsZWN0IHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGgubW9udGggPiBkaXYge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIH1cclxuXHJcbiAgLmNhbGVuZGFyLXRpbWUge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbWFyZ2luOiA0cHggYXV0byAwIGF1dG87XHJcbiAgICBsaW5lLWhlaWdodDogMzBweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB9XHJcblxyXG4gIC5jYWxlbmRhci10aW1lIHNlbGVjdC5kaXNhYmxlZCB7XHJcbiAgICBjb2xvcjogI2NjYztcclxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgfVxyXG5cclxuICAubGFiZWwtaW5wdXQge1xyXG4gICAgYm9yZGVyOiAkbWQtZHJwcGlja2VyLWNvbnRyb2wtYm9yZGVyLXNpemUgc29saWQgJG1kLWRycHBpY2tlci1jb250cm9sLWJvcmRlci1jb2xvcjtcclxuICAgIGJvcmRlci1yYWRpdXM6ICRtZC1kcnBwaWNrZXItY29udHJvbC1ib3JkZXItcmFkaXVzO1xyXG4gICAgY29sb3I6ICRtZC1kcnBwaWNrZXItY29udHJvbC1jb2xvcjtcclxuICAgIGhlaWdodDogJG1kLWRycHBpY2tlci1jb250cm9sLWxpbmUtaGVpZ2h0O1xyXG4gICAgbGluZS1oZWlnaHQ6ICRtZC1kcnBwaWNrZXItY29udHJvbC1oZWlnaHQ7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICBtYXJnaW46IDAgYXV0byA1cHggYXV0bztcclxuICAgIHBhZGRpbmc6IDAgMCAwIDI4cHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAmLmFjdGl2ZSB7XHJcbiAgICAgIGJvcmRlcjogJG1kLWRycHBpY2tlci1jb250cm9sLWFjdGl2ZS1ib3JkZXItc2l6ZSBzb2xpZCAkbWQtZHJwcGlja2VyLWNvbnRyb2wtYWN0aXZlLWJvcmRlci1jb2xvcjtcclxuICAgICAgYm9yZGVyLXJhZGl1czogJG1kLWRycHBpY2tlci1jb250cm9sLWFjdGl2ZS1ib3JkZXItcmFkaXVzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm1kLWRycHBpY2tlcl9pbnB1dCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwYWRkaW5nOiAwIDMwcHggMCAwO1xyXG5cclxuICAgIGksIHN2ZyB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgbGVmdDogOHB4O1xyXG4gICAgICB0b3A6IDhweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYucnRsIHtcclxuICAgIC5sYWJlbC1pbnB1dCB7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDI4cHg7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogNnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5tZC1kcnBwaWNrZXJfaW5wdXQgaSwgLm1kLWRycHBpY2tlcl9pbnB1dCBzdmcge1xyXG4gICAgICBsZWZ0OiBhdXRvO1xyXG4gICAgICByaWdodDogOHB4O1xyXG4gICAgfVxyXG4gIH1cclxuICAvKiByYW5nZXMgKi9cclxuICAuc2hvdy1yYW5nZXMge1xyXG4gICAgLmRycC1jYWxlbmRhci5sZWZ0IHtcclxuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGRkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnJhbmdlcyB7XHJcbiAgICBmbG9hdDogbm9uZTtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBtYXJnaW46IDA7XHJcblxyXG4gICAgdWwge1xyXG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgICBsaSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG5cclxuICAgICAgICBidXR0b24ge1xyXG4gICAgICAgICAgLypwYWRkaW5nOiA4cHggMTJweDsgLSBJTVAgYmV0d2VlbiBsZWZ0IG9wdGlvbnMqL1xyXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgICAgICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICZbZGlzYWJsZWRdIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMC4zO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICY6YWN0aXZlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBsaTpob3ZlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnNob3ctY2FsZW5kYXIge1xyXG4gICAgLnJhbmdlcyB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDhweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIFtoaWRkZW5dIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIC8qIGJ1dHRvbiAqL1xyXG4gIC5idXR0b25zIHtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgbWFyZ2luOiAwIDVweCA1cHggMDtcclxuICB9XHJcblxyXG4gIC5idG4ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGJvcmRlci13aWR0aDogMDtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICBwYWRkaW5nOiAwcHggNnB4O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG4gICAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMCwgMCwgMCwgLjYpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMztcclxuICAgIGNvbG9yOiAjZWNmMGYxO1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuNHM7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgbGluZS1oZWlnaHQ6IDM2cHg7XHJcbiAgICBmb250LXNpemU6MTJweDsvLyBzZXR0aW5nIHNpemUgb2YgYnV0dG9uIC0gSU1QXHJcbiAgICBib3JkZXI6IG5vbmU7XHJcblxyXG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7IC8vIzNmNTFiNSwgMjE5NjUzXHJcbiAgICB9XHJcblxyXG4gICAgJiA+ICoge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB9XHJcblxyXG4gICAgJiBzcGFuIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHBhZGRpbmc6IDEycHggMjRweDtcclxuICAgIH1cclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiA1MCU7XHJcbiAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIHdpZHRoOiAwO1xyXG4gICAgICBwYWRkaW5nLXRvcDogMDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMzYsIDI0MCwgMjQxLCAuMyk7XHJcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG4gICAgfVxyXG5cclxuICAgICY6YWN0aXZlIHtcclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIHdpZHRoOiAxMjAlO1xyXG4gICAgICAgIHBhZGRpbmctdG9wOiAxMjAlO1xyXG4gICAgICAgIHRyYW5zaXRpb246IHdpZHRoIC4ycyBlYXNlLW91dCwgcGFkZGluZy10b3AgLjJzIGVhc2Utb3V0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJjpkaXNhYmxlZCB7XHJcbiAgICAgIG9wYWNpdHk6IDAuNTtcclxuICAgIH1cclxuXHJcbiAgICAmLmJ0bi1kZWZhdWx0IHtcclxuICAgICAgY29sb3I6IGJsYWNrO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBnYWluc2Jvcm87XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY2xlYXIge1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcclxuXHJcbiAgICBzdmcge1xyXG4gICAgICBjb2xvcjogI2ViMzIzMjtcclxuICAgICAgZmlsbDogY3VycmVudENvbG9yO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDU2NHB4KSB7XHJcbiAgLm1kLWRycHBpY2tlciB7XHJcbiAgICB3aWR0aDogYXV0bztcclxuXHJcbiAgICAmLnNpbmdsZSB7XHJcbiAgICAgIC5jYWxlbmRhci5sZWZ0IHtcclxuICAgICAgICBjbGVhcjogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYubHRyIHtcclxuICAgICAgZGlyZWN0aW9uOiBsdHI7XHJcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcblxyXG4gICAgICAuY2FsZW5kYXIge1xyXG4gICAgICAgICYubGVmdCB7XHJcbiAgICAgICAgICBjbGVhcjogbGVmdDtcclxuICAgICAgICAgIC8qbWFyZ2luLXJpZ2h0OiAxLjVlbTsqL1xyXG4gICAgICAgICAgLmNhbGVuZGFyLXRhYmxlIHtcclxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xyXG4gICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnJpZ2h0IHtcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG5cclxuICAgICAgICAgIC5jYWxlbmRhci10YWJsZSB7XHJcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xyXG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLmxlZnQgLm1kLWRycHBpY2tlcl9pbnB1dCB7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMzVweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnJpZ2h0IC5tZC1kcnBwaWNrZXJfaW5wdXQge1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDM1cHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5jYWxlbmRhci5sZWZ0IC5jYWxlbmRhci10YWJsZSB7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTJweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnJhbmdlcywgLmNhbGVuZGFyIHtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICYucnRsIHtcclxuICAgICAgZGlyZWN0aW9uOiBydGw7XHJcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICAgICAgLmNhbGVuZGFyIHtcclxuICAgICAgICAmLmxlZnQge1xyXG4gICAgICAgICAgY2xlYXI6IHJpZ2h0O1xyXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcblxyXG4gICAgICAgICAgLmNhbGVuZGFyLXRhYmxlIHtcclxuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XHJcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnJpZ2h0IHtcclxuICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuXHJcbiAgICAgICAgICAuY2FsZW5kYXItdGFibGUge1xyXG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XHJcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5sZWZ0IC5tZC1kcnBwaWNrZXJfaW5wdXQge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMTJweDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmNhbGVuZGFyLmxlZnQgLmNhbGVuZGFyLXRhYmxlIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5yYW5nZXMsIC5jYWxlbmRhciB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuZHJwLWFuaW1hdGUge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCk7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzIGVhc2UsIG9wYWNpdHkgLjJzIGVhc2U7XHJcblxyXG4gICAgJi5kcnAtcGlja2VyLXNpdGUtdGhpcyB7XHJcbiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XHJcbiAgICB9XHJcblxyXG4gICAgJi5kcnAtYW5pbWF0ZS1yaWdodCB7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMCUpO1xyXG4gICAgICBvcGFjaXR5OiAwO1xyXG4gICAgfVxyXG5cclxuICAgICYuZHJwLWFuaW1hdGUtbGVmdCB7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAlKTtcclxuICAgICAgb3BhY2l0eTogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA3MzBweCkge1xyXG4gIC5tZC1kcnBwaWNrZXIge1xyXG4gICAgLnJhbmdlcyB7XHJcbiAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgICYubHRyIHtcclxuICAgICAgLnJhbmdlcyB7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLnJ0bCB7XHJcbiAgICAgIC5yYW5nZXMge1xyXG4gICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jYWxlbmRhci5sZWZ0IHtcclxuICAgICAgY2xlYXI6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLypcbiogIHZhcmlhYmxlc1xuKi9cbi8qXG4qIHN0eWxlc1xuKi9cbi5tZC1kcnBwaWNrZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHdpZHRoOiAyNzhweDtcbiAgcGFkZGluZzogNHB4O1xuICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgei1pbmRleDogMTAwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICAvKjE0cHg7IC0gY2FsZW5kYXIgc2l6ZSAtIElNUCovXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4xNiksIDAgMnB4IDhweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIC8qIHJhbmdlcyAqL1xuICAvKiBidXR0b24gKi9cbn1cbi5tZC1kcnBwaWNrZXIuZG91YmxlIHtcbiAgd2lkdGg6IGF1dG87XG59XG4ubWQtZHJwcGlja2VyLmlubGluZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLm1kLWRycHBpY2tlcjpiZWZvcmUsIC5tZC1kcnBwaWNrZXI6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBjb250ZW50OiBcIlwiO1xufVxuLm1kLWRycHBpY2tlci5vcGVuc2NlbnRlcjpiZWZvcmUge1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4ubWQtZHJwcGlja2VyLm9wZW5zY2VudGVyOmFmdGVyIHtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLm1kLWRycHBpY2tlci5zaW5nbGUgLnJhbmdlcywgLm1kLWRycHBpY2tlci5zaW5nbGUgLmNhbGVuZGFyIHtcbiAgZmxvYXQ6IG5vbmU7XG59XG4ubWQtZHJwcGlja2VyLnNob3duIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLm1kLWRycHBpY2tlci5zaG93bi5kcm9wcy11cC1sZWZ0IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xufVxuLm1kLWRycHBpY2tlci5zaG93bi5kcm9wcy11cC1yaWdodCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcbn1cbi5tZC1kcnBwaWNrZXIuc2hvd24uZHJvcHMtZG93bi1sZWZ0IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xufVxuLm1kLWRycHBpY2tlci5zaG93bi5kcm9wcy1kb3duLXJpZ2h0IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xufVxuLm1kLWRycHBpY2tlci5zaG93bi5kcm9wcy1kb3duLWNlbnRlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IE5hTiU7XG59XG4ubWQtZHJwcGlja2VyLnNob3duLmRyb3BzLXVwLWNlbnRlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJTtcbn1cbi5tZC1kcnBwaWNrZXIuc2hvd24gLmNhbGVuZGFyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ubWQtZHJwcGlja2VyLmhpZGRlbiB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2U7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ubWQtZHJwcGlja2VyLmhpZGRlbi5kcm9wcy11cC1sZWZ0IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xufVxuLm1kLWRycHBpY2tlci5oaWRkZW4uZHJvcHMtdXAtcmlnaHQge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7XG59XG4ubWQtZHJwcGlja2VyLmhpZGRlbi5kcm9wcy1kb3duLWxlZnQge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG59XG4ubWQtZHJwcGlja2VyLmhpZGRlbi5kcm9wcy1kb3duLXJpZ2h0IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xufVxuLm1kLWRycHBpY2tlci5oaWRkZW4uZHJvcHMtZG93bi1jZW50ZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBOYU4lO1xufVxuLm1kLWRycHBpY2tlci5oaWRkZW4uZHJvcHMtdXAtY2VudGVyIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlO1xufVxuLm1kLWRycHBpY2tlci5oaWRkZW4gLmNhbGVuZGFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5tZC1kcnBwaWNrZXIgLmNhbGVuZGFyIHtcbiAgLyogZGlzcGxheTogbm9uZTsgKi9cbiAgbWF4LXdpZHRoOiAyNzBweDtcbiAgbWFyZ2luOiA0cHg7XG59XG4ubWQtZHJwcGlja2VyIC5jYWxlbmRhci5zaW5nbGUgLmNhbGVuZGFyLXRhYmxlIHtcbiAgYm9yZGVyOiBub25lO1xufVxuLm1kLWRycHBpY2tlciAuY2FsZW5kYXIgdGgsIC5tZC1kcnBwaWNrZXIgLmNhbGVuZGFyIHRkIHtcbiAgcGFkZGluZzogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtaW4td2lkdGg6IDMycHg7XG59XG4ubWQtZHJwcGlja2VyIC5jYWxlbmRhciB0aCBzcGFuLCAubWQtZHJwcGlja2VyIC5jYWxlbmRhciB0ZCBzcGFuIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4ubWQtZHJwcGlja2VyIC5jYWxlbmRhci10YWJsZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gIHBhZGRpbmc6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLm1kLWRycHBpY2tlciB0YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG59XG4ubWQtZHJwcGlja2VyIHRoIHtcbiAgY29sb3I6ICM5ODhjOGM7XG59XG4ubWQtZHJwcGlja2VyIHRkLCAubWQtZHJwcGlja2VyIHRoIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGhlaWdodDogMmVtO1xuICB3aWR0aDogMmVtO1xufVxuLm1kLWRycHBpY2tlciB0ZC5hdmFpbGFibGUucHJldiwgLm1kLWRycHBpY2tlciB0aC5hdmFpbGFibGUucHJldiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIyWlhKemFXOXVQU0l4TGpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZzBLQ1NCMmFXVjNRbTk0UFNJd0lEQWdNeTQzSURZaUlHVnVZV0pzWlMxaVlXTnJaM0p2ZFc1a1BTSnVaWGNnTUNBd0lETXVOeUEySWlCNGJXdzZjM0JoWTJVOUluQnlaWE5sY25abElqNE5DanhuUGcwS0NUeHdZWFJvSUdROUlrMHpMamNzTUM0M1RERXVOQ3d6YkRJdU15d3lMak5NTXl3MlREQXNNMnd6TFROTU15NDNMREF1TjNvaUx6NE5Dand2Wno0TkNqd3ZjM1puUGcwS1wiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAwLjVlbTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBvcGFjaXR5OiAwLjg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xuICBib3JkZXItcmFkaXVzOiAyZW07XG59XG4ubWQtZHJwcGlja2VyIHRkLmF2YWlsYWJsZS5wcmV2OmhvdmVyLCAubWQtZHJwcGlja2VyIHRoLmF2YWlsYWJsZS5wcmV2OmhvdmVyIHtcbiAgbWFyZ2luOiAwO1xufVxuLm1kLWRycHBpY2tlciB0ZC5hdmFpbGFibGUubmV4dCwgLm1kLWRycHBpY2tlciB0aC5hdmFpbGFibGUubmV4dCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIyWlhKemFXOXVQU0l4TGpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZzBLQ1NCMmFXVjNRbTk0UFNJd0lEQWdNeTQzSURZaUlHVnVZV0pzWlMxaVlXTnJaM0p2ZFc1a1BTSnVaWGNnTUNBd0lETXVOeUEySWlCNGJXdzZjM0JoWTJVOUluQnlaWE5sY25abElqNE5DanhuUGcwS0NUeHdZWFJvSUdROUlrMHpMamNzTUM0M1RERXVOQ3d6YkRJdU15d3lMak5NTXl3MlREQXNNMnd6TFROTU15NDNMREF1TjNvaUx6NE5Dand2Wno0TkNqd3ZjM1puUGcwS1wiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAwLjVlbTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBvcGFjaXR5OiAwLjg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xuICBib3JkZXItcmFkaXVzOiAyZW07XG59XG4ubWQtZHJwcGlja2VyIHRkLmF2YWlsYWJsZS5uZXh0OmhvdmVyLCAubWQtZHJwcGlja2VyIHRoLmF2YWlsYWJsZS5uZXh0OmhvdmVyIHtcbiAgbWFyZ2luOiAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuLm1kLWRycHBpY2tlciB0ZC5hdmFpbGFibGU6aG92ZXIsIC5tZC1kcnBwaWNrZXIgdGguYXZhaWxhYmxlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMC41ZW07XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgbWFyZ2luOiAwLjI1ZW0gMDtcbiAgb3BhY2l0eTogMC44O1xuICAvKnRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjJzIGVhc2U7Ki9cbiAgYm9yZGVyLXJhZGl1czogMmVtO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2l0aW9uOiBhbGwgNDUwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpIDBtcztcbn1cbi5tZC1kcnBwaWNrZXIgdGQud2VlaywgLm1kLWRycHBpY2tlciB0aC53ZWVrIHtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGNvbG9yOiAjY2NjO1xufVxuLm1kLWRycHBpY2tlciB0ZCB7XG4gIG1hcmdpbjogMC4yNWVtIDA7XG4gIG9wYWNpdHk6IDAuODtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNpdGlvbjogYWxsIDQ1MG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSAwbXM7XG59XG4ubWQtZHJwcGlja2VyIHRkLm9mZiwgLm1kLWRycHBpY2tlciB0ZC5vZmYuaW4tcmFuZ2UsIC5tZC1kcnBwaWNrZXIgdGQub2ZmLnN0YXJ0LWRhdGUsIC5tZC1kcnBwaWNrZXIgdGQub2ZmLmVuZC1kYXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICM5OTk7XG59XG4ubWQtZHJwcGlja2VyIHRkLmluLXJhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkZTJlNDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICMwMDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4ubWQtZHJwcGlja2VyIHRkLnN0YXJ0LWRhdGUge1xuICBib3JkZXItcmFkaXVzOiAyZW0gMCAwIDJlbTtcbn1cbi5tZC1kcnBwaWNrZXIgdGQuZW5kLWRhdGUge1xuICBib3JkZXItcmFkaXVzOiAwIDJlbSAyZW0gMDtcbn1cbi5tZC1kcnBwaWNrZXIgdGQuc3RhcnQtZGF0ZS5lbmQtZGF0ZSB7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5tZC1kcnBwaWNrZXIgdGQuYWN0aXZlIHtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAzMDBtcyBlYXNlLW91dDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLm1kLWRycHBpY2tlciB0ZC5hY3RpdmUsIC5tZC1kcnBwaWNrZXIgdGQuYWN0aXZlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMztcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNmZmY7XG59XG4ubWQtZHJwcGlja2VyIHRoLm1vbnRoIHtcbiAgd2lkdGg6IGF1dG87XG59XG4ubWQtZHJwcGlja2VyIHRkLmRpc2FibGVkLCAubWQtZHJwcGlja2VyIG9wdGlvbi5kaXNhYmxlZCB7XG4gIGNvbG9yOiAjOTk5O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbn1cbi5tZC1kcnBwaWNrZXIgc2VsZWN0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmMmYyZjI7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgaGVpZ2h0OiAzcmVtO1xufVxuLm1kLWRycHBpY2tlciBzZWxlY3QubW9udGhzZWxlY3QsIC5tZC1kcnBwaWNrZXIgc2VsZWN0LnllYXJzZWxlY3Qge1xuICBmb250LXNpemU6IDEycHg7XG4gIHBhZGRpbmc6IDFweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5tZC1kcnBwaWNrZXIgc2VsZWN0LmhvdXJzZWxlY3QsIC5tZC1kcnBwaWNrZXIgc2VsZWN0Lm1pbnV0ZXNlbGVjdCwgLm1kLWRycHBpY2tlciBzZWxlY3Quc2Vjb25kc2VsZWN0LCAubWQtZHJwcGlja2VyIHNlbGVjdC5hbXBtc2VsZWN0IHtcbiAgd2lkdGg6IDUwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBiYWNrZ3JvdW5kOiAjZWVlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICBwYWRkaW5nOiAycHg7XG4gIG91dGxpbmU6IDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tZC1kcnBwaWNrZXIgc2VsZWN0Lm1vbnRoc2VsZWN0LCAubWQtZHJwcGlja2VyIHNlbGVjdC55ZWFyc2VsZWN0IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuLm1kLWRycHBpY2tlciB0aC5tb250aCA+IGRpdiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLm1kLWRycHBpY2tlciAuY2FsZW5kYXItdGltZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiA0cHggYXV0byAwIGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubWQtZHJwcGlja2VyIC5jYWxlbmRhci10aW1lIHNlbGVjdC5kaXNhYmxlZCB7XG4gIGNvbG9yOiAjY2NjO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLm1kLWRycHBpY2tlciAubGFiZWwtaW5wdXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGNvbG9yOiAjNTU1O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwIGF1dG8gNXB4IGF1dG87XG4gIHBhZGRpbmc6IDAgMCAwIDI4cHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuLm1kLWRycHBpY2tlciAubGFiZWwtaW5wdXQuYWN0aXZlIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzA4YztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLm1kLWRycHBpY2tlciAubWQtZHJwcGlja2VyX2lucHV0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwIDMwcHggMCAwO1xufVxuLm1kLWRycHBpY2tlciAubWQtZHJwcGlja2VyX2lucHV0IGksIC5tZC1kcnBwaWNrZXIgLm1kLWRycHBpY2tlcl9pbnB1dCBzdmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDhweDtcbiAgdG9wOiA4cHg7XG59XG4ubWQtZHJwcGlja2VyLnJ0bCAubGFiZWwtaW5wdXQge1xuICBwYWRkaW5nLXJpZ2h0OiAyOHB4O1xuICBwYWRkaW5nLWxlZnQ6IDZweDtcbn1cbi5tZC1kcnBwaWNrZXIucnRsIC5tZC1kcnBwaWNrZXJfaW5wdXQgaSwgLm1kLWRycHBpY2tlci5ydGwgLm1kLWRycHBpY2tlcl9pbnB1dCBzdmcge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogOHB4O1xufVxuLm1kLWRycHBpY2tlciAuc2hvdy1yYW5nZXMgLmRycC1jYWxlbmRhci5sZWZ0IHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGRkO1xufVxuLm1kLWRycHBpY2tlciAucmFuZ2VzIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbjogMDtcbn1cbi5tZC1kcnBwaWNrZXIgLnJhbmdlcyB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi5tZC1kcnBwaWNrZXIgLnJhbmdlcyB1bCBsaSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tZC1kcnBwaWNrZXIgLnJhbmdlcyB1bCBsaSBidXR0b24ge1xuICAvKnBhZGRpbmc6IDhweCAxMnB4OyAtIElNUCBiZXR3ZWVuIGxlZnQgb3B0aW9ucyovXG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5tZC1kcnBwaWNrZXIgLnJhbmdlcyB1bCBsaSBidXR0b24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMztcbiAgY29sb3I6ICNmZmY7XG59XG4ubWQtZHJwcGlja2VyIC5yYW5nZXMgdWwgbGkgYnV0dG9uW2Rpc2FibGVkXSB7XG4gIG9wYWNpdHk6IDAuMztcbn1cbi5tZC1kcnBwaWNrZXIgLnJhbmdlcyB1bCBsaSBidXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ubWQtZHJwcGlja2VyIC5yYW5nZXMgdWwgbGk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuLm1kLWRycHBpY2tlciAuc2hvdy1jYWxlbmRhciAucmFuZ2VzIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xufVxuLm1kLWRycHBpY2tlciBbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ubWQtZHJwcGlja2VyIC5idXR0b25zIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIG1hcmdpbjogMCA1cHggNXB4IDA7XG59XG4ubWQtZHJwcGlja2VyIC5idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci13aWR0aDogMDtcbiAgb3V0bGluZTogbm9uZTtcbiAgcGFkZGluZzogMHB4IDZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7XG4gIGNvbG9yOiAjZWNmMGYxO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNHM7XG4gIGhlaWdodDogYXV0bztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgYm9yZGVyOiBub25lO1xufVxuLm1kLWRycHBpY2tlciAuYnRuOmhvdmVyLCAubWQtZHJwcGlja2VyIC5idG46Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzO1xufVxuLm1kLWRycHBpY2tlciAuYnRuID4gKiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5tZC1kcnBwaWNrZXIgLmJ0biBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEycHggMjRweDtcbn1cbi5tZC1kcnBwaWNrZXIgLmJ0bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjM2LCAyNDAsIDI0MSwgMC4zKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG4ubWQtZHJwcGlja2VyIC5idG46YWN0aXZlOmJlZm9yZSB7XG4gIHdpZHRoOiAxMjAlO1xuICBwYWRkaW5nLXRvcDogMTIwJTtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4ycyBlYXNlLW91dCwgcGFkZGluZy10b3AgMC4ycyBlYXNlLW91dDtcbn1cbi5tZC1kcnBwaWNrZXIgLmJ0bjpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi5tZC1kcnBwaWNrZXIgLmJ0bi5idG4tZGVmYXVsdCB7XG4gIGNvbG9yOiBibGFjaztcbiAgYmFja2dyb3VuZC1jb2xvcjogZ2FpbnNib3JvO1xufVxuLm1kLWRycHBpY2tlciAuY2xlYXIge1xuICBib3gtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4ubWQtZHJwcGlja2VyIC5jbGVhciBzdmcge1xuICBjb2xvcjogI2ViMzIzMjtcbiAgZmlsbDogY3VycmVudENvbG9yO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTY0cHgpIHtcbiAgLm1kLWRycHBpY2tlciB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbiAgLm1kLWRycHBpY2tlci5zaW5nbGUgLmNhbGVuZGFyLmxlZnQge1xuICAgIGNsZWFyOiBub25lO1xuICB9XG4gIC5tZC1kcnBwaWNrZXIubHRyIHtcbiAgICBkaXJlY3Rpb246IGx0cjtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIC5tZC1kcnBwaWNrZXIubHRyIC5jYWxlbmRhci5sZWZ0IHtcbiAgICBjbGVhcjogbGVmdDtcbiAgICAvKm1hcmdpbi1yaWdodDogMS41ZW07Ki9cbiAgfVxuICAubWQtZHJwcGlja2VyLmx0ciAuY2FsZW5kYXIubGVmdCAuY2FsZW5kYXItdGFibGUge1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgfVxuICAubWQtZHJwcGlja2VyLmx0ciAuY2FsZW5kYXIucmlnaHQge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC5tZC1kcnBwaWNrZXIubHRyIC5jYWxlbmRhci5yaWdodCAuY2FsZW5kYXItdGFibGUge1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgfVxuICAubWQtZHJwcGlja2VyLmx0ciAubGVmdCAubWQtZHJwcGlja2VyX2lucHV0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzNXB4O1xuICB9XG4gIC5tZC1kcnBwaWNrZXIubHRyIC5yaWdodCAubWQtZHJwcGlja2VyX2lucHV0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzNXB4O1xuICB9XG4gIC5tZC1kcnBwaWNrZXIubHRyIC5jYWxlbmRhci5sZWZ0IC5jYWxlbmRhci10YWJsZSB7XG4gICAgcGFkZGluZy1yaWdodDogMTJweDtcbiAgfVxuICAubWQtZHJwcGlja2VyLmx0ciAucmFuZ2VzLCAubWQtZHJwcGlja2VyLmx0ciAuY2FsZW5kYXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gIC5tZC1kcnBwaWNrZXIucnRsIHtcbiAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuICAubWQtZHJwcGlja2VyLnJ0bCAuY2FsZW5kYXIubGVmdCB7XG4gICAgY2xlYXI6IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC5tZC1kcnBwaWNrZXIucnRsIC5jYWxlbmRhci5sZWZ0IC5jYWxlbmRhci10YWJsZSB7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICB9XG4gIC5tZC1kcnBwaWNrZXIucnRsIC5jYWxlbmRhci5yaWdodCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG4gIC5tZC1kcnBwaWNrZXIucnRsIC5jYWxlbmRhci5yaWdodCAuY2FsZW5kYXItdGFibGUge1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgfVxuICAubWQtZHJwcGlja2VyLnJ0bCAubGVmdCAubWQtZHJwcGlja2VyX2lucHV0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gIH1cbiAgLm1kLWRycHBpY2tlci5ydGwgLmNhbGVuZGFyLmxlZnQgLmNhbGVuZGFyLXRhYmxlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gIH1cbiAgLm1kLWRycHBpY2tlci5ydGwgLnJhbmdlcywgLm1kLWRycHBpY2tlci5ydGwgLmNhbGVuZGFyIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cblxuICAuZHJwLWFuaW1hdGUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDApO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlO1xuICB9XG4gIC5kcnAtYW5pbWF0ZS5kcnAtcGlja2VyLXNpdGUtdGhpcyB7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgfVxuICAuZHJwLWFuaW1hdGUuZHJwLWFuaW1hdGUtcmlnaHQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMCUpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgLmRycC1hbmltYXRlLmRycC1hbmltYXRlLWxlZnQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAlKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzMwcHgpIHtcbiAgLm1kLWRycHBpY2tlciAucmFuZ2VzIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuICAubWQtZHJwcGlja2VyLmx0ciAucmFuZ2VzIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubWQtZHJwcGlja2VyLnJ0bCAucmFuZ2VzIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgLm1kLWRycHBpY2tlciAuY2FsZW5kYXIubGVmdCB7XG4gICAgY2xlYXI6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufSJdfQ== */\"","import {\r\n Component, OnInit, ElementRef, ViewChild, EventEmitter, Output, Input, forwardRef, ViewEncapsulation, ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { FormControl } from '@angular/forms';\r\n\r\nimport * as _moment from 'moment';import { noUndefined } from '@angular/compiler/src/util';\r\n const moment = _moment;\r\n\r\nexport enum SideEnum {\r\n left = 'left',\r\n right = 'right'\r\n}\r\n\r\n@Component({\r\n selector: 'ngx-daterangepicker-material',\r\n styleUrls: ['./daterangepicker.component.scss'],\r\n templateUrl: './daterangepicker.component.html',\r\n host: {\r\n '(click)': 'handleInternalClick($event)',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DaterangepickerComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class DaterangepickerComponent implements OnInit {\r\n private _old: { start: any, end: any } = { start: null, end: null };\r\n chosenLabel: string;\r\n calendarVariables: { left: any, right: any } = { left: {}, right: {} };\r\n timepickerVariables: { left: any, right: any } = { left: {}, right: {} };\r\n daterangepicker: { start: FormControl, end: FormControl } = { start: new FormControl(), end: new FormControl() };\r\n applyBtn: { disabled: boolean } = { disabled: false };\r\n startDate = moment().startOf('day');\r\n endDate = moment().endOf('day');\r\n dateLimit = null;\r\n // used in template for compile time support of enum values.\r\n sideEnum = SideEnum;\r\n\r\n @Input()\r\n minDate: _moment.Moment = null;\r\n @Input()\r\n maxDate: _moment.Moment = null;\r\n @Input()\r\n autoApply: Boolean = false;\r\n @Input()\r\n singleDatePicker: Boolean = false;\r\n @Input()\r\n showDropdowns: Boolean = false;\r\n @Input()\r\n showWeekNumbers: Boolean = false;\r\n @Input()\r\n showISOWeekNumbers: Boolean = false;\r\n @Input()\r\n linkedCalendars: Boolean = false;\r\n @Input()\r\n autoUpdateInput: Boolean = true;\r\n @Input()\r\n alwaysShowCalendars: Boolean = false;\r\n @Input()\r\n maxSpan: Boolean = false;\r\n // timepicker variables\r\n @Input()\r\n timePicker: Boolean = false;\r\n @Input()\r\n timePicker24Hour: Boolean = false;\r\n @Input()\r\n timePickerIncrement: number = 1;\r\n @Input()\r\n timePickerSeconds: Boolean = false;\r\n // end of timepicker variables\r\n @Input()\r\n showClearButton: Boolean = false;\r\n @Input()\r\n firstMonthDayClass: string = null;\r\n @Input()\r\n lastMonthDayClass: string = null;\r\n @Input()\r\n emptyWeekRowClass: string = null;\r\n @Input()\r\n firstDayOfNextMonthClass: string = null;\r\n @Input()\r\n lastDayOfPreviousMonthClass: string = null;\r\n //https://www.geeksforgeeks.org/moment-js-customize-first-day-of-week-and-first-week-of-year/\r\n //https://www.tutorialspoint.com/momentjs/momentjs_minimal_weekday_abbreviation.htm\r\n @Input()\r\n locale: any = {\r\n direction: 'ltr',\r\n separator: ' - ',\r\n weekLabel: 'W',\r\n applyLabel: 'Apply',\r\n cancelLabel: 'Cancel',\r\n customRangeLabel: 'Custom range',\r\n daysOfWeek: moment.weekdaysMin(),\r\n monthNames: moment.monthsShort(),\r\n firstDay: moment.localeData().firstDayOfWeek()\r\n };\r\n // custom ranges\r\n @Input()\r\n ranges: any = {};\r\n @Input()\r\n showCustomRangeLabel: boolean;\r\n @Input()\r\n showCancel: boolean = false;\r\n @Input()\r\n keepCalendarOpeningWithRange: boolean = false;\r\n @Input()\r\n showRangeLabelOnInput: boolean = false;\r\n chosenRange: string;\r\n rangesArray: Array = [];\r\n\r\n // some state information\r\n isShown: Boolean = false;\r\n inline: boolean = true;\r\n leftCalendar: any = {};\r\n rightCalendar: any = {};\r\n showCalInRanges: Boolean = false;\r\n\r\n options: any = {}; // should get some opt from user\r\n @Input() drops: string;\r\n @Input() opens: string;\r\n @Output('choosedDate') choosedDate: EventEmitter;\r\n @Output('rangeClicked') rangeClicked: EventEmitter;\r\n @Output('datesUpdated') datesUpdated: EventEmitter;\r\n @ViewChild('pickerContainer', { static: true }) pickerContainer: ElementRef;\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private _ref: ChangeDetectorRef\r\n ) {\r\n this.choosedDate = new EventEmitter();\r\n this.rangeClicked = new EventEmitter();\r\n this.datesUpdated = new EventEmitter();\r\n this.updateMonthsInView();\r\n }\r\n\r\n ngOnInit() {\r\n //if (this.locale.firstDay != 0) {\r\n // var iterator = this.locale.firstDay;\r\n // while (iterator > 0) {\r\n // this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift());\r\n // iterator--;\r\n // }\r\n //}\r\n if (this.inline) {\r\n this._old.start = this.startDate.clone();\r\n this._old.end = this.endDate.clone();\r\n }\r\n if (!this.locale.format) {\r\n if (this.timePicker) {\r\n this.locale.format = moment.localeData().longDateFormat('lll');\r\n } else {\r\n this.locale.format = moment.localeData().longDateFormat('L');\r\n }\r\n }\r\n this.renderCalendar(SideEnum.left);\r\n this.renderCalendar(SideEnum.right);\r\n this.renderRanges();\r\n }\r\n renderRanges() {\r\n let start, end;\r\n if (typeof this.ranges === 'object') {\r\n for (const range in this.ranges) {\r\n if (typeof this.ranges[range][0] === 'string') {\r\n start = moment(this.ranges[range][0], this.locale.format);\r\n } else {\r\n start = moment(this.ranges[range][0]);\r\n }\r\n\r\n if (typeof this.ranges[range][1] === 'string') {\r\n end = moment(this.ranges[range][1], this.locale.format);\r\n } else {\r\n end = moment(this.ranges[range][1]);\r\n }\r\n\r\n // If the start or end date exceed those allowed by the minDate or maxSpan\r\n // options, shorten the range to the allowable period.\r\n if (this.minDate && start.isBefore(this.minDate)) {\r\n start = this.minDate.clone();\r\n }\r\n\r\n var maxDate = this.maxDate;\r\n if (this.maxSpan && maxDate && start.clone().add(this.maxSpan).isAfter(maxDate)) {\r\n maxDate = start.clone().add(this.maxSpan);\r\n }\r\n if (maxDate && end.isAfter(maxDate)) {\r\n end = maxDate.clone();\r\n }\r\n\r\n // If the end of the range is before the minimum or the start of the range is\r\n // after the maximum, don't display this range option at all.\r\n if ((this.minDate && end.isBefore(this.minDate, this.timePicker ? 'minute' : 'day'))\r\n || (maxDate && start.isAfter(maxDate, this.timePicker ? 'minute' : 'day'))) {\r\n continue;\r\n }\r\n\r\n //Support unicode chars in the range names.\r\n var elem = document.createElement('textarea');\r\n elem.innerHTML = range;\r\n var rangeHtml = elem.value;\r\n\r\n this.ranges[rangeHtml] = [start, end];\r\n }\r\n for (const range in this.ranges) {\r\n this.rangesArray.push(range);\r\n }\r\n if (this.showCustomRangeLabel) {\r\n this.rangesArray.push(this.locale.customRangeLabel);\r\n }\r\n this.showCalInRanges = (!this.rangesArray.length) || this.alwaysShowCalendars;\r\n if (!this.timePicker) {\r\n this.startDate = this.startDate.startOf('day');\r\n this.endDate = this.endDate.endOf('day');\r\n }\r\n // can't be used together for now\r\n if (this.timePicker && this.autoApply) {\r\n this.autoApply = false;\r\n }\r\n }\r\n\r\n }\r\n renderTimePicker(side: SideEnum) {\r\n if (side == SideEnum.right && !this.endDate) {\r\n return;\r\n }\r\n let selected, minDate;\r\n let maxDate = this.maxDate\r\n if (side === SideEnum.left) {\r\n selected = this.startDate.clone(),\r\n minDate = this.minDate\r\n } else if (side === SideEnum.right) {\r\n selected = this.endDate.clone(),\r\n minDate = this.startDate\r\n }\r\n const start = this.timePicker24Hour ? 0 : 1;\r\n const end = this.timePicker24Hour ? 23 : 12;\r\n this.timepickerVariables[side] = {\r\n hours: [],\r\n minutes: [],\r\n minutesLabel: [],\r\n seconds: [],\r\n secondsLabel: [],\r\n disabledHours: [],\r\n disabledMinutes: [],\r\n disabledSeconds: [],\r\n selectedHour: 0,\r\n selectedMinute: 0,\r\n selectedSecond: 0,\r\n };\r\n // generate hours\r\n for (let i = start; i <= end; i++) {\r\n let i_in_24 = i;\r\n if (!this.timePicker24Hour) {\r\n i_in_24 = selected.hour() >= 12 ? (i == 12 ? 12 : i + 12) : (i == 12 ? 0 : i);\r\n }\r\n\r\n let time = selected.clone().hour(i_in_24);\r\n let disabled = false;\r\n if (minDate && time.minute(59).isBefore(minDate)) {\r\n disabled = true;\r\n }\r\n if (maxDate && time.minute(0).isAfter(maxDate)) {\r\n disabled = true;\r\n }\r\n\r\n this.timepickerVariables[side].hours.push(i);\r\n if (i_in_24 == selected.hour() && !disabled) {\r\n this.timepickerVariables[side].selectedHour = i;\r\n } else if (disabled) {\r\n this.timepickerVariables[side].disabledHours.push(i);\r\n }\r\n }\r\n // generate minutes\r\n for (var i = 0; i < 60; i += this.timePickerIncrement) {\r\n var padded = i < 10 ? '0' + i : i;\r\n var time = selected.clone().minute(i);\r\n\r\n var disabled = false;\r\n if (minDate && time.second(59).isBefore(minDate)) {\r\n disabled = true;\r\n }\r\n if (maxDate && time.second(0).isAfter(maxDate)) {\r\n disabled = true;\r\n }\r\n this.timepickerVariables[side].minutes.push(i);\r\n this.timepickerVariables[side].minutesLabel.push(padded);\r\n if (selected.minute() == i && !disabled) {\r\n this.timepickerVariables[side].selectedMinute = i;\r\n } else if (disabled) {\r\n this.timepickerVariables[side].disabledMinutes.push(i);\r\n }\r\n }\r\n // generate seconds\r\n if (this.timePickerSeconds) {\r\n for (var i = 0; i < 60; i++) {\r\n var padded = i < 10 ? '0' + i : i;\r\n var time = selected.clone().second(i);\r\n\r\n var disabled = false;\r\n if (minDate && time.isBefore(minDate)) {\r\n disabled = true;\r\n }\r\n if (maxDate && time.isAfter(maxDate)) {\r\n disabled = true;\r\n }\r\n\r\n this.timepickerVariables[side].seconds.push(i);\r\n this.timepickerVariables[side].secondsLabel.push(padded);\r\n if (selected.second() == i && !disabled) {\r\n this.timepickerVariables[side].selectedSecond = i;\r\n } else if (disabled) {\r\n this.timepickerVariables[side].disabledSeconds.push(i);\r\n }\r\n }\r\n }\r\n // generate AM/PM\r\n if (!this.timePicker24Hour) {\r\n\r\n var am_html = '';\r\n var pm_html = '';\r\n\r\n if (minDate && selected.clone().hour(12).minute(0).second(0).isBefore(minDate)) {\r\n this.timepickerVariables[side].amDisabled = true;\r\n }\r\n\r\n if (maxDate && selected.clone().hour(0).minute(0).second(0).isAfter(maxDate)) {\r\n this.timepickerVariables[side].pmDisabled = true;\r\n }\r\n if (selected.hour() >= 12) {\r\n this.timepickerVariables[side].ampmModel = 'PM';\r\n } else {\r\n this.timepickerVariables[side].ampmModel = 'AM';\r\n }\r\n }\r\n this.timepickerVariables[side].selected = selected;\r\n }\r\n renderCalendar(side: SideEnum) { // side enum\r\n let mainCalendar: any = (side === SideEnum.left) ? this.leftCalendar : this.rightCalendar;\r\n const month = mainCalendar.month.month();\r\n const year = mainCalendar.month.year();\r\n const hour = mainCalendar.month.hour();\r\n const minute = mainCalendar.month.minute();\r\n const second = mainCalendar.month.second();\r\n const daysInMonth = moment([year, month]).daysInMonth();\r\n const firstDay = moment([year, month, 1]);\r\n const lastDay = moment([year, month, daysInMonth]);\r\n const lastMonth = moment(firstDay).subtract(1, 'month').month();\r\n const lastYear = moment(firstDay).subtract(1, 'month').year();\r\n const daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth();\r\n const dayOfWeek = firstDay.day();\r\n // initialize a 6 rows x 7 columns array for the calendar\r\n let calendar: any = [];\r\n calendar.firstDay = firstDay;\r\n calendar.lastDay = lastDay;\r\n\r\n for (let i = 0; i < 6; i++) {\r\n calendar[i] = [];\r\n }\r\n\r\n // populate the calendar with date objects\r\n let startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay;// + 1; - SUSHEEL for SUN to SAT\r\n if (startDay > daysInLastMonth) {\r\n startDay -= 7;//NO CHANGE - SUSHEEL for SUN to SAT\r\n }\r\n if (dayOfWeek === this.locale.firstDay) {\r\n startDay = daysInLastMonth - 7;// - 6; - SUSHEEL for SUN to SAT\r\n }\r\n\r\n let curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]);\r\n\r\n for (let i = 0, col = 0, row = 0; i < 42; i++ , col++ , curDate = moment(curDate).add(24, 'hour')) {\r\n if (i > 0 && col % 7 === 0) {\r\n col = 0;\r\n row++;\r\n }\r\n calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second);\r\n curDate.hour(12);\r\n\r\n if (this.minDate && calendar[row][col].format('YYYY-MM-DD') === this.minDate.format('YYYY-MM-DD') &&\r\n calendar[row][col].isBefore(this.minDate) && side === 'left') {\r\n calendar[row][col] = this.minDate.clone();\r\n }\r\n\r\n if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') === this.maxDate.format('YYYY-MM-DD') &&\r\n calendar[row][col].isAfter(this.maxDate) && side === 'right') {\r\n calendar[row][col] = this.maxDate.clone();\r\n }\r\n }\r\n\r\n // make the calendar object available to hoverDate/clickDate\r\n if (side === SideEnum.left) {\r\n this.leftCalendar.calendar = calendar;\r\n } else {\r\n this.rightCalendar.calendar = calendar;\r\n }\r\n\r\n //\r\n // Display the calendar\r\n //\r\n const minDate = side === 'left' ? this.minDate : this.startDate;\r\n let maxDate = this.maxDate;\r\n const selected = side === 'left' ? this.startDate : this.endDate;\r\n this.calendarVariables[side] = {\r\n month: month,\r\n year: year,\r\n hour: hour,\r\n minute: minute,\r\n second: second,\r\n daysInMonth: daysInMonth,\r\n firstDay: firstDay,\r\n lastDay: lastDay,\r\n lastMonth: lastMonth,\r\n lastYear: lastYear,\r\n daysInLastMonth: daysInLastMonth,\r\n dayOfWeek: dayOfWeek,\r\n // other vars\r\n calRows: Array.from(Array(6).keys()),\r\n calCols: Array.from(Array(7).keys()),\r\n classes: {},\r\n minDate: minDate,\r\n maxDate: maxDate,\r\n calendar: calendar\r\n };\r\n\r\n if (this.showDropdowns) {\r\n const currentMonth = calendar[1][1].month();\r\n const currentYear = calendar[1][1].year();\r\n const maxYear = (maxDate && maxDate.year()) || (currentYear + 5);\r\n const minYear = (minDate && minDate.year()) || (currentYear - 50);\r\n const inMinYear = currentYear === minYear;\r\n const inMaxYear = currentYear === maxYear;\r\n const years = [];\r\n for (var y = minYear; y <= maxYear; y++) {\r\n years.push(y);\r\n }\r\n this.calendarVariables[side].dropdowns = {\r\n currentMonth: currentMonth,\r\n currentYear: currentYear,\r\n maxYear: maxYear,\r\n minYear: minYear,\r\n inMinYear: inMinYear,\r\n inMaxYear: inMaxYear,\r\n monthArrays: Array.from(Array(12).keys()),\r\n yearArrays: years\r\n };\r\n }\r\n\r\n // adjust maxDate to reflect the dateLimit setting in order to\r\n // grey out end dates beyond the dateLimit\r\n if (this.endDate === null && this.dateLimit) {\r\n const maxLimit = this.startDate.clone().add(this.dateLimit).endOf('day');\r\n if (!maxDate || maxLimit.isBefore(maxDate)) {\r\n maxDate = maxLimit;\r\n }\r\n }\r\n\r\n for (let row = 0; row < 6; row++) {\r\n this.calendarVariables[side].classes[row] = {};\r\n const rowClasses = [];\r\n if (this.emptyWeekRowClass && !this.hasCurrentMonthDays(month, calendar[row])) {\r\n rowClasses.push(this.emptyWeekRowClass);\r\n }\r\n for (let col = 0; col < 7; col++) {\r\n const classes = [];\r\n\r\n // highlight today's date\r\n if (calendar[row][col].isSame(new Date(), 'day')) {\r\n classes.push('today');\r\n }\r\n\r\n // highlight weekends\r\n if (calendar[row][col].isoWeekday() > 5) {\r\n classes.push('weekend');\r\n }\r\n\r\n // grey out the dates in other months displayed at beginning and end of this calendar\r\n if (calendar[row][col].month() !== calendar[1][1].month()) {\r\n classes.push('off');\r\n\r\n // mark the last day of the previous month in this calendar\r\n if (this.lastDayOfPreviousMonthClass && (calendar[row][col].month() < calendar[1][1].month() || calendar[1][1].month() === 0) && calendar[row][col].date() === daysInLastMonth) {\r\n classes.push(this.lastDayOfPreviousMonthClass);\r\n }\r\n\r\n // mark the first day of the next month in this calendar\r\n if (this.firstDayOfNextMonthClass && (calendar[row][col].month() > calendar[1][1].month() || calendar[row][col].month() === 0) && calendar[row][col].date() === 1) {\r\n classes.push(this.firstDayOfNextMonthClass);\r\n }\r\n }\r\n\r\n // mark the first day of the current month with a custom class\r\n if (this.firstMonthDayClass && calendar[row][col].month() === calendar[1][1].month() && calendar[row][col].date() === calendar.firstDay.date()) {\r\n classes.push(this.firstMonthDayClass);\r\n }\r\n\r\n // mark the last day of the current month with a custom class\r\n if (this.lastMonthDayClass && calendar[row][col].month() === calendar[1][1].month() && calendar[row][col].date() === calendar.lastDay.date()) {\r\n classes.push(this.lastMonthDayClass);\r\n }\r\n\r\n // don't allow selection of dates before the minimum date\r\n if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day')) {\r\n classes.push('off', 'disabled');\r\n }\r\n\r\n // don't allow selection of dates after the maximum date\r\n if (maxDate && calendar[row][col].isAfter(maxDate, 'day')) {\r\n classes.push('off', 'disabled');\r\n }\r\n\r\n // don't allow selection of date if a custom function decides it's invalid\r\n if (this.isInvalidDate(calendar[row][col])) {\r\n classes.push('off', 'disabled');\r\n }\r\n\r\n // highlight the currently selected start date\r\n if (this.startDate && calendar[row][col].format('YYYY-MM-DD') === this.startDate.format('YYYY-MM-DD')) {\r\n classes.push('active', 'start-date');\r\n }\r\n\r\n // highlight the currently selected end date\r\n if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') === this.endDate.format('YYYY-MM-DD')) {\r\n classes.push('active', 'end-date');\r\n }\r\n\r\n // highlight dates in-between the selected dates\r\n if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate) {\r\n classes.push('in-range');\r\n }\r\n\r\n // apply custom classes for this date\r\n const isCustom = this.isCustomDate(calendar[row][col]);\r\n if (isCustom !== false) {\r\n if (typeof isCustom === 'string') {\r\n classes.push(isCustom);\r\n } else {\r\n Array.prototype.push.apply(classes, isCustom);\r\n }\r\n }\r\n // store classes var\r\n let cname = '', disabled = false;\r\n for (let i = 0; i < classes.length; i++) {\r\n cname += classes[i] + ' ';\r\n if (classes[i] === 'disabled') {\r\n disabled = true;\r\n }\r\n }\r\n if (!disabled) {\r\n cname += 'available';\r\n }\r\n\r\n this.calendarVariables[side].classes[row][col] = cname.replace(/^\\s+|\\s+$/g, '');\r\n }\r\n\r\n this.calendarVariables[side].classes[row].classList = rowClasses.join(' ');\r\n }\r\n }\r\n setStartDate(startDate) {\r\n if (typeof startDate === 'string') {\r\n this.startDate = moment(startDate, this.locale.format);\r\n }\r\n\r\n if (typeof startDate === 'object') {\r\n this.startDate = moment(startDate);\r\n }\r\n if (!this.timePicker) {\r\n this.startDate = this.startDate.startOf('day');\r\n }\r\n\r\n if (this.timePicker && this.timePickerIncrement) {\r\n this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n }\r\n\r\n\r\n if (this.minDate && this.startDate.isBefore(this.minDate)) {\r\n this.startDate = this.minDate.clone();\r\n if (this.timePicker && this.timePickerIncrement) {\r\n this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n }\r\n\r\n }\r\n\r\n if (this.maxDate && this.startDate.isAfter(this.maxDate)) {\r\n this.startDate = this.maxDate.clone();\r\n if (this.timePicker && this.timePickerIncrement) {\r\n this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n }\r\n }\r\n\r\n if (!this.isShown) {\r\n this.updateElement();\r\n }\r\n\r\n this.updateMonthsInView();\r\n }\r\n\r\n setEndDate(endDate) {\r\n if (typeof endDate === 'string') {\r\n this.endDate = moment(endDate, this.locale.format);\r\n }\r\n\r\n if (typeof endDate === 'object') {\r\n this.endDate = moment(endDate);\r\n }\r\n if (!this.timePicker) {\r\n this.endDate = this.endDate.add(1, 'd').startOf('day').subtract(1, 'second');\r\n }\r\n\r\n if (this.timePicker && this.timePickerIncrement) {\r\n this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n }\r\n\r\n\r\n if (this.endDate.isBefore(this.startDate)) {\r\n this.endDate = this.startDate.clone();\r\n }\r\n\r\n if (this.maxDate && this.endDate.isAfter(this.maxDate)) {\r\n this.endDate = this.maxDate.clone();\r\n }\r\n\r\n if (this.dateLimit && this.startDate.clone().add(this.dateLimit).isBefore(this.endDate)) {\r\n this.endDate = this.startDate.clone().add(this.dateLimit);\r\n }\r\n\r\n\r\n if (!this.isShown) {\r\n // this.updateElement();\r\n }\r\n this.updateMonthsInView();\r\n if (this.autoApply) {\r\n this.datesUpdated.emit({ startDate: this.startDate, endDate: this.endDate });\r\n }\r\n }\r\n @Input()\r\n isInvalidDate(date) {\r\n return false;\r\n }\r\n\r\n isCustomDate(date) {\r\n return false;\r\n }\r\n\r\n updateView() {\r\n if (this.timePicker) {\r\n this.renderTimePicker(SideEnum.left);\r\n this.renderTimePicker(SideEnum.right);\r\n }\r\n this.updateMonthsInView();\r\n this.updateCalendars();\r\n }\r\n\r\n updateMonthsInView() {\r\n if (this.endDate) {\r\n // if both dates are visible already, do nothing\r\n if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month &&\r\n ((this.startDate && this.leftCalendar && this.startDate.format('YYYY-MM') === this.leftCalendar.month.format('YYYY-MM')) ||\r\n (this.startDate && this.rightCalendar && this.startDate.format('YYYY-MM') === this.rightCalendar.month.format('YYYY-MM')))\r\n &&\r\n (this.endDate.format('YYYY-MM') === this.leftCalendar.month.format('YYYY-MM') ||\r\n this.endDate.format('YYYY-MM') === this.rightCalendar.month.format('YYYY-MM'))\r\n ) {\r\n return;\r\n }\r\n if (this.startDate) {\r\n this.leftCalendar.month = this.startDate.clone().date(2);\r\n if (!this.linkedCalendars && (this.endDate.month() !== this.startDate.month() ||\r\n this.endDate.year() !== this.startDate.year())) {\r\n this.rightCalendar.month = this.endDate.clone().date(2);\r\n } else {\r\n this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\r\n }\r\n }\r\n\r\n } else {\r\n if (this.leftCalendar.month.format('YYYY-MM') !== this.startDate.format('YYYY-MM') &&\r\n this.rightCalendar.month.format('YYYY-MM') !== this.startDate.format('YYYY-MM')) {\r\n this.leftCalendar.month = this.startDate.clone().date(2);\r\n this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\r\n }\r\n }\r\n if (this.maxDate && this.linkedCalendars && !this.singleDatePicker && this.rightCalendar.month > this.maxDate) {\r\n this.rightCalendar.month = this.maxDate.clone().date(2);\r\n this.leftCalendar.month = this.maxDate.clone().date(2).subtract(1, 'month');\r\n }\r\n }\r\n /**\r\n * This is responsible for updating the calendars\r\n */\r\n updateCalendars() {\r\n this.renderCalendar(SideEnum.left);\r\n this.renderCalendar(SideEnum.right);\r\n \r\n if (this.endDate === null) { return; }\r\n this.calculateChosenLabel();\r\n }\r\n updateElement() {\r\n if (!this.singleDatePicker && this.autoUpdateInput) {\r\n if (this.startDate && this.endDate) {\r\n // if we use ranges and should show range label on inpu\r\n if (this.rangesArray.length && this.showRangeLabelOnInput === true && this.chosenRange &&\r\n this.locale.customRangeLabel !== this.chosenRange) {\r\n this.chosenLabel = this.chosenRange;\r\n } else {\r\n if (this.chosenRange != \"Search Entire dBase\") {\r\n if (this.showCustomRangeLabel == undefined)\r\n this.chosenLabel = this.startDate.format(this.locale.format) +\r\n this.locale.separator + this.endDate.format(this.locale.format);\r\n else\r\n this.chosenLabel = this.chosenRange;//Set Custom range label on Input instead of selected date range - IMP\r\n }\r\n else\r\n this.chosenLabel = \"Search Entire dBase\";\r\n }\r\n //console.log(this.chosenLabel + \":\" + this.chosenRange)\r\n }\r\n } else if (this.autoUpdateInput) {\r\n this.chosenLabel = this.startDate.format(this.locale.format);\r\n }\r\n }\r\n\r\n remove() {\r\n this.isShown = false;\r\n }\r\n /**\r\n * this should calculate the label\r\n */\r\n calculateChosenLabel() {\r\n let customRange = true;\r\n let i = 0;\r\n if (this.rangesArray.length > 0) {\r\n for (const range in this.ranges) {\r\n if (this.timePicker) {\r\n var format = this.timePickerSeconds ? \"YYYY-MM-DD HH:mm:ss\" : \"YYYY-MM-DD HH:mm\";\r\n //ignore times when comparing dates if time picker seconds is not enabled\r\n if (this.startDate.format(format) == this.ranges[range][0].format(format) && this.endDate.format(format) == this.ranges[range][1].format(format)) {\r\n customRange = false;\r\n this.chosenRange = this.rangesArray[i];\r\n break;\r\n }\r\n } else {\r\n //ignore times when comparing dates if time picker is not enabled\r\n if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) {\r\n customRange = false;\r\n this.chosenRange = this.rangesArray[i];\r\n break;\r\n }\r\n }\r\n\r\n i++;\r\n }\r\n\r\n this.showCalInRanges = false;//Don't display calendar if it is not custom range selected on input - IMP\r\n //console.log(customRange + \"||\" + this.custRangeMonthPrevNext)//susheel\r\n if (customRange || this.custRangeMonthPrevNext) {\r\n\r\n if (this.showCustomRangeLabel) {\r\n //console.log(this.locale.customRangeLabel)\r\n this.chosenRange = this.locale.customRangeLabel;\r\n //this.chosenRange = \"Custom range\";\r\n } else {\r\n this.chosenRange = null;\r\n }\r\n // if custom label: show calenar\r\n this.showCalInRanges = true;\r\n }\r\n }\r\n\r\n this.updateElement();\r\n }\r\n\r\n applyClicked = false;\r\n clickApply(e?) {\r\n this.applyClicked = true;\r\n //debugger\r\n if (!this.isDateSelected)\r\n return false;\r\n //if (e !== undefined) {//Set Custom range label on Input instead of selected date range - IMP\r\n // if (this.showCustomRangeLabel)\r\n // this.chosenLabel = \"Custom Range\";\r\n //}\r\n\r\n if (!this.singleDatePicker && this.startDate && !this.endDate) {\r\n this.endDate = this.startDate.clone();\r\n this.calculateChosenLabel();\r\n }\r\n if (this.isInvalidDate && this.startDate && this.endDate) {\r\n // get if there are invalid date between range\r\n let d = this.startDate.clone();\r\n while (d.isBefore(this.endDate)) {\r\n if (this.isInvalidDate(d)) {\r\n this.endDate = d.subtract(1, 'days');\r\n this.calculateChosenLabel();\r\n break;\r\n }\r\n d.add(1, 'days');\r\n }\r\n }\r\n //console.log(this.chosenLabel)\r\n if (this.chosenLabel) {\r\n this.choosedDate.emit({ chosenLabel: this.chosenLabel, startDate: this.startDate, endDate: this.endDate });\r\n }\r\n\r\n this.datesUpdated.emit({ startDate: this.startDate, endDate: this.endDate });\r\n this.hide();\r\n }\r\n\r\n clickCancel(e) {\r\n this.startDate = this._old.start;\r\n this.endDate = this._old.end;\r\n if (this.inline) {\r\n this.updateView();\r\n }\r\n this.hide();\r\n }\r\n /**\r\n * called when month is changed\r\n * @param monthEvent get value in event.target.value\r\n * @param side left or right\r\n */\r\n monthChanged(monthEvent: any, side: SideEnum) {\r\n const year = this.calendarVariables[side].dropdowns.currentYear;\r\n const month = parseInt(monthEvent.target.value, 10);\r\n this.monthOrYearChanged(month, year, side);\r\n }\r\n /**\r\n * called when year is changed\r\n * @param yearEvent get value in event.target.value\r\n * @param side left or right\r\n */\r\n yearChanged(yearEvent: any, side: SideEnum) {\r\n const month = this.calendarVariables[side].dropdowns.currentMonth;\r\n const year = parseInt(yearEvent.target.value, 10);\r\n this.monthOrYearChanged(month, year, side);\r\n }\r\n /**\r\n * called when time is changed\r\n * @param timeEvent an event\r\n * @param side left or right\r\n */\r\n timeChanged(timeEvent: any, side: SideEnum) {\r\n\r\n var hour = parseInt(this.timepickerVariables[side].selectedHour, 10);\r\n var minute = parseInt(this.timepickerVariables[side].selectedMinute, 10);\r\n var second = this.timePickerSeconds ? parseInt(this.timepickerVariables[side].selectedSecond, 10) : 0;\r\n\r\n if (!this.timePicker24Hour) {\r\n var ampm = this.timepickerVariables[side].ampmModel;\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n\r\n if (side === SideEnum.left) {\r\n var start = this.startDate.clone();\r\n start.hour(hour);\r\n start.minute(minute);\r\n start.second(second);\r\n this.setStartDate(start);\r\n if (this.singleDatePicker) {\r\n this.endDate = this.startDate.clone();\r\n } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) {\r\n this.setEndDate(start.clone());\r\n }\r\n } else if (this.endDate) {\r\n var end = this.endDate.clone();\r\n end.hour(hour);\r\n end.minute(minute);\r\n end.second(second);\r\n this.setEndDate(end);\r\n }\r\n\r\n //update the calendars so all clickable dates reflect the new time component\r\n this.updateCalendars();\r\n\r\n //re-render the time pickers because changing one selection can affect what's enabled in another\r\n this.renderTimePicker(SideEnum.left);\r\n this.renderTimePicker(SideEnum.right);\r\n }\r\n /**\r\n * call when month or year changed\r\n * @param month month number 0 -11\r\n * @param year year eg: 1995\r\n * @param side left or right\r\n */\r\n isDateSelected = true;\r\n monthOrYearChanged(month: number, year: number, side: SideEnum) {\r\n this.isDateSelected = false;\r\n this.applyClicked = false;\r\n const isLeft = side === SideEnum.left;\r\n\r\n if (!isLeft) {\r\n if (year < this.startDate.year() || (year === this.startDate.year() && month < this.startDate.month())) {\r\n month = this.startDate.month();\r\n year = this.startDate.year();\r\n }\r\n }\r\n\r\n if (this.minDate) {\r\n if (year < this.minDate.year() || (year === this.minDate.year() && month < this.minDate.month())) {\r\n month = this.minDate.month();\r\n year = this.minDate.year();\r\n }\r\n }\r\n\r\n if (this.maxDate) {\r\n if (year > this.maxDate.year() || (year === this.maxDate.year() && month > this.maxDate.month())) {\r\n month = this.maxDate.month();\r\n year = this.maxDate.year();\r\n }\r\n }\r\n this.calendarVariables[side].dropdowns.currentYear = year;\r\n this.calendarVariables[side].dropdowns.currentMonth = month;\r\n if (isLeft) {\r\n this.leftCalendar.month.month(month).year(year);\r\n if (this.linkedCalendars) {\r\n this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month');\r\n }\r\n } else {\r\n this.rightCalendar.month.month(month).year(year);\r\n if (this.linkedCalendars) {\r\n this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month');\r\n }\r\n }\r\n\r\n this.custRangeMonthPrevNext = true;//IMP to show calender after any year or month selection in the dropdown\r\n this.updateCalendars();\r\n this.custRangeMonthPrevNext = false;\r\n }\r\n\r\n custRangeMonthPrevNext = false;\r\n /**\r\n * Click on previous month\r\n * @param side left or right calendar\r\n */\r\n clickPrev(side: SideEnum) {\r\n if (side === SideEnum.left) {\r\n this.leftCalendar.month.subtract(1, 'month');\r\n if (this.linkedCalendars) {\r\n this.rightCalendar.month.subtract(1, 'month');\r\n }\r\n } else {\r\n this.rightCalendar.month.subtract(1, 'month');\r\n }\r\n\r\n this.custRangeMonthPrevNext = true;\r\n this.updateCalendars();\r\n this.custRangeMonthPrevNext = false;\r\n }\r\n /**\r\n * Click on next month\r\n * @param side left or right calendar\r\n */\r\n clickNext(side: SideEnum) {\r\n if (side === SideEnum.left) {\r\n this.leftCalendar.month.add(1, 'month');\r\n } else {\r\n this.rightCalendar.month.add(1, 'month');\r\n if (this.linkedCalendars) {\r\n this.leftCalendar.month.add(1, 'month');\r\n }\r\n }\r\n\r\n this.custRangeMonthPrevNext = true;\r\n this.updateCalendars();\r\n this.custRangeMonthPrevNext = false;\r\n }\r\n /**\r\n * When selecting a date\r\n * @param e event: get value by e.target.value\r\n * @param side left or right\r\n * @param row row position of the current date clicked\r\n * @param col col position of the current date clicked\r\n */\r\n clickDate(e, side: SideEnum, row: number, col: number) {\r\n //debugger\r\n this.isDateSelected = true;\r\n if (e.target.tagName === 'TD') {\r\n if (!e.target.classList.contains('available')) {\r\n return;\r\n }\r\n } else if (e.target.tagName === 'SPAN') {\r\n if (!e.target.parentElement.classList.contains('available')) {\r\n return;\r\n }\r\n }\r\n if (this.rangesArray.length) {\r\n this.chosenRange = this.locale.customRangeLabel;\r\n }\r\n\r\n let date = side === SideEnum.left ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];\r\n\r\n if (this.endDate || date.isBefore(this.startDate, 'day')) { // picking start\r\n if (this.timePicker) {\r\n let hour = parseInt(this.timepickerVariables['left'].selectedHour, 10);\r\n if (!this.timePicker24Hour) {\r\n var ampm = this.timepickerVariables['left'].ampmModel;\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n var minute = parseInt(this.timepickerVariables['left'].selectedMinute, 10);\r\n var second = this.timePickerSeconds ? parseInt(this.timepickerVariables['left'].selectedSecond, 10) : 0;\r\n date = date.clone().hour(hour).minute(minute).second(second);\r\n }\r\n this.endDate = null;\r\n this.setStartDate(date.clone());\r\n } else if (!this.endDate && date.isBefore(this.startDate)) {\r\n // special case: clicking the same date for start/end,\r\n // but the time of the end date is before the start date\r\n this.setEndDate(this.startDate.clone());\r\n } else { // picking end\r\n if (this.timePicker) {\r\n var hour = parseInt(this.timepickerVariables['right'].selectedHour, 10);\r\n if (!this.timePicker24Hour) {\r\n var ampm = this.timepickerVariables['right'].ampmModel;\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n var minute = parseInt(this.timepickerVariables['right'].selectedMinute, 10);\r\n var second = this.timePickerSeconds ? parseInt(this.timepickerVariables['right'].selectedSecond, 10) : 0;\r\n date = date.clone().hour(hour).minute(minute).second(second);\r\n }\r\n this.setEndDate(date.clone());\r\n if (this.autoApply) {\r\n this.calculateChosenLabel();\r\n this.clickApply();\r\n }\r\n }\r\n\r\n if (this.singleDatePicker) {\r\n this.setEndDate(this.startDate);\r\n this.updateElement();\r\n if (this.autoApply) {\r\n this.clickApply();\r\n }\r\n }\r\n\r\n this.updateView();\r\n\r\n // This is to cancel the blur event handler if the mouse was in one of the inputs\r\n e.stopPropagation();\r\n\r\n }\r\n /**\r\n * Click on the custom range\r\n * @param e: Event\r\n * @param label\r\n */\r\n clickRange(e, label) {\r\n this.chosenRange = label;\r\n if (label == this.locale.customRangeLabel) {\r\n this.isShown = true; // show calendars\r\n this.showCalInRanges = true;\r\n } else {\r\n var dates = this.ranges[label];\r\n this.startDate = dates[0].clone();\r\n this.endDate = dates[1].clone();\r\n if (this.showRangeLabelOnInput && label !== this.locale.customRangeLabel) {\r\n this.chosenLabel = label;\r\n } else {\r\n this.calculateChosenLabel();\r\n }\r\n this.showCalInRanges = (!this.rangesArray.length) || this.alwaysShowCalendars;\r\n\r\n if (!this.timePicker) {\r\n this.startDate.startOf('day');\r\n this.endDate.endOf('day');\r\n }\r\n\r\n if (!this.alwaysShowCalendars) {\r\n this.isShown = false; // hide calendars\r\n }\r\n this.rangeClicked.emit({ label: label, dates: dates });\r\n if (!this.keepCalendarOpeningWithRange) {\r\n this.clickApply();\r\n } else {\r\n this.renderCalendar(SideEnum.left);\r\n this.renderCalendar(SideEnum.right);\r\n }\r\n\r\n }\r\n };\r\n\r\n\r\n\r\n show(e?) {\r\n //console.log('show')\r\n this.isDateSelected = true;\r\n if (this.isShown) { return; }\r\n this._old.start = this.startDate.clone();\r\n this._old.end = this.endDate.clone();\r\n this.isShown = true;\r\n this.updateView();\r\n }\r\n\r\n hide(e?) {\r\n if (!this.isShown) {\r\n return;\r\n }\r\n // incomplete date selection, revert to last values\r\n if (!this.endDate) {\r\n if (this._old.start) {\r\n this.startDate = this._old.start.clone();\r\n }\r\n if (this._old.end) {\r\n this.endDate = this._old.end.clone();\r\n }\r\n }\r\n\r\n // if a new date range was selected, invoke the user callback function\r\n if (!this.startDate.isSame(this._old.start) || !this.endDate.isSame(this._old.end)) {\r\n // this.callback(this.startDate, this.endDate, this.chosenLabel);\r\n }\r\n\r\n // if picker is attached to a text input, update it\r\n this.updateElement();\r\n this.isShown = false;\r\n this._ref.detectChanges();\r\n\r\n }\r\n\r\n /**\r\n * handle click on all element in the component, usefull for outside of click\r\n * @param e event\r\n */\r\n handleInternalClick(e) {\r\n e.stopPropagation()\r\n }\r\n /**\r\n * update the locale options\r\n * @param locale\r\n */\r\n updateLocale(locale) {\r\n for (const key in locale) {\r\n if (locale.hasOwnProperty(key)) {\r\n this.locale[key] = locale[key];\r\n }\r\n }\r\n }\r\n /**\r\n * clear the daterange picker\r\n */\r\n clear() {\r\n this.startDate = moment().startOf('day');\r\n this.endDate = moment().endOf('day');\r\n this.choosedDate.emit({ chosenLabel: '', startDate: null, endDate: null });\r\n this.datesUpdated.emit({ startDate: null, endDate: null });\r\n this.hide();\r\n }\r\n\r\n /**\r\n * Find out if the selected range should be disabled if it doesn't\r\n * fit into minDate and maxDate limitations.\r\n */\r\n disableRange(range) {\r\n if (range === this.locale.customRangeLabel) {\r\n return false;\r\n }\r\n const rangeMarkers = this.ranges[range];\r\n const areBothBefore = rangeMarkers.every(date => {\r\n if (!this.minDate) {\r\n return false;\r\n }\r\n return date.isBefore(this.minDate)\r\n });\r\n\r\n const areBothAfter = rangeMarkers.every(date => {\r\n if (!this.maxDate) {\r\n return false;\r\n }\r\n return date.isAfter(this.maxDate)\r\n });\r\n return (areBothBefore || areBothAfter);\r\n }\r\n\r\n /**\r\n * Find out if the current calendar row has current month days\r\n * (as opposed to consisting of only previous/next month days)\r\n */\r\n hasCurrentMonthDays(currentMonth, row) {\r\n for (let day = 0; day < 7; day++) {\r\n if (row[day].month() === currentMonth) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import {\r\n Directive,\r\n ViewContainerRef,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n HostListener,\r\n forwardRef,\r\n ChangeDetectorRef,\r\n OnInit,\r\n OnChanges,\r\n SimpleChanges,\r\n Input,\r\n DoCheck,\r\n KeyValueDiffer,\r\n KeyValueDiffers,\r\n Output,\r\n EventEmitter,\r\n Renderer2\r\n} from '@angular/core';\r\nimport { DaterangepickerComponent } from './daterangepicker.component';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport * as _moment from 'moment';\r\nimport { concat } from 'rxjs/operators';\r\nconst moment = _moment;\r\n\r\n@Directive({\r\n selector: 'input[ngxDaterangepickerMd]',\r\n host: {\r\n '(keyup.esc)': 'hide()',\r\n '(blur)': 'onBlur()',\r\n '(click)': 'open()'\r\n },\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DaterangepickerDirective), multi: true\r\n }\r\n ]\r\n})\r\nexport class DaterangepickerDirective implements OnInit, OnChanges, DoCheck {\r\n public picker: DaterangepickerComponent;\r\n private _onChange = Function.prototype;\r\n private _onTouched = Function.prototype;\r\n private _validatorChange = Function.prototype;\r\n private _value: any;\r\n private localeDiffer: KeyValueDiffer;\r\n @Input()\r\n minDate: _moment.Moment\r\n @Input()\r\n maxDate: _moment.Moment\r\n @Input()\r\n autoApply: boolean;\r\n @Input()\r\n alwaysShowCalendars: boolean;\r\n @Input()\r\n showCustomRangeLabel: boolean;\r\n @Input()\r\n linkedCalendars: boolean;\r\n @Input()\r\n singleDatePicker: boolean;\r\n @Input()\r\n showWeekNumbers: boolean;\r\n @Input()\r\n showISOWeekNumbers: boolean;\r\n @Input()\r\n showDropdowns: boolean;\r\n @Input()\r\n isInvalidDate: Function;\r\n @Input()\r\n isCustomDate: Function;\r\n @Input()\r\n showClearButton: boolean;\r\n @Input()\r\n ranges: any;\r\n @Input()\r\n opens: string;\r\n @Input()\r\n drops: string;\r\n firstMonthDayClass: string;\r\n @Input()\r\n lastMonthDayClass: string;\r\n @Input()\r\n emptyWeekRowClass: string;\r\n @Input()\r\n firstDayOfNextMonthClass: string;\r\n @Input()\r\n lastDayOfPreviousMonthClass: string;\r\n @Input()\r\n keepCalendarOpeningWithRange: boolean;\r\n @Input()\r\n showRangeLabelOnInput: boolean;\r\n @Input()\r\n showCancel: boolean = false;\r\n // timepicker variables\r\n @Input()\r\n timePicker: Boolean = false;\r\n @Input()\r\n timePicker24Hour: Boolean = false;\r\n @Input()\r\n timePickerIncrement: number = 1;\r\n @Input()\r\n timePickerSeconds: Boolean = false;\r\n _locale: any = {};\r\n @Input() set locale(value) {\r\n if (value !== null) {\r\n this._locale = value;\r\n }\r\n }\r\n get locale(): any {\r\n return this._locale;\r\n }\r\n @Input()\r\n private _endKey: string = 'endDate';\r\n private _startKey: string = 'startDate';\r\n @Input() set startKey(value) {\r\n if (value !== null) {\r\n this._startKey = value;\r\n } else {\r\n this._startKey = 'startDate';\r\n }\r\n };\r\n @Input() set endKey(value) {\r\n if (value !== null) {\r\n this._endKey = value;\r\n } else {\r\n this._endKey = 'endDate';\r\n }\r\n };\r\n notForChangesProperty: Array = [\r\n 'locale',\r\n 'endKey',\r\n 'startKey'\r\n ];\r\n\r\n get value() {\r\n return this._value || null;\r\n }\r\n set value(val) {\r\n this._value = val;\r\n this._onChange(val);\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n @Output('change') onChange: EventEmitter = new EventEmitter();\r\n @Output('rangeClicked') rangeClicked: EventEmitter = new EventEmitter();\r\n @Output('datesUpdated') datesUpdated: EventEmitter = new EventEmitter();\r\n\r\n constructor(\r\n public viewContainerRef: ViewContainerRef,\r\n public _changeDetectorRef: ChangeDetectorRef,\r\n private _componentFactoryResolver: ComponentFactoryResolver,\r\n private _el: ElementRef,\r\n private _renderer: Renderer2,\r\n private differs: KeyValueDiffers\r\n ) {\r\n this.drops = 'down';\r\n this.opens = 'right';\r\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(DaterangepickerComponent);\r\n viewContainerRef.clear();\r\n const componentRef = viewContainerRef.createComponent(componentFactory);\r\n this.picker = (componentRef.instance);\r\n this.picker.inline = false; // set inline to false for all directive usage\r\n }\r\n ngOnInit() {\r\n this.picker.rangeClicked.asObservable().subscribe((range: any) => {\r\n this.rangeClicked.emit(range);\r\n });\r\n this.picker.datesUpdated.asObservable().subscribe((range: any) => {\r\n this.datesUpdated.emit(range);\r\n });\r\n this.picker.choosedDate.asObservable().subscribe((change: any) => {\r\n if (change) {\r\n const value = {};\r\n value[this._startKey] = change.startDate;\r\n value[this._endKey] = change.endDate;\r\n this.value = value;\r\n this.onChange.emit(value);\r\n if (typeof change.chosenLabel === 'string') {\r\n this._el.nativeElement.value = change.chosenLabel;\r\n }\r\n }\r\n });\r\n this.picker.firstMonthDayClass = this.firstMonthDayClass;\r\n this.picker.lastMonthDayClass = this.lastMonthDayClass;\r\n this.picker.emptyWeekRowClass = this.emptyWeekRowClass;\r\n this.picker.firstDayOfNextMonthClass = this.firstDayOfNextMonthClass;\r\n this.picker.lastDayOfPreviousMonthClass = this.lastDayOfPreviousMonthClass;\r\n this.picker.drops = this.drops;\r\n this.picker.opens = this.opens;\r\n this.localeDiffer = this.differs.find(this.locale).create();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n for (let change in changes) {\r\n if (changes.hasOwnProperty(change)) {\r\n if (this.notForChangesProperty.indexOf(change) === -1) {\r\n this.picker[change] = changes[change].currentValue;\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngDoCheck() {\r\n if (this.localeDiffer) {\r\n const changes = this.localeDiffer.diff(this.locale);\r\n if (changes) {\r\n this.picker.updateLocale(this.locale);\r\n }\r\n }\r\n }\r\n\r\n onBlur() {\r\n this._onTouched();\r\n }\r\n\r\n open(event?: any) {\r\n this.picker.show(event);\r\n setTimeout(() => {\r\n this.setPosition();\r\n })\r\n }\r\n\r\n hide(e?) {\r\n this.picker.hide(e);\r\n }\r\n toggle(e?) {\r\n if (this.picker.isShown) {\r\n this.hide(e);\r\n } else {\r\n this.open(e);\r\n }\r\n }\r\n\r\n clear() {\r\n this.picker.clear();\r\n }\r\n\r\n writeValue(value) {\r\n this.value = value;\r\n this.setValue(value);\r\n }\r\n registerOnChange(fn) {\r\n this._onChange = fn;\r\n }\r\n registerOnTouched(fn) {\r\n this._onTouched = fn;\r\n }\r\n private setValue(val: any) {\r\n if (val) {\r\n if (val[this._startKey]) {\r\n this.picker.setStartDate(val[this._startKey])\r\n }\r\n if (val[this._endKey]) {\r\n this.picker.setEndDate(val[this._endKey])\r\n }\r\n this.picker.calculateChosenLabel();\r\n if (this.picker.chosenLabel) {\r\n this._el.nativeElement.value = this.picker.chosenLabel;\r\n }\r\n } else {\r\n this.picker.clear();\r\n }\r\n }\r\n /**\r\n * Set position of the calendar\r\n */\r\n setPosition() {\r\n let style;\r\n let containerTop;\r\n const container = this.picker.pickerContainer.nativeElement;\r\n const element = this._el.nativeElement;\r\n if (this.drops && this.drops == 'up') {\r\n containerTop = (element.offsetTop - container.clientHeight) + 'px';\r\n } else {\r\n containerTop = 'auto';\r\n }\r\n if (this.opens == 'left') {\r\n style = {\r\n top: containerTop,\r\n left: (element.offsetLeft - container.clientWidth + element.clientWidth) + 'px',\r\n right: 'auto'\r\n };\r\n } else if (this.opens == 'center') {\r\n style = {\r\n top: containerTop,\r\n left: (element.offsetLeft + element.clientWidth / 2\r\n - container.clientWidth / 2) + 'px',\r\n right: 'auto'\r\n };\r\n } else {\r\n style = {\r\n top: containerTop,\r\n left: element.offsetLeft + 'px',\r\n right: 'auto'\r\n }\r\n }\r\n if (style) {\r\n this._renderer.setStyle(container, 'top', style.top);\r\n this._renderer.setStyle(container, 'left', style.left);\r\n this._renderer.setStyle(container, 'right', style.right);\r\n }\r\n\r\n }\r\n /**\r\n * For click outside of the calendar's container\r\n * @param event event object\r\n * @param targetElement target element object\r\n */\r\n @HostListener('document:click', ['$event', '$event.target'])\r\n outsideClick(event, targetElement: HTMLElement): void {\r\n if (!targetElement) {\r\n return;\r\n }\r\n if (targetElement.classList.contains('ngx-daterangepicker-action')) {\r\n return;\r\n }\r\n const clickedInside = this._el.nativeElement.contains(targetElement);\r\n if (!clickedInside) {\r\n this.hide()\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { TwoDigitDecimaNumberDirective } from './two-digit/two-digit-decima-number.directive';\r\nimport { DocumentClickDirective } from './document-click/document-click.directive';\r\nimport { SpecialCharsDirective } from './special-chars/special-chars.directive';\r\nimport { NumericDirective } from './numeric/numeric.directive';\n\r\n@NgModule({\r\n declarations: [TwoDigitDecimaNumberDirective, DocumentClickDirective, SpecialCharsDirective, NumericDirective],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [TwoDigitDecimaNumberDirective, DocumentClickDirective, NumericDirective]\r\n})\r\nexport class DirectivesModule { }\r\n","import { Directive, Input, Output, EventEmitter, ElementRef, HostListener } from '@angular/core';\r\n//https://www.willtaylor.blog/click-outside-directive/\r\n\r\n@Directive({\r\n selector: '[appDocumentClick]'\r\n})\r\nexport class DocumentClickDirective {\r\n @Output() clickOutside = new EventEmitter();\r\n\r\n constructor(private elementRef: ElementRef) { }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onClick(target) {\r\n //console.log(target)\r\n const clickedInside = this.elementRef.nativeElement.contains(target);\r\n if (!clickedInside) {\r\n this.clickOutside.emit();\r\n }\r\n }\r\n}\r\n","//https://gist.github.com/ahmeti/5ca97ec41f6a48ef699ee6606560d1f7\r\n\r\nimport {\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Input\r\n} from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[numeric]\"\r\n})\r\nexport class NumericDirective {\r\n\r\n @Input('decimals') decimals: number = 0;\r\n\r\n private check(value: string, decimals: number) {\r\n if (decimals <= 0) {\r\n return String(value).match(new RegExp(/^\\d+$/));\r\n } else {\r\n var regExpString = \"^\\\\s*((\\\\d+(\\\\.\\\\d{0,\" + decimals + \"})?)|((\\\\d*(\\\\.\\\\d{1,\" + decimals + \"}))))\\\\s*$\";\r\n return String(value).match(new RegExp(regExpString));\r\n }\r\n }\r\n\r\n private specialKeys = [\r\n 'Backspace', 'Tab', 'End', 'Home', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete', 'Control'\r\n ];\r\n\r\n //private run(oldValue) {\r\n // setTimeout(() => {\r\n // let currentValue: string = this.el.nativeElement.value;\r\n // if (currentValue !== '' && !this.check(currentValue, this.decimals)) {\r\n // this.el.nativeElement.value = oldValue;\r\n // }\r\n // });\r\n //}\r\n\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent) {\r\n if (((event.key === \"v\" || event.key === \"a\") && event.ctrlKey) || this.specialKeys.indexOf(event.key) !== -1) {\r\n return;\r\n }\r\n // Do not use event.keycode this is deprecated.\r\n // See: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode\r\n let current: string = this.el.nativeElement.value;\r\n let next: string = current.concat(event.key);\r\n if (next && !this.check(next, this.decimals)) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[appSpecialChars]'\n})\nexport class SpecialCharsDirective {\n\n constructor() { }\n\n}\n","//https://www.codegrepper.com/code-examples/javascript/accept+2+values+after+decimal+in+angular+forms\r\n//https://www.thetopsites.net/article/50722368.shtml\r\n//https://www.pluralsight.com/guides/generating-a-custom-directive-with-the-cli\r\n\r\n//https://upliftskills.us/blog/2018/11/08/how-to-add-directive-dynamically-in-angular-2-4-6/\r\nimport { Directive, ElementRef, Input, HostListener } from '@angular/core';\r\nimport { ConnectableObservable } from 'rxjs';\r\n@Directive({\r\n selector: '[appTwoDigitDecimaNumber]'\r\n})\r\n//https://upliftskills.us/blog/2018/11/08/how-to-add-directive-dynamically-in-angular-2-4-6/\r\n//https://stackoverflow.com/questions/41298168/how-to-dynamically-add-a-directive\r\nexport class TwoDigitDecimaNumberDirective {\r\n @Input() dontApply: boolean = true;\r\n @Input() inputApply: boolean = false;\r\n @Input() regex: RegExp = new RegExp(/^[-]?\\d*\\.?\\d{0,2}$/g);\r\n private specialKeys: Array = ['Backspace', 'Tab', 'End', 'Home', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete', 'Control'];//, '-'\r\n constructor(private el: ElementRef) {\r\n }\r\n\r\n //https://stackoverflow.com/questions/47384952/directive-to-disable-cut-copy-and-paste-function-for-textbox-using-angular2\r\n //https://javascript.info/events-change-input\r\n @HostListener('paste', ['$event'])\r\n onPaste(event: ClipboardEvent) {\r\n //https://stackoverflow.com/questions/50138910/angular-on-paste-event-get-content\r\n let clipboardData = event.clipboardData;\r\n let pastedText = clipboardData.getData('text');\r\n\r\n ////https://stackoverflow.com/questions/23437476/in-typescript-how-to-check-if-a-string-is-numeric\r\n //if (isNaN(+pastedText))\r\n // event.preventDefault();\r\n }\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent) {\r\n //console.log(event);\r\n // Allow Backspace, tab, end, and home keys and ctrl + v and ctrl + a\r\n if (((event.key === \"v\" || event.key === \"a\") && event.ctrlKey) || (event.key === \"Enter\" && this.inputApply) || !this.dontApply || this.specialKeys.findIndex(x => x == event.key) !== -1) {\r\n return;//allowed to proceed\r\n }\r\n\r\n let current: string = this.el.nativeElement.value;\r\n const position = this.el.nativeElement.selectionStart;\r\n const next: string = [current.slice(0, position), event.key == 'Decimal' ? '.' : event.key, current.slice(position)].join('');\r\n if (next && !String(next).match(this.regex)) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DroppableDirective} from './droppable.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n DroppableDirective,\n ],\n exports: [\n DroppableDirective,\n ]\n})\nexport class DragDropModule {}\n","import { Directive, Input, ElementRef, HostListener, Output, EventEmitter } from '@angular/core';\nimport { DragElementEvent, DropElementEvent } from './types';\n\n@Directive({\n selector: '[appDroppable]'\n})\nexport class DroppableDirective {\n\n @Input() dragElementEvent: DragElementEvent;\n @Output() dropElement: EventEmitter = new EventEmitter();\n\n constructor(private element: ElementRef) {}\n\n @HostListener('dragenter', ['$event'])\n onDragEnter(event: DragEvent) {\n event.preventDefault();\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n event.preventDefault();\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent) {\n event.preventDefault();\n const dragParentElement = (this.dragElementEvent.event.target as HTMLElement).parentElement;\n const position = Math.max(0, this.getNumberPosition(event.target));\n\n if (dragParentElement === this.element.nativeElement) {\n this.dropElement.emit({ previousIndex: this.dragElementEvent.index, currentIndex: position, type: 'reorder' });\n } else {\n this.dropElement.emit({ previousIndex: this.dragElementEvent.index, currentIndex: position, type: 'move' });\n }\n }\n\n private getNumberPosition(elem) {\n const dragTarget: HTMLElement = (this.dragElementEvent.event.target as HTMLElement).parentElement;\n const dropTarget: HTMLElement = this.element.nativeElement;\n if (elem === dragTarget) {\n return dragTarget.children ? dragTarget.children.length : 0;\n }\n if (elem === dropTarget) {\n return dropTarget.children ? dropTarget.children.length : 0;\n }\n let spanCount = 0;\n while (elem = elem.previousSibling) {\n spanCount++;\n }\n return spanCount - 1;\n }\n\n}\n","export * from './drag-drop-module';\nexport * from './types';\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DraggableDirective} from './draggable.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n DraggableDirective,\n ],\n exports: [\n DraggableDirective,\n ],\n providers: []\n})\nexport class DraggableModule {}\n","import {\n Directive, ElementRef, Input, Output, EventEmitter, OnDestroy, OnChanges, SimpleChanges, NgZone\n} from '@angular/core';\nimport {isLeftButton, getEvent} from '../common/utils';\n\n@Directive({\n selector: '[appDraggable]'\n})\nexport class DraggableDirective implements OnChanges, OnDestroy {\n\n @Input() dragEventTarget: MouseEvent | TouchEvent;\n @Input() dragX: boolean = true;\n @Input() dragY: boolean = true;\n\n @Output() dragStart: EventEmitter = new EventEmitter();\n @Output() dragMove: EventEmitter = new EventEmitter();\n @Output() dragEnd: EventEmitter = new EventEmitter();\n\n isDragging: boolean;\n lastPageX: number;\n lastPageY: number;\n private globalListeners = new Map void,\n options?: AddEventListenerOptions | boolean\n }>();\n\n constructor(private element: ElementRef, private ngZone: NgZone) {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.dragEventTarget && changes.dragEventTarget.currentValue) {\n this.onMousedown(this.dragEventTarget);\n }\n }\n\n ngOnDestroy(): void {\n this.removeEventListener();\n }\n\n onMousedown(event: MouseEvent | TouchEvent): void {\n if (!isLeftButton(event)) {\n return;\n }\n if (this.dragX || this.dragY) {\n const evt = getEvent(event);\n this.initDrag(evt.pageX, evt.pageY);\n this.addEventListeners(event);\n this.dragStart.emit(event);\n }\n }\n\n onMousemove(event: MouseEvent | TouchEvent): void {\n const evt = getEvent(event);\n this.onDrag(evt.pageX, evt.pageY);\n this.dragMove.emit(event);\n }\n\n onMouseup(event: MouseEvent | TouchEvent): void {\n this.endDrag();\n this.removeEventListener();\n this.dragEnd.emit(event);\n }\n\n addEventListeners(event: MouseEvent | TouchEvent) {\n const isTouchEvent = event.type.startsWith('touch');\n const moveEvent = isTouchEvent ? 'touchmove' : 'mousemove';\n const upEvent = isTouchEvent ? 'touchend' : 'mouseup';\n\n this.globalListeners\n .set(moveEvent, {\n handler: this.onMousemove.bind(this),\n options: false\n })\n .set(upEvent, {\n handler: this.onMouseup.bind(this),\n options: false\n });\n\n this.ngZone.runOutsideAngular(() => {\n this.globalListeners.forEach((config, name) => {\n window.document.addEventListener(name, config.handler, config.options);\n });\n });\n }\n\n removeEventListener() {\n this.globalListeners.forEach((config, name) => {\n window.document.removeEventListener(name, config.handler, config.options);\n });\n }\n\n initDrag(pageX: number, pageY: number) {\n this.isDragging = true;\n this.lastPageX = pageX;\n this.lastPageY = pageY;\n this.element.nativeElement.classList.add('dragging');\n }\n\n onDrag(pageX: number, pageY: number) {\n if (this.isDragging) {\n const deltaX = pageX - this.lastPageX;\n const deltaY = pageY - this.lastPageY;\n const coords = this.element.nativeElement.getBoundingClientRect();\n\n this.element.nativeElement.style.left = coords.left + deltaX + 'px';\n this.element.nativeElement.style.top = coords.top + deltaY + 'px';\n\n this.lastPageX = pageX;\n this.lastPageY = pageY;\n }\n }\n\n endDrag() {\n this.isDragging = false;\n this.element.nativeElement.classList.remove('dragging');\n }\n\n}\n","export * from './draggable-module';\nexport * from './draggable.directive';\n","module.exports = \".dropdown-submenu {\\n position: relative;\\n}\\n\\n.dropdown-submenu .dropdown-menu1 {\\n top: 0;\\n left: 100%;\\n margin-top: -1px;\\n}\\n\\n/* NavMenuDemoComponent */\\n\\n/*.nav-menu-demo1 {\\n width: 13.75rem;\\n}\\n\\n.nav-menu-demo2 {\\n width: 13.75rem;\\n height: 20rem;\\n}\\n\\n.nav-menu-demo2 {\\n width: 13.75rem;\\n height: 18rem;\\n}\\n\\n.nav-menu-demo2.nav-collapsed {\\n width: 65px;\\n}\\n\\n.nav-menu-demo2.nav-expanded {\\n opacity: 0.95;\\n}\\n\\n.nav-menu-demo1 .vertical-menu-item, .nav-menu-demo2 .vertical-menu-item {\\n display: flex;\\n}\\n\\n\\n.nav-menu-demo1 .nav-menu-icon, .nav-menu-demo2 .nav-menu-icon {\\n padding-right: 1.4rem;\\n}*/\\n\\n/*.dropdown-menu li {\\n position: relative;\\n}\\n\\n.dropdown-menu .dropdown-submenu {\\n display: none;\\n position: absolute;\\n left: 100%;\\n top: -7px;\\n}\\n\\n.dropdown-menu .dropdown-submenu-left {\\n right: 100%;\\n left: auto;\\n}\\n\\n.dropdown-menu > li:hover > .dropdown-submenu {\\n display: block;\\n}*/\\n\\n/*https://www.cssscript.com/create-a-multi-level-drop-down-menu-with-pure-css/*/\\n\\n.bubble-container {\\n z-index: 1;\\n}\\n\\n/*https://bootstrap-menu.com/detail-multilevel.html\\nhttps://www.coderomeos.org/create-multi-level-drop-down-menu-with-html-and-css3*/\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kcm9wZG93bi1tdWx0aWxldmVsL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9saWJcXGRyb3Bkb3duLW11bHRpbGV2ZWxcXGRyb3Bkb3duLW11bHRpbGV2ZWwuY29tcG9uZW50LnNjc3MiLCJsaWIvZHJvcGRvd24tbXVsdGlsZXZlbC9kcm9wZG93bi1tdWx0aWxldmVsLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQUE7QUNDRjs7QURFQTtFQUNFLE1BQUE7RUFDQSxVQUFBO0VBQ0EsZ0JBQUE7QUNDRjs7QURHQSx5QkFBQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFBQTs7QUFnQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUFBOztBQXNCQSwrRUFBQTs7QUFFQTtFQUNFLFVBQUE7QUNORjs7QURTQTtnRkFBQSIsImZpbGUiOiJsaWIvZHJvcGRvd24tbXVsdGlsZXZlbC9kcm9wZG93bi1tdWx0aWxldmVsLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmRyb3Bkb3duLXN1Ym1lbnUge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmRyb3Bkb3duLXN1Ym1lbnUgLmRyb3Bkb3duLW1lbnUxIHtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMTAwJTtcclxuICBtYXJnaW4tdG9wOiAtMXB4O1xyXG59XHJcblxyXG5cclxuLyogTmF2TWVudURlbW9Db21wb25lbnQgKi9cclxuLyoubmF2LW1lbnUtZGVtbzEge1xyXG4gIHdpZHRoOiAxMy43NXJlbTtcclxufVxyXG5cclxuLm5hdi1tZW51LWRlbW8yIHtcclxuICB3aWR0aDogMTMuNzVyZW07XHJcbiAgaGVpZ2h0OiAyMHJlbTtcclxufVxyXG5cclxuLm5hdi1tZW51LWRlbW8yIHtcclxuICB3aWR0aDogMTMuNzVyZW07XHJcbiAgaGVpZ2h0OiAxOHJlbTtcclxufVxyXG5cclxuLm5hdi1tZW51LWRlbW8yLm5hdi1jb2xsYXBzZWQge1xyXG4gIHdpZHRoOiA2NXB4O1xyXG59XHJcblxyXG4ubmF2LW1lbnUtZGVtbzIubmF2LWV4cGFuZGVkIHtcclxuICBvcGFjaXR5OiAwLjk1O1xyXG59XHJcblxyXG4ubmF2LW1lbnUtZGVtbzEgLnZlcnRpY2FsLW1lbnUtaXRlbSwgLm5hdi1tZW51LWRlbW8yIC52ZXJ0aWNhbC1tZW51LWl0ZW0ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbn1cclxuXHJcblxyXG4ubmF2LW1lbnUtZGVtbzEgLm5hdi1tZW51LWljb24sIC5uYXYtbWVudS1kZW1vMiAubmF2LW1lbnUtaWNvbiB7XHJcbiAgcGFkZGluZy1yaWdodDogMS40cmVtO1xyXG59Ki9cclxuXHJcblxyXG4vKi5kcm9wZG93bi1tZW51IGxpIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1zdWJtZW51IHtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAxMDAlO1xyXG4gIHRvcDogLTdweDtcclxufVxyXG5cclxuLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLXN1Ym1lbnUtbGVmdCB7XHJcbiAgcmlnaHQ6IDEwMCU7XHJcbiAgbGVmdDogYXV0bztcclxufVxyXG5cclxuLmRyb3Bkb3duLW1lbnUgPiBsaTpob3ZlciA+IC5kcm9wZG93bi1zdWJtZW51IHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufSovXHJcblxyXG5cclxuXHJcbi8qaHR0cHM6Ly93d3cuY3Nzc2NyaXB0LmNvbS9jcmVhdGUtYS1tdWx0aS1sZXZlbC1kcm9wLWRvd24tbWVudS13aXRoLXB1cmUtY3NzLyovXHJcblxyXG4uYnViYmxlLWNvbnRhaW5lciB7XHJcbiAgei1pbmRleDoxO1xyXG59XHJcblxyXG4vKmh0dHBzOi8vYm9vdHN0cmFwLW1lbnUuY29tL2RldGFpbC1tdWx0aWxldmVsLmh0bWxcclxuaHR0cHM6Ly93d3cuY29kZXJvbWVvcy5vcmcvY3JlYXRlLW11bHRpLWxldmVsLWRyb3AtZG93bi1tZW51LXdpdGgtaHRtbC1hbmQtY3NzMyovXHJcbiIsIi5kcm9wZG93bi1zdWJtZW51IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZHJvcGRvd24tc3VibWVudSAuZHJvcGRvd24tbWVudTEge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDEwMCU7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG59XG5cbi8qIE5hdk1lbnVEZW1vQ29tcG9uZW50ICovXG4vKi5uYXYtbWVudS1kZW1vMSB7XG4gIHdpZHRoOiAxMy43NXJlbTtcbn1cblxuLm5hdi1tZW51LWRlbW8yIHtcbiAgd2lkdGg6IDEzLjc1cmVtO1xuICBoZWlnaHQ6IDIwcmVtO1xufVxuXG4ubmF2LW1lbnUtZGVtbzIge1xuICB3aWR0aDogMTMuNzVyZW07XG4gIGhlaWdodDogMThyZW07XG59XG5cbi5uYXYtbWVudS1kZW1vMi5uYXYtY29sbGFwc2VkIHtcbiAgd2lkdGg6IDY1cHg7XG59XG5cbi5uYXYtbWVudS1kZW1vMi5uYXYtZXhwYW5kZWQge1xuICBvcGFjaXR5OiAwLjk1O1xufVxuXG4ubmF2LW1lbnUtZGVtbzEgLnZlcnRpY2FsLW1lbnUtaXRlbSwgLm5hdi1tZW51LWRlbW8yIC52ZXJ0aWNhbC1tZW51LWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5cbi5uYXYtbWVudS1kZW1vMSAubmF2LW1lbnUtaWNvbiwgLm5hdi1tZW51LWRlbW8yIC5uYXYtbWVudS1pY29uIHtcbiAgcGFkZGluZy1yaWdodDogMS40cmVtO1xufSovXG4vKi5kcm9wZG93bi1tZW51IGxpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZHJvcGRvd24tbWVudSAuZHJvcGRvd24tc3VibWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTAwJTtcbiAgdG9wOiAtN3B4O1xufVxuXG4uZHJvcGRvd24tbWVudSAuZHJvcGRvd24tc3VibWVudS1sZWZ0IHtcbiAgcmlnaHQ6IDEwMCU7XG4gIGxlZnQ6IGF1dG87XG59XG5cbi5kcm9wZG93bi1tZW51ID4gbGk6aG92ZXIgPiAuZHJvcGRvd24tc3VibWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufSovXG4vKmh0dHBzOi8vd3d3LmNzc3NjcmlwdC5jb20vY3JlYXRlLWEtbXVsdGktbGV2ZWwtZHJvcC1kb3duLW1lbnUtd2l0aC1wdXJlLWNzcy8qL1xuLmJ1YmJsZS1jb250YWluZXIge1xuICB6LWluZGV4OiAxO1xufVxuXG4vKmh0dHBzOi8vYm9vdHN0cmFwLW1lbnUuY29tL2RldGFpbC1tdWx0aWxldmVsLmh0bWxcbmh0dHBzOi8vd3d3LmNvZGVyb21lb3Mub3JnL2NyZWF0ZS1tdWx0aS1sZXZlbC1kcm9wLWRvd24tbWVudS13aXRoLWh0bWwtYW5kLWNzczMqLyJdfQ== */\"","import { Component, OnInit, Input, EventEmitter, Output, ViewChild } from '@angular/core';\r\nimport { SelectItem } from 'lib/common';\r\n\r\n@Component({\r\n selector: 'app-dropdown-multilevel',\r\n templateUrl: './dropdown-multilevel.component.html',\r\n styleUrls: ['./dropdown-multilevel.component.scss',\r\n '../styles/list-menu.css',\r\n '../styles/input.css',]\r\n})\r\nexport class DropdownMultilevelComponent implements OnInit {\r\n showMainUL: boolean;\r\n showSubULNotNeeded: boolean;\r\n topSearchDisplay = false;//IMP\r\n @Input() cancelMessage: string;\r\n @Input() clearMessage: string;\r\n @Input() searchMessage: string;\r\n\r\n //IMP - Added to remove button if only list box needed\r\n @Input() cancelDisplay: boolean = true;\r\n @Input() clearDisplay: boolean = true;\r\n @Input() listItemWidth: number = 100;\r\n @Input() options: SelectItem[];\r\n\r\n @Input('selected')\r\n get model(): any[] { return this._model; }\r\n set model(val: any[]) {\r\n this._model = val;\r\n this.selectedOptions = (val && val.length) ? val.slice(0) : [];\r\n }\r\n private _model: any[] = [];\r\n\r\n @Input()\r\n get isOpen(): boolean { return this._isOpen; }\r\n set isOpen(val: boolean) {\r\n this._isOpen = val;\r\n if (val === true) {\r\n this.setFocus();\r\n this.searchFilterText = null;\r\n }\r\n }\r\n private _isOpen: boolean;\r\n\r\n @Output() selectionChange: EventEmitter = new EventEmitter();\r\n @Output() selectionCancel: EventEmitter = new EventEmitter();\r\n\r\n @ViewChild('filterInput', { static: false }) filterInput: any;\r\n searchFilterText: string = null;\r\n private selectedOptions: any[] = [];\r\n\r\n navMenuNodes: any[] = [\r\n {\r\n name: 'First menu',\r\n expanded: true,\r\n children: [\r\n { id: '/crud-table-demo', name: 'Menu 1 link 1' },\r\n { id: '/data-table-demo', name: 'Menu 1 link 2' },\r\n {\r\n name: 'Submenu ',\r\n expanded: true,\r\n children: [\r\n { id: '/nav-menu-demo', name: 'Submenu link 1' },\r\n { id: '/data-table-demo', name: 'Submenu link 2' },\r\n { id: '/tree-table-demo', name: 'Submenu link 3' },\r\n ]\r\n },\r\n ]\r\n },\r\n {\r\n name: 'Second menu',\r\n children: [\r\n { id: '/crud-table-demo', name: 'Menu 2 link 1' },\r\n { id: '/data-table-demo', name: 'Menu 2 link 2' },\r\n { id: '/tree-table-demo', name: 'Menu 2 link 3' },\r\n ]\r\n },\r\n {\r\n name: 'With icons',\r\n icon: 'dt-icon-reload',\r\n children: [\r\n { id: '/crud-table-demo', name: 'Menu 2 link 1', icon: 'dt-icon-shrink' },\r\n { id: '/data-table-demo', name: 'Menu 2 link 2', icon: 'dt-icon-reload' },\r\n { id: '/tree-table-demo', name: 'Menu 2 link 3', icon: 'dt-icon-shrink' },\r\n ]\r\n }\r\n ];\r\n\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n //console.log('load') \r\n }\r\n\r\n\r\n showOrHideMainUL() {\r\n this.showMainUL = !this.showMainUL;\r\n }\r\n\r\n currShowDDL = -1;\r\n actualCurrShowDDLForSubs = -1;\r\n showOrHideSubUL(value: any, showSubUL: any) {\r\n //console.log('main click')\r\n this.currShowDDL = showSubUL == 1 ? 2 : (showSubUL == 2 ? 1 : -1);//-1 - no need, 1 - yet to expand, 2 - expand and show\r\n this.actualCurrShowDDLForSubs = this.currShowDDL;\r\n if (value == 0 || value == 3 || value == 12)\r\n this.currShowDDL = 2;\r\n //console.log(value)\r\n //console.log(this.model[0])\r\n const optFound = this.options.find(x => x.id == value);\r\n if (optFound)\r\n optFound.showSubUL = this.currShowDDL;\r\n this.options.forEach(x => { if (x.id != value) { x.showSubUL = x.showSubUL > 0 ? 1 : -1 } });\r\n }\r\n showOrHideUL(value: any) {\r\n //console.log('sub click')\r\n this.currShowDDL = 1;\r\n }\r\n\r\n isSelected(value: any): boolean {\r\n ////This add multiple items checked to array - IMP\r\n //this.selectionChangeEmit();\r\n\r\n //return this.selectedOptions.indexOf(value) > -1;\r\n if ((this.selectedOptions[0] >= 0 && this.selectedOptions[0] <= 1) && value == 0) {\r\n return true;\r\n }\r\n else if ((this.selectedOptions[0] >= 3 && this.selectedOptions[0] <= 11) && value == 3) {\r\n return true;\r\n }\r\n else if ((this.selectedOptions[0] >= 12 && this.selectedOptions[0] <= 14) && value == 12) {\r\n return true;\r\n }\r\n\r\n return this.selectedOptions[0] == value;\r\n }\r\n isSubSelected(value: any): boolean {\r\n //console.log(this.currShowDDL)\r\n //console.log(value)\r\n //console.log(this.selectedOptions[0])\r\n ////This add multiple items checked to array - IMP\r\n //this.selectionChangeEmit();\r\n\r\n //return this.selectedOptions.indexOf(value) > -1;\r\n return this.selectedOptions[0] == value && this.actualCurrShowDDLForSubs != 2;\r\n }\r\n\r\n setSelectedOptions(value: any) {\r\n //const index = this.selectedOptions.indexOf(value);\r\n //if (index > -1) {\r\n // this.selectedOptions.splice(index, 1);\r\n //} else {\r\n ////if (this.multiple) {\r\n //// this.selectedOptions.push(value);\r\n ////} else {\r\n this.selectedOptions = [];\r\n this.selectedOptions.push(value);\r\n ////}\r\n //}\r\n }\r\n\r\n resetSubValue = -1;\r\n setSelected(event: MouseEvent, value: any) {\r\n\r\n event.stopPropagation();\r\n this.resetSubValue = -1;\r\n if ((this.selectedOptions[0] == 1 && value == 0)\r\n || (this.selectedOptions[0] >= 3 && this.selectedOptions[0] <= 11 && value == 3)\r\n || (this.selectedOptions[0] >= 12 && this.selectedOptions[0] <= 14 && value == 12)) {\r\n this.resetSubValue = this.selectedOptions[0];\r\n }\r\n else\r\n this.setSelectedOptions(value);\r\n //if (!this.multiple) {\r\n this.selectionChangeEmit();\r\n //}\r\n }\r\n setSubSelected(event: MouseEvent, value: any) {\r\n event.stopPropagation();\r\n this.setSelectedOptions(value);\r\n //if (!this.multiple) {\r\n this.selectionChangeEmit();\r\n //}\r\n }\r\n\r\n setFocus() {\r\n //console.log(this._model)\r\n this.selectedOptions = this._model;\r\n let value = this._model[0];\r\n let subFound = false;\r\n if (this._model[0] >= 0 && this._model[0] <= 1) {\r\n value = 0;\r\n subFound = true;\r\n }\r\n else if (this._model[0] >= 3 && this._model[0] <= 11) {\r\n value = 3;\r\n subFound = true;\r\n }\r\n else if (this._model[0] >= 12 && this._model[0] <= 14) {\r\n value = 12;\r\n subFound = true;\r\n }\r\n const optFound = this.options.find(x => x.id == value);\r\n if (optFound) {\r\n if (subFound)\r\n optFound.showSubUL = 2;\r\n else\r\n optFound.showSubUL = -1;\r\n }\r\n this.options.forEach(x => { if (x.id != value) { x.showSubUL = x.showSubUL > 0 ? 1 : -1 } });\r\n\r\n if (this.filterInput) {\r\n setTimeout(() => {\r\n this.filterInput.nativeElement.focus();\r\n }, 1);\r\n }\r\n }\r\n\r\n onClickCancel(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.selectedOptions = this.model.slice(0);\r\n this.selectionCancel.emit(true);\r\n }\r\n\r\n onClickClear(event: MouseEvent) {\r\n event.stopPropagation();\r\n if (this.selectedOptions.length > 0) {\r\n this.selectedOptions = [];\r\n }\r\n this.selectionChangeEmit();\r\n }\r\n\r\n selectionChangeEmit() {\r\n if (this.model.length === this.selectedOptions.length\r\n && this.model.every((value, index) => value === this.selectedOptions[index] && (value !== 0 && value !== 3 && value !== 12))\r\n && this.resetSubValue == -1) {\r\n this.selectionCancel.emit(true);\r\n } else {\r\n this.model = this.selectedOptions.slice(0);\r\n this.model.push(this.currShowDDL);//needed to open or close ddl li list in parent item\r\n this.selectionChange.emit(this.model);\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DropdownMultilevelComponent } from './dropdown-multilevel.component';\nimport { NavMenuModule } from '../nav-menu/nav-menu.module';\n\n@NgModule({\n declarations: [DropdownMultilevelComponent],\n imports: [\n CommonModule,\n NavMenuModule\n ],\n exports: [\n DropdownMultilevelComponent,\n ],\n})\nexport class DropdownMultilevelModule { }\n","export * from './dropdown-multilevel.module';\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {SelectListModule} from '../select-list';\r\nimport {DropdownSelectComponent} from './dropdown-select.component';\r\nimport { DirectivesModule } from '../directives/directives.module';\r\nimport { DropdownMultilevelModule } from 'lib/dropdown-multilevel';\r\nimport { MaterialModule } from '../../src/app/material/material.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n SelectListModule,\r\n DirectivesModule,\r\n DropdownMultilevelModule,\r\n MaterialModule,\r\n ],\r\n declarations: [\r\n DropdownSelectComponent,\r\n ],\r\n exports: [\r\n DropdownSelectComponent,\r\n ],\r\n providers: []\r\n})\r\nexport class DropdownSelectModule {}\r\n","module.exports = \".dt-dropdown-select {\\n display: block;\\n position: relative;\\n width: 100%;\\n}\\n\\n.dt-dropdown-select-list {\\n position: absolute;\\n width: 100%;\\n z-index: 2;\\n padding: 5px;\\n background-color: #fff;\\n border: 1px solid #ccc;\\n border-radius: 2px;\\n box-shadow: 0 6px 12px rgba(0, 0, 0, .175);\\n}\\n\\n.dt-dropdown-select .dt-input-group input:not([disabled]) {\\n cursor: pointer;\\n}\\n\\ninput.dt-select-input[readonly]:not([disabled]) {\\n background-color: white;\\n}\\n\\n.dt-select-button {\\n /*https://stackoverflow.com/questions/58618111/position-off-for-absolutely-positioned-input-in-safari*/\\n /*position: relative;*/\\n height: 2.0rem;\\n width: 2.0rem;\\n}\\n\\n.dt-select-input {\\n /*height: 2.0rem;*/\\n height:27px;\\n}\\n\\n/*https://www.w3schools.com/howto/howto_css_placeholder.asp*/\\n\\ninput.placeHolderColor::-moz-placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\\n color: black;\\n opacity: 1; /* Firefox */\\n}\\n\\ninput.placeHolderColor:-ms-input-placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\\n color: black;\\n opacity: 1; /* Firefox */\\n}\\n\\ninput.placeHolderColor::-ms-input-placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\\n color: black;\\n opacity: 1; /* Firefox */\\n}\\n\\ninput.placeHolderColor::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */\\n color: black;\\n opacity: 1; /* Firefox */\\n}\\n\\ninput.placeHolderColor:-ms-input-placeholder { /* Internet Explorer 10-11 */\\n color: black;\\n}\\n\\ninput.placeHolderColor::-ms-input-placeholder { /* Microsoft Edge */\\n color: black;\\n} \\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kcm9wZG93bi1zZWxlY3QvZHJvcGRvd24tc2VsZWN0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLFdBQVc7QUFDYjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsVUFBVTtFQUNWLFlBQVk7RUFDWixzQkFBc0I7RUFDdEIsc0JBQXNCO0VBQ3RCLGtCQUFrQjtFQUNsQiwwQ0FBMEM7QUFDNUM7O0FBRUE7RUFDRSxlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsdUJBQXVCO0FBQ3pCOztBQUdBO0VBQ0Usc0dBQXNHO0VBQ3RHLHNCQUFzQjtFQUN0QixjQUFjO0VBQ2QsYUFBYTtBQUNmOztBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7QUFDYjs7QUFFQSw0REFBNEQ7O0FBQzVELDJDQUFzQyx5Q0FBeUM7RUFDN0UsWUFBWTtFQUNaLFVBQVUsRUFBRSxZQUFZO0FBQzFCOztBQUhBLCtDQUFzQyx5Q0FBeUM7RUFDN0UsWUFBWTtFQUNaLFVBQVUsRUFBRSxZQUFZO0FBQzFCOztBQUhBLGdEQUFzQyx5Q0FBeUM7RUFDN0UsWUFBWTtFQUNaLFVBQVUsRUFBRSxZQUFZO0FBQzFCOztBQUhBLHNDQUFzQyx5Q0FBeUM7RUFDN0UsWUFBWTtFQUNaLFVBQVUsRUFBRSxZQUFZO0FBQzFCOztBQUVBLCtDQUErQyw0QkFBNEI7RUFDekUsWUFBWTtBQUNkOztBQUVBLGdEQUFnRCxtQkFBbUI7RUFDakUsWUFBWTtBQUNkIiwiZmlsZSI6ImxpYi9kcm9wZG93bi1zZWxlY3QvZHJvcGRvd24tc2VsZWN0LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZHQtZHJvcGRvd24tc2VsZWN0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5kdC1kcm9wZG93bi1zZWxlY3QtbGlzdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDI7XG4gIHBhZGRpbmc6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBib3gtc2hhZG93OiAwIDZweCAxMnB4IHJnYmEoMCwgMCwgMCwgLjE3NSk7XG59XG5cbi5kdC1kcm9wZG93bi1zZWxlY3QgLmR0LWlucHV0LWdyb3VwIGlucHV0Om5vdChbZGlzYWJsZWRdKSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuaW5wdXQuZHQtc2VsZWN0LWlucHV0W3JlYWRvbmx5XTpub3QoW2Rpc2FibGVkXSkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cblxuXG4uZHQtc2VsZWN0LWJ1dHRvbiB7XG4gIC8qaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTg2MTgxMTEvcG9zaXRpb24tb2ZmLWZvci1hYnNvbHV0ZWx5LXBvc2l0aW9uZWQtaW5wdXQtaW4tc2FmYXJpKi9cbiAgLypwb3NpdGlvbjogcmVsYXRpdmU7Ki9cbiAgaGVpZ2h0OiAyLjByZW07XG4gIHdpZHRoOiAyLjByZW07XG59XG4uZHQtc2VsZWN0LWlucHV0IHtcbiAgLypoZWlnaHQ6IDIuMHJlbTsqL1xuICBoZWlnaHQ6MjdweDtcbn1cblxuLypodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2hvd3RvL2hvd3RvX2Nzc19wbGFjZWhvbGRlci5hc3AqL1xuaW5wdXQucGxhY2VIb2xkZXJDb2xvcjo6cGxhY2Vob2xkZXIgeyAvKiBDaHJvbWUsIEZpcmVmb3gsIE9wZXJhLCBTYWZhcmkgMTAuMSsgKi9cbiAgY29sb3I6IGJsYWNrO1xuICBvcGFjaXR5OiAxOyAvKiBGaXJlZm94ICovXG59XG5cbmlucHV0LnBsYWNlSG9sZGVyQ29sb3I6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgLyogSW50ZXJuZXQgRXhwbG9yZXIgMTAtMTEgKi9cbiAgY29sb3I6IGJsYWNrO1xufVxuXG5pbnB1dC5wbGFjZUhvbGRlckNvbG9yOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyAvKiBNaWNyb3NvZnQgRWRnZSAqL1xuICBjb2xvcjogYmxhY2s7XG59IFxuIl19 */\"","import {\n Component, Input, Output, EventEmitter, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef,\n HostBinding, ElementRef, OnInit, OnDestroy\n} from '@angular/core';\nimport {Dropdown} from '../dropdown';\nimport {SelectItem} from '../common';\nimport {Subscription} from 'rxjs';\n\n@Component({\n selector: 'app-dropdown-select',\n templateUrl: 'dropdown-select.component.html',\n styleUrls: [\n 'dropdown-select.component.css',\n '../styles/input-group.css',\n '../styles/input.css',\n '../styles/buttons.css',\n '../styles/icons.css'\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\n\nexport class DropdownSelectComponent implements OnInit, OnDestroy {\n\n @Input() multiLevel: boolean;\n\n @Input() multiple: boolean;\n @Input() disabled: boolean;\n @Input() selectAllMessage: string;\n @Input() cancelMessage: string;\n @Input() clearMessage: string;\n\n //IMP - Added to remove button if only list box needed\n @Input() cancelDisplay: boolean = true;\n @Input() clearDisplay: boolean = true;\n\n @Input() listItemWidth: number;\n\n @Input() placeholder: string = 'Select';\n @Input() searchInputPlaceholder: string = 'Search...';\n\n @Input()\n get options(): SelectItem[] { return this._options; }\n set options(val: SelectItem[]) {\n this._options = val;\n this.selectedName = this.getName(this.selectedOptions);\n }\n private _options: SelectItem[];\n\n @Input()\n set value(val: any) {\n if (Array.isArray(val)) {\n this.selectedOptions = [...val];\n } else {\n this.selectedOptions = [];\n if (val) {\n this.selectedOptions.push(val);\n }\n }\n this.selectedName = this.getName(this.selectedOptions);\n }\n\n @Output() valueChange: EventEmitter = new EventEmitter();\n @Output() clearOrCancelSelect: EventEmitter = new EventEmitter();\n\n @HostBinding('class.dt-dropdown-select') cssClass = true;\n\n selectedOptions: SelectItem[] = [];\n selectedName: string;\n dropdown: Dropdown;\n private subscriptions: Subscription[] = [];\n\n constructor(private element: ElementRef, private cd: ChangeDetectorRef) {\n this.dropdown = new Dropdown(this.element.nativeElement);\n }\n\n ngOnInit() {\n const subDropdown = this.dropdown.isOpenSource$.subscribe(() => {\n this.cd.markForCheck();\n });\n this.subscriptions.push(subDropdown);\n }\n\n ngOnDestroy() {\n this.dropdown.removeEventListeners();\n this.subscriptions.forEach(s => s.unsubscribe());\n }\n\n open(event: MouseEvent) {\n event.stopPropagation();\n if (!this.disabled) {\n this.dropdown.toggleDropdown();\n }\n }\n\n prevSelName: string;\n onSelectionChange(event) {\n if (this.selectedName)\n this.prevSelName = this.selectedName;\n this.selectedName = this.getName([event[0]]);\n //console.log(this.prevSelName)\n //console.log(event)\n if (event.length > 1) {//multi-level\n let currShowDDL = event[1].toString();\n if (currShowDDL == \"2\") {\n this.dropdown.isOpen = true;\n this.selectedName = this.prevSelName;\n }\n else\n this.dropdown.isOpen = false;\n }\n if (!this.dropdown.isOpen)\n this.selectionChangeEmit(event);\n }\n\n onSelectionCancel($event) {\n this.dropdown.isOpen = false;\n if (!$event)\n this.clearOrCancelSelect.emit($event);\n }\n\n getName(items: any) {\n if (items && items.length && this.options && this.options.length) {\n if (this.multiple && items.length > 1) {\n return items.length + ' items selected';\n } else {\n const option = this.options.find((x) => {\n if (this.multiLevel)\n {\n if (items[0] >= 0 && items[0] <= 1)\n return x.id === 0;\n else if (items[0] >= 3 && items[0] <= 11)\n return x.id === 3;\n else if (items[0] >= 12 && items[0] <= 14)\n return x.id === 12;\n }\n return x.id === items[0];\n });\n return (option) ? option.name : '';\n }\n }\n }\n\n selectionChangeEmit(items: any) {\n if (!this.multiple) {\n const value = (items && items.length) ? items[0] : null;\n //console.log(value)\n //console.log(items.length)\n //if (items.length == 1 || (items.length > 1 && items[1] != 2))\n this.valueChange.emit(value);\n } else {\n this.valueChange.emit(items);\n }\n }\n\n}\n","export * from './dropdown-select-module';\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DropdownDirective} from './dropdown.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n DropdownDirective,\n ],\n exports: [\n DropdownDirective,\n ]\n})\nexport class DropdownModule {}\n","import { Directive, HostListener, ElementRef, OnDestroy, HostBinding } from '@angular/core';\r\nimport { DropdownService } from './dropdown.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[appDropdown]'\r\n})\r\nexport class DropdownDirective implements OnDestroy {\r\n\r\n @HostBinding('class.open') isOpen: boolean = false;\r\n private subscription: Subscription;\r\n\r\n constructor(private elementRef: ElementRef, private service: DropdownService) {\r\n this.subscription = this.service.currentElement.subscribe(el => {\r\n if (el !== this.elementRef && this.isOpen) {\r\n this.isOpen = false;\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n toggle() {\r\n this.isOpen = !this.isOpen;\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n toggleDropdown(event): boolean {\r\n event.stopPropagation();\r\n this.service.currentElement.next(this.elementRef);\r\n this.toggle();\r\n return false;\r\n }\r\n\r\n @HostListener('document:click', ['$event', '$event.target'])\r\n onClick(event: MouseEvent, targetElement: HTMLElement): void {\r\n if (!targetElement) {\r\n return;\r\n }\r\n const clickedInside = this.elementRef.nativeElement.contains(targetElement);\r\n if (!clickedInside) {\r\n this.isOpen = false;\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DropdownService {\r\n currentElement = new Subject();\r\n}\r\n","import {Keys} from '../common';\nimport {Subject} from 'rxjs';\n\nexport class Dropdown {\n\n isOpen: boolean;\n selectContainerClicked: boolean;\n\n private isOpenSource = new Subject();\n isOpenSource$ = this.isOpenSource.asObservable();\n\n private clickListener: any;\n private windowClickListener: any;\n private windowKeydownListener: any;\n\n constructor(private element: HTMLElement) {\n this.addEventListeners();\n }\n\n addEventListeners() {\n this.clickListener = this.onClick.bind(this);\n this.element.addEventListener('click', this.clickListener);\n\n this.windowClickListener = this.onWindowClick.bind(this);\n window.document.addEventListener('click', this.windowClickListener);\n\n this.windowKeydownListener = this.onKeyDown.bind(this);\n window.document.addEventListener('keydown', this.windowKeydownListener);\n }\n\n removeEventListeners() {\n this.element.removeEventListener('click', this.clickListener);\n window.document.removeEventListener('click', this.windowClickListener);\n window.document.removeEventListener('keydown', this.windowKeydownListener);\n }\n\n onClick(event: MouseEvent): void {\n this.selectContainerClicked = true;\n }\n\n onWindowClick(event: MouseEvent): void {\n if (!this.selectContainerClicked) {\n this.closeDropdown();\n }\n this.selectContainerClicked = false;\n }\n\n onKeyDown(event: KeyboardEvent): void {\n if (event.keyCode === Keys.ESCAPE || event.key === 'Escape') {\n this.closeDropdown();\n }\n }\n\n toggleDropdown() {\n this.isOpen ? this.closeDropdown() : this.openDropdown();\n }\n\n openDropdown() {\n if (!this.isOpen) {\n this.isOpen = true;\n this.isOpenSource.next(this.isOpen);\n }\n }\n\n closeDropdown() {\n if (this.isOpen) {\n this.isOpen = false;\n this.isOpenSource.next(this.isOpen);\n }\n }\n\n}\n","export * from './dropdown-module';\nexport * from './dropdown';\n","import { Component, OnChanges, SimpleChanges, SimpleChange, Input, ViewChild, ChangeDetectionStrategy, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';\nimport { DataTable } from '../ng-data-table/base';\nimport { SelectItem } from '../common';\nimport { ModalComponent } from '../modal/modal.component';\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\n\n@Component({\n selector: 'dt-column-toggler',\n templateUrl: './dt-column-toggler.component.html',\n styleUrls: ['../styles/buttons.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class DtColumnTogglerComponent implements OnChanges {\n\n @Input() table: DataTable;\n @Input() zIndex: number;\n\n @ViewChild('childModal', {static: false}) childModal: ModalComponent;\n selectColumns: SelectItem[] = [];\n selectedColumns: SelectItem[] = [];\n\n constructor(private cd: ChangeDetectorRef, private commonFilterService: CommonFilterService) {}\n\n //ngOnInit() {\n ngOnChanges(changes: SimpleChanges) {\n this.zIndex = this.zIndex || 3;\n }\n\n onSelectionChange(event: SelectItem[]) {\n this.selectedColumns = event;\n }\n\n createSelectItems() {\n ////https://dmitripavlutin.com/replace-all-string-occurrences-javascript/\n //this.selectedColumns = this.table.columns.filter(x => !x.tableHidden).map(x => ({ id: x.name, name: x.title.replace(new RegExp('
', 'g'), ' ') }) as SelectItem);\n //this.selectColumns = this.table.columns.map(x => ({ id: x.name, name: x.title.replace(new RegExp('
', 'g'), ' ') }) as SelectItem);\n\n this.selectedColumns = this.table.columns.filter(x => !x.tableHidden).map(x => ({ id: x.name, name: x.title }) as SelectItem);\n this.selectColumns = this.table.columns.map(x => ({ id: x.name, name: x.title }) as SelectItem);\n }\n\n save() {\n this.table.columns.forEach(x => {x.tableHidden = true; x.index = 99; });\n this.selectedColumns.forEach((el, i) => {\n const index = this.table.columns.findIndex(x => x.name === el.id);\n this.table.columns[index].tableHidden = false;\n this.table.columns[index].index = i;\n });\n this.commonFilterService.columnToggleIndices(this.selectedColumns);\n\n this.table.columns.sort((a, b) => (a.index > b.index) ? 1 : (a.index < b.index) ? -1 : 0);\n this.table.initColumns();\n this.table.events.onRowsChanged();\n this.table.events.onResizeEnd();\n\n this.childModal.hide();\n this.cd.markForCheck();\n }\n\n open() {\n this.createSelectItems();\n this.childModal.show();\n this.cd.markForCheck();\n }\n\n close() {\n this.childModal.hide();\n this.cd.markForCheck();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DtColumnTogglerComponent } from './dt-column-toggler.component';\nimport { DualListBoxModule } from '../dual-list-box';\nimport { ModalModule } from '../modal';\n\n@NgModule({\n imports: [\n CommonModule,\n DualListBoxModule,\n ModalModule,\n ],\n declarations: [\n DtColumnTogglerComponent\n ],\n exports: [\n DtColumnTogglerComponent,\n ]\n})\nexport class DtColumnTogglerModule { }\n","export * from './dt-column-toggler.module';\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n\r\nimport {DtToolbarComponent} from './dt-toolbar.component';\r\nimport {DtColumnTogglerModule} from '../dt-column-toggler';\r\nimport { DropdownModule } from '../dropdown';\r\n\r\n//https://stackoverflow.com/questions/35159079/is-it-possible-to-use-a-pipe-in-the-code\r\nimport { TitlePipe } from '../pipes';\r\n\r\nimport { PdfViewerNg2Module } from 'src/app/popups/custom/pdf-viewer-ng2';\r\n//import { PdfViewerNg2Component } from 'src/app/popups/custom/pdf-viewer-ng2/pdf-viewer-ng2.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n DtColumnTogglerModule,\r\n DropdownModule,\r\n\r\n PdfViewerNg2Module,\r\n ],\r\n declarations: [\r\n DtToolbarComponent,\r\n\r\n //PdfViewerNg2Component,\r\n ],\r\n exports: [\r\n DtToolbarComponent,\r\n ],\r\n providers: [\r\n TitlePipe,\r\n ]\r\n})\r\nexport class DtToolbarModule {}\r\n","module.exports = \".dt-toolbar-row {\\n display: -ms-flexbox;\\n display: flex;\\n /*margin-right: -5px;\\n margin-left: -5px;\\n margin-bottom: 1rem;*/\\n }\\n\\n.dt-toolbar-col {\\n padding-right: 5px;\\n padding-left: 5px;\\n position: relative;\\n}\\n\\n.dt-global-filter {\\n width: 300px;\\n}\\n\\n.dt-toolbar-col .dt-context-menu {\\n width: 170px;\\n display: none;\\n}\\n\\n.dt-toolbar-col.open .dt-context-menu {\\n display: block;\\n}\\n\\n.dt-toolbar-col .dt-list-menu-item.disabled,\\n.dt-toolbar-col .dt-list-menu-item.disabled:hover {\\n color: silver;\\n background-color: transparent;\\n border: 0;\\n box-shadow: 0 0 0;\\n cursor: default;\\n}\\n\\n.dt-toolbar-flex {\\n display: -ms-flexbox;\\n display: flex;\\n}\\n\\ndiv.disabled {\\n pointer-events: none;\\n cursor: default;\\n color: black;\\n}\\n\\n.showCompleted {\\n background-color: red;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kdC10b29sYmFyL2R0LXRvb2xiYXIuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLG9CQUFhO0lBQWIsYUFBYTtJQUNiOzt5QkFFcUI7RUFDdkI7O0FBRUY7SUFDSSxrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLFlBQVk7QUFDaEI7O0FBRUE7RUFDRSxZQUFZO0VBQ1osYUFBYTtBQUNmOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTs7RUFFRSxhQUFhO0VBQ2IsNkJBQTZCO0VBQzdCLFNBQVM7RUFDVCxpQkFBaUI7RUFDakIsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLG9CQUFhO0VBQWIsYUFBYTtBQUNmOztBQUdBO0VBQ0Usb0JBQW9CO0VBQ3BCLGVBQWU7RUFDZixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxxQkFBcUI7QUFDdkIiLCJmaWxlIjoibGliL2R0LXRvb2xiYXIvZHQtdG9vbGJhci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmR0LXRvb2xiYXItcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC8qbWFyZ2luLXJpZ2h0OiAtNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07Ki9cbiAgfVxuXG4uZHQtdG9vbGJhci1jb2wge1xuICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5kdC1nbG9iYWwtZmlsdGVyIHtcbiAgICB3aWR0aDogMzAwcHg7XG59XG5cbi5kdC10b29sYmFyLWNvbCAuZHQtY29udGV4dC1tZW51IHtcbiAgd2lkdGg6IDE3MHB4O1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZHQtdG9vbGJhci1jb2wub3BlbiAuZHQtY29udGV4dC1tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5kdC10b29sYmFyLWNvbCAuZHQtbGlzdC1tZW51LWl0ZW0uZGlzYWJsZWQsXG4uZHQtdG9vbGJhci1jb2wgLmR0LWxpc3QtbWVudS1pdGVtLmRpc2FibGVkOmhvdmVyIHtcbiAgY29sb3I6IHNpbHZlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgYm94LXNoYWRvdzogMCAwIDA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLmR0LXRvb2xiYXItZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cblxuZGl2LmRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgY29sb3I6IGJsYWNrO1xufVxuXG4uc2hvd0NvbXBsZXRlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJlZDtcbn1cbiJdfQ== */\"","import {\r\n Component, Input, Output, EventEmitter, HostBinding, OnChanges, SimpleChanges, SimpleChange, OnDestroy, ViewEncapsulation,\r\n ChangeDetectionStrategy, ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport { DataTable } from '../ng-data-table/base';\r\nimport { PageEvent } from '../../lib/pagination';\r\nimport { Subscription, concat } from 'rxjs';\r\nimport { downloadCSV, downloadPDF, Keys } from '../common';\r\nimport pdfMake from 'pdfmake/build/pdfmake';\r\nimport pdfFonts from 'pdfmake/build/vfs_fonts';\r\npdfMake.vfs = pdfFonts.pdfMake.vfs;\r\n\r\nimport { TitlePipe } from '../pipes';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\nimport { Router } from '@angular/router';\r\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\r\n\r\n@Component({\r\n selector: 'dt-toolbar',\r\n templateUrl: './dt-toolbar.component.html',\r\n styleUrls: [\r\n './dt-toolbar.component.css',\r\n '../styles/input-group.css',\r\n '../styles/buttons.css',\r\n '../styles/input.css',\r\n '../pagination/pagination.component.css'//Adding Page size styles - IMP\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class DtToolbarComponent implements OnChanges, OnDestroy {\r\n\r\n @Input() table: DataTable;\r\n @Input() createAction: boolean;\r\n @Input() globalFilter: boolean = true;\r\n @Input() clickRows: boolean = false;\r\n @Input() exportIconAction: boolean;\r\n @Input() exportAction: boolean;\r\n @Input() exportKMLAction: boolean;\r\n @Input() columnToggleAction: boolean;\r\n @Input() clearAllFiltersAction: boolean;\r\n @Input() createMessage: string = 'Create';\r\n @Input() goMessage: string = 'Go';\r\n @Input() exportMessage: string = 'Export as Excel';\r\n @Input() exportPDFMessage: string = 'Export as PDF';\r\n @Input() exportCSVMessage: string = 'Export as CSV';\r\n @Input() exportKMLMessage: string = 'Export as GPS KML';\r\n @Input() searchMessage: string = 'Search...';\r\n @Input() actionsMessage: string = 'Actions';\r\n @Input() columnsMessage: string = 'Add More Columns';\r\n @Input() modifyFiltersMessage: string = 'Modify filters';\r\n @Input() clearFiltersMessage: string = 'Clear all filters';\r\n @Input() zIndexColumnToggler: number;\r\n isFilters: boolean = true;\r\n ismainFilterEnabled: boolean = true;\r\n @Input() rsltType: string;\r\n pages: number[];\r\n\r\n @Input()\r\n get perPage(): number { return this._perPage; }\r\n set perPage(value: number) {\r\n this._perPage = value;\r\n this.pages = this.getPages();\r\n }\r\n private _perPage: number = 10;\r\n\r\n @Input()\r\n get pageSizeOptions(): number[] { return this._pageSizeOptions; }\r\n set pageSizeOptions(value: number[]) {\r\n this._pageSizeOptions = (value || []).sort((a, b) => a - b);\r\n }\r\n private _pageSizeOptions: number[] = [];\r\n\r\n @Output() pageChanged = new EventEmitter();\r\n @Output() downloaded = new EventEmitter();\r\n @Output() calleventErrorEvents = new EventEmitter();\r\n @Output() connDropEvents = new EventEmitter();\r\n\r\n @Input()\r\n get totalItems(): number { return this._totalItems; }\r\n set totalItems(value: number) {\r\n this._totalItems = value;\r\n //console.log(value)\r\n this.pages = this.getPages();\r\n }\r\n private _totalItems: number = 0;\r\n\r\n @Input()\r\n get currentPage(): number { return this._currentPage; }\r\n set currentPage(value: number) {\r\n const _previous = this._currentPage;\r\n this._currentPage = (value > this.totalPages()) ? this.totalPages() : (value || 1);\r\n\r\n if (_previous === this._currentPage || typeof _previous === 'undefined') {\r\n return;\r\n }\r\n this.pages = this.getPages();\r\n }\r\n private _currentPage: number = 1;\r\n\r\n\r\n SortCols: string = '';\r\n\r\n\r\n @Output() create: EventEmitter = new EventEmitter();\r\n @Output() clearFilters: EventEmitter = new EventEmitter();\r\n\r\n @HostBinding('class.dt-toolbar') cssClass = true;\r\n\r\n private subscriptions: Subscription[] = [];\r\n TSSelected: number = 1;\r\n\r\n isDeskTop = true;\r\n constructor(private cd: ChangeDetectorRef, private titlePipe: TitlePipe, private commonFilterService: CommonFilterService, private router: Router, private responsive: BreakpointObserver) {\r\n \r\n this.commonFilterService.TSType.subscribe(res => { this.TSSelected = res; });//TsType\r\n\r\n //console.log(this.SortCols)\r\n this.commonFilterService.isFilters$.subscribe(res => {\r\n this.isFilters = res;\r\n });\r\n //if (this.rsltType == 'call-events') {\r\n this.commonFilterService.filterCallEventErrorEvent.subscribe(res => {\r\n this.callEventErrorOrNot = res;\r\n });\r\n //}\r\n //if (this.rsltType == 'nettest') {\r\n this.commonFilterService.filterConnDrop.subscribe(res => {\r\n this.connDropOrNot = res;\r\n });\r\n //}\r\n\r\n ////////// check if user previlege configed any mainfilter or not\r\n if (sessionStorage.getItem('SystemSettings')) {\r\n this.ismainFilterEnabled = JSON.parse(sessionStorage.getItem('SystemSettings')).ismainFilterEnabled;\r\n }\r\n ////////////////////\r\n\r\n this.responsive.observe(['(min-width: 960px)', '(max-width: 1279.99px)', '(min-width: 1280px)', Breakpoints.Web, Breakpoints.WebLandscape, Breakpoints.WebPortrait,\r\n Breakpoints.Tablet, Breakpoints.TabletPortrait, Breakpoints.TabletLandscape,\r\n Breakpoints.Handset, Breakpoints.HandsetLandscape, Breakpoints.HandsetPortrait,\r\n Breakpoints.XSmall, Breakpoints.Small, Breakpoints.Medium, Breakpoints.Large, Breakpoints.XLarge\r\n ])\r\n .subscribe(result => {\r\n\r\n const breakpoints = result.breakpoints;\r\n if (breakpoints[Breakpoints.Tablet] || breakpoints[Breakpoints.TabletPortrait] || breakpoints[Breakpoints.TabletLandscape]\r\n || breakpoints[Breakpoints.Handset] || breakpoints[Breakpoints.HandsetPortrait] || breakpoints[Breakpoints.HandsetLandscape]\r\n || breakpoints[Breakpoints.XSmall] || breakpoints[Breakpoints.Small]) {\r\n this.isDeskTop = false;\r\n if ((breakpoints['(min-width: 960px)'] && breakpoints['(max-width: 1279.99px)']) || breakpoints['(min-width: 1280px)']) {\r\n this.isDeskTop = true;\r\n }\r\n }\r\n else if (breakpoints[Breakpoints.Medium]) {\r\n this.isDeskTop = false;\r\n }\r\n else {\r\n this.isDeskTop = true;\r\n }\r\n });\r\n\r\n }\r\n\r\n //ngOnInit() {\r\n hasFilters: boolean = false;\r\n //hasMoreColumns: boolean;\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n //debugger;\r\n this.commonFilterService.AllGeneralFilter.subscribe(res => {\r\n let genArr = res.filter(el => {\r\n return el[\"ColumnName\"].toUpperCase() != this.SetTimestampSearch(this.TSSelected).toUpperCase();\r\n });\r\n this.hasFilters = genArr.length <= 0 ? false : true;\r\n });\r\n //this.hasFilters = this.table.dataFilter.hasFilters();\r\n //console.log(this.table.sorter.sortMeta.length)\r\n //this.hasMoreColumns = this.table.rsltType == 'pesq' ? true : false;\r\n const subFilter = this.table.events.filterSource$.subscribe(() => {\r\n //console.log('filter')\r\n this.cd.markForCheck();\r\n });\r\n const subSort = this.table.events.sortSource$.subscribe(() => {\r\n //console.log('sort')\r\n this.cd.markForCheck();\r\n let sortMeta = this.table.sorter.sortMeta;\r\n this.SortCols = \"\";\r\n for (const key in sortMeta) {\r\n if (sortMeta[key]) {\r\n let order = sortMeta[key].order;\r\n let orderText = (order === -1) ? 'DESC' : (order === 1) ? 'ASC' : '';\r\n this.SortCols += this.titlePipe.transform(sortMeta[key].title) + ' ' + orderText + ', ';\r\n }\r\n }\r\n\r\n this.SortCols = this.SortCols.substring(0, this.SortCols.length - 2);\r\n });\r\n this.subscriptions.push(subFilter);\r\n this.subscriptions.push(subSort);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n onClickGlobalSearch() {\r\n this.table.events.onFilter();\r\n }\r\n\r\n onKeyPressGlobalSearch(event: KeyboardEvent) {\r\n if (event.which === Keys.ENTER) {\r\n this.table.events.onFilter();\r\n }\r\n }\r\n\r\n downloadCsv() {\r\n const keys = this.table.columns.map(col => col.name);\r\n const titles = this.table.columns.map(col => col.title);\r\n downloadCSV({rows: this.table.rows, keys, titles});\r\n }\r\n downloadMain(type) {\r\n this.downloaded.emit(type);\r\n }\r\n downloadPdf() {\r\n const keys = this.table.columns.map(col => col.name);\r\n const titles = this.table.columns.map(col => col.title);\r\n let row1 = ['Value 1', 'Value 2', 'Value 3', 'Value 4'];\r\n \r\n //console.log(row1);\r\n let values = downloadPDF({ rows: this.table.rows, keys });\r\n\r\n let row2 = [{ text: 'Bold value', bold: true }, 'Val 2', 'Val 3', 'Val 4'];\r\n var docDefinition = {\r\n content: [\r\n {\r\n layout: 'lightHorizontalLines', // optional\r\n table: {\r\n // headers are automatically repeated if the table spans over multiple pages\r\n // you can declare how many rows should be treated as headers\r\n headerRows: 1,\r\n widths: ['*', 'auto', 100, '*'],\r\n\r\n body: [\r\n row1,\r\n //values\r\n ]\r\n }\r\n }\r\n ]\r\n };\r\n\r\n //pdfMake.tableLayouts = {\r\n // exampleLayout: {\r\n // hLineWidth: function (i, node) {\r\n // if (i === 0 || i === node.table.body.length) {\r\n // return 0;\r\n // }\r\n // return (i === node.table.headerRows) ? 2 : 1;\r\n // },\r\n // vLineWidth: function (i) {\r\n // return 0;\r\n // },\r\n // hLineColor: function (i) {\r\n // return i === 1 ? 'black' : '#aaa';\r\n // },\r\n // paddingLeft: function (i) {\r\n // return i === 0 ? 0 : 8;\r\n // },\r\n // paddingRight: function (i, node) {\r\n // return (i === node.table.widths.length - 1) ? 0 : 8;\r\n // }\r\n // }\r\n //};\r\n\r\n pdfMake.createPdf(docDefinition).download(\"Report\");\r\n }\r\n\r\n createActionClick() {\r\n this.create.emit();\r\n }\r\n\r\n modifyFilter() {\r\n //this.router.navigate([{ outlets: { filterPopup: ['filters'], configPopup: null } }]);\r\n let selectedMainFilterCrieriaName = 'null';\r\n this.commonFilterService.mainFilter_CriteriaName.subscribe(res => selectedMainFilterCrieriaName = res);\r\n this.router.navigate([{ outlets: { filterPopup: ['filters', selectedMainFilterCrieriaName], configPopup: null } }]);\r\n\r\n /////// when calling modify search set mainfilter to initial values\r\n //this.commonFilterService.SetMainFilter(0);// set selected mainfilter id\r\n //this.commonFilterService.setMFCustDT(\"\");\r\n //this.commonFilterService.setMFTZON(0);\r\n ////this.commonFilterService.basicRefresh();\r\n }\r\n\r\n clearAllFilters() {\r\n this.table.sorter.sortMeta = [];\r\n //this.table.events.onSort();//IMP- to reset sorting sel cols to none\r\n\r\n ////if (this.table.dataFilter.hasFilters()) {\r\n this.table.dataFilter.clear();\r\n ////console.log(this.table.dataFilter.hasFilters())\r\n\r\n //this.table.events.onFilter();\r\n\r\n ////this.table.events.onFilterClear();\r\n this.clearFilters.emit();\r\n ////}\r\n }\r\n\r\n getPages(): number[] {\r\n const maxSize = 3;\r\n const pages: number[] = [];\r\n let startPage = 1;\r\n const totalPages = this.totalPages();\r\n let endPage = totalPages;\r\n\r\n if (maxSize < totalPages) {\r\n startPage = Math.max(this.currentPage - Math.floor(maxSize / 2), 1);\r\n endPage = startPage + maxSize - 1;\r\n\r\n if (endPage > totalPages) {\r\n endPage = totalPages;\r\n startPage = endPage - maxSize + 1;\r\n }\r\n }\r\n for (let num = startPage; num <= endPage; num++) {\r\n pages.push(num);\r\n }\r\n return pages;\r\n }\r\n totalPages(): number {\r\n const totalPages = this.perPage < 1 ? 1 : Math.ceil(this.totalItems / this.perPage);\r\n return Math.max(totalPages || 0, 1);\r\n }\r\n onChangePageSize(pageSize: number) {\r\n this.perPage = pageSize;\r\n this.currentPage = 1;//start from the beginning but not from the page selected\r\n this.pageChanged.emit({ currentPage: this.currentPage, perPage: this.perPage } as PageEvent);\r\n\r\n let paginationInfo: any = {\r\n PageNumber: this.currentPage,\r\n RecordsPerPage: this.perPage,\r\n }\r\n //console.log(paginationInfo)\r\n this.commonFilterService.setPaginationFilterData(paginationInfo);\r\n this.commonFilterService.ListenPaging();\r\n }\r\n\r\n SetTimestampSearch(tsSearch) {\r\n switch (tsSearch) {\r\n case 0:\r\n return \"CALL_TIMESTAMP\";\r\n case 1:\r\n return \"VQUAD_TIMESTAMP\";\r\n case 2:\r\n return \"VQT_Timestamp\";\r\n case 3:\r\n return \"DCOSS_TIMESTAMP\";\r\n }\r\n\r\n }\r\n\r\n callEventErrorOrNot: boolean = false;\r\n GetCallEventError() {\r\n this.callEventErrorOrNot = !this.callEventErrorOrNot;\r\n this.commonFilterService.setCallEventErrorEvent(this.callEventErrorOrNot);\r\n this.calleventErrorEvents.emit(this.callEventErrorOrNot);\r\n }\r\n\r\n connDropOrNot: boolean = false;\r\n GetConnDrop() {\r\n this.connDropOrNot = !this.connDropOrNot;\r\n this.commonFilterService.setConnDropEvent(this.connDropOrNot);\r\n this.connDropEvents.emit(this.connDropOrNot);\r\n }\r\n\r\n pdfFilePathNew = \"/Webviewer/assets/DowloadedScripts/WebViewerColumnDefinitionHelp.pdf\";//http://localhost:4200/assets/DowloadedScripts/WebViewerColumnDefinitionHelp.pdf\r\n\r\n OpenHelp() {\r\n\r\n let pdfFilePath = '/Webviewer/assets/DowloadedScripts/WebViewerColumnDefinitionHelp.pdf'; //// '/Webviewer/assets/images/ITS/ITSHelp.pdf?v=6.4.2';\r\n\r\n const windowFeatures = 'menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=yes,height = ' + screen.height * .66 + ',width=' + screen.width * .66;\r\n // Open the popup window\r\n //const popupWindow = window.open('', '_blank', 'top=0,left=0,height=100%,width=auto');\r\n const popupWindow = window.open('', '_blank', windowFeatures);\r\n\r\n popupWindow.document.open();\r\n popupWindow.document.write(`\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tWebViewer Common Column Headers Definition Help\r\n\t\t\t\t\t\t\r\n \r\n \r\n \r\n `)\r\n popupWindow.document.close();\r\n // Write the HTML content to the popup window\r\n // popupWindow.document.write(`\r\n // \r\n // \r\n // \r\n // \r\n // \r\n //`);\r\n\r\n // // Make sure to close the document write operation\r\n // popupWindow.document.close();\r\n\r\n }\r\n\r\n}\r\n","export * from './dt-toolbar-module';\n","export interface DtMessages {\n empty: string;\n loading: string;\n clearFilters: string;\n create: string;\n delete: string;\n save: string;\n close: string;\n titleCreate: string;\n titleUpdate: string;\n titleDetailView: string;\n search: string;\n selectAll: string;\n clear: string;\n equals: string;\n notEqual: string;\n lessThan: string;\n lessThanOrEqual: string;\n greaterThan: string;\n greaterThanOrEqual: string;\n inRange: string;\n contains: string;\n notContains: string;\n startsWith: string;\n endsWith: string;\n\n lastYear: string;\n lastSixMonths: string;\n lastMonth: string;\n lastSevenDays: string;\n yesterday: string;\n today: string;\n lastDay: string;\n lastTwelveHours: string;\n lastHour: string;\n lastTenMinutes: string;\n\n go: string;\n column: string;\n value: string;\n export: string;\n refresh: string;\n revertChanges: string;\n duplicate: string;\n cancel: string;\n isEmpty: string;\n isNotEmpty: string;\n selectPlaceholder: string;\n ok: string;\n columns: string;\n actions: string;\n\n notUse: string;//Filters Rating operator\n}\n\nexport class DtMessagesEn implements DtMessages {\n empty = 'No data to display';\n loading = 'Loading...';\n clearFilters = 'Clear all filters';\n create = 'Create';\n delete = 'Delete';\n save = 'Save';\n close = 'Close';\n titleCreate = 'Create';\n titleUpdate = 'Update';\n titleDetailView = 'Detail view';\n search = 'Search...';\n selectAll = 'Select all';\n clear = 'Clear';\n equals = 'Equals';\n notEqual = 'Does not equal';\n lessThan = 'Is less than';\n lessThanOrEqual = 'Is less than or equal to';\n greaterThan = 'Is greater than';\n greaterThanOrEqual = 'Is greater than or equal to';\n inRange = 'In range';\n contains = 'Contains';\n notContains = 'Does not contain';\n startsWith = 'Starts with';//'Begins with';\n endsWith = 'Ends with';\n\n lastYear = 'Last Year';\n lastSixMonths = 'Last 6 Months';\n lastMonth = 'Last Month';\n lastSevenDays = 'Last 7 Days';\n yesterday = 'Yesterday';\n today = 'Today';\n lastDay = 'Last Day';\n lastTwelveHours = 'Last 12 Hours';\n lastHour = 'Last Hour';\n lastTenMinutes = 'Last 10 Minutes';\n\n go = 'Go';\n column = 'Column';\n value = 'Value';\n export = 'Export as Excel';\n refresh = 'Refresh';\n revertChanges = 'Revert Changes';\n duplicate = 'Duplicate';\n cancel = 'Cancel';\n isEmpty = 'Is empty';\n isNotEmpty = 'Is not empty';\n selectPlaceholder = 'Select...';\n ok = 'OK';\n columns = 'Add More Columns';\n actions = 'Actions';\n\n notUse = 'Not Use';\n\n constructor(init?: Partial) {\n if (init) {\n Object.assign(this, init);\n }\n }\n}\n","export * from './dt-messages';\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\n\nimport {DragDropModule} from '../drag-drop';\nimport {DualListBoxComponent} from './dual-list-box.component';\n\n@NgModule({\n imports: [\n CommonModule,\n DragDropModule,\n ],\n declarations: [\n DualListBoxComponent,\n ],\n exports: [\n DualListBoxComponent,\n ],\n providers: []\n})\nexport class DualListBoxModule {}\n","module.exports = \".dt-listbox {\\n display: -ms-flexbox;\\n display: flex;\\n}\\n\\n.dt-listbox-panel {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.dt-listbox-panel button {\\n display: block;\\n margin-bottom: .25em;\\n padding: 2px 6px;\\n}\\n\\n.dt-listbox-panel:nth-child(2n) {\\n padding-top: 1.5em;\\n}\\n\\n.dt-listbox-panel:nth-child(2n+1) {\\n width: calc(50% - 40px);\\n}\\n\\n.dt-listbox-panel .dt-list-menu {\\n height: 200px;\\n overflow: auto;\\n border: 1px solid #ccc;\\n}\\n\\n.dt-listbox-panel + .dt-listbox-panel {\\n margin-left: .5em;\\n}\\n\\n.dt-svg-icon {\\n background-repeat: no-repeat;\\n display: inline-block;\\n fill: currentColor;\\n height: 24px;\\n width: 24px;\\n}\\n\\n.dt-backspace-right {\\n -ms-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.dt-backspace-down {\\n -ms-transform: rotate(-90deg);\\n transform: rotate(-90deg);\\n}\\n\\n.dt-backspace-left {\\n -ms-transform: rotate(0deg);\\n transform: rotate(0deg);\\n}\\n\\n.dt-backspace-up {\\n -ms-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.dt-tab-right {\\n -ms-transform: rotate(0deg);\\n transform: rotate(0deg);\\n}\\n\\n.dt-tab-down {\\n -ms-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.dt-tab-left {\\n -ms-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.dt-tab-up {\\n -ms-transform: rotate(-90deg);\\n transform: rotate(-90deg);\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kdWFsLWxpc3QtYm94L2R1YWwtbGlzdC1ib3guY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLG9CQUFhO0VBQWIsYUFBYTtBQUNmOztBQUVBO0VBQ0Usb0JBQWE7RUFBYixhQUFhO0VBQ2IsMEJBQXNCO01BQXRCLHNCQUFzQjtFQUN0Qix5QkFBaUI7S0FBakIsc0JBQWlCO01BQWpCLHFCQUFpQjtVQUFqQixpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxjQUFjO0VBQ2Qsb0JBQW9CO0VBQ3BCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLGFBQWE7RUFDYixjQUFjO0VBQ2Qsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsNEJBQTRCO0VBQzVCLHFCQUFxQjtFQUNyQixrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLDZCQUF5QjtNQUF6Qix5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSw2QkFBeUI7TUFBekIseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsMkJBQXVCO01BQXZCLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLDRCQUF3QjtNQUF4Qix3QkFBd0I7QUFDMUI7O0FBRUE7RUFDRSwyQkFBdUI7TUFBdkIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsNEJBQXdCO01BQXhCLHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFLDZCQUF5QjtNQUF6Qix5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSw2QkFBeUI7TUFBekIseUJBQXlCO0FBQzNCIiwiZmlsZSI6ImxpYi9kdWFsLWxpc3QtYm94L2R1YWwtbGlzdC1ib3guY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5kdC1saXN0Ym94IHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmR0LWxpc3Rib3gtcGFuZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLmR0LWxpc3Rib3gtcGFuZWwgYnV0dG9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IC4yNWVtO1xuICBwYWRkaW5nOiAycHggNnB4O1xufVxuXG4uZHQtbGlzdGJveC1wYW5lbDpudGgtY2hpbGQoMm4pIHtcbiAgcGFkZGluZy10b3A6IDEuNWVtO1xufVxuXG4uZHQtbGlzdGJveC1wYW5lbDpudGgtY2hpbGQoMm4rMSkge1xuICB3aWR0aDogY2FsYyg1MCUgLSA0MHB4KTtcbn1cblxuLmR0LWxpc3Rib3gtcGFuZWwgLmR0LWxpc3QtbWVudSB7XG4gIGhlaWdodDogMjAwcHg7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xufVxuXG4uZHQtbGlzdGJveC1wYW5lbCArIC5kdC1saXN0Ym94LXBhbmVsIHtcbiAgbWFyZ2luLWxlZnQ6IC41ZW07XG59XG5cbi5kdC1zdmctaWNvbiB7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICBoZWlnaHQ6IDI0cHg7XG4gIHdpZHRoOiAyNHB4O1xufVxuXG4uZHQtYmFja3NwYWNlLXJpZ2h0IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuLmR0LWJhY2tzcGFjZS1kb3duIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbn1cblxuLmR0LWJhY2tzcGFjZS1sZWZ0IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG59XG5cbi5kdC1iYWNrc3BhY2UtdXAge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG5cbi5kdC10YWItcmlnaHQge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbn1cblxuLmR0LXRhYi1kb3duIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xufVxuXG4uZHQtdGFiLWxlZnQge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuXG4uZHQtdGFiLXVwIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbn1cbiJdfQ== */\"","import {\n Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ViewEncapsulation, HostBinding, ViewChild, ElementRef\n} from '@angular/core';\nimport { SelectItem } from '../common';\nimport { isBlank, arrayMove, arrayTransfer } from '../common/utils';\nimport { DragElementEvent, DropElementEvent } from '../drag-drop';\n\n@Component({\n selector: 'app-dual-list-box',\n templateUrl: 'dual-list-box.component.html',\n styleUrls: [\n 'dual-list-box.component.css',\n '../styles/input.css',\n '../styles/buttons.css',\n '../styles/list-menu.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class DualListBoxComponent {\n\n @Input() sourceTitle: string;\n @Input() targetTitle: string;\n @Input() disabled: boolean;\n\n @Input()\n get source(): SelectItem[] { return this._source; }\n set source(value: SelectItem[]) {\n this._source = value;\n this.filterSource();\n }\n private _source: SelectItem[];\n\n @Input()\n get target(): SelectItem[] { return this._target; }\n set target(value: SelectItem[]) {\n this._target = value;\n this.filterSource();\n }\n private _target: SelectItem[];\n\n @Output() targetChange: EventEmitter = new EventEmitter();\n\n @HostBinding('class.dt-listbox') cssClass = true;\n @ViewChild('sourceList', {static: false}) sourceList: ElementRef;\n @ViewChild('targetList', {static: false}) targetList: ElementRef;\n\n sourceModel: any;\n targetModel: any;\n dragElementEvent: DragElementEvent;\n\n constructor() { }\n\n moveRight() {\n if (!isBlank(this.sourceModel) && !isBlank(this.source)) {\n const selectedItemIndex = this.source.findIndex(x => x.id === this.sourceModel);\n arrayTransfer(this.source, this.target, selectedItemIndex, this.target.length);\n this.sourceModel = null;\n\n this.targetChange.emit(this.target);\n }\n }\n\n moveRightAll() {\n if (!isBlank(this.source)) {\n this.target = [...this.target, ... this.source];\n this.source = [];\n this.sourceModel = null;\n\n this.targetChange.emit(this.target);\n }\n }\n\n moveLeft() {\n if (!isBlank(this.targetModel) && !isBlank(this.target)) {\n const selectedItemIndex = this.target.findIndex(x => x.id === this.targetModel);\n arrayTransfer(this.target, this.source, selectedItemIndex, this.source.length);\n this.targetModel = null;\n\n this.targetChange.emit(this.target);\n }\n }\n\n moveLeftAll() {\n if (!isBlank(this.target)) {\n this.target.forEach(item => this.source.push(item));\n this.target = [];\n this.targetModel = null;\n\n this.targetChange.emit(this.target);\n }\n }\n\n moveUp() {\n if (!isBlank(this.targetModel) && this.target.length > 1) {\n const selectedItemIndex = this.target.findIndex(x => x.id === this.targetModel);\n if (selectedItemIndex !== 0) {\n arrayMove(this.target, selectedItemIndex, selectedItemIndex - 1);\n if (this.targetList.nativeElement.children[selectedItemIndex]) {\n this.targetList.nativeElement.children[selectedItemIndex].scrollIntoView({block: 'center', behavior: 'smooth'});\n }\n\n this.targetChange.emit(this.target);\n }\n }\n }\n\n moveTop() {\n if (!isBlank(this.targetModel) && this.target.length > 1) {\n const selectedItemIndex = this.target.findIndex(x => x.id === this.targetModel);\n if (selectedItemIndex !== 0) {\n arrayMove(this.target, selectedItemIndex, 0);\n this.targetList.nativeElement.scrollTop = 0;\n\n this.targetChange.emit(this.target);\n }\n }\n }\n\n moveDown() {\n if (!isBlank(this.targetModel) && this.target.length > 1) {\n const selectedItemIndex = this.target.findIndex(x => x.id === this.targetModel);\n if (selectedItemIndex !== (this.target.length - 1)) {\n arrayMove(this.target, selectedItemIndex, selectedItemIndex + 1);\n if (this.targetList.nativeElement.children[selectedItemIndex]) {\n this.targetList.nativeElement.children[selectedItemIndex].scrollIntoView({block: 'center', behavior: 'smooth'});\n }\n\n this.targetChange.emit(this.target);\n }\n }\n }\n\n moveBottom() {\n if (!isBlank(this.targetModel) && this.target.length > 1) {\n const selectedItemIndex = this.target.findIndex(x => x.id === this.targetModel);\n if (selectedItemIndex !== (this.target.length - 1)) {\n arrayMove(this.target, selectedItemIndex, this.target.length);\n this.targetList.nativeElement.scrollTop = this.targetList.nativeElement.scrollHeight;\n\n this.targetChange.emit(this.target);\n }\n }\n }\n\n filterSource() {\n if (this.source && this.source.length && this.target && this.target.length) {\n this._source = this.source.filter(x => this.target.every(t => t.id !== x.id));\n }\n }\n\n get isBlankSourceModel() {\n return isBlank(this.sourceModel);\n }\n\n get isBlankTargetModel() {\n return isBlank(this.targetModel);\n }\n\n onDragStart(event: DragEvent, index: number) {\n event.dataTransfer.setData('text', index.toString());\n event.dataTransfer.effectAllowed = 'move';\n this.dragElementEvent = { event, index };\n }\n\n onDropSource(event: DropElementEvent) {\n if (event.type === 'reorder') {\n arrayMove(this.source, event.previousIndex, event.currentIndex);\n } else {\n arrayTransfer(this.target, this.source, event.previousIndex, event.currentIndex);\n }\n this.targetModel = null;\n\n this.targetChange.emit(this.target);\n }\n\n onDropTarget(event: DropElementEvent) {\n if (event.type === 'reorder') {\n arrayMove(this.target, event.previousIndex, event.currentIndex);\n } else {\n arrayTransfer(this.source, this.target, event.previousIndex, event.currentIndex);\n }\n this.sourceModel = null;\n\n this.targetChange.emit(this.target);\n }\n\n}\n","export * from './dual-list-box-module';\n","import {Component, ChangeDetectionStrategy} from '@angular/core';\nimport {InputComponent} from './input.component';\nimport {inputFormattedDate} from '../common/utils';\n\n@Component({\n selector: 'app-form-calendar',\n template: `\n
\n \n \n
\n {{err}}
\n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarComponent extends InputComponent {\n\n get formattedDate() {\n return inputFormattedDate(this.dynElement.type, this.model);\n }\n\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { InputOptionComponent } from './input-option.component';\nimport { SelectItem } from '../common';\n\n@Component({\n selector: 'app-form-checkbox',\n template: `\n
\n \n \n
\n \n \n \n \n
\n
\n {{err}}
\n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent extends InputOptionComponent {\n\n isSelectActive(option: SelectItem): boolean {\n if (Array.isArray(this.model)) {\n return this.model.some(a => a === option.id);\n } else {\n return this.model === option.id;\n }\n }\n\n onChecked(e: Event, option: SelectItem) {\n const checkbox = e.target as HTMLInputElement;\n (checkbox.checked) ? this.check(option) : this.uncheck(option);\n }\n\n check(option: SelectItem) {\n if (Array.isArray(this.model)) {\n if (this.model.indexOf(option.id) === -1) {\n this.model.push(option.id);\n }\n } else {\n return this.model = option.id;\n }\n }\n\n uncheck(option: SelectItem) {\n if (Array.isArray(this.model)) {\n const index = this.model.indexOf(option.id);\n if (index > -1) {\n this.model.splice(index, 1);\n }\n } else {\n return this.model = null;\n }\n }\n\n}\n","import {TemplateRef} from '@angular/core';\nimport {ElementType} from './types';\nimport {SelectItem} from '../common';\n\nexport class DynamicFormElement {\n title: string;\n name: string;\n options?: SelectItem[];\n optionsUrl?: string;\n type?: ElementType;\n validatorFunc?: (name: string, value: any) => string[];\n dependsElement?: string;\n cellTemplate?: TemplateRef;\n hidden?: boolean;\n keyElement?: string;\n disableOnEdit?: boolean;\n\n getOptions(dependsValue?: any): SelectItem[] {\n if (this.options) {\n if (this.dependsElement && dependsValue) {\n return this.options.filter((value) => value.parentId === dependsValue);\n } else {\n return this.options;\n }\n }\n }\n\n validate(value: any): string[] {\n if (this.validatorFunc) {\n return this.validatorFunc(this.title, value);\n }\n return [];\n }\n\n get isDateType(): boolean {\n return (this.type === 'date' || this.type === 'datetime-local' || this.type === 'month');\n }\n\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ModalSelectModule} from '../modal-select';\nimport {DropdownSelectModule} from '../dropdown-select';\n\nimport {DynamicFormComponent} from './dynamic-form.component';\nimport {InputComponent} from './input.component';\nimport {InputOptionComponent} from './input-option.component';\nimport {SelectComponent} from './select.component';\nimport {CheckboxComponent} from './checkbox.component';\nimport {RadioComponent} from './radio.component';\nimport {InputTextComponent} from './input-text.component';\nimport {TextareaComponent} from './textarea.component';\nimport {CalendarComponent} from './calendar.component';\nimport {SelectPopupComponent} from './select-popup.component';\nimport {SelectDropdownComponent} from './select-dropdown.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ModalSelectModule,\n DropdownSelectModule,\n ],\n declarations: [\n DynamicFormComponent,\n InputComponent,\n InputOptionComponent,\n SelectComponent,\n CheckboxComponent,\n RadioComponent,\n InputTextComponent,\n TextareaComponent,\n CalendarComponent,\n SelectPopupComponent,\n SelectDropdownComponent,\n ],\n exports: [\n DynamicFormComponent,\n ],\n providers: []\n})\nexport class DynamicFormModule {}\n","import {\n Component, Input, ViewChild, ViewContainerRef, OnDestroy, Output, EventEmitter, ViewEncapsulation,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport {GetOptionsFunc, KeyElementChangeEventArgs} from './types';\nimport {DynamicFormElement} from './dynamic-form-element';\n\n@Component({\n selector: 'app-dynamic-form',\n templateUrl: 'dynamic-form.component.html',\n styleUrls: [\n '../styles/input.css',\n '../styles/checkbox.css',\n '../styles/radio.css',\n '../styles/spinners.css',\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\nexport class DynamicFormComponent implements OnDestroy {\n\n @Input() dynElements: DynamicFormElement[];\n @Input() item: any;\n @Input() isNewItem: boolean = true;\n @Input() getOptionsFunc: GetOptionsFunc;\n @Input() selectPlaceholder: string;\n @Input() searchInputPlaceholder: string;\n\n @Output() valid: EventEmitter = new EventEmitter();\n @Output() loaded: EventEmitter = new EventEmitter();\n\n @ViewChild('cellTemplate', {static: true}) cellTemplate: ViewContainerRef;\n private validElements: any = {};\n\n constructor() {}\n\n ngOnDestroy(): void {\n if (this.cellTemplate) {\n this.cellTemplate.clear();\n }\n }\n\n elemEnabled(dynElement: DynamicFormElement): boolean {\n return (!dynElement.hidden);\n }\n\n onValid(event: any, dynElement: DynamicFormElement) {\n this.validElements[dynElement.name] = event;\n this.isValid();\n }\n\n isValid() {\n const result = Object.keys(this.validElements).some(x => this.validElements[x] === false);\n this.valid.emit(!result);\n }\n\n onKeyElementChange(event: KeyElementChangeEventArgs) {\n this.item[event.keyElementName] = event.keyElementValue;\n this.item[event.elementName] = event.elementValue;\n }\n\n isDisabled(dynElement: DynamicFormElement) {\n return (!this.isNewItem && dynElement.disableOnEdit);\n }\n\n onSelectPopupNameChanged(value: any, dynElement: DynamicFormElement) {\n if (dynElement.keyElement) {\n this.item[dynElement.name] = value;\n }\n }\n\n}\n","export * from './dynamic-form-module';\nexport * from './types';\nexport * from './dynamic-form-element';\n","import {Component, Input, Output, OnInit, EventEmitter, ChangeDetectionStrategy} from '@angular/core';\nimport {GetOptionsFunc, KeyElementChangeEventArgs} from './types';\nimport {InputComponent} from './input.component';\nimport {SelectItem} from '../common';\n\n@Component({\n selector: 'app-form-input-option',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InputOptionComponent extends InputComponent implements OnInit {\n\n @Input() getOptionsFunc: GetOptionsFunc;\n @Input() searchInputPlaceholder: string;\n @Output() keyElementChange: EventEmitter = new EventEmitter();\n @Output() loaded: EventEmitter = new EventEmitter();\n\n @Input()\n get dependsValue(): any { return this._dependsValue; }\n set dependsValue(value: any) {\n if (this._dependsValue !== value) {\n this._dependsValue = value;\n this.setDependsOptions();\n }\n }\n private _dependsValue: any;\n\n private _options: SelectItem[];\n private firstCascade: boolean = true;\n\n ngOnInit() {\n if (this.dynElement.optionsUrl && !this.dynElement.dependsElement) {\n this.loadOptions();\n } else {\n this._options = this.dynElement.getOptions(this.dependsValue);\n }\n this.validate();\n }\n\n setDependsOptions() {\n if (this.dependsValue) {\n if (this.dynElement.optionsUrl) {\n this.loadOptions();\n } else {\n this._options = this.dynElement.getOptions(this.dependsValue);\n this.setDefaultSelect();\n }\n } else {\n this._options = [];\n }\n }\n\n loadOptions() {\n if (this.dynElement.optionsUrl && this.getOptionsFunc) {\n this.loading = true;\n this.getOptionsFunc(this.dynElement.optionsUrl, this._dependsValue).then((res) => {\n this._options = res;\n this.setDefaultSelect();\n this.loaded.emit();\n }).catch(error => {\n this._options = [];\n this.loaded.emit();\n }).finally(() => this.loading = false);\n }\n }\n\n getOptions(): SelectItem[] {\n return this._options;\n }\n\n onValueChange() {\n if (this.dynElement.keyElement) {\n this.keyElementChange.emit({\n keyElementName: this.dynElement.keyElement,\n keyElementValue: this.model,\n elementName: this.dynElement.name,\n elementValue: this.getName(),\n });\n }\n }\n\n setDefaultSelect() {\n const initValueOnEdit = (this.firstCascade && this.model !== null && this.model !== undefined && this.model.length !== 0);\n if (!initValueOnEdit) {\n this.model = '';\n if (this._options && this._options.length === 1) {\n this.model = this._options[0].id;\n }\n this.onValueChange();\n }\n this.firstCascade = false;\n }\n\n getName() {\n if (this._options) {\n const option = this._options.find(x => x.id === this.model);\n return (option) ? option.name : '';\n }\n }\n\n}\n","import {Component, ChangeDetectionStrategy} from '@angular/core';\nimport {InputComponent} from './input.component';\n\n@Component({\n selector: 'app-form-input-text',\n template: `\n
\n \n \n
\n {{err}}
\n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InputTextComponent extends InputComponent {\n\n}\n","import {Component, Input, Output, OnInit, EventEmitter, ChangeDetectionStrategy} from '@angular/core';\nimport {DynamicFormElement} from './dynamic-form-element';\n\n@Component({\n selector: 'app-form-input',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InputComponent implements OnInit {\n\n @Input() dynElement: DynamicFormElement;\n @Input() disabled: boolean;\n @Input() placeholder: string;\n @Output() valueChange: EventEmitter = new EventEmitter();\n @Output() valid: EventEmitter = new EventEmitter();\n\n @Input('value')\n get model(): any { return this._model; }\n set model(value: any) {\n if (this._model !== value) {\n this._model = value;\n this.valueChange.emit(this._model);\n this.validate();\n }\n }\n private _model: any;\n\n errors: any[] = [];\n loading: boolean;\n\n constructor() {}\n\n ngOnInit() {\n this.validate();\n }\n\n validate() {\n this.errors = this.dynElement.validate(this.model);\n }\n\n hasError() {\n const hasError = (this.errors && this.errors.length > 0);\n this.valid.emit(!hasError);\n return hasError;\n }\n\n}\n","import {Component, ChangeDetectionStrategy} from '@angular/core';\nimport {InputOptionComponent} from './input-option.component';\n\n@Component({\n selector: 'app-form-radio',\n template: `\n
\n \n \n
\n \n \n \n \n
\n
\n {{err}}
\n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioComponent extends InputOptionComponent {\n\n}\n","import {Component, ChangeDetectionStrategy} from '@angular/core';\nimport {InputOptionComponent} from './input-option.component';\n\n@Component({\n selector: 'app-form-select-dropdown',\n template: `\n
\n \n \n \n \n
\n {{err}}
\n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectDropdownComponent extends InputOptionComponent {\n\n}\n","import {Component, Output, EventEmitter, ChangeDetectionStrategy} from '@angular/core';\nimport {InputOptionComponent} from './input-option.component';\n\n@Component({\n selector: 'app-form-select-popup',\n template: `\n
\n \n \n \n \n
\n {{err}}
\n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectPopupComponent extends InputOptionComponent {\n\n @Output() nameChanged: EventEmitter = new EventEmitter();\n\n}\n","import {Component, ChangeDetectionStrategy} from '@angular/core';\nimport {InputOptionComponent} from './input-option.component';\n\n@Component({\n selector: 'app-form-select',\n template: `\n
\n \n \n \n
\n {{err}}
\n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectComponent extends InputOptionComponent {\n\n}\n","import {Component, ChangeDetectionStrategy} from '@angular/core';\nimport {InputComponent} from './input.component';\n\n@Component({\n selector: 'app-form-textarea',\n template: `\n
\n \n \n
\n {{err}}
\n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TextareaComponent extends InputComponent {\n\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJsaWIvZmlsdGVycy10YWJzL2NvbHVtbi1zZXR1cC9jb2x1bW4tc2V0dXAuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { SelectItem, Keys } from 'lib/common';\r\n\r\n@Component({\r\n selector: 'app-column-setup',\r\n templateUrl: './column-setup.component.html',\r\n styleUrls: ['./column-setup.component.scss', '../../styles/input.css', '../../styles/dual-list-box.css']\r\n})\r\nexport class ColumnSetupComponent implements OnInit {\r\n\r\n source: SelectItem[] = [\r\n { id: 1, name: 'name 1' },\r\n { id: 2, name: 'name 2' },\r\n { id: 3, name: 'name 3' },\r\n { id: 4, name: 'name 4' },\r\n { id: 5, name: 'name 5' },\r\n { id: 6, name: 'name 6' },\r\n { id: 7, name: 'name 7' },\r\n { id: 8, name: 'name 8' },\r\n ];\r\n target: SelectItem[] = [\r\n { id: 9, name: 'name 9' },\r\n { id: 10, name: 'name 10' },\r\n { id: 11, name: 'name 11' },\r\n { id: 12, name: 'name 12' },\r\n ];\r\n\r\n constructor() { }\r\n\r\n onSelectionChange(event) {\r\n console.log(event);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"/**\\n * tabsNormal\\n */\\n.tabsNormal {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n}\\n.tabsNormal label {\\n -ms-flex-order: 1;\\n order: 1;\\n display: block;\\n padding: 1rem 2rem;\\n margin-right: 0.2rem;\\n cursor: pointer;\\n background: #DCE0E3;\\n font-weight: bold;\\n transition: background ease 0.2s;\\n}\\n.tabsNormal .tabNormal {\\n -ms-flex-order: 99;\\n order: 99;\\n -ms-flex-positive: 1;\\n flex-grow: 1;\\n width: 100%;\\n display: none;\\n padding: 1rem;\\n background: #fff;\\n}\\n.tabsNormal input[type=radio] {\\n display: none;\\n}\\n.tabsNormal input[type=radio]:checked + label {\\n background: #90CAF9;\\n}\\n.tabsNormal input[type=radio]:checked + label + .tabNormal {\\n display: block;\\n}\\n@media (max-width: 45em) {\\n .tabsNormal .tabNormal,\\n.tabsNormal label {\\n -ms-flex-order: initial;\\n order: initial;\\n }\\n\\n .tabsNormal label {\\n width: 100%;\\n margin-right: 0;\\n margin-top: 0.2rem;\\n }\\n}\\n/**\\n * Generic Styling\\n*/\\nbody {\\n background: #eee;\\n min-height: 100vh;\\n box-sizing: border-box;\\n padding-top: 10vh;\\n font-family: \\\"HelveticaNeue-Light\\\", \\\"Helvetica Neue Light\\\", \\\"Helvetica Neue\\\", Helvetica, Arial, \\\"Lucida Grande\\\", sans-serif;\\n font-weight: 300;\\n line-height: 1.5;\\n max-width: 60rem;\\n margin: 0 auto;\\n font-size: 112%;\\n}\\n.filterTabsLabelClass {\\n font-size: 12px;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n width: 80px;\\n white-space: nowrap;\\n font-weight: bold;\\n}\\n.flex-filterTabs-container {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n /*justify-content: flex-end;\\n align-items: center;\\n min-height: 48px;\\n padding: 0 8px;*/\\n}\\n.dropdown-select-filterTabs-demo {\\n display: -ms-flexbox;\\n display: flex;\\n}\\n/*.dropdown-select-filterTabs-demo .sl-filterTabs-column {\\n margin-right: 1.875rem;\\n width: 11.625rem;\\n}*/\\n.sl-filterTabs-column {\\n width: 250px;\\n}\\n.lineSpaceDiv {\\n height: 8px;\\n}\\n.spaceDiv {\\n width: 60px;\\n}\\n.spinner_overlay {\\n position: fixed;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #fff;\\n opacity: 0.5;\\n z-index: 1000;\\n}\\n.spinner {\\n position: absolute;\\n left: 50%;\\n top: 20%;\\n height: 60px;\\n width: 60px;\\n margin: 0px auto;\\n -webkit-animation: rotation 0.6s infinite linear;\\n animation: rotation 0.6s infinite linear;\\n border-left: 6px solid rgba(0, 174, 239, 0.15);\\n border-right: 6px solid rgba(0, 174, 239, 0.15);\\n border-bottom: 6px solid rgba(0, 174, 239, 0.15);\\n border-top: 6px solid rgba(0, 174, 239, 0.8);\\n border-radius: 100%;\\n}\\n.mat-selected {\\n background: darkblue !important;\\n color: lightgray !important;\\n}\\n/*background colr change after selcting option*/\\n.mat-selecte-default {\\n background: darkblue !important;\\n color: lightgray !important;\\n}\\n/*bold filtered options while typing*/\\n.highlight {\\n font-weight: bold;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9maWx0ZXJzLXRhYnMvRDpcXFNyY3dlYlxcVlMyMDE3IFByb2plY3RzXFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3L2xpYlxcZmlsdGVycy10YWJzXFxmaWx0ZXJzLXRhYnMuY29tcG9uZW50LnNjc3MiLCJsaWIvZmlsdGVycy10YWJzL2ZpbHRlcnMtdGFicy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7RUFBQTtBQUdBO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0EsbUJBQUE7TUFBQSxlQUFBO0FDQ0Y7QURFQTtFQUNFLGlCQUFBO01BQUEsUUFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLG9CQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQ0FBQTtBQ0NGO0FERUE7RUFDRSxrQkFBQTtNQUFBLFNBQUE7RUFDQSxvQkFBQTtNQUFBLFlBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtFQUNBLGFBQUE7RUFDQSxnQkFBQTtBQ0NGO0FERUE7RUFDRSxhQUFBO0FDQ0Y7QURFQTtFQUNFLG1CQUFBO0FDQ0Y7QURFQTtFQUNFLGNBQUE7QUNDRjtBREVBO0VBQ0U7O0lBRUUsdUJBQUE7UUFBQSxjQUFBO0VDQ0Y7O0VERUE7SUFDRSxXQUFBO0lBQ0EsZUFBQTtJQUNBLGtCQUFBO0VDQ0Y7QUFDRjtBREVBOztDQUFBO0FBR0E7RUFDRSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0Esc0JBQUE7RUFDQSxpQkFBQTtFQUNBLDJIQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0EsY0FBQTtFQUNBLGVBQUE7QUNBRjtBREdBO0VBQ0UsZUFBQTtFQUNBLGtEQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsaUJBQUE7QUNBRjtBREVBO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0EsbUJBQUE7TUFBQSxlQUFBO0VBQ0E7OztrQkFBQTtBQ0lGO0FERUE7RUFDRSxvQkFBQTtFQUFBLGFBQUE7QUNDRjtBREVBOzs7RUFBQTtBQUlBO0VBQ0UsWUFBQTtBQ0NGO0FEQ0E7RUFDRSxXQUFBO0FDRUY7QURBQTtFQUNFLFdBQUE7QUNHRjtBREVBO0VBQ0UsZUFBQTtFQUNBLE9BQUE7RUFDQSxNQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0FDQ0Y7QURFQTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsZ0RBQUE7RUFHQSx3Q0FBQTtFQUNBLDhDQUFBO0VBQ0EsK0NBQUE7RUFDQSxnREFBQTtFQUNBLDRDQUFBO0VBQ0EsbUJBQUE7QUNDRjtBRElBO0VBQ0UsK0JBQUE7RUFDQSwyQkFBQTtBQ0RGO0FER0EsK0NBQUE7QUFDQTtFQUNFLCtCQUFBO0VBQ0EsMkJBQUE7QUNBRjtBREdBLHFDQUFBO0FBQ0E7RUFDRSxpQkFBQTtBQ0FGIiwiZmlsZSI6ImxpYi9maWx0ZXJzLXRhYnMvZmlsdGVycy10YWJzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIHRhYnNOb3JtYWxcclxuICovXHJcbi50YWJzTm9ybWFsIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDsgLy8gbWFrZSBzdXJlIGl0IHdyYXBzXHJcbn1cclxuXHJcbi50YWJzTm9ybWFsIGxhYmVsIHtcclxuICBvcmRlcjogMTsgLy8gUHV0IHRoZSBsYWJlbHMgZmlyc3RcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwYWRkaW5nOiAxcmVtIDJyZW07XHJcbiAgbWFyZ2luLXJpZ2h0OiAwLjJyZW07XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGJhY2tncm91bmQ6ICNEQ0UwRTM7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCBlYXNlIDAuMnM7XHJcbn1cclxuXHJcbi50YWJzTm9ybWFsIC50YWJOb3JtYWwge1xyXG4gIG9yZGVyOiA5OTsgLy8gUHV0IHRoZSB0YWJzTm9ybWFsIGxhc3RcclxuICBmbGV4LWdyb3c6IDE7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBwYWRkaW5nOiAxcmVtO1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7XHJcbn1cclxuXHJcbi50YWJzTm9ybWFsIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLnRhYnNOb3JtYWwgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbCB7XHJcbiAgYmFja2dyb3VuZDogIzkwQ0FGOTtcclxufVxyXG5cclxuLnRhYnNOb3JtYWwgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbCArIC50YWJOb3JtYWwge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNDVlbSkge1xyXG4gIC50YWJzTm9ybWFsIC50YWJOb3JtYWwsXHJcbiAgLnRhYnNOb3JtYWwgbGFiZWwge1xyXG4gICAgb3JkZXI6IGluaXRpYWw7XHJcbiAgfVxyXG5cclxuICAudGFic05vcm1hbCBsYWJlbCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgIG1hcmdpbi10b3A6IDAuMnJlbTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmljIFN0eWxpbmdcclxuKi9cclxuYm9keSB7XHJcbiAgYmFja2dyb3VuZDogI2VlZTtcclxuICBtaW4taGVpZ2h0OiAxMDB2aDtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIHBhZGRpbmctdG9wOiAxMHZoO1xyXG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYU5ldWUtTGlnaHRcIiwgXCJIZWx2ZXRpY2EgTmV1ZSBMaWdodFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIFwiTHVjaWRhIEdyYW5kZVwiLCBzYW5zLXNlcmlmO1xyXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICBtYXgtd2lkdGg6IDYwcmVtO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIGZvbnQtc2l6ZTogMTEyJTtcclxufVxyXG5cclxuLmZpbHRlclRhYnNMYWJlbENsYXNzIHtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbiAgd2lkdGg6IDgwcHg7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG4uZmxleC1maWx0ZXJUYWJzLWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgLypqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgbWluLWhlaWdodDogNDhweDtcclxuICBwYWRkaW5nOiAwIDhweDsqL1xyXG59XHJcblxyXG4uZHJvcGRvd24tc2VsZWN0LWZpbHRlclRhYnMtZGVtbyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuLyouZHJvcGRvd24tc2VsZWN0LWZpbHRlclRhYnMtZGVtbyAuc2wtZmlsdGVyVGFicy1jb2x1bW4ge1xyXG4gIG1hcmdpbi1yaWdodDogMS44NzVyZW07XHJcbiAgd2lkdGg6IDExLjYyNXJlbTtcclxufSovXHJcbi5zbC1maWx0ZXJUYWJzLWNvbHVtbiB7XHJcbiAgd2lkdGg6IDI1MHB4O1xyXG59XHJcbi5saW5lU3BhY2VEaXYge1xyXG4gIGhlaWdodDogOHB4O1xyXG59XHJcbi5zcGFjZURpdiB7XHJcbiAgd2lkdGg6IDYwcHg7XHJcbn1cclxuXHJcblxyXG5cclxuLnNwaW5uZXJfb3ZlcmxheSB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIGxlZnQ6IDA7XHJcbiAgdG9wOiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gIG9wYWNpdHk6IDAuNTtcclxuICB6LWluZGV4OiAxMDAwO1xyXG59XHJcblxyXG4uc3Bpbm5lciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0b3A6IDIwJTtcclxuICBoZWlnaHQ6IDYwcHg7XHJcbiAgd2lkdGg6IDYwcHg7XHJcbiAgbWFyZ2luOiAwcHggYXV0bztcclxuICAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRpb24gLjZzIGluZmluaXRlIGxpbmVhcjtcclxuICAtbW96LWFuaW1hdGlvbjogcm90YXRpb24gLjZzIGluZmluaXRlIGxpbmVhcjtcclxuICAtby1hbmltYXRpb246IHJvdGF0aW9uIC42cyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgYW5pbWF0aW9uOiByb3RhdGlvbiAuNnMgaW5maW5pdGUgbGluZWFyO1xyXG4gIGJvcmRlci1sZWZ0OiA2cHggc29saWQgcmdiYSgwLDE3NCwyMzksLjE1KTtcclxuICBib3JkZXItcmlnaHQ6IDZweCBzb2xpZCByZ2JhKDAsMTc0LDIzOSwuMTUpO1xyXG4gIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCByZ2JhKDAsMTc0LDIzOSwuMTUpO1xyXG4gIGJvcmRlci10b3A6IDZweCBzb2xpZCByZ2JhKDAsMTc0LDIzOSwuOCk7XHJcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxufVxyXG5cclxuXHJcblxyXG4ubWF0LXNlbGVjdGVkIHtcclxuICBiYWNrZ3JvdW5kOiBkYXJrYmx1ZSAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiBsaWdodGdyYXkgIWltcG9ydGFudDtcclxufVxyXG4vKmJhY2tncm91bmQgY29sciBjaGFuZ2UgYWZ0ZXIgc2VsY3Rpbmcgb3B0aW9uKi9cclxuLm1hdC1zZWxlY3RlLWRlZmF1bHQge1xyXG4gIGJhY2tncm91bmQ6IGRhcmtibHVlICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6IGxpZ2h0Z3JheSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4vKmJvbGQgZmlsdGVyZWQgb3B0aW9ucyB3aGlsZSB0eXBpbmcqL1xyXG4uaGlnaGxpZ2h0IHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG4iLCIvKipcbiAqIHRhYnNOb3JtYWxcbiAqL1xuLnRhYnNOb3JtYWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi50YWJzTm9ybWFsIGxhYmVsIHtcbiAgb3JkZXI6IDE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gIG1hcmdpbi1yaWdodDogMC4ycmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6ICNEQ0UwRTM7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIGVhc2UgMC4ycztcbn1cblxuLnRhYnNOb3JtYWwgLnRhYk5vcm1hbCB7XG4gIG9yZGVyOiA5OTtcbiAgZmxleC1ncm93OiAxO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMXJlbTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLnRhYnNOb3JtYWwgaW5wdXRbdHlwZT1yYWRpb10ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udGFic05vcm1hbCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkICsgbGFiZWwge1xuICBiYWNrZ3JvdW5kOiAjOTBDQUY5O1xufVxuXG4udGFic05vcm1hbCBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkICsgbGFiZWwgKyAudGFiTm9ybWFsIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0NWVtKSB7XG4gIC50YWJzTm9ybWFsIC50YWJOb3JtYWwsXG4udGFic05vcm1hbCBsYWJlbCB7XG4gICAgb3JkZXI6IGluaXRpYWw7XG4gIH1cblxuICAudGFic05vcm1hbCBsYWJlbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi10b3A6IDAuMnJlbTtcbiAgfVxufVxuLyoqXG4gKiBHZW5lcmljIFN0eWxpbmdcbiovXG5ib2R5IHtcbiAgYmFja2dyb3VuZDogI2VlZTtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmctdG9wOiAxMHZoO1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2FOZXVlLUxpZ2h0XCIsIFwiSGVsdmV0aWNhIE5ldWUgTGlnaHRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBcIkx1Y2lkYSBHcmFuZGVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWF4LXdpZHRoOiA2MHJlbTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGZvbnQtc2l6ZTogMTEyJTtcbn1cblxuLmZpbHRlclRhYnNMYWJlbENsYXNzIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgd2lkdGg6IDgwcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uZmxleC1maWx0ZXJUYWJzLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgLypqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4taGVpZ2h0OiA0OHB4O1xuICBwYWRkaW5nOiAwIDhweDsqL1xufVxuXG4uZHJvcGRvd24tc2VsZWN0LWZpbHRlclRhYnMtZGVtbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8qLmRyb3Bkb3duLXNlbGVjdC1maWx0ZXJUYWJzLWRlbW8gLnNsLWZpbHRlclRhYnMtY29sdW1uIHtcbiAgbWFyZ2luLXJpZ2h0OiAxLjg3NXJlbTtcbiAgd2lkdGg6IDExLjYyNXJlbTtcbn0qL1xuLnNsLWZpbHRlclRhYnMtY29sdW1uIHtcbiAgd2lkdGg6IDI1MHB4O1xufVxuXG4ubGluZVNwYWNlRGl2IHtcbiAgaGVpZ2h0OiA4cHg7XG59XG5cbi5zcGFjZURpdiB7XG4gIHdpZHRoOiA2MHB4O1xufVxuXG4uc3Bpbm5lcl9vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIG9wYWNpdHk6IDAuNTtcbiAgei1pbmRleDogMTAwMDtcbn1cblxuLnNwaW5uZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiAyMCU7XG4gIGhlaWdodDogNjBweDtcbiAgd2lkdGg6IDYwcHg7XG4gIG1hcmdpbjogMHB4IGF1dG87XG4gIC13ZWJraXQtYW5pbWF0aW9uOiByb3RhdGlvbiAwLjZzIGluZmluaXRlIGxpbmVhcjtcbiAgLW1vei1hbmltYXRpb246IHJvdGF0aW9uIDAuNnMgaW5maW5pdGUgbGluZWFyO1xuICAtby1hbmltYXRpb246IHJvdGF0aW9uIDAuNnMgaW5maW5pdGUgbGluZWFyO1xuICBhbmltYXRpb246IHJvdGF0aW9uIDAuNnMgaW5maW5pdGUgbGluZWFyO1xuICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHJnYmEoMCwgMTc0LCAyMzksIDAuMTUpO1xuICBib3JkZXItcmlnaHQ6IDZweCBzb2xpZCByZ2JhKDAsIDE3NCwgMjM5LCAwLjE1KTtcbiAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkIHJnYmEoMCwgMTc0LCAyMzksIDAuMTUpO1xuICBib3JkZXItdG9wOiA2cHggc29saWQgcmdiYSgwLCAxNzQsIDIzOSwgMC44KTtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbn1cblxuLm1hdC1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQ6IGRhcmtibHVlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBsaWdodGdyYXkgIWltcG9ydGFudDtcbn1cblxuLypiYWNrZ3JvdW5kIGNvbHIgY2hhbmdlIGFmdGVyIHNlbGN0aW5nIG9wdGlvbiovXG4ubWF0LXNlbGVjdGUtZGVmYXVsdCB7XG4gIGJhY2tncm91bmQ6IGRhcmtibHVlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBsaWdodGdyYXkgIWltcG9ydGFudDtcbn1cblxuLypib2xkIGZpbHRlcmVkIG9wdGlvbnMgd2hpbGUgdHlwaW5nKi9cbi5oaWdobGlnaHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn0iXX0= */\"","import { Component, OnInit, ViewChild, ElementRef, Input, AfterViewInit, ChangeDetectorRef } from '@angular/core';\r\nimport { SelectItem } from 'lib/common';\r\nimport { SearchCriteriaComponent } from './search-criteria/search-criteria.component';\r\n//import { setTimeout } from 'timers';\r\n\r\nimport { FormControl } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { startWith, map, filter } from 'rxjs/operators';\r\nimport { MatAutocomplete, MatAutocompleteTrigger } from '@angular/material';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\n\r\n@Component({\r\n selector: 'app-filters-tabs',\r\n templateUrl: './filters-tabs.component.html',\r\n styleUrls: ['./filters-tabs.component.scss', '../filters-tabs/search-criteria/search-criteria.component.scss', '../styles/select-list.css'],\r\n})\r\nexport class FiltersTabsComponent implements OnInit, AfterViewInit {\r\n //https://tutorialsforangular.com/2020/11/20/accessing-a-child-components-methods-from-a-parent-component/\r\n //https://medium.com/@sohailnazar4/angular-calling-parent-component-function-from-child-component-5dcccdc771d9\r\n @ViewChild(SearchCriteriaComponent, { static: true }) child: SearchCriteriaComponent;\r\n\r\n filters: SelectItem[] = [];\r\n filtersObservable: SelectItem[];\r\n selectedFilters: number[] = [];\r\n\r\n modelFilter: string = \"\";\r\n editingFilter: boolean = true;\r\n critErrorsFilter: boolean = false;\r\n\r\n @ViewChild(MatAutocompleteTrigger, { static: false }) autocompleteTrigger: MatAutocompleteTrigger;\r\n @ViewChild('input', { static: false }) inputCtrl;\r\n\r\n //https://www.concretepage.com/angular/angular-formcontrol-setvalue\r\n control = new FormControl();\r\n\r\n @Input() myFilterName = \"null\";\r\n\r\n toHighlight: string = '';\r\n //myControl = new FormControl();\r\n //options: string[] = ['One', 'Two', 'Three'];\r\n //filteredOptions: string[];\r\n\r\n constructor(private cd: ChangeDetectorRef, private commonFilterService: CommonFilterService) { }\r\n\r\n init = false;\r\n ngOnInit() {\r\n this.init = true;\r\n if (this.myFilterName == \"\")\r\n this.myFilterName = \"null\";\r\n }\r\n\r\n isLoading = false;\r\n interval;\r\n ngAfterViewInit() {\r\n this.onFilterChange(null, false);\r\n\r\n //this.myControl.valueChanges.subscribe(newValue => {\r\n // this.filteredOptions = this.filterValues(newValue);\r\n //})\r\n\r\n //https://stackoverflow.com/questions/48337188/angular-material-autocomplete-not-working-no-errors-shown\r\n //https://www.positronx.io/angular-8-autocomplete-tutorial-with-angular-material/\r\n this.control.valueChanges.subscribe(newValue => {\r\n this.filtersObservable = this._filter(newValue);\r\n })\r\n\r\n if (this.myFilterName != \"null\") {\r\n this.isLoading = true;\r\n //setTimeout(() => {\r\n // const selMatOption = this.autocompleteTrigger.autocomplete.options.toArray().find((o) => o.value.name === this.myFilterName);\r\n // this.control.setValue(selMatOption.value);\r\n //}, 5000);\r\n this.interval = setInterval(() => {\r\n //console.log(this.AutoRefreshInfo.AutoRefStop);\r\n //https://stackoverflow.com/questions/54686626/set-value-of-angular-material-select-autocomplete-programmatically\r\n const selMatOption = this.autocompleteTrigger.autocomplete.options.toArray();\r\n if (selMatOption.length > 0) {\r\n //https://stackoverflow.com/questions/63344796/how-to-trigger-optionselected-angular-material-autocomplete-programmatically\r\n this.control.setValue(selMatOption.find((o) => o.value.name === this.myFilterName).value);\r\n clearInterval(this.interval);\r\n }\r\n }, 1000);\r\n this.isLoading = false;\r\n }\r\n else\r\n this.isLoading = false;\r\n }\r\n //filterValues(search: string) {\r\n // return this.options.filter(value =>\r\n // value.toLowerCase().indexOf(search.toLowerCase()) === 0);\r\n //}\r\n\r\n displayFn(selectItem: SelectItem): string {\r\n return selectItem && selectItem.name && !selectItem.name.includes('--Create New--') ? selectItem.name : '';\r\n }\r\n\r\n _filter(value: any): SelectItem[] {\r\n let filterValue = '';\r\n this.toHighlight = '';\r\n if (typeof value === \"string\") {\r\n this.toHighlight = value;\r\n filterValue = value.toLowerCase();\r\n }\r\n else {\r\n this.toHighlight = value.name;\r\n filterValue = value.name.toLowerCase();\r\n }\r\n return this.filters.filter(option => option.name.toLowerCase().includes(filterValue) || option.name.includes('--Create New--'));\r\n }\r\n\r\n async onFilterChange(event, emittedOrNot: boolean) {\r\n\r\n /////// the record that was renamed and saving as new record and immediately deleting the newly created record.it should clear all control and set to default\r\n if (event == null)\r\n this.FilterClose = false;\r\n\r\n if (this.FilterClose) {\r\n this.FilterClose = false;\r\n return;\r\n }\r\n \r\n debugger;\r\n this.isLoading = true;\r\n if (emittedOrNot || event == undefined || event == null) {//refresh ddl to latest list from db and reset all controls to default and fill ddl with filters\r\n let filters = await this.child.getFilterConfig(0, '0');\r\n this.getList(filters);\r\n if (event !== undefined) {\r\n if (this.myFilterName == \"null\")\r\n this.OpenAutoCompeleteDailog(true);\r\n }\r\n }\r\n\r\n if (event !== undefined && event !== null) {//selected filter loads resp. criteria into controls and display saved tables\r\n let selID = parseInt(event);\r\n let filter = this.filters.find(x => x.id == selID);\r\n await this.child.getFilterConfig(1, event);\r\n this.modelFilter = filter.name;\r\n this.inputLength = this.modelFilter.length;\r\n this.selectedFilters = [selID];\r\n\r\n this.isLoading = false;\r\n }\r\n else if (event == null) {\r\n this.selectedFilters = [];\r\n this.modelFilter = \"\";\r\n this.inputLength = 0;\r\n this.deleteFilter();\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n getList($event) {\r\n this.filters = $event;\r\n //console.log(this.filters)\r\n this.filtersObservable = $event;\r\n\r\n if (this.myFilterName != \"null\" && this.init)\r\n this.setFilterByName(this.myFilterName);\r\n }\r\n\r\n resetFilterOnEmptyInput() {\r\n console.log('sf')\r\n \r\n }\r\n setFilter(event) {\r\n this.modelFilter = event.option.value.name;\r\n this.inputLength = this.modelFilter.trim().length;\r\n this.child.resetMsg();\r\n //console.log(this.modelFilter)\r\n let filterName = this.modelFilter.trim();\r\n this.resetCritErrors();\r\n if (filterName.length == 0) {\r\n this.onFilterChange(null, false);\r\n return;\r\n }\r\n let found = this.filters.find(x => x.name == filterName);\r\n if (found)\r\n this.onFilterChange(found.id, false);\r\n }\r\n setFilterByName(name) {\r\n this.modelFilter = name;\r\n this.child.resetMsg();\r\n //console.log(this.modelFilter)\r\n let filterName = this.modelFilter.trim();\r\n this.resetCritErrors();\r\n if (filterName.length == 0) {\r\n this.onFilterChange(null, false);\r\n return;\r\n }\r\n let found = this.filters.find(x => x.name == filterName);\r\n //console.log(found)\r\n if (found)\r\n this.onFilterChange(found.id, false);\r\n\r\n this.init = false;\r\n }\r\n saveFilter(item) {\r\n debugger\r\n this.critErrorsFilter = false;\r\n if (typeof this.control.value === \"string\")\r\n this.modelFilter = this.control.value;\r\n else\r\n this.modelFilter = this.control.value.name;\r\n this.inputLength = this.modelFilter.trim().length;\r\n\r\n let filterName = this.modelFilter.trim();\r\n //console.log(this.modelFilter)\r\n if (filterName.length === 0) {\r\n this.critErrorsFilter = true;\r\n this.critErrorDesc = \"*Required\";\r\n return false;\r\n }\r\n\r\n if (this.selectedFilters.length > 0) {//Update\r\n\r\n let currFilterItem = this.filters.find(x => x.id == this.selectedFilters[0]);\r\n if (currFilterItem) {//item selected from ddl\r\n if (filterName == currFilterItem.name) {//input and ddl selection are same\r\n item.ID = currFilterItem.id;\r\n this.child.updateFilterConfig(item);\r\n if (this.myFilterName == filterName)\r\n this.commonFilterService.basicFilterSavedRefresh();//lets filters comp know that loaded filter updated\r\n }\r\n else {//Add as new duplicate using selected ddl\r\n item.CriteriaName = filterName;\r\n this.child.insertFilterConfig(item);\r\n }\r\n }\r\n else {//Add new\r\n let currFilterItemIndex = this.filters.findIndex(x => x.name == filterName);\r\n if (currFilterItemIndex == -1) {\r\n item.CriteriaName = filterName;\r\n this.child.insertFilterConfig(item);\r\n }\r\n else {\r\n this.critErrorsFilter = true;\r\n this.critErrorDesc = \"*Filter name already exists!\";\r\n return false;\r\n }\r\n }\r\n }\r\n else {//Add new\r\n let currFilterItemIndex = this.filters.findIndex(x => x.name == filterName);\r\n if (currFilterItemIndex == -1) {\r\n item.CriteriaName = filterName;\r\n this.child.insertFilterConfig(item);\r\n }\r\n else {\r\n this.critErrorsFilter = true;\r\n this.critErrorDesc = \"*Filter name already exists!\";\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n deleteFilter() {\r\n //this.control = new FormControl();\r\n this.control.setValue(\"\");\r\n }\r\n\r\n critErrors: boolean = false;\r\n critErrorDesc = \"*Required\";\r\n\r\n resetCritErrors() {\r\n this.critErrorsFilter = false;\r\n this.critErrors = false;\r\n }\r\n\r\n inputLength = 0;\r\n setLimitedOptions = true;\r\n onKeydownMain($event) {\r\n if (!this.setLimitedOptions) {\r\n this.setLimitedOptions = true;\r\n this.control.valueChanges.subscribe(newValue => {\r\n this.filtersObservable = this._filter(newValue);\r\n })\r\n }\r\n\r\n this.inputLength = $event.target.value.length;\r\n this.modelFilter = $event.target.value;\r\n if (this.inputLength == 0) {\r\n this.control.setValue(\"\");\r\n let firstSelectedOption = this.autocompleteTrigger.autocomplete.options.find(o => o.value.id == this.selectedFilters[0]);\r\n if (firstSelectedOption) {\r\n this.FilterClose = true;\r\n this.control.setValue(\"\");\r\n firstSelectedOption.deselect();\r\n }\r\n }\r\n }\r\n clearInputText() {\r\n this.control.setValue(\"\");\r\n this.inputLength = 0;\r\n }\r\n clearInput(input: HTMLInputElement, auto: MatAutocomplete) {\r\n this.control.setValue(\"\");\r\n this.selectedFilters = [];\r\n this.modelFilter = \"\";\r\n this.inputLength = 0;\r\n input.focus();\r\n //input.placeholder = '';\r\n //input.value = '';\r\n //auto.options.forEach(option => option.deselect());\r\n //auto.closePanel();\r\n this.child.getFilterConfig(0, '0');\r\n setTimeout(() => this.autocompleteTrigger.openPanel()); \r\n }\r\n\r\n openOrClose = false;\r\n FilterClose = false;\r\n OpenAutoCompeleteDailog(init?, closed?) {\r\n let tmOut = 0;\r\n if (init)\r\n tmOut = 1000;\r\n else {\r\n this.setLimitedOptions = false;\r\n this.filtersObservable = this.filters;\r\n }\r\n\r\n //setTimeout(() => { this.autocompleteTrigger.openPanel() }, tmOut);\r\n //console.log(this.inputCtrl)\r\n if (this.openOrClose == true || closed) {\r\n setTimeout(() => this.autocompleteTrigger.closePanel());\r\n this.openOrClose = false;\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.inputCtrl.nativeElement.blur();\r\n this.inputCtrl.nativeElement.focus();\r\n this.toHighlight = this.inputCtrl.nativeElement.value;\r\n if (this.inputLength > 0) {\r\n let firstSelectedOption = this.autocompleteTrigger.autocomplete.options.find(o => o.selected);\r\n if (firstSelectedOption === undefined && this.selectedFilters.length > 0) {\r\n firstSelectedOption = this.autocompleteTrigger.autocomplete.options.find(o => o.value.id == this.selectedFilters[0]);\r\n if (firstSelectedOption) {\r\n if (this.initArrow)\r\n this.FilterClose = true;\r\n firstSelectedOption.select();\r\n setTimeout(() => {\r\n this.autocompleteTrigger.openPanel();\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n });\r\n }\r\n }\r\n if (firstSelectedOption) {\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n }\r\n }\r\n //this.autocompleteTrigger.openPanel();\r\n }, tmOut);\r\n this.openOrClose = true;\r\n }\r\n }\r\n\r\n initArrow = true;\r\n SetArrowClick() {\r\n if (this.initArrow) {\r\n this.initArrow = false;\r\n }\r\n }\r\n\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FiltersTabsComponent } from './filters-tabs.component';\r\nimport { SearchCriteriaComponent } from './search-criteria/search-criteria.component';\r\nimport { ColumnSetupComponent } from './column-setup/column-setup.component';\r\n\r\nimport { DropdownSelectModule } from '../dropdown-select';\r\nimport { DropdownMultilevelModule } from '../dropdown-multilevel';\r\nimport { DualListBoxModule } from '../dual-list-box';\r\nimport { InlineEditModule } from '../inline-edit';\r\nimport { SelectListModule } from '../select-list';\r\nimport { SwitchesModule } from '../switches';\r\n\r\nimport { MaterialModule } from '../../src/app/material/material.module';\r\nimport { DirectivesModule } from '../directives/directives.module';\r\n\r\nimport { CrudTableModule } from '../ng-crud-table';\r\n\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { DaterangepickerComponent } from '../daterangepicker/daterangepicker.component';\r\nimport { DaterangepickerDirective } from '../daterangepicker/daterangepicker.directive';\r\n\r\nimport { httpInterceptorProviders } from '../http-interceptors';\r\n\r\nimport { HighlightPipeModule } from '../pipes';\r\n\r\n@NgModule({\r\n declarations: [FiltersTabsComponent, SearchCriteriaComponent, ColumnSetupComponent,\r\n DaterangepickerComponent,\r\n DaterangepickerDirective,\r\n ],\r\n exports: [FiltersTabsComponent],\r\n imports: [\r\n CommonModule,\r\n\r\n DropdownSelectModule,\r\n DropdownMultilevelModule,\r\n DualListBoxModule,\r\n InlineEditModule,\r\n SelectListModule,\r\n SwitchesModule,\r\n\r\n MaterialModule,\r\n DirectivesModule,\r\n\r\n CrudTableModule,\r\n\r\n FormsModule,//Mat form field\r\n ReactiveFormsModule,//FormControl\r\n\r\n HighlightPipeModule,\r\n ],\r\n providers: [httpInterceptorProviders],\r\n entryComponents: [\r\n DaterangepickerComponent,\r\n ]\r\n})\r\nexport class FiltersTabsModule { }\r\n","export * from './filters-tabs.module';\n","module.exports = \".select-list-demo {\\n display: -ms-flexbox;\\n display: flex;\\n}\\n\\n.select-list-demo .sl-column {\\n margin-right: 1.875rem;\\n width: 15.625rem;\\n padding: 0.625rem;\\n border: 1px solid #eee;\\n border-radius: 0.0625rem;\\n}\\n\\n/*IMP for combo box width - susheel*/\\n\\n.select-list-demo .sl-searchCrit-column {\\n margin-right: 1.175rem;\\n width: 15.625rem;\\n padding: 0.625rem;\\n border: 1px solid #808080;\\n border-radius: 0.0625rem;\\n}\\n\\n.inline-edit-demo {\\n display: -ms-flexbox;\\n display: flex;\\n height: 1.5rem;\\n}\\n\\n.inline-edit-demo-cell .dt-inline-editor {\\n width: 12.5rem;\\n line-height: 2.5rem;\\n border: 1px solid #eee;\\n}\\n\\n.dropdown-select-demo {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n /*IMP for screensize line break auto*/\\n}\\n\\n.dropdown-select-demo .sl-column {\\n margin-right: 1.875rem;\\n width: 11.625rem;\\n}\\n\\n.dropdown-select-demo .sl-searchCrit-column {\\n margin-right: 1.875rem;\\n width: 11.625rem;\\n}\\n\\n.dropdown-select-demo .xsl-column {\\n margin-right: 0.375rem;\\n width: 2.125rem;\\n}\\n\\n.searchCritLabelClass {\\n font-size: 12px;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n width: 220px;\\n white-space: nowrap;\\n font-weight: bold;\\n}\\n\\n.sl-searchCrit-column {\\n width: 20%;\\n}\\n\\n/*.sl-searchMultiCrit-column {\\n width: 20%;\\n}*/\\n\\n.flex-searchCritOpers-cell {\\n width: 15%;\\n}\\n\\n.flex-searchCrit-cell {\\n width: 8%;\\n}\\n\\n.flex-searchCrit-container {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n /*justify-content: flex-end;\\n align-items: center;\\n min-height: 48px;\\n padding: 0 8px;*/\\n}\\n\\n.searchCritLineSpaceDiv {\\n height: 8px;\\n}\\n\\n.divFieldset {\\n /*margin: 8px;*/\\n border: 2px solid silver;\\n padding: 8px;\\n border-radius: 4px;\\n}\\n\\nlegend {\\n padding: 2px;\\n}\\n\\n.filt-click {\\n cursor: pointer;\\n}\\n\\n.errorClass {\\n border: 2px solid red;\\n}\\n\\n/*https: //css-tricks.com/snippets/css/glowing-blue-input-highlights/*/\\n\\n.editCtrls {\\n -webkit-transition: all 0.3s ease-in-out;\\n -moz-transition: all 0.3s ease-in-out;\\n -ms-transition: all 0.3s ease-in-out;\\n -o-transition: all 0.3s ease-in-out;\\n outline: none;\\n}\\n\\n.editCtrlsHighlight {\\n box-shadow: 0 0 5px #51cbee;\\n padding: 3px 0px 3px 3px;\\n margin: 5px 1px 3px 0px;\\n border: 1px solid #51cbee;\\n}\\n\\n.sc-chks {\\n height: 14px;\\n width: 14px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9maWx0ZXJzLXRhYnMvc2VhcmNoLWNyaXRlcmlhL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9saWJcXGZpbHRlcnMtdGFic1xcc2VhcmNoLWNyaXRlcmlhXFxzZWFyY2gtY3JpdGVyaWEuY29tcG9uZW50LnNjc3MiLCJsaWIvZmlsdGVycy10YWJzL3NlYXJjaC1jcml0ZXJpYS9zZWFyY2gtY3JpdGVyaWEuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSxvQkFBQTtFQUFBLGFBQUE7QUNBRjs7QURFQTtFQUNFLHNCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLHNCQUFBO0VBQ0Esd0JBQUE7QUNDRjs7QURDQSxvQ0FBQTs7QUFDQTtFQUNFLHNCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLHlCQUFBO0VBQ0Esd0JBQUE7QUNFRjs7QURFQTtFQUNFLG9CQUFBO0VBQUEsYUFBQTtFQUNBLGNBQUE7QUNDRjs7QURDQTtFQUNFLGNBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0FDRUY7O0FERUE7RUFDRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSxtQkFBQTtNQUFBLGVBQUE7RUFBZ0IscUNBQUE7QUNFbEI7O0FEQUE7RUFDRSxzQkFBQTtFQUNBLGdCQUFBO0FDR0Y7O0FEREE7RUFDRSxzQkFBQTtFQUNBLGdCQUFBO0FDSUY7O0FERkE7RUFDRSxzQkFBQTtFQUNBLGVBQUE7QUNLRjs7QURBQTtFQUNFLGVBQUE7RUFDQSxrREFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0FDR0Y7O0FEREE7RUFDRSxVQUFBO0FDSUY7O0FERkE7O0VBQUE7O0FBSUE7RUFDRSxVQUFBO0FDSUY7O0FEREE7RUFDRSxTQUFBO0FDSUY7O0FEREE7RUFDRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSxtQkFBQTtNQUFBLGVBQUE7RUFDQTs7O2tCQUFBO0FDT0Y7O0FEREE7RUFDRSxXQUFBO0FDSUY7O0FEQUE7RUFDRSxlQUFBO0VBQ0Esd0JBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7QUNHRjs7QURBQTtFQUNFLFlBQUE7QUNHRjs7QURBQTtFQUNFLGVBQUE7QUNHRjs7QURDQTtFQUNFLHFCQUFBO0FDRUY7O0FEQ0Esc0VBQUE7O0FBQ0E7RUFDRSx3Q0FBQTtFQUNBLHFDQUFBO0VBQ0Esb0NBQUE7RUFDQSxtQ0FBQTtFQUNBLGFBQUE7QUNFRjs7QURDQTtFQUNFLDJCQUFBO0VBQ0Esd0JBQUE7RUFDQSx1QkFBQTtFQUNBLHlCQUFBO0FDRUY7O0FERUE7RUFDRSxZQUFBO0VBQ0EsV0FBQTtBQ0NGIiwiZmlsZSI6ImxpYi9maWx0ZXJzLXRhYnMvc2VhcmNoLWNyaXRlcmlhL3NlYXJjaC1jcml0ZXJpYS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4uc2VsZWN0LWxpc3QtZGVtbyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxufVxyXG4uc2VsZWN0LWxpc3QtZGVtbyAuc2wtY29sdW1uIHtcclxuICBtYXJnaW4tcmlnaHQ6IDEuODc1cmVtO1xyXG4gIHdpZHRoOiAxNS42MjVyZW07XHJcbiAgcGFkZGluZzogLjYyNXJlbTtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xyXG4gIGJvcmRlci1yYWRpdXM6IC4wNjI1cmVtO1xyXG59XHJcbi8qSU1QIGZvciBjb21ibyBib3ggd2lkdGggLSBzdXNoZWVsKi9cclxuLnNlbGVjdC1saXN0LWRlbW8gLnNsLXNlYXJjaENyaXQtY29sdW1uIHtcclxuICBtYXJnaW4tcmlnaHQ6IDEuMTc1cmVtO1xyXG4gIHdpZHRoOiAxNS42MjVyZW07XHJcbiAgcGFkZGluZzogLjYyNXJlbTtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjODA4MDgwO1xyXG4gIGJvcmRlci1yYWRpdXM6IC4wNjI1cmVtO1xyXG59XHJcblxyXG5cclxuLmlubGluZS1lZGl0LWRlbW8ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgaGVpZ2h0OiAxLjVyZW07XHJcbn1cclxuLmlubGluZS1lZGl0LWRlbW8tY2VsbCAuZHQtaW5saW5lLWVkaXRvciB7XHJcbiAgd2lkdGg6IDEyLjVyZW07XHJcbiAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xyXG59XHJcblxyXG5cclxuLmRyb3Bkb3duLXNlbGVjdC1kZW1vIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDsvKklNUCBmb3Igc2NyZWVuc2l6ZSBsaW5lIGJyZWFrIGF1dG8qL1xyXG59XHJcbi5kcm9wZG93bi1zZWxlY3QtZGVtbyAuc2wtY29sdW1uIHtcclxuICBtYXJnaW4tcmlnaHQ6IDEuODc1cmVtO1xyXG4gIHdpZHRoOiAxMS42MjVyZW07XHJcbn1cclxuLmRyb3Bkb3duLXNlbGVjdC1kZW1vIC5zbC1zZWFyY2hDcml0LWNvbHVtbiB7XHJcbiAgbWFyZ2luLXJpZ2h0OiAxLjg3NXJlbTtcclxuICB3aWR0aDogMTEuNjI1cmVtO1xyXG59XHJcbi5kcm9wZG93bi1zZWxlY3QtZGVtbyAueHNsLWNvbHVtbiB7XHJcbiAgbWFyZ2luLXJpZ2h0OiAwLjM3NXJlbTtcclxuICB3aWR0aDogMi4xMjVyZW07XHJcbn1cclxuXHJcblxyXG5cclxuLnNlYXJjaENyaXRMYWJlbENsYXNzIHtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbiAgd2lkdGg6IDIyMHB4O1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuLnNsLXNlYXJjaENyaXQtY29sdW1uIHtcclxuICB3aWR0aDogMjAlO1xyXG59XHJcbi8qLnNsLXNlYXJjaE11bHRpQ3JpdC1jb2x1bW4ge1xyXG4gIHdpZHRoOiAyMCU7XHJcbn0qL1xyXG5cclxuLmZsZXgtc2VhcmNoQ3JpdE9wZXJzLWNlbGwge1xyXG4gIHdpZHRoOiAxNSU7XHJcbn1cclxuXHJcbi5mbGV4LXNlYXJjaENyaXQtY2VsbCB7XHJcbiAgd2lkdGg6IDglO1xyXG59XHJcblxyXG4uZmxleC1zZWFyY2hDcml0LWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgLypqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgbWluLWhlaWdodDogNDhweDtcclxuICBwYWRkaW5nOiAwIDhweDsqL1xyXG59XHJcblxyXG4uc2VhcmNoQ3JpdExpbmVTcGFjZURpdiB7XHJcbiAgaGVpZ2h0OiA4cHg7XHJcbn1cclxuXHJcblxyXG4uZGl2RmllbGRzZXQge1xyXG4gIC8qbWFyZ2luOiA4cHg7Ki9cclxuICBib3JkZXI6IDJweCBzb2xpZCBzaWx2ZXI7XHJcbiAgcGFkZGluZzogOHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxufVxyXG5cclxubGVnZW5kIHtcclxuICBwYWRkaW5nOiAycHg7XHJcbn1cclxuXHJcbi5maWx0LWNsaWNrIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcblxyXG4uZXJyb3JDbGFzcyB7XHJcbiAgYm9yZGVyOiAycHggc29saWQgcmVkO1xyXG59XHJcblxyXG4vKmh0dHBzOiAvL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL2Nzcy9nbG93aW5nLWJsdWUtaW5wdXQtaGlnaGxpZ2h0cy8qL1xyXG4uZWRpdEN0cmxzIHtcclxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjMwcyBlYXNlLWluLW91dDtcclxuICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjMwcyBlYXNlLWluLW91dDtcclxuICAtbXMtdHJhbnNpdGlvbjogYWxsIDAuMzBzIGVhc2UtaW4tb3V0O1xyXG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjMwcyBlYXNlLWluLW91dDtcclxuICBvdXRsaW5lOiBub25lO1xyXG59XHJcblxyXG4uZWRpdEN0cmxzSGlnaGxpZ2h0IHtcclxuICBib3gtc2hhZG93OiAwIDAgNXB4IHJnYmEoODEsIDIwMywgMjM4LCAxKTtcclxuICBwYWRkaW5nOiAzcHggMHB4IDNweCAzcHg7XHJcbiAgbWFyZ2luOiA1cHggMXB4IDNweCAwcHg7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg4MSwgMjAzLCAyMzgsIDEpO1xyXG59XHJcblxyXG5cclxuLnNjLWNoa3Mge1xyXG4gIGhlaWdodDogMTRweDtcclxuICB3aWR0aDogMTRweDtcclxufVxyXG4iLCIuc2VsZWN0LWxpc3QtZGVtbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5zZWxlY3QtbGlzdC1kZW1vIC5zbC1jb2x1bW4ge1xuICBtYXJnaW4tcmlnaHQ6IDEuODc1cmVtO1xuICB3aWR0aDogMTUuNjI1cmVtO1xuICBwYWRkaW5nOiAwLjYyNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgYm9yZGVyLXJhZGl1czogMC4wNjI1cmVtO1xufVxuXG4vKklNUCBmb3IgY29tYm8gYm94IHdpZHRoIC0gc3VzaGVlbCovXG4uc2VsZWN0LWxpc3QtZGVtbyAuc2wtc2VhcmNoQ3JpdC1jb2x1bW4ge1xuICBtYXJnaW4tcmlnaHQ6IDEuMTc1cmVtO1xuICB3aWR0aDogMTUuNjI1cmVtO1xuICBwYWRkaW5nOiAwLjYyNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzgwODA4MDtcbiAgYm9yZGVyLXJhZGl1czogMC4wNjI1cmVtO1xufVxuXG4uaW5saW5lLWVkaXQtZGVtbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogMS41cmVtO1xufVxuXG4uaW5saW5lLWVkaXQtZGVtby1jZWxsIC5kdC1pbmxpbmUtZWRpdG9yIHtcbiAgd2lkdGg6IDEyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAyLjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG59XG5cbi5kcm9wZG93bi1zZWxlY3QtZGVtbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgLypJTVAgZm9yIHNjcmVlbnNpemUgbGluZSBicmVhayBhdXRvKi9cbn1cblxuLmRyb3Bkb3duLXNlbGVjdC1kZW1vIC5zbC1jb2x1bW4ge1xuICBtYXJnaW4tcmlnaHQ6IDEuODc1cmVtO1xuICB3aWR0aDogMTEuNjI1cmVtO1xufVxuXG4uZHJvcGRvd24tc2VsZWN0LWRlbW8gLnNsLXNlYXJjaENyaXQtY29sdW1uIHtcbiAgbWFyZ2luLXJpZ2h0OiAxLjg3NXJlbTtcbiAgd2lkdGg6IDExLjYyNXJlbTtcbn1cblxuLmRyb3Bkb3duLXNlbGVjdC1kZW1vIC54c2wtY29sdW1uIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjM3NXJlbTtcbiAgd2lkdGg6IDIuMTI1cmVtO1xufVxuXG4uc2VhcmNoQ3JpdExhYmVsQ2xhc3Mge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICB3aWR0aDogMjIwcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uc2wtc2VhcmNoQ3JpdC1jb2x1bW4ge1xuICB3aWR0aDogMjAlO1xufVxuXG4vKi5zbC1zZWFyY2hNdWx0aUNyaXQtY29sdW1uIHtcbiAgd2lkdGg6IDIwJTtcbn0qL1xuLmZsZXgtc2VhcmNoQ3JpdE9wZXJzLWNlbGwge1xuICB3aWR0aDogMTUlO1xufVxuXG4uZmxleC1zZWFyY2hDcml0LWNlbGwge1xuICB3aWR0aDogOCU7XG59XG5cbi5mbGV4LXNlYXJjaENyaXQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICAvKmp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gIHBhZGRpbmc6IDAgOHB4OyovXG59XG5cbi5zZWFyY2hDcml0TGluZVNwYWNlRGl2IHtcbiAgaGVpZ2h0OiA4cHg7XG59XG5cbi5kaXZGaWVsZHNldCB7XG4gIC8qbWFyZ2luOiA4cHg7Ki9cbiAgYm9yZGVyOiAycHggc29saWQgc2lsdmVyO1xuICBwYWRkaW5nOiA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxubGVnZW5kIHtcbiAgcGFkZGluZzogMnB4O1xufVxuXG4uZmlsdC1jbGljayB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmVycm9yQ2xhc3Mge1xuICBib3JkZXI6IDJweCBzb2xpZCByZWQ7XG59XG5cbi8qaHR0cHM6IC8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvY3NzL2dsb3dpbmctYmx1ZS1pbnB1dC1oaWdobGlnaHRzLyovXG4uZWRpdEN0cmxzIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgLW1zLXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICAtby10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmVkaXRDdHJsc0hpZ2hsaWdodCB7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggIzUxY2JlZTtcbiAgcGFkZGluZzogM3B4IDBweCAzcHggM3B4O1xuICBtYXJnaW46IDVweCAxcHggM3B4IDBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzUxY2JlZTtcbn1cblxuLnNjLWNoa3Mge1xuICBoZWlnaHQ6IDE0cHg7XG4gIHdpZHRoOiAxNHB4O1xufSJdfQ== */\"","import { Component, OnInit, ChangeDetectorRef, ViewEncapsulation, Input, Output, EventEmitter, ViewChild, ElementRef, SimpleChanges, OnChanges } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { SelectItem, Keys } from 'lib/common';\r\nimport { Column, DataManager, CdtSettings } from 'lib/ng-crud-table';\r\nimport { FilterOperator } from 'lib/ng-data-table/base';\r\nimport { GetMapColumnAliia } from 'src/app/shared/models';\r\nimport { DtMessages, DtMessagesEn } from 'lib/dt-translate';\r\nimport { getColumnsPlayers, getConfigColumnsHeaders } from 'src/app/shared/columns';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Subscription, config } from 'rxjs';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\nimport { FiltersService } from 'src/app/shared/services/filters/filters.service';\r\nimport { MAINFILTER, RatingOperator } from 'src/app/shared/models/MAINFILTER';\r\nimport { GoogleMapsService } from 'src/app/shared/services/google-maps/google-maps.service';\r\nimport { MAPREGION } from 'src/app/shared/models/MAPREGION';\r\nimport { DataFilter } from 'lib/ng-data-table/base/data-filter';\r\nimport { DemoService } from 'src/app/shared/demo.service';\r\nimport { promise } from 'protractor';\r\n\r\n@Component({\r\n selector: 'app-search-criteria',\r\n templateUrl: './search-criteria.component.html',\r\n styleUrls: ['./search-criteria.component.scss', '../../styles/input.css', '../../styles/select-list.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class SearchCriteriaComponent implements OnInit, OnChanges {\r\n\r\n //Region section\r\n regions: SelectItem[] = [];\r\n selectedRegions: number[] = [];\r\n authorizeCreateFilter: boolean = true;\r\n authorizeModifyFilter: boolean = true;\r\n authorizeDeleteFilter: boolean = true;\r\n isTableRowSelected: boolean = false;\r\n\r\n LoggedinUserName: string;\r\n\r\n //Custom date range\r\n selectedTime: any;\r\n @ViewChild('dateInput', { static: true }) dateInput: ElementRef;\r\n ranges: any = {\r\n 'Last 10 Minutes': [moment().subtract(13, 'minutes'), moment()],\r\n 'Last Hour': [moment().subtract(1, 'hours'), moment()],\r\n //'12 Hours': [moment().subtract(12, 'hours'), moment()],\r\n //'24 Hours': [moment().subtract(24, 'hours'), moment()],\r\n Today: [moment().hour(0).minute(0), moment().hour(23).minute(59)],\r\n Yesterday: [moment().subtract(1, 'days').hour(0).minute(0), moment().subtract(1, 'days').hour(23).minute(59)],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n //'Last 30 Days': [moment().subtract(29, 'days'), moment()],\r\n //'This Month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last Month': [\r\n moment()\r\n .subtract(1, 'month')\r\n .startOf('month'),\r\n moment()\r\n .subtract(1, 'month')\r\n .endOf('month')\r\n ],\r\n 'Last 6 Months': [\r\n moment()\r\n .subtract(6, 'month')\r\n .startOf('month'),\r\n moment()\r\n .subtract(6, 'month')\r\n .endOf('month')\r\n ],\r\n //'Last Year': [moment().subtract(1, 'years'), moment()],\r\n //'Search Entire dBase': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n\r\n callDirections: SelectItem[] = [\r\n { id: 1, name: 'Inbound' },\r\n { id: 2, name: 'Outbound' },\r\n { id: 3, name: 'Both' },\r\n ];\r\n selectedCallDirections: number[] = [3];//Default is all\r\n\r\n\r\n //Common cols and Rslt selected cols\r\n commonCols: SelectItem[] = [\r\n { id: 1, name: 'VQuad Call ID' },\r\n { id: 2, name: 'VQuad Device ID' },\r\n { id: 3, name: 'VQuad Event ID' },\r\n ];\r\n selectedCommonCols: number[] = [-1];\r\n commonMatchMode: string;\r\n commonValue: any = \"\";\r\n\r\n andOrs: SelectItem[] = [\r\n { id: 1, name: 'AND' },\r\n { id: 2, name: 'OR' },\r\n ];\r\n selectedAndOrs: number[] = [1];\r\n andOrVisible: boolean = false;\r\n\r\n results: SelectItem[] = [\r\n { id: 0, name: 'VQT PESQ', parentId: 'pesq', alias: 'VQTDATA' },\r\n { id: 1, name: 'VQT POLQA', parentId: 'polqa', alias: 'VQTPOLQA' },\r\n { id: 2, name: 'Audio/Delay', parentId: 'audio-delay', alias: 'VQUADDATA' },\r\n { id: 3, name: 'TCP', parentId: 'nettest', alias: 'TCPDATA' },\r\n { id: 4, name: 'UDP', parentId: 'nettest', alias: 'UDPDATA' },\r\n { id: 5, name: 'VOIP', parentId: 'nettest', alias: 'VOIPDATA' },\r\n { id: 6, name: 'ROUTE', parentId: 'nettest', alias: 'ROUTEDATA' },\r\n { id: 7, name: 'HTTP', parentId: 'nettest', alias: 'HTTPDATA' },\r\n { id: 8, name: 'FTP', parentId: 'nettest', alias: 'FTPDATA' },\r\n { id: 9, name: 'DNS', parentId: 'nettest', alias: 'DNSDATA' },\r\n { id: 10, name: 'SMS', parentId: 'nettest', alias: 'SMSDATA' },\r\n { id: 11, name: 'EMAIL', parentId: 'nettest', alias: 'EMAILDATA' },\r\n { id: 12, name: 'Phone Info', parentId: 'mobileinfo', alias: 'GENERALINFO' },\r\n { id: 13, name: 'SIM', parentId: 'mobileinfo', alias: 'SIMINFO' },\r\n { id: 14, name: 'UE', parentId: 'mobileinfo', alias: 'UEINFO' },\r\n //{ id: 15, name: 'EMU', parentId: 'emu', alias: 'EMUDATA' },\r\n //{ id: 16, name: 'FAX', parentId: 'fax', alias: 'FAXDATA' },\r\n { id: 17, name: 'EModule', parentId: 'vba', alias: 'EModule' },\r\n //{ id: 18, name: 'Connection Drop', parentId: 'conndrop', alias: 'CONNDROPDATA' },\r\n //{ id: 19, name: 'VAC', parentId: 'vac', alias: 'VACDATA' },\r\n { id: 20, name: 'VQuad Call Events', parentId: 'call-events', alias: 'VQUADDATA' },\r\n ];\r\n selectedResults: number[] = [0];\r\n\r\n mainCols: SelectItem[] = [];\r\n selectedMainCols: number[];\r\n mainMatchMode: string;\r\n mainValue: any = \"\";\r\n mainValueTo: any = \"\";\r\n\r\n commonAndResultsBoth: SelectItem[] = [\r\n { id: -1, name: 'VQuad Call ID', showSubUL: -1 },\r\n { id: -2, name: 'VQuad Device ID', showSubUL: -1 },\r\n { id: -3, name: 'VQuad Event ID', showSubUL: -1 },\r\n {\r\n id: 0, name: 'VQT', showSubUL: 1, children: [\r\n { id: 0, name: 'PESQ', parentId: 'pesq', alias: 'VQTDATA' },\r\n { id: 1, name: 'POLQA', parentId: 'polqa', alias: 'VQTPOLQA' },\r\n ]\r\n },\r\n { id: 20, name: 'VQuad Call Events', showSubUL: -1, parentId: 'call-events', alias: 'VQUADDATA' },//changed position from bottom to top but not ID\r\n { id: 2, name: 'Audio/Delay', showSubUL: -1, parentId: 'audio-delay', alias: 'VQUADDATA' },\r\n {\r\n id: 3, name: 'NetTest', showSubUL: 1, children: [\r\n { id: 3, name: 'TCP', parentId: 'nettest', alias: 'TCPDATA' },\r\n { id: 4, name: 'UDP', parentId: 'nettest', alias: 'UDPDATA' },\r\n { id: 5, name: 'VOIP', parentId: 'nettest', alias: 'VOIPDATA' },\r\n { id: 6, name: 'ROUTE', parentId: 'nettest', alias: 'ROUTEDATA' },\r\n { id: 7, name: 'HTTP', parentId: 'nettest', alias: 'HTTPDATA' },\r\n { id: 8, name: 'FTP', parentId: 'nettest', alias: 'FTPDATA' },\r\n { id: 9, name: 'DNS', parentId: 'nettest', alias: 'DNSDATA' },\r\n { id: 10, name: 'SMS', parentId: 'nettest', alias: 'SMSDATA' },\r\n { id: 11, name: 'EMAIL', parentId: 'nettest', alias: 'EMAILDATA' },\r\n ]\r\n },\r\n {\r\n id: 12, name: 'MobileInfo', showSubUL: 1, children: [\r\n { id: 12, name: 'Phone Info', parentId: 'mobileinfo', alias: 'GENERALINFO' },\r\n { id: 13, name: 'SIM', parentId: 'mobileinfo', alias: 'SIMINFO' },\r\n { id: 14, name: 'UE', parentId: 'mobileinfo', alias: 'UEINFO' },\r\n ]\r\n },\r\n //{ id: 15, name: 'EMU', parentId: 'emu', alias: 'EMUDATA' },\r\n //{ id: 16, name: 'FAX', parentId: 'fax', alias: 'FAXDATA' },\r\n { id: 17, name: 'EModule', showSubUL: -1, parentId: 'vba', alias: 'EModule' },\r\n //{ id: 18, name: 'Connection Drop', parentId: 'conndrop', alias: 'CONNDROPDATA' },\r\n //{ id: 19, name: 'VAC', parentId: 'vac', alias: 'VACDATA' },\r\n ];\r\n selectedCommonAndResultsCols: number[] = [-1];\r\n\r\n stringOperators: any[];\r\n rangeOperators: any[];\r\n selParamOperators: any[] = [];//based on param selected\r\n defaultStringMatchMode = FilterOperator.STARTS_WITH;\r\n defaultRangeMatchMode = FilterOperator.GREATER_THAN_OR_EQUAL;\r\n\r\n messages: DtMessages = new DtMessagesEn({});\r\n\r\n selRatingParamOperators: any[] = [\r\n //{ value: RatingOperator.NOTUSE, text: this.messages.notUse },\r\n { value: RatingOperator.LESS_THAN_OR_EQUAL, text: this.messages.lessThanOrEqual },\r\n { value: RatingOperator.EQUALS, text: this.messages.equals },\r\n { value: RatingOperator.GREATER_THAN_OR_EQUAL, text: this.messages.greaterThanOrEqual },\r\n ];\r\n\r\n mainRatingMatchMode: string;\r\n defaultRatingMatchMode = RatingOperator.LESS_THAN_OR_EQUAL;//RatingOperator.NOTUSE;\r\n\r\n PESQRating: SelectItem[] = [\r\n { id: 0, name: 'Poor' },\r\n { id: 1, name: 'Fair' },\r\n { id: 2, name: 'Good' },\r\n { id: 3, name: 'Excellent' }\r\n ];\r\n selectedPESQRating: number[] = [0];\r\n\r\n POLQARating: SelectItem[] = [\r\n { id: 0, name: 'Poor' },\r\n { id: 1, name: 'Fair' },\r\n { id: 2, name: 'Good' },\r\n { id: 3, name: 'Excellent' }\r\n ];\r\n selectedPOLQARating: number[] = [0];\r\n\r\n RTDRating: SelectItem[] = [\r\n { id: 0, name: 'Error' },\r\n { id: 1, name: 'Fail' },\r\n { id: 2, name: 'Pass' }\r\n ];\r\n selectedRTDRating: number[] = [0];\r\n\r\n MOSRating: SelectItem[] = [\r\n //{ id: 0, name: 'Not Use' },\r\n { id: 1, name: 'Pass' },\r\n { id: 2, name: 'Fail' }\r\n ];\r\n selectedMOSRating: number[] = [1];\r\n\r\n private dataFilter: DataFilter;\r\n AutoRefreshInfo: any;\r\n constructor(private service: FiltersService, private regService: GoogleMapsService, private commonFilterService: CommonFilterService, private cdr: ChangeDetectorRef, private http: HttpClient, private demoService: DemoService) {\r\n this.dataFilter = new DataFilter();\r\n\r\n //Do Auto-refresh - start/stop\r\n this.commonFilterService.componentMethodWithArgCalled$.subscribe(\r\n\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.AutoRefreshInfo = res;\r\n }\r\n );\r\n //this.selectedTime = { startDate: null, endDate: null }; //{ startDate: moment(), endDate: moment() };\r\n //this.selectedStartDateTime = null;\r\n //this.selectedEndDateTime = null;\r\n this.onClearClicked();\r\n }\r\n ngOnInit() {\r\n\r\n this.stringOperators = [\r\n { value: FilterOperator.STARTS_WITH, text: this.messages.startsWith },\r\n { value: FilterOperator.ENDS_WITH, text: this.messages.endsWith },\r\n { value: FilterOperator.CONTAINS, text: this.messages.contains },//2 - standard index for old webviewer data\r\n { value: FilterOperator.NOT_CONTAINS, text: this.messages.notContains },\r\n { value: FilterOperator.EQUALS, text: this.messages.equals },\r\n { value: FilterOperator.NOT_EQUAL, text: this.messages.notEqual },\r\n //{ value: FilterOperator.IS_EMPTY, text: this.messages.isEmpty },\r\n //{ value: FilterOperator.IS_NOT_EMPTY, text: this.messages.isNotEmpty },\r\n ];\r\n this.rangeOperators = [\r\n { value: FilterOperator.GREATER_THAN_OR_EQUAL, text: this.messages.greaterThanOrEqual },//0 - standard index for old webviewer data\r\n { value: FilterOperator.LESS_THAN_OR_EQUAL, text: this.messages.lessThanOrEqual },//1 - standard index for old webviewer data\r\n { value: FilterOperator.EQUALS, text: this.messages.equals },//2 - standard index for old webviewer data\r\n { value: FilterOperator.NOT_EQUAL, text: this.messages.notEqual },\r\n { value: FilterOperator.GREATER_THAN, text: this.messages.greaterThan },\r\n { value: FilterOperator.LESS_THAN, text: this.messages.lessThan },\r\n { value: FilterOperator.IN_RANGE, text: this.messages.inRange },\r\n //{ value: FilterOperator.IS_EMPTY, text: this.messages.isEmpty },\r\n //{ value: FilterOperator.IS_NOT_EMPTY, text: this.messages.isNotEmpty },\r\n ];\r\n this.selParamOperators = this.rangeOperators;\r\n\r\n this.onCommonAndResultsBothColsChange('-1');\r\n //this.getFilterConfig(0, '0');\r\n this.checkAuthorizeFilter(\"0\");\r\n\r\n }\r\n\r\n checkAuthorizeFilter(filterID) {\r\n let authorrizeFilters;\r\n if (sessionStorage.getItem('SystemSettings')) {\r\n if (sessionStorage.getItem('SystemSettings') != null) {\r\n authorrizeFilters = JSON.parse(sessionStorage.getItem('SystemSettings')).authorizeFilters;\r\n if (authorrizeFilters) {\r\n if (authorrizeFilters != null) {\r\n if (authorrizeFilters != \"\") {\r\n this.authorizeCreateFilter = false;\r\n this.authorizeModifyFilter = false;\r\n this.authorizeDeleteFilter = false;\r\n for (let i = 0; i < authorrizeFilters.split(',').length; i++) {\r\n if (authorrizeFilters.split(',')[i] == 1) {\r\n this.authorizeCreateFilter = true;\r\n }\r\n if (authorrizeFilters.split(',')[i] == 2) {\r\n this.authorizeModifyFilter = true;\r\n }\r\n if (authorrizeFilters.split(',')[i] == 3) {\r\n this.authorizeDeleteFilter = true;\r\n }\r\n\r\n }\r\n\r\n if (filterID != \"0\") {\r\n this.authorizeCreateFilter = this.authorizeModifyFilter == true ? true : false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n\r\n }\r\n\r\n onRegionChange(event) {\r\n let selID = parseInt(event);\r\n this.selectedRegions = [selID];\r\n this.cdr.detectChanges();\r\n }\r\n //reset region ddl to select again\r\n clearAllSelections($event): void {\r\n this.selectedRegions = [];\r\n }\r\n\r\n //onInputChange() { }\r\n //onInputFocus() { }\r\n //onInputBlur() { }\r\n\r\n isRangeFilter = false;\r\n critNeeded = true;\r\n onModeChange(type) {\r\n this.critNeeded = true;\r\n this.isRangeFilter = false;\r\n if (type == 0) {\r\n if (!this.isValueFilter && this.mainMatchMode == FilterOperator.IN_RANGE) {\r\n this.isRangeFilter = true;\r\n }\r\n else if (this.isValueFilter && (this.mainMatchMode == FilterOperator.IS_EMPTY || this.mainMatchMode == FilterOperator.IS_NOT_EMPTY)) {\r\n this.critNeeded = false;\r\n }\r\n }\r\n else if (type == 2)//Rating\r\n this.critNeeded = false;\r\n else {\r\n if (this.commonMatchMode == FilterOperator.IS_EMPTY || this.commonMatchMode == FilterOperator.IS_NOT_EMPTY) {\r\n this.critNeeded = false;\r\n }\r\n }\r\n }\r\n\r\n isValueFilter = false;\r\n onKeyPressFilterInput(event: KeyboardEvent) {\r\n if (event.which === Keys.ENTER) {\r\n //this.onClickOk();\r\n }\r\n }\r\n\r\n TZSelected = false;//\"False\";\r\n onTZSelectionChange(event): void {\r\n ////debugger\r\n if (event !== undefined && event !== null) {\r\n //https://flaviocopes.com/how-to-uppercase-first-letter-javascript/\r\n this.TZSelected = event.toString().charAt(0).toUpperCase() + event.toString().slice(1);\r\n }\r\n }\r\n\r\n FCSelected = false;//\"False\";\r\n onFCSelectionChange(event): void {\r\n ////debugger\r\n if (event !== undefined && event !== null) {\r\n this.FCSelected = event.toString().charAt(0).toUpperCase() + event.toString().slice(1);\r\n }\r\n }\r\n\r\n onCallDirectionsChange(event) {\r\n let selID = parseInt(event);\r\n if (isNaN(selID)) {\r\n selID = 3;\r\n }\r\n\r\n this.selectedCallDirections = [selID];\r\n //console.log(this.selectedCallDirections);\r\n }\r\n\r\n onCommonColsChange(event) {\r\n let selID = parseInt(event);\r\n this.selectedCommonCols = [selID];\r\n\r\n this.commonMatchMode = this.defaultStringMatchMode;\r\n if (this.selRow != \"{}\" && this.rowSelectionDone)\r\n this.commonMatchMode = this.stringOperators[parseInt(this.selRow[\"OperatorNum\"])].value;\r\n this.onModeChange(1);\r\n\r\n this.commonValue = \"\";\r\n if (this.selRow != \"{}\" && this.rowSelectionDone)\r\n this.commonValue = this.selRow[\"Value\"];\r\n\r\n if (this.rowSelectionDone)\r\n this.rowSelectionDone = false;\r\n }\r\n\r\n currCritListValue = \";\";\r\n multiCritFunc(stringMatchMode, stringValue) {\r\n if (stringValue.trim().length > 0 || this.critNeeded == false || stringMatchMode == FilterOperator.IS_EMPTY || stringMatchMode == FilterOperator.IS_NOT_EMPTY) {\r\n if (stringMatchMode == FilterOperator.EQUALS || stringMatchMode == (this.dataFilter.getOperatorType(FilterOperator.EQUALS))[1])\r\n this.currCritListValue += '*' + stringValue.trim() + '*';\r\n else if (stringMatchMode == FilterOperator.NOT_EQUAL || stringMatchMode == (this.dataFilter.getOperatorType(FilterOperator.NOT_EQUAL))[1])\r\n this.currCritListValue += '^' + stringValue.trim() + '^';\r\n else if (stringMatchMode == FilterOperator.STARTS_WITH || stringMatchMode == (this.dataFilter.getOperatorType(FilterOperator.STARTS_WITH))[1])\r\n this.currCritListValue += stringValue.trim() + '%';\r\n else if (stringMatchMode == FilterOperator.ENDS_WITH || stringMatchMode == (this.dataFilter.getOperatorType(FilterOperator.ENDS_WITH))[1])\r\n this.currCritListValue += '%' + stringValue.trim();\r\n else if (stringMatchMode == FilterOperator.NOT_CONTAINS || stringMatchMode == (this.dataFilter.getOperatorType(FilterOperator.NOT_CONTAINS))[1])\r\n this.currCritListValue += '!' + stringValue.trim() + '!';\r\n else if (stringMatchMode == FilterOperator.CONTAINS || stringMatchMode == (this.dataFilter.getOperatorType(FilterOperator.CONTAINS))[1])\r\n this.currCritListValue += stringValue.trim();\r\n else if (stringMatchMode == FilterOperator.IS_EMPTY || stringMatchMode == (this.dataFilter.getOperatorType(FilterOperator.IS_EMPTY))[1])//susheel\r\n this.currCritListValue += 'IS NULL';\r\n else if (stringMatchMode == FilterOperator.IS_NOT_EMPTY || stringMatchMode == (this.dataFilter.getOperatorType(FilterOperator.IS_NOT_EMPTY))[1])//susheel\r\n this.currCritListValue += 'IS NOT NULL';\r\n }\r\n }\r\n\r\n //savedCommonInternally = false;\r\n //RowsCommon = '';\r\n AddCritToCurrCommonParam() {\r\n this.validateCommonCriteria();\r\n if (this.critCommonErrors == true)\r\n return false;\r\n //console.log(this.selRow)\r\n if (this.selRow != \"{}\") {\r\n this.replaceAfterDel = true;\r\n this.onRowDeleted(this.selRow);\r\n this.replaceAfterDel = false;\r\n }\r\n\r\n this.multiCritFunc(this.commonMatchMode, this.commonValue);\r\n\r\n let colName = GetMapColumnAliia(\"VQuad_Location\", \"\", \"\");\r\n if (this.selectedCommonCols[0] == -1) {\r\n if (this.mainFilter.VQuad_Location.length == 0)\r\n this.currCritListValue = this.currCritListValue.substring(1, this.currCritListValue.length + 1);\r\n }\r\n else if (this.selectedCommonCols[0] == -2) {\r\n colName = GetMapColumnAliia(\"VQuad_PhoneID\", \"\", \"\");\r\n if (this.mainFilter.VQuad_PhoneID.length == 0)\r\n this.currCritListValue = this.currCritListValue.substring(1, this.currCritListValue.length + 1);\r\n }\r\n else if (this.selectedCommonCols[0] == -3) {\r\n colName = GetMapColumnAliia(\"VQuad_CallID\", \"\", \"\");\r\n if (this.mainFilter.VQuad_CallID.length == 0)\r\n this.currCritListValue = this.currCritListValue.substring(1, this.currCritListValue.length + 1);\r\n }\r\n //console.log(this.mainFilter.VQuad_Location)\r\n this.ReloadSelMultiCriteria(this.currCritListValue.replace(';', ''));\r\n\r\n //this.Rows = '';\r\n if (this.Rows.length > 0)\r\n this.Rows = this.Rows.substring(1, this.Rows.length - 1) + ',';//remove [ and ] \r\n\r\n let row = '';\r\n this.operAndCritList.every((eachOperAndCrit, i) => {\r\n ////debugger\r\n let operatorNum = this.stringOperators.findIndex((x) => x.value == eachOperAndCrit.oper);\r\n row = '{\"Column_Name\":\"' + colName + '\",\"OperatorNum\":\"' + operatorNum + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(eachOperAndCrit.oper))[1] + '\",\"Value\":\"' + eachOperAndCrit.critVal + '\",\"AndOr\":\"OR\"}';\r\n if (this.Rows.indexOf(row) != -1) {\r\n alert('Already exists!')\r\n return false;\r\n }\r\n if (this.selectedCommonCols[0] == -1)\r\n this.mainFilter.VQuad_Location += this.currCritListValue;\r\n else if (this.selectedCommonCols[0] == -2)\r\n this.mainFilter.VQuad_PhoneID += this.currCritListValue;\r\n else if (this.selectedCommonCols[0] == -3)\r\n this.mainFilter.VQuad_CallID += this.currCritListValue;\r\n\r\n this.Rows += row + ',';\r\n return true;\r\n });\r\n //console.log(this.Rows)\r\n this.currCritListValue = \";\";//reset\r\n\r\n if (this.Rows.length > 0)\r\n this.Rows = '[' + this.Rows.substring(0, this.Rows.length - 1) + ']';\r\n\r\n this.setRowsLatest();//refresh to latest ordered list unselecting row\r\n\r\n //setTimeout(() => {\r\n // if (this.dataManager) {\r\n // let colName = this.mainCols.find(x => x.id == this.selectedMainCols[0]).name;\r\n // let tableRowIndx = -1;\r\n // this.dataManager.rows.every((x, i) => {\r\n // if (JSON.stringify(x.$$data).indexOf(row.substring(1, row.length - 1)) !== -1) {\r\n // tableRowIndx = i;\r\n // return false;\r\n // }\r\n // return true;\r\n // })\r\n\r\n // //let tableRowIndx = this.dataManager.rows.findIndex(x => x.Column_Name == colName);\r\n // if (tableRowIndx != -1) {\r\n // this.dataManager.selectRow(tableRowIndx);//AutoSelect row of the saved table, when a saved column selected in the columns list - IMP\r\n // }\r\n // }\r\n\r\n // this.savedInternally = false;\r\n //}, 2000)\r\n }\r\n\r\n AddCritToCurrCommonAndMainParam() {\r\n if (this.isCommonOrMain)\r\n this.AddCritToCurrCommonParam();\r\n else\r\n this.AddCritToCurrRslt();\r\n }\r\n\r\n ResetCritOfCurrCommonParam() {\r\n\r\n }\r\n\r\n //selectedConfigCommon: boolean = false;\r\n\r\n async getSelRsltColsList(alias, parentId) {\r\n let DDLOrGrid = parentId == \"emu\" ? \"DDL\" : \"Grid\";\r\n\r\n //added Call Condition field as well\r\n let alphaNumSet = \";Target_Server;Phone_Model;Network_Type;TN_Number;TestStatus;Trace_from_IP;Trace_to_IP;Method;Query_Name;App_Version;Phone_IOS_Version;IMEI;SimMNC;SimMCC;IMSI;EGCI;PLMN_ID;Cell_ID;Neighbouring_Cell_ID;LAI;IpAddress;Gateway;DNS_UE;\" +\r\n \"VBA_Rating;Degraded;Deg_File_Name;Inventory;PAMSDelay_Per_Utterance;PESQDelay_Per_Utterance;PESQ_Per_Utterance;Rating;Reference;User_ID;Pass_Or_Fail;RTD_Error;RTD_Rating;Call_Control_Event;CC_Condition;Called_Number;Fax_Error;Fax_Event;Modem;Encoding;Resolution;ECM;Double_Talk;Ring_Type;Speech_Analysis;Dropout;VMWI;Equilibrium_Efficiency;Capacity_Efficiency;RTT_Consistency;Buffer_Delay;Error_Delay;Quality;\";\r\n let nonButNumSet = \";Battery_Level;RSSI;Starting_Speed;Final_Speed;\";//In DB, they are varchar type but actually are NUMBER type \r\n\r\n let DAQOrNot = false;\r\n if (alias == 'VQTDATA') {\r\n await this.demoService.getVqtDAQSetting('VqtData').then(res => {\r\n DAQOrNot = res;\r\n });\r\n }\r\n\r\n this.http.get('assets/ng-crud-table/DBTableSchemaFilters.json').subscribe(data => {\r\n let filtered = data.filter(cols => {\r\n if (cols.TABLE_NAME === alias && cols.COLUMN_NAME !== \"ID\" &&\r\n (((cols.DATA_TYPE === \"NUMBER\" || cols.DATA_TYPE === \"FLOAT\")\r\n && this.selectedResults[0] != 20)\r\n || (cols.COLUMN_NAME == \"RTD_Rating\" && this.selectedResults[0] == 2)\r\n || (alphaNumSet.indexOf(';' + cols.COLUMN_NAME + ';') != -1 && cols.COLUMN_NAME != \"RTD_Rating\" && this.selectedResults[0] != 2) || nonButNumSet.indexOf(';' + cols.COLUMN_NAME + ';') != -1)) {\r\n if (alias == 'VQTDATA' && cols.COLUMN_NAME === \"DAQ\" && !DAQOrNot)\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }).map(cols => ({ colName: cols.COLUMN_NAME, colType: cols.DATA_TYPE }));// - Add paranthesis before flower brackets - IMP\r\n //https://stackoverflow.com/questions/55608806/how-to-map-multiple-properties-to-arrays-in-angular-6\r\n\r\n this.mainCols = [];\r\n //console.log(filtered)\r\n filtered.forEach((x, i) => {\r\n this.mainCols.push({ id: i, name: GetMapColumnAliia(x.colName, parentId, DDLOrGrid), alias: x.colType, origName: x.colName });\r\n });\r\n if (this.selRow != \"{}\" && this.rowSelectionDone) {\r\n let rsltDetails = this.results.find(x => x.id === this.selectedResults[0]);\r\n if (rsltDetails) {\r\n if (rsltDetails.name == this.selRow['Result_Type']) {\r\n const colId = this.mainCols.find(x => x.name == this.selRow['Column_Name']);\r\n if (colId)\r\n this.onColsSelectionChange('' + colId.id);\r\n }\r\n else {\r\n this.selectedMainCols = [0];\r\n this.onColsSelectionChange('0');\r\n }\r\n }\r\n else {\r\n this.selectedMainCols = [0];\r\n this.onColsSelectionChange('0');\r\n }\r\n }\r\n else {\r\n this.selectedMainCols = [0];\r\n this.onColsSelectionChange('0');\r\n }\r\n\r\n if (this.rowSelectionDone)\r\n this.rowSelectionDone = false;\r\n //setTimeout(() => {\r\n // if (this.dataManager) {\r\n // let colName = this.mainCols.find(x => x.id == this.selectedMainCols[0]).name;\r\n // let tableRowIndx = this.dataManager.rows.findIndex(x => x.Column_Name == colName);\r\n // if (tableRowIndx != -1) {\r\n // this.dataManager.selectRow(tableRowIndx);//AutoSelect row of the saved table, when a saved column selected in the columns list - IMP\r\n // }\r\n // }\r\n //}, 1000)\r\n });\r\n\r\n\r\n\r\n //this.columns = getColumnsHeaders(alias, parentId).filter(function (col) {\r\n // return col.tableHidden === false;\r\n //});\r\n ////https://stackoverflow.com/questions/8900732/sort-objects-in-an-array-alphabetically-on-one-property-of-the-array\r\n //this.columns.sort(function (a, b) {\r\n // var textA = a.title.toUpperCase();\r\n // var textB = b.title.toUpperCase();\r\n // return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;\r\n //});\r\n ////console.log(this.columns);\r\n }\r\n colNameTbl = \"\";\r\n colNameTblOrig = \"\";\r\n async getCurrColType(alias, parentId, colName?, colIndex?) {\r\n let DDLOrGrid = parentId == \"emu\" ? \"DDL\" : \"Grid\";\r\n\r\n //added Call Condition field as well\r\n let alphaNumSet = \";Target_Server;Phone_Model;Network_Type;TN_Number;TestStatus;Trace_from_IP;Trace_to_IP;Method;Query_Name;App_Version;Phone_IOS_Version;IMEI;SimMNC;SimMCC;IMSI;EGCI;PLMN_ID;Cell_ID;Neighbouring_Cell_ID;LAI;IpAddress;Gateway;DNS_UE;\" +\r\n \"VBA_Rating;Degraded;Deg_File_Name;Inventory;PAMSDelay_Per_Utterance;PESQDelay_Per_Utterance;PESQ_Per_Utterance;Rating;Reference;User_ID;Pass_Or_Fail;RTD_Error;RTD_Rating;Call_Control_Event;CC_Condition;Called_Number;Fax_Error;Fax_Event;Modem;Encoding;Resolution;ECM;Double_Talk;Ring_Type;Speech_Analysis;Dropout;VMWI;Equilibrium_Efficiency;Capacity_Efficiency;RTT_Consistency;Buffer_Delay;Error_Delay;Quality;\";\r\n let nonButNumSet = \";Battery_Level;RSSI;Starting_Speed;Final_Speed;\";//In DB, they are varchar type but actually are NUMBER type \r\n\r\n let DAQOrNot = false;\r\n if (alias == 'VQTDATA') {\r\n await this.demoService.getVqtDAQSetting('VqtData').then(res => {\r\n DAQOrNot = res;\r\n });\r\n }\r\n\r\n let numeric = true;\r\n return await this.http.get('assets/ng-crud-table/DBTableSchemaFilters.json').toPromise().then(data => {\r\n let filtered = data.filter(cols => {\r\n if (cols.TABLE_NAME === alias && cols.COLUMN_NAME !== \"ID\" &&\r\n (((cols.DATA_TYPE === \"NUMBER\" || cols.DATA_TYPE === \"FLOAT\")\r\n && this.selectedResults[0] != 20)\r\n || (cols.COLUMN_NAME == \"RTD_Rating\" && this.selectedResults[0] == 2)\r\n || (alphaNumSet.indexOf(';' + cols.COLUMN_NAME + ';') != -1 && cols.COLUMN_NAME != \"RTD_Rating\" && this.selectedResults[0] != 2) || nonButNumSet.indexOf(';' + cols.COLUMN_NAME + ';') != -1)) {\r\n if (alias == 'VQTDATA' && cols.COLUMN_NAME === \"DAQ\" && !DAQOrNot)\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }).map(cols => ({ colName: cols.COLUMN_NAME, colType: cols.DATA_TYPE }));// - Add paranthesis before flower brackets - IMP\r\n //https://stackoverflow.com/questions/55608806/how-to-map-multiple-properties-to-arrays-in-angular-6\r\n if (colName)\r\n numeric = filtered.find((x, i) => x.colName == colName).colType.indexOf('VARCHAR') !== -1 ? false : true;\r\n else if (colIndex) {\r\n let colItem = filtered.find((x, i) => i == colIndex);\r\n numeric = colItem.colType.indexOf('VARCHAR') !== -1 ? false : true;\r\n if (nonButNumSet.indexOf(';' + colItem.colName + ';') != -1)\r\n numeric = true;\r\n this.colNameTblOrig = filtered.find((x, i) => i == colIndex).colName;\r\n this.colNameTbl = GetMapColumnAliia(filtered.find((x, i) => i == colIndex).colName, parentId, DDLOrGrid);\r\n }\r\n\r\n return numeric;\r\n\r\n }).catch(() => {\r\n return numeric;\r\n });\r\n }\r\n\r\n onRsltSelectionChange(event) {\r\n let selID = parseInt(event);\r\n this.selectedResults = [selID];\r\n let selRsltItem: SelectItem[] = this.results.filter(function (item) {\r\n return item.id === selID;\r\n });\r\n\r\n this.getSelRsltColsList(selRsltItem[0].alias, selRsltItem[0].parentId);\r\n }\r\n chkActualColName() {\r\n }\r\n onRsltSelectionCancel() {\r\n\r\n }\r\n\r\n isCommonOrMain = true;\r\n isCommonDisabled: boolean;\r\n isMainDisabled: boolean;\r\n onCommonAndResultsBothColsChange(event) {\r\n let selID = parseInt(event);\r\n this.selectedCommonAndResultsCols = [selID];\r\n if (selID < 0) {\r\n this.onCommonColsChange(event);\r\n this.isCommonOrMain = true;\r\n }\r\n else {\r\n this.isCommonOrMain = false;\r\n this.onRsltSelectionChange(event);\r\n }\r\n }\r\n\r\n\r\n onColsSelectionChange(event) {\r\n let selID = parseInt(event);\r\n this.selectedMainCols = [selID];\r\n this.setSelParamsOpersList();\r\n this.setCriteriaValue();\r\n this.onAndOrChange('1');\r\n }\r\n isRatingParam = false;\r\n isPESQRating = false;\r\n isPOLQARating = false;\r\n isRTDRating = false;\r\n isMOSRating = false;\r\n setSelParamsOpersList() {\r\n\r\n let currColItem = this.mainCols.find((x, i) => i === this.selectedMainCols[0]);\r\n if (currColItem) {\r\n\r\n if ((this.selectedResults[0] == 0 && currColItem.origName == \"Rating\") || (this.selectedResults[0] == 1 && currColItem.origName == \"Pass_Or_Fail\")\r\n || (this.selectedResults[0] == 2 && currColItem.origName == \"RTD_Rating\")\r\n || (this.selectedResults[0] == 17 && currColItem.origName == \"VBA_Rating\")) {\r\n this.isRatingParam = true;\r\n this.mainRatingMatchMode = this.defaultRatingMatchMode;\r\n if (this.selRow != \"{}\" && this.rowSelectionDone)\r\n this.mainRatingMatchMode = this.selRatingParamOperators[parseInt(this.selRow[\"OperatorNum\"])].value;\r\n this.onModeChange(2);\r\n\r\n this.isPESQRating = false;\r\n this.isPOLQARating = false;\r\n this.isRTDRating = false;\r\n this.isMOSRating = false;\r\n\r\n //////to set select row rating value for rating column for respective result types //elumalai\r\n this.isValueFilter = true;\r\n let ratingValue = 0;\r\n\r\n if (this.selectedResults[0] == 0) {\r\n this.isPESQRating = true;\r\n if (this.selRow != \"{}\" && this.rowSelectionDone) {\r\n const PESQFound = this.PESQRating.find(x => x.name == this.selRow[\"Value\"]);\r\n if (PESQFound)\r\n ratingValue = PESQFound.id;\r\n }\r\n this.onRatingsChange(ratingValue, 0);\r\n }\r\n else if (this.selectedResults[0] == 1) {\r\n this.isPOLQARating = true;\r\n if (this.selRow != \"{}\" && this.rowSelectionDone) {\r\n const POLQAFound = this.POLQARating.find(x => x.name == this.selRow[\"Value\"]);\r\n if (POLQAFound)\r\n ratingValue = POLQAFound.id;\r\n }\r\n this.onRatingsChange(ratingValue, 3);\r\n }\r\n else if (this.selectedResults[0] == 2) {\r\n this.isRTDRating = true;\r\n if (this.selRow != \"{}\" && this.rowSelectionDone) {\r\n const RTDFound = this.RTDRating.find(x => x.name == this.selRow[\"Value\"]);\r\n if (RTDFound)\r\n ratingValue = RTDFound.id;\r\n }\r\n this.onRatingsChange(ratingValue, 1);\r\n }\r\n else if (this.selectedResults[0] == 17) {\r\n this.isMOSRating = true;\r\n if (this.selRow != \"{}\" && this.rowSelectionDone) {\r\n const MOSFound = this.MOSRating.find(x => x.name == this.selRow[\"Value\"]);\r\n if (MOSFound)\r\n ratingValue = MOSFound.id;\r\n }\r\n this.onRatingsChange(ratingValue, 2);\r\n }\r\n }\r\n else {\r\n this.isRatingParam = false;\r\n\r\n if (currColItem.alias.indexOf('VARCHAR') !== -1) {// && currColItem.origName != \"Battery_Level\" && currColItem.origName != \"RSSI\" && currColItem.origName != \"Starting_Speed\" && currColItem.origName != \"Final_Speed\") {\r\n this.selParamOperators = this.stringOperators;\r\n this.isValueFilter = true;\r\n this.mainMatchMode = this.defaultStringMatchMode;\r\n if (this.selRow != \"{}\" && this.rowSelectionDone)\r\n this.mainMatchMode = this.selParamOperators[parseInt(this.selRow[\"OperatorNum\"])].value;\r\n this.onModeChange(0);\r\n }\r\n else {\r\n this.isRangeFilter = false;\r\n this.selParamOperators = this.rangeOperators;\r\n if ((this.selectedResults[0] == 2 && currColItem.origName != \"RTD_Rating\")\r\n || (this.selectedResults[0] >= 3 && this.selectedResults[0] <= 14)\r\n || this.selectedResults[0] == 17) {//IMP - restrict audio/delay, nettest and mobileinfo, vba params to range oper for now\r\n this.selParamOperators = [{ value: FilterOperator.IN_RANGE, text: this.messages.inRange }];\r\n this.isRangeFilter = true;\r\n this.mainMatchMode = FilterOperator.IN_RANGE;\r\n }\r\n else {\r\n this.mainMatchMode = this.defaultRangeMatchMode;\r\n if (this.selRow != \"{}\" && this.rowSelectionDone)\r\n this.mainMatchMode = this.selParamOperators[parseInt(this.selRow[\"OperatorNum\"])].value;\r\n }\r\n\r\n this.isValueFilter = false;\r\n this.onModeChange(0);\r\n }\r\n }\r\n }\r\n }\r\n setCriteriaValue() {\r\n this.mainValue = \"\";\r\n this.mainValueTo = \"\";\r\n if (this.selRow != \"{}\" && this.rowSelectionDone) {\r\n this.mainValue = this.selRow[\"Value\"];\r\n if (this.selRow[\"Value_To\"])\r\n this.mainValueTo = this.selRow[\"Value_To\"].replace('--', '');\r\n }\r\n }\r\n onColsSelectionCancel() {\r\n\r\n }\r\n\r\n onRatingsChange(event, type) {\r\n let selID = parseInt(event);\r\n if (type == 0)\r\n this.selectedPESQRating = [selID];\r\n else if (type == 3)\r\n this.selectedPOLQARating = [selID];\r\n else if (type == 1)\r\n this.selectedRTDRating = [selID];\r\n else if (type == 2)\r\n this.selectedMOSRating = [selID];\r\n }\r\n\r\n disableAndOr: boolean;\r\n onAndOrChange(event) {\r\n this.disableAndOr = false;\r\n let currColItem = this.mainCols.find((x, i) => i === this.selectedMainCols[0]);\r\n if (currColItem) {\r\n if (this.Rows.indexOf('{\"Column_OrigName\":\"' + currColItem.origName + '\",') != -1) {\r\n this.selectedAndOrs = [2];\r\n this.disableAndOr = true;\r\n }\r\n }\r\n\r\n if (!this.disableAndOr) {\r\n let selID = parseInt(event);\r\n this.selectedAndOrs = [selID];\r\n }\r\n }\r\n\r\n\r\n //All single fields of filters - ratings, ranges, timezone, etc\r\n mainFilter = new MAINFILTER();\r\n\r\n savedInternally = false;\r\n Rows = '';\r\n replaceAfterDel = false;\r\n AddCritToCurrRslt() {\r\n this.validateCriteria();\r\n if (this.critErrors == true || this.critValueToErrors == true)\r\n return false;\r\n\r\n if (this.selRow != \"{}\") {\r\n this.replaceAfterDel = true;\r\n this.onRowDeleted(this.selRow);\r\n this.replaceAfterDel = false;\r\n }\r\n\r\n let colDetails = this.mainCols.find(x => x.id == this.selectedMainCols[0]);\r\n if (colDetails) { }\r\n else\r\n return false;\r\n let operIndx = this.selParamOperators.findIndex(x => x.value === this.mainMatchMode);\r\n let andOrItem: SelectItem = this.andOrs.find(item => item.id === this.selectedAndOrs[0]);\r\n let andOrVal = andOrItem.name;\r\n\r\n let ratingOper = this.mainRatingMatchMode;\r\n let ratingVal = \"\";\r\n ////debugger\r\n if (this.selectedResults[0] == 0) {\r\n if (colDetails.origName == \"PESQ_LQ\" && this.mainMatchMode === FilterOperator.IN_RANGE) {\r\n if (this.mainFilter.PESQ_LQ_Range != '|') {\r\n alert('Already exists!');\r\n return false;\r\n }\r\n this.mainFilter.PESQ_LQ_Range = this.mainValue + \"|\" + this.mainValueTo;\r\n }\r\n else if (colDetails.origName == \"Rating\") {// && this.mainRatingMatchMode != RatingOperator.NOTUSE) {\r\n if (this.Rows.indexOf('\"Column_OrigName\":\"' + colDetails.origName + '\",') != -1) {\r\n alert('Already exists!')\r\n return false;\r\n }\r\n const rateOperIndx = Object.entries(RatingOperator).findIndex(([key, value]) => value === this.mainRatingMatchMode);\r\n this.mainFilter.PESQ_LQ_Rating = rateOperIndx + \"|\" + this.selectedPESQRating[0];//https://stackoverflow.com/a/62701678 //https://www.cloudhadoop.com/typescript-convert-string-enum/\r\n ratingVal = this.PESQRating.find(x => x.id == this.selectedPESQRating[0]).name;\r\n }\r\n else {\r\n //0\r\n //VQT@|VQTData|Asymmetric_disturbance|=|1|Asymmetric disturbance$Or|VQTData|duration_hangover|LIKE|2|Duration Hangover(s)$ - params after @ and delimited $\r\n //|VQTData|Asymmetric_disturbance|=|1|Asymmetric disturbance$ - AND/OR | Table name | Parameter name | operator(=/>/ {\r\n if (eachPESQ.indexOf(currColData12) != -1) {\r\n paramCritExists = true;\r\n return false;\r\n }\r\n return true;\r\n });\r\n }\r\n }\r\n if (paramCritExists) {\r\n this.currCritListValue = \";\";\r\n alert('Already exists!');\r\n return false;\r\n }\r\n let currColData = andOrVal + currColData12 + \"$\";\r\n this.mainFilter.CriteriaCondition += currColData;\r\n }\r\n }\r\n else if (this.selectedResults[0] == 1) {\r\n if (colDetails.origName == \"POLQA_Score\" && this.mainMatchMode === FilterOperator.IN_RANGE) {\r\n if (this.mainFilter.POLQA_Score_Range != '|') {\r\n alert('Already exists!');\r\n return false;\r\n }\r\n this.mainFilter.POLQA_Score_Range = this.mainValue + \"|\" + this.mainValueTo;\r\n }\r\n else if (colDetails.origName == \"Pass_Or_Fail\") {// && this.mainRatingMatchMode != RatingOperator.NOTUSE) {\r\n if (this.Rows.indexOf('\"Column_OrigName\":\"' + colDetails.origName + '\",') != -1) {\r\n alert('Already exists!')\r\n return false;\r\n }\r\n //console.log(this.mainRatingMatchMode)\r\n const rateOperIndx = Object.entries(RatingOperator).findIndex(([key, value]) => value === this.mainRatingMatchMode);\r\n //console.log(rateOperIndx)\r\n this.mainFilter.POLQA_Score_Rating = rateOperIndx + \"|\" + this.selectedPOLQARating[0];\r\n //console.log(this.mainFilter.POLQA_Score_Rating)\r\n const polqaFound = this.POLQARating.find(x => x.id == this.selectedPOLQARating[0]);\r\n if (polqaFound)\r\n ratingVal = polqaFound.name;\r\n }\r\n else {\r\n //1\r\n //VQTPOLQA@|VQTPOLQA|POLQA_Score|=|8|POLQA_Score$And|VQTPOLQA|EModel_Polqa|<|4|EModel (R-factor)$\r\n //same as above vqt\r\n let paramCritExists = false;\r\n\r\n let currColData12 = \"|VQTPOLQA|\" + colDetails.origName + \"|\" + operIndx + \"|\" + this.mainValue + \"|\" + colDetails.name;\r\n if (this.mainMatchMode === FilterOperator.IN_RANGE)\r\n currColData12 = \"|VQTPOLQA|\" + colDetails.origName + \"|\" + operIndx + \"|\" + this.mainValue + \":\" + this.mainValueTo + \"|\" + colDetails.name;\r\n\r\n if (this.mainFilter.POLQACriteriaCondition.length == 0) {\r\n this.mainFilter.POLQACriteriaCondition = \"VQTPOLQA@\";\r\n andOrVal = \"\";\r\n if (this.isValueFilter)\r\n this.multiCritFunc(this.mainMatchMode, this.mainValue);\r\n }\r\n else {\r\n //andOrVal = \"AND\";\r\n if (this.isValueFilter) {\r\n this.multiCritFunc(this.mainMatchMode, this.mainValue);\r\n let currPOLQAVal = (this.mainFilter.POLQACriteriaCondition.split('@'))[1].split('$');\r\n currPOLQAVal.every(eachPOLQA => {\r\n if (eachPOLQA.indexOf(currColData12) != -1) {\r\n paramCritExists = true;\r\n return false;\r\n }\r\n return true;\r\n });\r\n }\r\n }\r\n if (paramCritExists) {\r\n this.currCritListValue = \";\";\r\n alert('Already exists!');\r\n return false;\r\n }\r\n let currColData = andOrVal + currColData12 + \"$\";\r\n this.mainFilter.POLQACriteriaCondition += currColData;\r\n }\r\n }\r\n else if (this.selectedResults[0] == 2) {\r\n //2 - Audio/Delay\r\n if (colDetails.origName == \"RTD\" && this.mainMatchMode === FilterOperator.IN_RANGE) {\r\n if (this.mainFilter.RTD_Range != '|') {\r\n alert('Already exists!');\r\n return false;\r\n }\r\n this.mainFilter.RTD_Range = this.mainValue + \"|\" + this.mainValueTo;\r\n }\r\n else if (colDetails.origName == \"OWD\" && this.mainMatchMode === FilterOperator.IN_RANGE) {\r\n if (this.mainFilter.OWD_Range != '|') {\r\n alert('Already exists!');\r\n return false;\r\n }\r\n this.mainFilter.OWD_Range = this.mainValue + \"|\" + this.mainValueTo;\r\n }\r\n else if (colDetails.origName == \"PDD\" && this.mainMatchMode === FilterOperator.IN_RANGE) {\r\n if (this.mainFilter.PDD_Range != '|') {\r\n alert('Already exists!');\r\n return false;\r\n }\r\n this.mainFilter.PDD_Range = this.mainValue + \"|\" + this.mainValueTo;\r\n }\r\n else if (colDetails.origName == \"SWR\" && this.mainMatchMode === FilterOperator.IN_RANGE) {\r\n if (this.mainFilter.SNR_Range != '|') {\r\n alert('Already exists!');\r\n return false;\r\n }\r\n this.mainFilter.SNR_Range = this.mainValue + \"|\" + this.mainValueTo;\r\n }\r\n else if (colDetails.origName == \"RTD_Rating\") {// && this.mainRatingMatchMode != RatingOperator.NOTUSE) {\r\n if (this.Rows.indexOf('\"Column_OrigName\":\"' + colDetails.origName + '\",') != -1) {\r\n alert('Already exists!')\r\n return false;\r\n }\r\n const rateOperIndx = Object.entries(RatingOperator).findIndex(([key, value]) => value === this.mainRatingMatchMode);\r\n this.mainFilter.RTD_Rating = rateOperIndx + \"|\" + this.selectedRTDRating[0];\r\n const rtdFound = this.RTDRating.find(x => x.id == this.selectedRTDRating[0]);\r\n if (rtdFound)\r\n ratingVal = rtdFound.name;\r\n }\r\n }\r\n else if (this.selectedResults[0] >= 3 && this.selectedResults[0] <= 11) {\r\n //3-11\r\n //;;;;;;;; - nettest\r\n //AND$1:333@9^OR$9:999@1;AND$2:777@2;AND$3:444@2;;;;;;AND$6:766@2 - delimited by ; for each nettest rslt type\r\n\r\n //AND$1:333@9^OR$9:999@1 - delimited by ^ for each param under curr rslt\r\n //AND$1:333@9 - AND/OR $ 1(Low) : 333(High) @ 9(param index)\r\n //; as delimiter between rslt types\r\n\r\n //NOTE - replace ^ with & as it confilicts doenot contans ^..^\r\n let eachNetTestParamsList = this.mainFilter.NetTest.split(';');\r\n let currIndex = this.selectedResults[0] - 3;\r\n let currNetTestVal = eachNetTestParamsList[currIndex];//all params of a rslt type\r\n\r\n let rsltCritExists = true;\r\n if (currNetTestVal.length == 0)//no params under curr rslt\r\n rsltCritExists = false;\r\n\r\n if (this.isValueFilter) {//single or multi string values\r\n this.multiCritFunc(this.mainMatchMode, this.mainValue);\r\n\r\n let newCurrNetTestVal = \"\";\r\n if (rsltCritExists) {\r\n let paramExists = false;\r\n let critExists = false;\r\n currNetTestVal.split('&').forEach((eachParamCrit, i) => {\r\n if (eachParamCrit.indexOf('@' + colDetails.id) != -1) {//append new crit to existng param\r\n paramExists = true;\r\n let multiCritArr = ((eachParamCrit.split('$'))[1].split('@'))[0].split('#');\r\n multiCritArr.every(eachCrit => {\r\n if (eachCrit === this.currCritListValue.replace(';', '')) {\r\n critExists = true;\r\n return false;\r\n }\r\n return true;\r\n });\r\n if (!critExists) {\r\n if (i > 0)\r\n newCurrNetTestVal += '&';\r\n newCurrNetTestVal += eachParamCrit.replace('@' + colDetails.id, this.currCritListValue.replace(';', '#') + '@' + colDetails.id);//using # as multi crit delim\r\n }\r\n }\r\n else {\r\n if (i > 0)\r\n newCurrNetTestVal += '&';\r\n newCurrNetTestVal += eachParamCrit;\r\n }\r\n });\r\n\r\n if (critExists) {\r\n this.currCritListValue = \";\";\r\n alert('Already exists!');\r\n return false;\r\n }\r\n\r\n if (!paramExists)//param not exists, so add this new param criteria at the exitisting params end\r\n {\r\n this.currCritListValue = this.currCritListValue.substring(1, this.currCritListValue.length + 1);//removes ; as newly adding\r\n newCurrNetTestVal += '&' + andOrVal + '$' + this.currCritListValue + '@' + colDetails.id;\r\n }\r\n }\r\n else {//freshly adding rslt and its first crit\r\n this.currCritListValue = this.currCritListValue.substring(1, this.currCritListValue.length + 1);//removes ; as newly adding\r\n newCurrNetTestVal += andOrVal + '$' + this.currCritListValue + '@' + colDetails.id;\r\n }\r\n\r\n eachNetTestParamsList[currIndex] = newCurrNetTestVal;//replacing final value\r\n //this.currCritListValue = \";\";\r\n }\r\n else if (this.isRangeFilter) {//low to high\r\n if (eachNetTestParamsList[currIndex].indexOf('@' + colDetails.id) != -1) {\r\n this.currCritListValue = \";\";\r\n alert('Already exists!');\r\n return false;\r\n }\r\n\r\n if (rsltCritExists)\r\n eachNetTestParamsList[currIndex] += '&';\r\n eachNetTestParamsList[currIndex] += andOrVal + '$' + this.mainValue + \":\" + this.mainValueTo + '@' + colDetails.id;\r\n }\r\n //else//number\r\n // eachNetTestParamsList[currIndex] += this.mainMatchMode + \"|\" + this.mainValue;\r\n\r\n this.mainFilter.NetTest = \"\";\r\n eachNetTestParamsList.forEach(eachNetTest => {\r\n this.mainFilter.NetTest += eachNetTest + \";\";\r\n })\r\n\r\n this.mainFilter.NetTest = this.mainFilter.NetTest.substring(0, this.mainFilter.NetTest.length - 1);\r\n }\r\n else if (this.selectedResults[0] >= 12 && this.selectedResults[0] <= 14) {\r\n //12-14\r\n //;; - mobileinfo\r\n //AND$1:1000@0;AND$3:3000@0;\r\n //; as delimiter between rslt types\r\n\r\n //NOTE - replace ^ with & as it confilicts doenot contans ^..^\r\n let eachMobInfoParamsList = this.mainFilter.Mobile.split(';');\r\n let currIndex = this.selectedResults[0] - 12;\r\n let currMobInfoVal = eachMobInfoParamsList[currIndex];//all params of a rslt type\r\n\r\n let rsltCritExists = true;\r\n if (currMobInfoVal.length == 0)//no params under curr rslt\r\n rsltCritExists = false;\r\n\r\n if (this.isValueFilter) {//single or multi string values\r\n this.multiCritFunc(this.mainMatchMode, this.mainValue);\r\n\r\n let newCurrMobInfoVal = \"\";\r\n if (rsltCritExists) {\r\n let paramExists = false;\r\n let critExists = false;\r\n currMobInfoVal.split('&').forEach((eachParamCrit, i) => {\r\n if (eachParamCrit.indexOf('@' + colDetails.id) != -1) {//append new crit to existng param\r\n paramExists = true;\r\n let multiCritArr = ((eachParamCrit.split('$'))[1].split('@'))[0].split('#');\r\n multiCritArr.every(eachCrit => {\r\n if (eachCrit === this.currCritListValue.replace(';', '')) {\r\n critExists = true;\r\n return false;\r\n }\r\n return true;\r\n });\r\n if (!critExists) {\r\n if (i > 0)\r\n newCurrMobInfoVal += '&';\r\n newCurrMobInfoVal += eachParamCrit.replace('@' + colDetails.id, this.currCritListValue.replace(';', '#') + '@' + colDetails.id);//using # as multi crit delim\r\n }\r\n }\r\n else {\r\n if (i > 0)\r\n newCurrMobInfoVal += '&';\r\n newCurrMobInfoVal += eachParamCrit;\r\n }\r\n });\r\n\r\n if (critExists) {\r\n this.currCritListValue = \";\";\r\n alert('Already exists!');\r\n return false;\r\n }\r\n\r\n if (!paramExists)//param not exists, so add this new param criteria at the exitisting params end, thus making multi\r\n {\r\n this.currCritListValue = this.currCritListValue.substring(1, this.currCritListValue.length + 1);//removes ; as newly adding\r\n newCurrMobInfoVal += '&' + andOrVal + '$' + this.currCritListValue + '@' + colDetails.id;\r\n }\r\n }\r\n else {\r\n this.currCritListValue = this.currCritListValue.substring(1, this.currCritListValue.length + 1);//removes ; as newly adding\r\n newCurrMobInfoVal += andOrVal + '$' + this.currCritListValue + '@' + colDetails.id;\r\n }\r\n\r\n eachMobInfoParamsList[currIndex] = newCurrMobInfoVal;//replacing final value\r\n }\r\n else if (this.isRangeFilter) {//low to high\r\n if (eachMobInfoParamsList[currIndex].indexOf('@' + colDetails.id) != -1) {\r\n this.currCritListValue = \";\";\r\n alert('Already exists!');\r\n return false;\r\n }\r\n\r\n if (rsltCritExists)\r\n eachMobInfoParamsList[currIndex] += '&';\r\n eachMobInfoParamsList[currIndex] += andOrVal + '$' + this.mainValue + \":\" + this.mainValueTo + '@' + colDetails.id;\r\n }\r\n //else//number\r\n // eachMobInfoParamsList[currIndex] += this.mainMatchMode + \"|\" + this.mainValue;\r\n\r\n this.mainFilter.Mobile = \"\";\r\n eachMobInfoParamsList.forEach(eachMobInfo => {\r\n this.mainFilter.Mobile += eachMobInfo + \";\";\r\n })\r\n\r\n this.mainFilter.Mobile = this.mainFilter.Mobile.substring(0, this.mainFilter.Mobile.length - 1);\r\n }\r\n else if (this.selectedResults[0] == 17) {\r\n //17 - Emodule\r\n if (colDetails.origName == \"MOS_CQ\" && this.mainMatchMode === FilterOperator.IN_RANGE) {\r\n if (this.mainFilter.MOSCQ_Range != '|') {\r\n alert('Already exists!');\r\n return false;\r\n }\r\n this.mainFilter.MOSCQ_Range = this.mainValue + \"|\" + this.mainValueTo;\r\n }\r\n else if (colDetails.origName == \"VBA_Rating\") {\r\n if (this.Rows.indexOf('\"Column_OrigName\":\"' + colDetails.origName + '\",') != -1) {\r\n alert('Already exists!')\r\n return false;\r\n }\r\n this.mainFilter.MOSCQ_Rating = \"\" + this.selectedMOSRating[0];\r\n ratingOper = this.selRatingParamOperators[1].value;//equals always\r\n const mosFound = this.MOSRating.find(x => x.id == this.selectedMOSRating[0]);\r\n if (mosFound)\r\n ratingVal = mosFound.name;\r\n }\r\n }\r\n else if (this.selectedResults[0] == 20) {\r\n //20 - Call events\r\n if (colDetails.origName == \"CC_Condition\")\r\n this.multiCritFunc(this.mainMatchMode, this.mainValue.replace(';', '~'));\r\n else\r\n this.multiCritFunc(this.mainMatchMode, this.mainValue);\r\n\r\n if (colDetails.origName == \"Call_Control_Event\") {\r\n if (this.mainFilter.Call_Control_Event.length == 0)\r\n this.currCritListValue = this.currCritListValue.substring(1, this.currCritListValue.length + 1);\r\n this.mainFilter.Call_Control_Event += this.currCritListValue;\r\n }\r\n else if (colDetails.origName == \"CC_Condition\") {\r\n if (this.mainFilter.CC_Condition.length == 0)\r\n this.currCritListValue = this.currCritListValue.substring(1, this.currCritListValue.length + 1);\r\n this.mainFilter.CC_Condition += this.currCritListValue;\r\n }\r\n else if (colDetails.origName == \"Called_Number\") {\r\n if (this.mainFilter.Called_Number.length == 0)\r\n this.currCritListValue = this.currCritListValue.substring(1, this.currCritListValue.length + 1);\r\n this.mainFilter.Called_Number += this.currCritListValue;\r\n }\r\n }\r\n\r\n let rsltDetails = this.results.find(x => x.id === this.selectedResults[0]);\r\n if (rsltDetails) { }\r\n else\r\n return false;\r\n let row = '';\r\n\r\n let colIndx = '';\r\n if (this.selectedResults[0] >= 3 && this.selectedResults[0] <= 14)\r\n colIndx = ',\"Column_Index\":\"' + colDetails.id + '\"';\r\n\r\n if (this.isValueFilter) {\r\n this.ReloadSelMultiCriteria(this.currCritListValue.replace(';', ''));\r\n //this.stringOperators.forEach(x => console.log((this.dataFilter.getOperatorType(x.value))[1]))\r\n this.operAndCritList.forEach((eachOperAndCrit, i) => {\r\n let newVal = colDetails.origName == \"CC_Condition\" ? eachOperAndCrit.critVal.replace('~', ';') : eachOperAndCrit.critVal;\r\n let operatorNum = this.stringOperators.findIndex((x) => x.value == eachOperAndCrit.oper);\r\n row = '{\"Column_OrigName\":\"' + colDetails.origName + '\",\"NumOrRatingOrStr\":\"3\"' + colIndx + ',\"Result_Type\":\"' + rsltDetails.name + '\",\"Column_Name\":\"' + colDetails.name + '\",\"OperatorNum\":\"' + operatorNum + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(eachOperAndCrit.oper))[1] + '\",\"Value\":\"' + newVal + '\",\"Value_To\":\"--\",\"AndOr\":\"' + andOrVal + '\"}';\r\n });\r\n }\r\n else if (this.isRatingParam) {\r\n //if ((colDetails.origName == \"Rating\" && this.mainFilter.PESQ_LQ_Rating.indexOf('0|') != -1) ||\r\n // (colDetails.origName == \"Pass_Or_Fail\" && this.mainFilter.POLQA_Score_Rating.indexOf('0|') != -1) ||\r\n // (colDetails.origName == \"RTD_Rating\" && this.mainFilter.RTD_Rating.indexOf('0|') != -1) ||\r\n // (colDetails.origName == \"VBA_Rating\" && this.mainFilter.MOSCQ_Rating.indexOf('0|') != -1)) {\r\n // //don't add to table as new row\r\n //}\r\n //else\r\n let operatorNum = this.selRatingParamOperators.findIndex((x) => x.value == ratingOper);//(this.dataFilter.getOperatorType(ratingOper))[0];\r\n //operatorNum = operatorNum == '0' ? operatorNum : (operatorNum == '3' ? '1' : '2');\r\n row = '{\"Column_OrigName\":\"' + colDetails.origName + '\",\"NumOrRatingOrStr\":\"2\"' + colIndx + ',\"Result_Type\":\"' + rsltDetails.name + '\",\"Column_Name\":\"' + colDetails.name + '\",\"OperatorNum\":\"' + operatorNum + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(ratingOper))[1] + '\",\"Value\":\"' + ratingVal + '\",\"Value_To\":\"--\",\"AndOr\":\"' + andOrVal + '\"}';\r\n }\r\n else {\r\n let valueTo = this.isRangeFilter ? this.mainValueTo : \"--\";\r\n //if (this.isRangeFilter && this.mainValue.trim() == '' && this.mainValueTo.trim() == '') {\r\n // //don't add to table as new row\r\n //}\r\n //else\r\n let operatorNum = this.rangeOperators.findIndex((x) => x.value == this.mainMatchMode);\r\n row = '{\"Column_OrigName\":\"' + colDetails.origName + '\",\"NumOrRatingOrStr\":\"1\"' + colIndx + ',\"Result_Type\":\"' + rsltDetails.name + '\",\"Column_Name\":\"' + colDetails.name + '\",\"OperatorNum\":\"' + operatorNum + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(this.mainMatchMode))[1] + '\",\"Value\":\"' + this.mainValue + '\",\"Value_To\":\"' + valueTo + '\",\"AndOr\":\"' + andOrVal + '\"}';\r\n }\r\n this.currCritListValue = \";\";//reset\r\n //console.log(this.Rows)\r\n //console.log((row.split('\"AndOr\":'))[0])\r\n //if (this.Rows.indexOf((row.split('\"AndOr\":'))[0]) != -1) {\r\n // alert('Already exists!')\r\n // return false;\r\n //}\r\n if (row.split('\"AndOr\":')[0] != '' && this.Rows.indexOf((row.split('\"AndOr\":'))[0]) != -1) {\r\n alert('Already exists!')\r\n return false;\r\n }\r\n this.selectedAndOrs = [2];\r\n this.disableAndOr = true;\r\n\r\n if (this.Rows.length > 0)\r\n this.Rows = this.Rows.substring(1, this.Rows.length - 1) + ',';//remove [ and ]\r\n this.Rows += row + ',';\r\n\r\n if (this.Rows.length > 0)\r\n this.Rows = '[' + this.Rows.substring(0, this.Rows.length - 1) + ']';\r\n\r\n this.setRowsLatest();\r\n\r\n //setTimeout(() => {\r\n // if (this.dataManager) {\r\n // let colName = this.mainCols.find(x => x.id == this.selectedMainCols[0]).name;\r\n // let tableRowIndx = -1;\r\n // this.dataManager.rows.every((x, i) => {\r\n // if (JSON.stringify(x.$$data).indexOf(row.substring(1, row.length - 1)) !== -1) {\r\n // tableRowIndx = i;\r\n // return false;\r\n // }\r\n // return true;\r\n // })\r\n\r\n // //let tableRowIndx = this.dataManager.rows.findIndex(x => x.Column_Name == colName);\r\n // if (tableRowIndx != -1) {\r\n // this.dataManager.selectRow(tableRowIndx);//AutoSelect row of the saved table, when a saved column selected in the columns list - IMP\r\n // }\r\n // }\r\n\r\n // this.savedInternally = false;\r\n //}, 2000)\r\n }\r\n //Loads latest saved param or selected table param as well loads table with fresh saved devids and params of sel rslt\r\n //delCrit = false;\r\n operAndCritList: any[] = [];\r\n ReloadSelMultiCriteria(commonOrMainCritVal, sep?) {\r\n this.operAndCritList = [];//reset\r\n\r\n //this.delCrit = false;\r\n if (commonOrMainCritVal !== \"\") {\r\n\r\n let currCritsArr = commonOrMainCritVal.split(sep);\r\n currCritsArr.forEach((eachOperAndCrit, i) => {\r\n let operAndCritObj = {};\r\n if (eachOperAndCrit.indexOf('*') == 0 && eachOperAndCrit.lastIndexOf('*') == eachOperAndCrit.length - 1) {\r\n operAndCritObj[\"oper\"] = FilterOperator.EQUALS;\r\n operAndCritObj[\"critVal\"] = eachOperAndCrit.substring(1, eachOperAndCrit.length - 1);\r\n }\r\n else if (eachOperAndCrit.indexOf('^') == 0 && eachOperAndCrit.lastIndexOf('^') == eachOperAndCrit.length - 1) {\r\n operAndCritObj[\"oper\"] = FilterOperator.NOT_EQUAL;\r\n operAndCritObj[\"critVal\"] = eachOperAndCrit.substring(1, eachOperAndCrit.length - 1);\r\n }\r\n else if (eachOperAndCrit.indexOf('%') != 0 && eachOperAndCrit.lastIndexOf('%') == eachOperAndCrit.length - 1) {\r\n operAndCritObj[\"oper\"] = FilterOperator.STARTS_WITH;\r\n operAndCritObj[\"critVal\"] = eachOperAndCrit.substring(0, eachOperAndCrit.length - 1);\r\n }\r\n else if (eachOperAndCrit.indexOf('%') == 0 && eachOperAndCrit.lastIndexOf('%') != eachOperAndCrit.length - 1) {\r\n operAndCritObj[\"oper\"] = FilterOperator.ENDS_WITH;\r\n operAndCritObj[\"critVal\"] = eachOperAndCrit.substring(1, eachOperAndCrit.length);\r\n }\r\n else if (eachOperAndCrit.indexOf('!') == 0 && eachOperAndCrit.lastIndexOf('!') == eachOperAndCrit.length - 1) {\r\n operAndCritObj[\"oper\"] = FilterOperator.NOT_CONTAINS;\r\n operAndCritObj[\"critVal\"] = eachOperAndCrit.substring(1, eachOperAndCrit.length - 1);\r\n }\r\n else if (eachOperAndCrit == 'IS NULL') {//susheel\r\n operAndCritObj[\"oper\"] = FilterOperator.IS_EMPTY;\r\n operAndCritObj[\"critVal\"] = eachOperAndCrit;\r\n }\r\n else if (eachOperAndCrit == 'IS NOT NULL') {\r\n operAndCritObj[\"oper\"] = FilterOperator.IS_NOT_EMPTY;\r\n operAndCritObj[\"critVal\"] = eachOperAndCrit;\r\n }\r\n else {\r\n operAndCritObj[\"oper\"] = FilterOperator.CONTAINS;\r\n operAndCritObj[\"critVal\"] = eachOperAndCrit;\r\n }\r\n this.operAndCritList.push(operAndCritObj);\r\n });\r\n }\r\n }\r\n\r\n selRow: any = '{}';\r\n rowSelectionDone: boolean = false;\r\n editCtrlsHighlight: boolean = false;\r\n ReloadCritToCurrRslt(row) {\r\n this.selRow = row;\r\n // let row = '{\"Column_OrigName\":\"' + rsltAndParamList[1] + '\",\"NumOrRatingOrStr\":\"2\",\"Result_Type\":\"' + rsltDetails.name + '\",\"Column_Name\":\"' + GetMapColumnAliia(rsltAndParamList[1], \"\", \"\") + '\",\"OperatorNum\":\"' + operatorNum + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(ratingOper))[1] + '\",\"Value\":\"' + ratingVal + '\",\"Value_To\":\"--\",\"AndOr\":\"' + andOrVal + '\"}';\r\n let rsltId = '-1';\r\n if (row['Column_Name'] == \"VQuad Call ID\")\r\n rsltId = '-1';\r\n else if (row['Column_Name'] == \"VQuad DeviceID\")\r\n rsltId = '-2';\r\n else if (row['Column_Name'] == \"VQuad EventID\")\r\n rsltId = '-3';\r\n else {\r\n const rsltTypeFound = this.results.find(x => x.name == row['Result_Type']);\r\n if (rsltTypeFound)\r\n rsltId = rsltTypeFound.id;\r\n }\r\n\r\n this.rowSelectionDone = true;\r\n this.editCtrlsHighlight = true;\r\n this.onCommonAndResultsBothColsChange(rsltId);\r\n }\r\n //ResetCritOfCurrRslt() {\r\n // this.critErrors = false;\r\n //}\r\n\r\n //Validations\r\n critCommonErrors: boolean = false;\r\n critCommonErrorDesc = \"*Required\";\r\n validateCommonCriteria() {\r\n this.critCommonErrors = false;\r\n ////debugger\r\n //when input empty\r\n if (this.commonValue.length === 0 && this.critNeeded == true) {\r\n this.critCommonErrors = true;\r\n this.critCommonErrorDesc = \"*Required\";\r\n }\r\n //else if (!this.isValueFilter) {//when input type is numeric and pasted alpha numeric\r\n // if (isNaN(this.commonValue)) {\r\n // this.critCommonErrors = true;\r\n // this.critCommonErrorDesc = \"*Invalid number\";\r\n // }\r\n //}\r\n }\r\n //Validations\r\n critErrors: boolean = false;\r\n critValueToErrors: boolean = false;\r\n critErrorDesc = \"*Required\";\r\n critValueToErrorDesc = \"*Required\";\r\n validateCriteria() {\r\n ////debugger\r\n this.critErrors = false;\r\n this.critValueToErrors = false;\r\n //when input empty\r\n if (this.mainValue.length === 0 && this.critNeeded == true) {\r\n this.critErrors = true;\r\n this.critErrorDesc = \"*Required\";\r\n\r\n if (this.isRangeFilter) {\r\n this.critValueToErrors = true;\r\n this.critValueToErrorDesc = \"*Required\";\r\n }\r\n }\r\n else if (!this.isValueFilter) {//when input type is numeric and pasted alpha numeric\r\n if (isNaN(this.mainValue)) {\r\n this.critErrors = true;\r\n this.critErrorDesc = \"*Invalid number\";\r\n }\r\n if (this.isRangeFilter) {\r\n if (isNaN(this.mainValueTo)) {\r\n this.critValueToErrors = true;\r\n this.critValueToErrorDesc = \"*Invalid number\";\r\n }\r\n else {\r\n //https://stackoverflow.com/questions/14667713/how-to-convert-a-string-to-number-in-typescript - IMP\r\n if (+this.mainValue >= +this.mainValueTo) {\r\n this.critValueToErrors = true;\r\n this.critValueToErrorDesc = \"*Invalid range\";\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n //critDateErrors: boolean = false;\r\n critDateErrorDesc = \"*Invalid dates selection\";\r\n //Save internal memory of all map types to DB finally under curr config\r\n saveConfigToDB() {\r\n //if (this.mainFilter.ID == 0) {\r\n // this.filtersSave.emit(this.mainFilter);\r\n // return false;\r\n //}\r\n debugger\r\n this.resetMsg();\r\n let configuredOrNot = false;\r\n const regFound = this.regions.find(x => x.id == this.selectedRegions[0]);\r\n if (regFound)\r\n this.mainFilter.MapRegion = this.selectedRegions.length > 0 ? regFound.name : \"--Select Config--\";\r\n else if (this.selectedRegions.length == 0)\r\n this.mainFilter.MapRegion = \"--Select Config--\";\r\n\r\n configuredOrNot = configuredOrNot ? configuredOrNot : this.mainFilter.MapRegion != \"--Select Config--\" && this.mainFilter.MapRegion != null;\r\n\r\n //this.critDateErrors = false;\r\n //if ((this.selectedTime.startDate == null && this.selectedTime.endDate != null) || (this.selectedTime.startDate == null && this.selectedTime.endDate != null))\r\n // this.critDateErrors = true;\r\n if (this.selectedTime.startDate == null && this.selectedTime.endDate == null)\r\n this.mainFilter.CustomDateTime = ';';\r\n else {\r\n\r\n if (this.wrongDateRange) {\r\n alert('Invalid Dates range!!');\r\n return;\r\n }\r\n if (this.okOrClear) {\r\n alert('Dates range selected but not applied!!');\r\n return;\r\n }\r\n let startAndEndDates = this.selectedTime.startDate.format('YYYY/MM/DD HH:mm:ss') + ';' + this.selectedTime.endDate.format('YYYY/MM/DD HH:mm:ss');//this.dateInput.nativeElement.value\r\n this.mainFilter.CustomDateTime = startAndEndDates;\r\n configuredOrNot = true;\r\n }\r\n\r\n this.mainFilter.Timezone = this.TZSelected == false ? 'False' : 'True';\r\n configuredOrNot = configuredOrNot ? configuredOrNot : this.TZSelected;\r\n\r\n this.mainFilter.Failed_Calls = this.FCSelected == false ? 'False' : 'True';\r\n configuredOrNot = configuredOrNot ? configuredOrNot : this.FCSelected;\r\n this.mainFilter.Failed_Calls += \"|\" + this.selectedCallDirections[0];//New column (I/O) adjusted in Failed Calls column itself\r\n configuredOrNot = configuredOrNot ? configuredOrNot : this.selectedCallDirections[0] != 3;\r\n\r\n this.mainFilter.NetTest = this.mainFilter.NetTest.replace(/\\&OR/g, '^OR').replace(/\\&AND/g, '^AND');//reverting param spli & to orig ^\r\n configuredOrNot = configuredOrNot ? configuredOrNot : this.mainFilter.NetTest != \";;;;;;;;\";\r\n this.mainFilter.Mobile = this.mainFilter.Mobile.replace(/\\&OR/g, '^OR').replace(/\\&AND/g, '^AND');//reverting param spli & to orig ^\r\n configuredOrNot = configuredOrNot ? configuredOrNot : this.mainFilter.Mobile != \";;\";\r\n\r\n configuredOrNot = configuredOrNot ? configuredOrNot : this.selectedConfig;\r\n\r\n if (!configuredOrNot) {\r\n alert(\"Invalid filter creation, no configuration to save ?\");\r\n return false;\r\n }\r\n\r\n this.mainFilter.ID = -1;\r\n\r\n if (sessionStorage.getItem('SystemSettings')) {\r\n if (sessionStorage.getItem('SystemSettings') != null) {\r\n this.LoggedinUserName = JSON.parse(sessionStorage.getItem('SystemSettings')).UserName;\r\n }\r\n }\r\n\r\n //console.log(this.mainFilter)\r\n this.filtersSave.emit(this.mainFilter);\r\n }\r\n @Output() filtersSave: EventEmitter = new EventEmitter();\r\n\r\n //resetCritErrors() {\r\n // this.critErrors = false;\r\n //}\r\n\r\n //set curr config from DB and load on table\r\n async setConfigFromDB(rowFilter: MAINFILTER) {\r\n\r\n this.mainFilter = rowFilter;\r\n //debugger;\r\n //Dates ranges\r\n if (this.mainFilter.CustomDateTime != ';' && this.mainFilter.CustomDateTime != null) {\r\n //console.log(this.mainFilter.CustomDateTime)\r\n let splittedDates = this.mainFilter.CustomDateTime.split(';');\r\n this.selectedStartDateTime = { startDate: moment(new Date((splittedDates)[0])), endDate: moment(new Date((splittedDates)[0])) };\r\n this.selectedEndDateTime = { startDate: moment(new Date((splittedDates)[1])), endDate: moment(new Date((splittedDates)[1])) };\r\n\r\n this.selectedTime = { startDate: moment(new Date((splittedDates)[0])), endDate: moment(new Date((splittedDates)[1])) };\r\n\r\n this.onOKClicked();\r\n }\r\n else {\r\n //this.selectedStartDateTime = null;\r\n //this.selectedEndDateTime = null;\r\n this.onClearClicked();\r\n }\r\n\r\n //map region\r\n ////debugger\r\n //\r\n setTimeout(() => {\r\n if (this.mainFilter.MapRegion != '--Select Config--' && this.mainFilter.MapRegion != null) {\r\n let regId = this.regions.find(x => x.name == this.mainFilter.MapRegion);\r\n this.cdr.detectChanges();\r\n\r\n if (regId) {\r\n this.onRegionChange(regId.id);\r\n //this.selectedRegions = [regId.id];\r\n }\r\n }\r\n else\r\n this.selectedRegions = [0];\r\n }, 3000);\r\n this.cdr.detectChanges();\r\n //Failed Calls and Call Direction\r\n this.mainFilter.Failed_Calls = this.mainFilter.Failed_Calls == null ? 'False' : this.mainFilter.Failed_Calls;\r\n if (this.mainFilter.Failed_Calls.indexOf('|') != -1)\r\n this.mainFilter.Failed_Calls = this.mainFilter.Failed_Calls + '|3';//Add Call Direction\r\n //this.onFCSelectionChange((this.mainFilter.Failed_Calls.split('|'))[0]);\r\n this.FCSelected = (this.mainFilter.Failed_Calls.split('|'))[0] == 'False' ? false : true;\r\n this.onCallDirectionsChange((this.mainFilter.Failed_Calls.split('|'))[1]);\r\n\r\n //Auto Timezone\r\n //this.onTZSelectionChange(this.mainFilter.Timezone);\r\n this.mainFilter.Timezone = this.mainFilter.Timezone == null ? 'False' : this.mainFilter.Timezone;\r\n this.TZSelected = this.mainFilter.Timezone == 'False' ? false : true;\r\n\r\n this.setRowsLatest();\r\n }\r\n async setRowsLatest() {\r\n //Call ID, Device, ID and Event ID\r\n this.Rows = '';\r\n this.mainFilter.VQuad_Location = this.mainFilter.VQuad_Location == null ? \"\" : this.mainFilter.VQuad_Location;\r\n this.mainFilter.VQuad_PhoneID = this.mainFilter.VQuad_PhoneID == null ? \"\" : this.mainFilter.VQuad_PhoneID;\r\n this.mainFilter.VQuad_CallID = this.mainFilter.VQuad_CallID == null ? \"\" : this.mainFilter.VQuad_CallID;\r\n //let commonValObj = { \"VQuad_Location\": this.mainFilter.VQuad_Location, \"VQuad_DeviceID\": this.mainFilter.VQuad_PhoneID, \"VQuad_EventID\": this.mainFilter.VQuad_CallID };\r\n let commonValObj = { \"VQuad_Call_ID\": this.mainFilter.VQuad_Location, \"VQuad_DeviceID\": this.mainFilter.VQuad_PhoneID, \"VQuad_EventID\": this.mainFilter.VQuad_CallID };\r\n for (const key in commonValObj) {\r\n if (commonValObj[key] != null) {\r\n if (commonValObj[key].length > 0) {\r\n let commonValList = commonValObj[key].split(';');\r\n\r\n commonValList.forEach((eachCommonVal) => {\r\n this.ReloadSelMultiCriteria(eachCommonVal);\r\n this.operAndCritList.forEach((eachOperAndCrit, i) => {\r\n let operatorNum = this.stringOperators.findIndex((x) => x.value == eachOperAndCrit.oper);\r\n //let row = '{\"Column_Name\":\"' + colName + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(eachOperAndCrit.oper))[1] + '\",\"Value\":\"' + eachOperAndCrit.critVal + '\",\"AndOr\":\"OR\"}';\r\n let row = '{\"Column_Name\":\"' + GetMapColumnAliia(key, \"\", \"\") + '\",\"OperatorNum\":\"' + operatorNum + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(eachOperAndCrit.oper))[1] + '\",\"Value\":\"' + eachOperAndCrit.critVal + '\",\"AndOr\":\"OR\"}';\r\n this.Rows += row + ',';\r\n });\r\n });\r\n }\r\n }\r\n }\r\n //if (this.Rows.length > 0)\r\n // this.Rows = '[' + this.Rows.substring(0, this.Rows.length - 1) + ']';\r\n\r\n //this.setRsltType(this.Rows);//, 0);\r\n\r\n this.mainFilter.Call_Control_Event = this.mainFilter.Call_Control_Event == null ? \"\" : this.mainFilter.Call_Control_Event;\r\n this.mainFilter.CC_Condition = this.mainFilter.CC_Condition == null ? \"\" : this.mainFilter.CC_Condition;\r\n this.mainFilter.Called_Number = this.mainFilter.Called_Number == null ? \"\" : this.mainFilter.Called_Number;\r\n let ccEventValObj = { \"Call_Control_Event\": this.mainFilter.Call_Control_Event, \"CC_Condition\": this.mainFilter.CC_Condition, \"Called_Number\": this.mainFilter.Called_Number };\r\n for (const key in ccEventValObj) {\r\n if (ccEventValObj[key] != null) {\r\n if (ccEventValObj[key].length > 0) {\r\n let ccEventValList = ccEventValObj[key].split(';');\r\n\r\n ccEventValList.forEach((eachCCEventVal) => {\r\n this.ReloadSelMultiCriteria(eachCCEventVal);\r\n this.operAndCritList.forEach((eachOperAndCrit, i) => {\r\n let operatorNum = this.stringOperators.findIndex((x) => x.value == eachOperAndCrit.oper);\r\n let row = '{\"Column_OrigName\":\"' + key + '\",\"NumOrRatingOrStr\":\"3\",\"Result_Type\":\"VQuad Call Events\",\"Column_Name\":\"' + GetMapColumnAliia(key, \"\", \"\") + '\",\"OperatorNum\":\"' + operatorNum + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(eachOperAndCrit.oper))[1] + '\",\"Value\":\"' + eachOperAndCrit.critVal.replace('~', ';') + '\",\"Value_To\":\"--\",\"AndOr\":\"OR\"}';\r\n this.Rows += row + ',';\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n ////Main results and params\r\n //this.Rows = '';//reset\r\n this.mainFilter.PESQ_LQ_Range = this.mainFilter.PESQ_LQ_Range == null ? \"|\" : this.mainFilter.PESQ_LQ_Range;\r\n this.mainFilter.POLQA_Score_Range = this.mainFilter.POLQA_Score_Range == null ? \"|\" : this.mainFilter.POLQA_Score_Range;\r\n this.mainFilter.MOSCQ_Range = this.mainFilter.MOSCQ_Range == null ? \"|\" : this.mainFilter.MOSCQ_Range;\r\n this.mainFilter.RTD_Range = this.mainFilter.RTD_Range == null ? \"|\" : this.mainFilter.RTD_Range;\r\n this.mainFilter.OWD_Range = this.mainFilter.OWD_Range == null ? \"|\" : this.mainFilter.OWD_Range;\r\n this.mainFilter.SNR_Range = this.mainFilter.SNR_Range == null ? \"|\" : this.mainFilter.SNR_Range;\r\n this.mainFilter.PDD_Range = this.mainFilter.PDD_Range == null ? \"|\" : this.mainFilter.PDD_Range;\r\n let rangeListObj = {\r\n \"0|PESQ_LQ\": this.mainFilter.PESQ_LQ_Range, \"1|POLQA_Score\": this.mainFilter.POLQA_Score_Range,\r\n \"2|RTD\": this.mainFilter.RTD_Range, \"2|OWD\": this.mainFilter.OWD_Range, \"2|SWR\": this.mainFilter.SNR_Range, \"2|PDD\": this.mainFilter.PDD_Range,\r\n \"17|MOS_CQ\": this.mainFilter.MOSCQ_Range\r\n };\r\n for (const key in rangeListObj) {\r\n if (rangeListObj[key] != null) {\r\n if (rangeListObj[key].length > 0 && rangeListObj[key].trim() != '|') {\r\n let rsltAndParamList = key.split('|');\r\n let rsltDetails = this.results.find(x => x.id === parseInt(rsltAndParamList[0]));\r\n if (rsltDetails) {\r\n let currRangeList = rangeListObj[key].split('|');\r\n let andOrVal = \"AND\";\r\n if (currRangeList.length == 3)\r\n andOrVal = currRangeList[2];\r\n let operatorNum = this.rangeOperators.findIndex((x) => x.value == FilterOperator.IN_RANGE);\r\n let row = '{\"Column_OrigName\":\"' + rsltAndParamList[1] + '\",\"NumOrRatingOrStr\":\"1\",\"Result_Type\":\"' + rsltDetails.name + '\",\"Column_Name\":\"' + GetMapColumnAliia(rsltAndParamList[1], \"\", \"\") + '\",\"OperatorNum\":\"' + operatorNum + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(FilterOperator.IN_RANGE))[1] + '\",\"Value\":\"' + currRangeList[0] + '\",\"Value_To\":\"' + currRangeList[1] + '\",\"AndOr\":\"' + andOrVal + '\"}';\r\n this.Rows += row + ',';\r\n }\r\n }\r\n }\r\n };\r\n\r\n this.mainFilter.PESQ_LQ_Rating = this.mainFilter.PESQ_LQ_Rating == null ? \"0|0\" : this.mainFilter.PESQ_LQ_Rating;\r\n this.mainFilter.POLQA_Score_Rating = this.mainFilter.POLQA_Score_Rating == null ? \"0|0\" : this.mainFilter.POLQA_Score_Rating;\r\n this.mainFilter.RTD_Rating = this.mainFilter.RTD_Rating == null ? \"0|0\" : this.mainFilter.RTD_Rating;\r\n this.mainFilter.MOSCQ_Rating = this.mainFilter.MOSCQ_Rating == null ? \"0\" : this.mainFilter.MOSCQ_Rating;\r\n let ratingListObj = { \"0|Rating\": this.mainFilter.PESQ_LQ_Rating, \"1|Pass_Or_Fail\": this.mainFilter.POLQA_Score_Rating, \"2|RTD_Rating\": this.mainFilter.RTD_Rating, \"17|VBA_Rating\": this.mainFilter.MOSCQ_Rating };\r\n for (const key in ratingListObj) {\r\n if (ratingListObj[key] != null) {\r\n if (ratingListObj[key].length > 0 && ratingListObj[key] != '0|0' && ratingListObj[key] != '0') {\r\n let rsltAndParamList = key.split('|');\r\n let rsltDetails = this.results.find(x => x.id === parseInt(rsltAndParamList[0]));\r\n if (rsltDetails) {\r\n let currRatingList = ratingListObj[key].split('|');\r\n const rateOperIndx = Object.entries(RatingOperator).find(([key, value], i) => i === parseInt(currRatingList[0]));\r\n let ratingOper = \"\";\r\n let ratingVal = \"\";\r\n let andOrRange = 3;\r\n\r\n if (rsltAndParamList[0] == \"0\") {\r\n ratingOper = rateOperIndx[1];//this.selRatingParamOperators[parseInt(currRatingList[0])].value;//Rating operator\r\n ratingVal = this.PESQRating.find(x => x.id == parseInt(currRatingList[1])).name;//value dropdown\r\n }\r\n else if (rsltAndParamList[0] == \"1\") {\r\n ratingOper = rateOperIndx[1];//this.selRatingParamOperators[parseInt(currRatingList[0])].value;//Rating operator\r\n ratingVal = this.POLQARating.find(x => x.id == parseInt(currRatingList[1])).name;//value dropdown\r\n }\r\n else if (rsltAndParamList[0] == \"2\") {\r\n ratingOper = rateOperIndx[1];//this.selRatingParamOperators[parseInt(currRatingList[0])].value;//Rating operator\r\n ratingVal = this.RTDRating.find(x => x.id == parseInt(currRatingList[1])).name;//value dropdown\r\n }\r\n else if (rsltAndParamList[0] == \"17\") {\r\n ratingOper = this.selRatingParamOperators[2].value;\r\n ratingVal = this.MOSRating.find(x => x.id == parseInt(currRatingList[0])).name;//value dropdown\r\n andOrRange = 2;\r\n }\r\n let andOrVal = \"AND\";\r\n if (currRatingList.length == andOrRange)\r\n andOrVal = currRatingList[2];\r\n\r\n //let operatorNum = (this.dataFilter.getOperatorType(ratingOper))[0];\r\n //operatorNum = operatorNum == '0' ? operatorNum : (operatorNum == '3' ? '1' : '2');\r\n let operatorNum = this.selRatingParamOperators.findIndex((x) => x.value == ratingOper);\r\n let row = '{\"Column_OrigName\":\"' + rsltAndParamList[1] + '\",\"NumOrRatingOrStr\":\"2\",\"Result_Type\":\"' + rsltDetails.name + '\",\"Column_Name\":\"' + GetMapColumnAliia(rsltAndParamList[1], \"\", \"\") + '\",\"OperatorNum\":\"' + operatorNum + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(ratingOper))[1] + '\",\"Value\":\"' + ratingVal + '\",\"Value_To\":\"--\",\"AndOr\":\"' + andOrVal + '\"}';\r\n this.Rows += row + ',';\r\n }\r\n }\r\n }\r\n };\r\n\r\n //0, 1\r\n //VQT@|VQTData|Asymmetric_disturbance|=|1|Asymmetric disturbance$Or|VQTData|duration_hangover|LIKE|2|Duration Hangover(s)$ - params after @ and delimited $\r\n //|VQTData|Asymmetric_disturbance|=|1|Asymmetric disturbance$ - AND/OR | Table name | Parameter name | operator(=/>/ {\r\n //critConditionsList.forEach((eachRsltCrit, i) => {\r\n if (eachRsltCrit != null) {\r\n if (eachRsltCrit.length > 0) {\r\n let allParamsCrit = (eachRsltCrit.split('@'))[1];\r\n let colsList = allParamsCrit.substring(0, allParamsCrit.length - 1).split('$');// remove last $\r\n\r\n await Promise.all(colsList.map(async eachCol => {\r\n //colsList.forEach(async eachCol => {\r\n let colDetailsList = eachCol.split('|');\r\n let rsltDetails = this.results.find(x => x.id === i);//0, 1\r\n if (rsltDetails) {\r\n let oper = FilterOperator.EQUALS;\r\n let operatorNum = this.rangeOperators.findIndex((x) => x.value == FilterOperator.EQUALS);\r\n let operType = 1;\r\n let value = colDetailsList[4];\r\n let valueTo = \"--\";\r\n if (isNaN(Number(colDetailsList[3]))) {\r\n if (colDetailsList[3] == \">\") {\r\n oper = FilterOperator.GREATER_THAN;\r\n operatorNum = this.rangeOperators.findIndex((x) => x.value == FilterOperator.GREATER_THAN);\r\n }\r\n else if (colDetailsList[3] == \"<\") {\r\n oper = FilterOperator.LESS_THAN;\r\n operatorNum = this.rangeOperators.findIndex((x) => x.value == FilterOperator.LESS_THAN);\r\n }\r\n else if (colDetailsList[3] == \"LIKE\") {\r\n oper = FilterOperator.CONTAINS;\r\n operatorNum = this.stringOperators.findIndex((x) => x.value == FilterOperator.CONTAINS);\r\n }\r\n }\r\n else {\r\n let numericOrNot = await this.getCurrColType(rsltDetails.alias, rsltDetails.parentId, colDetailsList[2]);\r\n operType = numericOrNot == true ? 1 : 3;\r\n ////debugger\r\n oper = numericOrNot == true ? this.rangeOperators.find((x, i) => i == parseInt(colDetailsList[3])).value : this.stringOperators.find((x, i) => i == parseInt(colDetailsList[3])).value;\r\n operatorNum = numericOrNot == true ? parseInt(colDetailsList[3]) : this.stringOperators.findIndex((x) => x.value == oper);\r\n\r\n //console.log(oper + numericOrNot + colDetailsList[3])\r\n if (oper == FilterOperator.IN_RANGE) {\r\n //if (operatorNum == this.rangeOperators.findIndex((x) => x.value == FilterOperator.IN_RANGE)) {\r\n value = (colDetailsList[4].split(':'))[0];\r\n valueTo = (colDetailsList[4].split(':'))[1];\r\n }\r\n }\r\n let row = '{\"Column_OrigName\":\"' + colDetailsList[2] + '\",\"NumOrRatingOrStr\":\"' + operType + '\",\"Result_Type\":\"' + rsltDetails.name + '\",\"Column_Name\":\"' + colDetailsList[5] + '\",\"OperatorNum\":\"' + operatorNum + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(oper))[1] + '\",\"Value\":\"' + value + '\",\"Value_To\":\"' + valueTo + '\",\"AndOr\":\"' + colDetailsList[0] + '\"}';\r\n this.Rows += row + ',';\r\n }\r\n }));\r\n }\r\n }\r\n }));\r\n\r\n //3-11\r\n //;;;;;;;; - nettest\r\n //AND$1:333@9^OR$9:999@1;AND$2:777@2;AND$3:444@2;;;;;;AND$6:766@2 - delimited by ; for each nettest rslt type\r\n\r\n //AND$1:333@9^OR$9:999@1 - delimited by ^ for each param under curr rslt\r\n //AND$1:333@9 - AND/OR $ 1(Low) : 333(High) @ 9(param index)\r\n //; as delimiter between rslt types\r\n\r\n this.mainFilter.NetTest = this.mainFilter.NetTest == null ? \";;;;;;;;\" : this.mainFilter.NetTest;\r\n this.mainFilter.Mobile = this.mainFilter.Mobile == null ? \";;\" : this.mainFilter.Mobile;\r\n let netAndMobList = [this.mainFilter.NetTest, this.mainFilter.Mobile];\r\n let prevLength = 3;//From TCP\r\n await Promise.all(netAndMobList.map(async (eachRsltCrit, i) => {\r\n //netAndMobList.forEach(async (eachRsltCrit, i) => {\r\n if (eachRsltCrit != null) {\r\n if (eachRsltCrit.length > 0) {\r\n let currRsltList = eachRsltCrit.split(';');\r\n if (i == 1)\r\n prevLength = 12;//From PHONEINFO\r\n\r\n await Promise.all(currRsltList.map(async (eachsubrslt, j) => {\r\n //currRsltList.forEach(async (eachsubrslt, j) => {\r\n let rsltDetails = this.results.find(x => x.id === (j + prevLength));\r\n if (rsltDetails && eachsubrslt.length > 0) {\r\n let colsList = eachsubrslt.replace(/\\^OR/g, '&OR').replace(/\\^AND/g, '&AND').split('&');//To avoid confict of param split with doesnot contain operator\r\n\r\n //https://stackoverflow.com/questions/37576685/using-async-await-with-a-foreach-loop - IMP IMP\r\n await Promise.all(colsList.map(async eachCol => {\r\n //colsList.forEach(async eachCol => {\r\n let andOrCritList = (eachCol.split('@'))[0].split('$');\r\n let colIndx = ',\"Column_Index\":\"' + (eachCol.split('@'))[1] + '\"';\r\n let numericOrNot = await this.getCurrColType(rsltDetails.alias, rsltDetails.parentId, undefined, (eachCol.split('@'))[1]);\r\n if (numericOrNot == false) {\r\n\r\n this.ReloadSelMultiCriteria(andOrCritList[1], '#');\r\n this.operAndCritList.forEach((eachOperAndCrit, i) => {\r\n let operatorNum = this.stringOperators.findIndex((x) => x.value == eachOperAndCrit.oper);\r\n let row = '{\"Column_OrigName\":\"' + this.colNameTblOrig + '\",\"NumOrRatingOrStr\":\"3\"' + colIndx + ',\"Result_Type\":\"' + rsltDetails.name + '\",\"Column_Name\":\"' + this.colNameTbl + '\",\"OperatorNum\":\"' + operatorNum + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(eachOperAndCrit.oper))[1] + '\",\"Value\":\"' + eachOperAndCrit.critVal + '\",\"AndOr\":\"OR\"}';\r\n this.Rows += row + ',';\r\n });\r\n }\r\n else {\r\n let operatorNum = this.rangeOperators.findIndex((x) => x.value == FilterOperator.IN_RANGE);\r\n let row = '{\"Column_OrigName\":\"' + this.colNameTblOrig + '\",\"NumOrRatingOrStr\":\"1\"' + colIndx + ',\"Result_Type\":\"' + rsltDetails.name + '\",\"Column_Name\":\"' + this.colNameTbl + '\",\"OperatorNum\":\"' + operatorNum + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(FilterOperator.IN_RANGE))[1] + '\",\"Value\":\"' + (andOrCritList[1].split(':'))[0] + '\",\"Value_To\":\"' + (andOrCritList[1].split(':'))[1] + '\",\"AndOr\":\"' + andOrCritList[0] + '\"}';\r\n this.Rows += row + ',';\r\n }\r\n }));\r\n }\r\n }));\r\n }\r\n }\r\n }));\r\n this.colNameTbl = \"\";\r\n this.colNameTblOrig = \"\";\r\n\r\n if (this.Rows.length > 0)\r\n this.Rows = '[' + this.Rows.substring(0, this.Rows.length - 1) + ']';\r\n\r\n this.setRsltType(this.Rows);//, 0);\r\n\r\n this.onCommonAndResultsBothColsChange('-1');//reset controls\r\n this.editCtrlsHighlight = false;\r\n }\r\n resetConfigFromDB() {\r\n this.mainFilter = new MAINFILTER();\r\n this.TZSelected = false;//\"False\";\r\n this.FCSelected = false;//\"False\";\r\n this.selectedCallDirections = [3];\r\n\r\n //this.selectedStartDateTime = null;\r\n //this.selectedEndDateTime = null;\r\n this.onClearClicked();\r\n //this.RowsCommon = '';\r\n this.Rows = '';\r\n //this.setRsltType(this.RowsCommon, 0);\r\n this.setRsltType(this.Rows);//, 1);\r\n }\r\n //del curr config from DB\r\n delConfigFromDB() {\r\n this.resetMsg();\r\n let r = confirm(\"Delete Configuration ?\");\r\n if (r == false)\r\n return false;\r\n\r\n this.deleteFilterConfig(this.filterIDSelected);\r\n }\r\n\r\n @Output() filtersList: EventEmitter = new EventEmitter();\r\n filterIDSelected = 0;\r\n filterChanged = 0;\r\n async getFilterConfig(type: number, FilterID: string) {\r\n //////debugger;\r\n let filterNames: SelectItem[] = [];\r\n this.checkAuthorizeFilter(FilterID);\r\n\r\n if (type == 0) {\r\n filterNames.push({ id: undefined, name: '--Create New--' });\r\n return await this.service.getConfigsList(type, FilterID).toPromise().then((res) => {\r\n //https://stackoverflow.com/questions/53275405/typeerror-data-foreach-is-not-a-function/53275463 - JSON.parse - IMP\r\n //const rows: any[] = JSON.parse(res) as any[] || [];\r\n let rows: any[] = JSON.parse(res) as any[] || [];\r\n ////////// check if user previlege configed any mainfilter or not\r\n if (sessionStorage.getItem('SystemSettings')) {\r\n if (sessionStorage.getItem('SystemSettings') != null && JSON.parse(sessionStorage.getItem('SystemSettings')).mainFilterIDs != '') {\r\n let userConfigMainFilterIDs = JSON.parse(sessionStorage.getItem('SystemSettings')).mainFilterIDs.split(';');\r\n if (userConfigMainFilterIDs != null && userConfigMainFilterIDs.length > 0) {\r\n //rows = rows.filter(m => userConfigMainFilterIDs.includes(m.ID));\r\n let filteredRows = [];\r\n userConfigMainFilterIDs.forEach(item => {\r\n let itemRow = rows.filter(m => m.ID == item);\r\n filteredRows.push(itemRow[0]);\r\n });\r\n if (filteredRows.length > 0) {\r\n rows = filteredRows;\r\n }\r\n }\r\n }\r\n }\r\n rows.forEach(row => {\r\n filterNames.push({ id: row.ID, name: row.CriteriaName });\r\n });\r\n //console.log(filterNames)\r\n //this.filtersList.emit(filterNames);\r\n //this.onRsltSelectionChange('0');\r\n this.getRegionConfig();\r\n this.onCommonAndResultsBothColsChange('-1');\r\n this.resetConfigFromDB();\r\n\r\n return filterNames;\r\n });//0 - binds configs on top, 1 - selected config details by its ID, 2 - Saved and fetched details immediately\r\n }\r\n else if (type == 1) {\r\n this.filterIDSelected = parseInt(FilterID);\r\n this.filterChanged++;\r\n return await this.service.getConfigsList(type, FilterID).toPromise().then((res) => {\r\n const rows: MAINFILTER[] = JSON.parse(res) as MAINFILTER[] || [];\r\n //console.log(rows)\r\n rows.every(row => {\r\n this.setConfigFromDB(row);\r\n return false;\r\n });\r\n\r\n //this.onRsltSelectionChange('0');\r\n this.onCommonAndResultsBothColsChange('-1');\r\n\r\n return filterNames;\r\n });\r\n }\r\n //return filterNames;\r\n }\r\n getRegionConfig() {\r\n this.regions = [];\r\n this.regService.getRegConfigsList(0, \"\", null).toPromise().then((res) => {\r\n const rows: [] = JSON.parse(res) as [] || [];\r\n rows.forEach((row, i) => {\r\n this.regions.push({ id: (i + 1), name: row });//all configs with array each index as ID instead of DB ID //row.CriteriaName\r\n });\r\n //console.log(this.regions)\r\n })\r\n }\r\n\r\n messageDesc: string = '';\r\n message: boolean;\r\n resetMsg() {\r\n this.message = false;\r\n this.messageDesc = '';\r\n }\r\n @Output() filtersChange: EventEmitter = new EventEmitter();\r\n insertFilterConfig(item) {\r\n this.message = true;\r\n item.CriteriaName = item.CriteriaName + '|' + this.LoggedinUserName;\r\n this.service.post(item, \"InsertFiltersData\").then((res) => {\r\n if (res == -1)\r\n this.messageDesc = \"Error in saving data\";\r\n else {\r\n /////// save newly generate mainfilter ID in sessionstorage\r\n if (this.LoggedinUserName != \"admin\") {\r\n this.UpdateSessionVariable(res, 'SAVE');\r\n }\r\n\r\n this.filtersChange.emit(res);\r\n this.messageDesc = \"Saved successfully\";\r\n this.commonFilterService.basicFilterRefresh(1);//refresh load fitlers ddl to add new filter\r\n }\r\n });\r\n }\r\n\r\n UpdateSessionVariable(mainFilterID, type) {\r\n ////JSON.parse(sessionStorage.getItem('SystemSettings')).mainFilterIDs.split(';')\r\n let userData = JSON.parse(sessionStorage.getItem('SystemSettings'));\r\n if (type == \"SAVE\") {\r\n userData.mainFilterIDs += \";\" + mainFilterID;\r\n sessionStorage.setItem('SystemSettings', JSON.stringify(userData));\r\n }\r\n else {\r\n //// delete mainfilterid from sessionstorage\r\n let IDs = userData.mainFilterIDs.split(';')\r\n const filteredParts = IDs.filter(part => part !== mainFilterID.toString());\r\n // Join the parts back together with a semicolon\r\n userData.mainFilterIDs = filteredParts.join(';');\r\n\r\n sessionStorage.setItem('SystemSettings', JSON.stringify(userData));\r\n }\r\n\r\n }\r\n\r\n updateFilterConfig(item) {\r\n this.message = true;\r\n this.service.put(item, \"UpdateFiltersData\").then((res) => {\r\n if (res == -1)\r\n this.messageDesc = \"Error in updating data\";\r\n else {\r\n this.filtersChange.emit(res);\r\n this.messageDesc = \"Updated successfully\";\r\n }\r\n });\r\n }\r\n async deleteFilterConfig(configID) {\r\n debugger;\r\n if (configID > 0) {\r\n let delCriteriaName = this.mainFilter.CriteriaName;\r\n let FilterUsed = false;\r\n if (sessionStorage.getItem('SystemSettings')) {\r\n if (sessionStorage.getItem('SystemSettings') != null) {\r\n this.LoggedinUserName = JSON.parse(sessionStorage.getItem('SystemSettings')).UserName;\r\n }\r\n }\r\n await this.service.GetData_Service('/api/UserHierarchy/CheckUserHierarachyByFilterName?filterID=' + configID + '&LoggedinUserName=' + this.LoggedinUserName).toPromise().then((res: any) => {\r\n //console.log(res);\r\n let rows: any = JSON.parse(res) as any[];\r\n //////debugger;\r\n if (rows == \"1\") {\r\n FilterUsed = true;\r\n }\r\n });\r\n\r\n if (!FilterUsed) {\r\n await this.service.GetData_Service('/api/SchedulerReport/CheckSchNameByFilterName?filterName=' + delCriteriaName).toPromise().then((res: any) => {\r\n //console.log(res);\r\n let rows: any = JSON.parse(res) as any[];\r\n //////debugger;\r\n if (rows == \"1\") {\r\n FilterUsed = true;\r\n }\r\n });\r\n }\r\n //console.log(FilterUsed)\r\n if (FilterUsed) {\r\n alert(\"Filter already in use and cannot be deleted.\");\r\n return;\r\n }\r\n }\r\n this.message = true;\r\n ////debugger;\r\n this.service.delete(configID + ',' + this.LoggedinUserName, \"DeleteFiltersData\").then((res) => {\r\n if (res == -1)\r\n this.messageDesc = \"Error in deleting record\";\r\n else {\r\n //this.getFilterConfig(0, '0');\r\n /////// remove mainfilter ID in sessionstorage after mainfilter is deleted from mainfilter table\r\n if (this.LoggedinUserName != \"admin\") {\r\n this.UpdateSessionVariable(configID, 'DELETE');\r\n }\r\n\r\n this.filtersChange.emit(null);\r\n this.messageDesc = \"Deleted successfully\";\r\n\r\n if (this.filterChanged == 1)\r\n this.commonFilterService.basicFilterRefresh(3);//refresh load filters ddl to delete filter and turn off it\r\n else\r\n this.commonFilterService.basicFilterRefresh(1);//refresh ddl to delete filter\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n selectedConfig: boolean = false;\r\n //columnsCommon: Column[];\r\n columns: Column[];\r\n //dataManagerCommon: DataManager;\r\n dataManager: DataManager;\r\n settings: CdtSettings = new CdtSettings({\r\n crud: false,//create button toggle used to create dynamic row from columns set - IMP\r\n bodyHeight: 200,\r\n //headerRowHeight: 10,\r\n rowHeight: 20,\r\n exportAction: false,\r\n exportKMLAction: false,\r\n globalFilter: false,\r\n clickRows: false,\r\n columnToggleAction: false,\r\n clearAllFiltersAction: false,\r\n unshiftExpandIcon: false,//Toggle first dynamic column haing icon to show details view, update, etc as menu items - IMP\r\n unPopDelIcon: true,//Place Del icon at the end of each row thus creating a new column\r\n paginator: false,\r\n });\r\n\r\n setRsltType(Rows) {//, commonOrResults) {\r\n this.buildTable(Rows);//, commonOrResults);\r\n\r\n //if (commonOrResults == 0) {\r\n // if (Rows == \"\")\r\n // this.selectedConfigCommon = false;\r\n // else\r\n // this.selectedConfigCommon = true;\r\n //}\r\n //else {\r\n if (Rows == \"\")\r\n this.selectedConfig = false;\r\n else\r\n this.selectedConfig = true;\r\n //}\r\n\r\n //if (commonOrResults == 0) {\r\n // this.columnsCommon = getConfigColumnsHeaders(\"filters\");\r\n // this.columnsCommon.forEach(col => col.width = 120);\r\n\r\n // for (let i = 0; i < 4; i++)\r\n // this.columnsCommon.shift();//remove first 4 cols till result_type\r\n // this.columnsCommon.splice(3, 1);//remove value_to column\r\n // //delete this.columnsCommon[3];//https://stackoverflow.com/questions/208105/remove-properties-from-objects-javascript\r\n\r\n // this.columnsCommon.find(x => x.name === 'Column_Name').tableHidden = true;\r\n // this.settings.groupRowsBy = ['Column_Name'];\r\n // this.settings.groupRowsByTitles = ['Column Name'];\r\n // this.settings.rowHeightProp = '$$height';\r\n\r\n // this.dataManagerCommon = new DataManager(this.columnsCommon, this.settings, this.service, null, commonOrResults);\r\n // this.dataManagerCommon.pager.perPage = Rows.length;\r\n // this.dataManagerCommon.pager.pageSizeOptions = [];\r\n //}\r\n //else {\r\n this.columns = getConfigColumnsHeaders(\"filters\");\r\n this.columns.forEach(col => { col.width = col.name == 'Operator' ? 180 : (col.name == 'Column_Name' ? 250 : 160); });\r\n\r\n //this.columns.find(x => x.name === 'Result_Type').tableHidden = true;\r\n //this.settings.groupRowsBy = ['Result_Type'];\r\n //this.settings.groupRowsByTitles = ['Result Type'];\r\n //this.settings.rowHeightProp = '$$height';\r\n\r\n ['Column_OrigName', 'NumOrRatingOrStr', 'OperatorNum', 'Column_Index'].forEach(eachCol => {\r\n const colFound = this.columns.find(x => x.name === eachCol);\r\n if (colFound)\r\n colFound.tableHidden = true;\r\n });\r\n if (this.columns.find(x => x.name === 'AndOr'))\r\n this.columns.find(x => x.name === 'AndOr').tableHidden = true;\r\n //console.log(this.columns)\r\n let MainFilterID = 0;\r\n this.commonFilterService.mainFilterID.subscribe(res => MainFilterID = res); /// set mainfilter selected ID - elumalai\r\n //let MainFilterTZ = 0;\r\n //this.commonFilterService.mfTZ.subscribe(res => MainFilterTZ = res); /// set mainfilter selected ID - elumalai\r\n\r\n let dbTz = -500;\r\n this.commonFilterService.DB_TZ.subscribe(res => {\r\n dbTz = res;\r\n });\r\n //if (dbTz == -500) {//query var col table\r\n // await this.getDBTimezoneDiff(requestMeta.rsltType).then(res => {\r\n // this.commonFilterService.setDBTZFromVarCol(res);\r\n // dbTz = res;\r\n // });\r\n //}\r\n\r\n let dbAndBrHrs = -500;\r\n //if (MainFilterID != 0) {\r\n this.commonFilterService.DB_BRDiff.subscribe(res => {\r\n dbAndBrHrs = res;\r\n });\r\n //}\r\n\r\n this.dataManager = new DataManager(this.columns, this.settings, this.service, dbTz, dbAndBrHrs, MainFilterID);//, null, commonOrResults);\r\n //this.dataManager = new DataManager(this.columns, this.settings, this.service, dbTz, dbAndBrHrs, MainFilterTZ);//, null, commonOrResults);\r\n const subSelection = this.dataManager.events.selectionSource$.subscribe(() => {\r\n this.rowSelected();\r\n });\r\n this.dataManager.dimensions.headerRowHeight = 0;//hides header row\r\n this.dataManager.pager.perPage = Rows.length;\r\n this.dataManager.pager.pageSizeOptions = [];\r\n //}\r\n ////console.log(this.dataManagerCommon)\r\n ////console.log(this.dataManager)\r\n }\r\n buildTable(Rows) {//, commonOrResults) {\r\n this.service.setRows(Rows);//, commonOrResults);\r\n }\r\n rowSelected(): void {\r\n this.isTableRowSelected = false;\r\n const selection = this.dataManager.selection.getSelection();\r\n //console.log(this.dataManager.rows)\r\n //https://github.com/mazdik/ng-mazdik/blob/master/src/app/demo/events-demo.component.ts\r\n const row = this.dataManager.rows[selection[0]];\r\n if (selection.length !== 0)\r\n this.isTableRowSelected = true;\r\n\r\n if (this.dataManager.rows.length > 0 && selection.length !== 0 && row) {\r\n this.ReloadCritToCurrRslt(row);\r\n }\r\n\r\n }\r\n onRowCommonDeleted($event) {\r\n ////debugger\r\n if (!this.replaceAfterDel) {\r\n let r = confirm(\"Delete row ?\");\r\n if (r == false)\r\n return false;\r\n }\r\n\r\n //this.dataManager.selectRow($event.$$index);\r\n //let row = '{\"Column_Name\":\"' + colName + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(eachOperAndCrit.oper))[1] + '\",\"Value\":\"' + eachOperAndCrit.critVal + '\",\"AndOr\":\"OR\"}';\r\n let row = '{\"Column_Name\":\"' + $event.Column_Name + '\",\"OperatorNum\":\"' + $event.OperatorNum + '\",\"Operator\":\"' + $event.Operator + '\",\"Value\":\"' + $event.Value + '\",\"AndOr\":\"OR\"}';\r\n //const rowIndex = this.dataManager.rows.findIndex(x => x.$$uid === $event.$$uid);\r\n //this.dataManager.rows.splice(rowIndex, 1);\r\n const rowDel = this.dataManager.rows.find(x => x.$$uid === $event.$$uid);\r\n if (rowDel)\r\n this.dataManager.deleteRow(rowDel);\r\n\r\n if (this.service.Rows.indexOf(row + ',') != -1) {\r\n this.service.Rows = this.service.Rows.replace(row + ',', '').replace('[]', '');\r\n this.Rows = this.Rows.replace(row + ',', '').replace('[]', '');\r\n }\r\n else {\r\n this.service.Rows = this.service.Rows.replace(row, '').replace('[]', '');\r\n this.Rows = this.Rows.replace(row, '').replace('[]', '');\r\n }\r\n\r\n this.multiCritFunc($event.Operator, $event.Value);\r\n this.currCritListValue = this.currCritListValue.replace(';', '')\r\n if ($event.Column_Name == 'VQuad Call ID') {\r\n let callIDArr = this.mainFilter.VQuad_Location.split(';');\r\n let newVal = \"\";\r\n callIDArr.forEach((x, i) => {\r\n if (x !== this.currCritListValue) {\r\n if (i > 0)\r\n newVal += \";\";\r\n newVal += x;\r\n }\r\n })\r\n\r\n this.mainFilter.VQuad_Location = newVal;\r\n }\r\n else if ($event.Column_Name == 'VQuad DeviceID') {\r\n let DevIDArr = this.mainFilter.VQuad_PhoneID.split(';');\r\n let newVal = \"\";\r\n DevIDArr.forEach((x, i) => {\r\n if (x !== this.currCritListValue) {\r\n if (i > 0)\r\n newVal += \";\";\r\n newVal += x;\r\n }\r\n })\r\n\r\n this.mainFilter.VQuad_PhoneID = newVal;\r\n }\r\n else {\r\n let eventIDArr = this.mainFilter.VQuad_CallID.split(';');\r\n let newVal = \"\";\r\n eventIDArr.forEach((x, i) => {\r\n if (x !== this.currCritListValue) {\r\n if (i > 0)\r\n newVal += \";\";\r\n newVal += x;\r\n }\r\n })\r\n\r\n this.mainFilter.VQuad_CallID = newVal;\r\n }\r\n\r\n this.currCritListValue = \";\";//reset\r\n\r\n if (this.Rows == \"\")\r\n this.selectedConfig = false;\r\n else\r\n this.selectedConfig = true;\r\n }\r\n\r\n CancelEdit() {\r\n this.dataManager.selectRow(-1);\r\n this.onCommonAndResultsBothColsChange('-1');\r\n this.isTableRowSelected = false;\r\n this.selRow = \"{}\";\r\n }\r\n onRowDeleted($event) {\r\n if ($event.Column_Name == 'VQuad Call ID' || $event.Column_Name == 'VQuad DeviceID' || $event.Column_Name == 'VQuad EventID')\r\n this.onRowCommonDeleted($event);\r\n else {\r\n if (!this.replaceAfterDel) {\r\n let r = confirm(\"Delete row ?\");\r\n if (r == false)\r\n return false;\r\n }\r\n\r\n //this.dataManager.selectRow($event.$$index);\r\n const rowRsltIdFound = this.results.find(x => x.name === $event.Result_Type);\r\n if (rowRsltIdFound) {\r\n const rowRsltId = rowRsltIdFound.id;\r\n let colIndx = '';\r\n if (rowRsltId >= 3 && rowRsltId <= 14)\r\n colIndx = ',\"Column_Index\":\"' + $event.Column_Index + '\"';\r\n\r\n let row = '{\"Column_OrigName\":\"' + $event.Column_OrigName + '\",\"NumOrRatingOrStr\":\"' + $event.NumOrRatingOrStr + '\"' + colIndx + ',\"Result_Type\":\"' + $event.Result_Type + '\",\"Column_Name\":\"' + $event.Column_Name + '\",\"OperatorNum\":\"' + $event.OperatorNum + '\",\"Operator\":\"' + $event.Operator + '\",\"Value\":\"' + $event.Value + '\",\"Value_To\":\"' + $event.Value_To + '\",\"AndOr\":\"' + $event.AndOr + '\"}';\r\n ////row = '{\"Column_OrigName\":\"' + colDetails.origName + '\",\"NumOrRatingOrStr\":\"3\"' + colIndx + ',\"Result_Type\":\"' + rsltDetails.name + '\",\"Column_Name\":\"' + colDetails.name + '\",\"OperatorNum\":\"' + eachOperAndCrit.oper + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(eachOperAndCrit.oper))[1] + '\",\"Value\":\"' + newVal + '\",\"Value_To\":\"--\",\"AndOr\":\"' + andOrVal + '\"}';\r\n //const rowIndex = this.dataManager.rows.findIndex(x => x.$$uid === $event.$$uid);\r\n //this.dataManager.rows.splice(rowIndex, 1);\r\n const rowDel = this.dataManager.rows.find(x => x.$$uid === $event.$$uid);\r\n if (rowDel)\r\n this.dataManager.deleteRow(rowDel);\r\n\r\n if (this.service.Rows.indexOf(row + ',') != -1) {\r\n this.service.Rows = this.service.Rows.replace(row + ',', '').replace('[]', '');\r\n this.Rows = this.Rows.replace(row + ',', '').replace('[]', '');\r\n }\r\n else if (this.service.Rows.indexOf(',' + row + ']') != -1) {\r\n this.service.Rows = this.service.Rows.replace(',' + row + ']', ']').replace('[]', '');\r\n this.Rows = this.Rows.replace(',' + row + ']', ']').replace('[]', '');\r\n }\r\n else {\r\n this.service.Rows = this.service.Rows.replace(row, '').replace('[]', '');\r\n this.Rows = this.Rows.replace(row, '').replace('[]', '');\r\n }\r\n\r\n if (rowRsltId == 0) {\r\n if ($event.Column_OrigName == \"PESQ_LQ\" && $event.Operator === (this.dataFilter.getOperatorType(FilterOperator.IN_RANGE))[1])\r\n this.mainFilter.PESQ_LQ_Range = \"|\";\r\n else if ($event.Column_OrigName == \"Rating\") {\r\n this.mainFilter.PESQ_LQ_Rating = \"0|0\";\r\n }\r\n else {\r\n //0\r\n //VQT@|VQTData|Asymmetric_disturbance|=|1|Asymmetric disturbance$Or|VQTData|duration_hangover|LIKE|2|Duration Hangover(s)$ - params after @ and delimited $\r\n //|VQTData|Asymmetric_disturbance|=|1|Asymmetric disturbance$ - AND/OR | Table name | Parameter name | operator(=/>/= 3 && rowRsltId <= 11) {\r\n //3-11\r\n //;;;;;;;; - nettest\r\n //AND$1:333@9^OR$9:999@1;AND$2:777@2;AND$3:444@2;;;;;;AND$6:766@2 - delimited by ; for each nettest rslt type\r\n\r\n //AND$1:333@9^OR$9:999@1 - delimited by ^ for each param under curr rslt\r\n //AND$1:333@9 - AND/OR $ 1(Low) : 333(High) @ 9(param index)\r\n //; as delimiter between rslt types\r\n\r\n let netTestArr = this.mainFilter.NetTest.split(';');//results\r\n let newNetTestVal = '';\r\n\r\n netTestArr.forEach((eachNetTest, i) => {\r\n let limitRslt = ';';\r\n if (i == 0)\r\n limitRslt = '';\r\n\r\n if (i == rowRsltId - 3) {//rslt found\r\n let critParamArr = netTestArr[i].replace(/\\^OR/g, '&OR').replace(/\\^AND/g, '&AND').split('&');//params of rslt//instead of ^ we are using & for not conflict with doesnot contain oper\r\n let newCritParamVal = '';\r\n critParamArr.forEach((eachParamCrit, p) => {\r\n let limitParam = '&';\r\n if (p == 0 || newCritParamVal.length == 0)\r\n limitParam = '';\r\n let eachCritAndParamArr = eachParamCrit.split('@');//andor @ paramcrit\r\n\r\n if (eachCritAndParamArr[1] == $event.Column_Index) {//found row's param\r\n let multiCritArr = (eachCritAndParamArr[0].split('$'))[1].split('#');\r\n\r\n let newMultiCrit = '';//empty number range by default\r\n if ($event.NumOrRatingOrStr == 3) {//string\r\n multiCritArr.forEach(eachCrit => {\r\n if (eachCrit !== $event.Value)\r\n newMultiCrit += eachCrit + '#';\r\n });\r\n newMultiCrit = newMultiCrit.substring(0, newMultiCrit.length - 1);\r\n }\r\n\r\n if (newMultiCrit.length > 0)\r\n newCritParamVal += limitParam + (eachCritAndParamArr[0].split('$'))[0] + '$' + newMultiCrit + '@' + eachCritAndParamArr[1];\r\n }\r\n else\r\n newCritParamVal += limitParam + eachParamCrit;\r\n });\r\n\r\n newNetTestVal += limitRslt + newCritParamVal;\r\n }\r\n else\r\n newNetTestVal += limitRslt + eachNetTest;\r\n });\r\n\r\n this.mainFilter.NetTest = newNetTestVal;\r\n }\r\n else if (rowRsltId >= 12 && rowRsltId <= 14) {\r\n //12-14\r\n //;; - mobileinfo\r\n //AND$1:1000@0;AND$3:3000@0;\r\n //; as delimiter between rslt types\r\n\r\n let mobileArr = this.mainFilter.Mobile.split(';');//results\r\n let newMobileVal = '';\r\n\r\n mobileArr.forEach((eachMobile, i) => {\r\n let limitRslt = ';';\r\n if (i == 0)\r\n limitRslt = '';\r\n\r\n if (i == rowRsltId - 12) {//rslt found\r\n let critParamArr = mobileArr[i].replace(/\\^OR/g, '&OR').replace(/\\^AND/g, '&AND').split('&');//params of rslt//instead of ^ we are using & for not conflict with doesnot contain oper\r\n let newCritParamVal = '';\r\n critParamArr.forEach((eachParamCrit, p) => {\r\n let limitParam = '&';\r\n if (p == 0 || newCritParamVal.length == 0)\r\n limitParam = '';\r\n let eachCritAndParamArr = eachParamCrit.split('@');//andor @ paramcrit\r\n\r\n if (eachCritAndParamArr[1] == $event.Column_Index) {//found row's param\r\n let multiCritArr = (eachCritAndParamArr[0].split('$'))[1].split('#');\r\n\r\n let newMultiCrit = '';//empty number range by default\r\n if ($event.NumOrRatingOrStr == 3) {//string\r\n multiCritArr.forEach(eachCrit => {\r\n if (eachCrit !== $event.Value)\r\n newMultiCrit += eachCrit + '#';\r\n });\r\n newMultiCrit = newMultiCrit.substring(0, newMultiCrit.length - 1);\r\n }\r\n\r\n if (newMultiCrit.length > 0)\r\n newCritParamVal += limitParam + (eachCritAndParamArr[0].split('$'))[0] + '$' + newMultiCrit + '@' + eachCritAndParamArr[1];\r\n }\r\n else\r\n newCritParamVal += limitParam + eachParamCrit;\r\n });\r\n\r\n newMobileVal += limitRslt + newCritParamVal;\r\n }\r\n else\r\n newMobileVal += limitRslt + eachMobile;\r\n });\r\n\r\n this.mainFilter.Mobile = newMobileVal;\r\n }\r\n else if (rowRsltId == 17) {\r\n //17 - Emodule\r\n if ($event.Column_OrigName == \"MOS_CQ\" && $event.Operator === (this.dataFilter.getOperatorType(FilterOperator.IN_RANGE))[1])\r\n this.mainFilter.MOSCQ_Range = \"|\";\r\n else if ($event.Column_OrigName == \"VBA_Rating\") {\r\n this.mainFilter.MOSCQ_Rating = \"\" + '0';\r\n }\r\n }\r\n else if (rowRsltId == 20) {\r\n //20 - Call events\r\n if ($event.Column_OrigName == \"CC_Condition\")\r\n this.multiCritFunc($event.Operator, $event.Value.replace(';', '~'));\r\n else\r\n this.multiCritFunc($event.Operator, $event.Value);\r\n this.currCritListValue = this.currCritListValue.replace(';', '');\r\n if ($event.Column_OrigName == 'Call_Control_Event') {\r\n let ccEventArr = this.mainFilter.Call_Control_Event.split(';');\r\n let newVal = \"\";\r\n ccEventArr.forEach((x, i) => {\r\n if (x !== this.currCritListValue) {\r\n if (i > 0)\r\n newVal += \";\";\r\n newVal += x;\r\n }\r\n })\r\n\r\n this.mainFilter.Call_Control_Event = newVal;\r\n }\r\n else if ($event.Column_OrigName == \"CC_Condition\") {\r\n let ccCondArr = this.mainFilter.CC_Condition.split(';');\r\n let newVal = \"\";\r\n ccCondArr.forEach((x, i) => {\r\n if (x !== this.currCritListValue) {\r\n if (i > 0)\r\n newVal += \";\";\r\n newVal += x;\r\n }\r\n })\r\n\r\n this.mainFilter.CC_Condition = newVal;\r\n }\r\n else if ($event.Column_OrigName == \"Called_Number\") {\r\n let callNumArr = this.mainFilter.Called_Number.split(';');\r\n let newVal = \"\";\r\n callNumArr.forEach((x, i) => {\r\n if (x !== this.currCritListValue) {\r\n if (i > 0)\r\n newVal += \";\";\r\n newVal += x;\r\n }\r\n })\r\n\r\n this.mainFilter.Called_Number = newVal;\r\n }\r\n }\r\n\r\n let currColItem = this.mainCols.find((x, i) => i === this.selectedMainCols[0]);\r\n if (currColItem) {\r\n if (this.Rows.indexOf('{\"Column_OrigName\":\"' + currColItem.origName + '\",') == -1) {\r\n this.selectedAndOrs = [1];\r\n this.disableAndOr = false;\r\n }\r\n }\r\n\r\n this.currCritListValue = \";\";//reset\r\n\r\n if (this.Rows == \"\")\r\n this.selectedConfig = false;\r\n else\r\n this.selectedConfig = true;\r\n }\r\n }\r\n\r\n this.selRow = \"{}\";\r\n\r\n if (!this.replaceAfterDel) {\r\n this.selParamOperators = this.rangeOperators;\r\n this.onCommonAndResultsBothColsChange('-1');\r\n }\r\n //this.setRsltType(this.Rows);\r\n }\r\n //resetDataManagerSelection() {\r\n // if (this.dataManager) {\r\n // const selection = this.dataManager.selection.getSelection();\r\n // if (selection) {\r\n // if (selection.length > 0)\r\n // this.dataManager.selection.clearSelection();\r\n // }\r\n // }\r\n //}\r\n\r\n\r\n zIndexCriteriaToggler: number = 2;\r\n openCritModal() {\r\n //this.currCritListValue = this.mainValue;\r\n }\r\n onCloseCritModal(currCritListValue) {\r\n this.mainValue = currCritListValue;\r\n }\r\n\r\n\r\n selectedStartDateTime: any;\r\n selectedEndDateTime: any;\r\n wrongDateRange: boolean;\r\n messageSuccess: boolean;\r\n okOrClear: boolean = true;\r\n onOKClicked(): void {\r\n this.wrongDateRange = false;\r\n if (this.selectedStartDateTime.startDate == null || this.selectedEndDateTime.startDate == null) {\r\n this.wrongDateRange = true;\r\n return;\r\n }\r\n //let monthsDiff = parseInt(this.selectedTime.endDate.diff(this.selectedTime.startDate, 'months', true));\r\n let duration = moment.duration(this.selectedEndDateTime.startDate.diff(this.selectedStartDateTime.startDate));\r\n let monthsDiff = duration.months();\r\n if (this.selectedTime.startDate.diff(this.selectedTime.endDate) >= 0 || monthsDiff >= 7) {\r\n this.wrongDateRange = true;\r\n if (monthsDiff >= 7)\r\n alert('Dates selection cannot be more than 6 months');\r\n return;\r\n }\r\n\r\n this.okOrClear = false;\r\n this.messageSuccess = true;\r\n setTimeout(() => { //<<<---using ()=> syntax\r\n this.messageSuccess = false;\r\n }, 3000);\r\n //console.log(this.selectedStartEndTime)\r\n }\r\n //https://github.com/fetrarij/ngx-daterangepicker-material/blob/master/demo/src/app/simple/simple.component.ts\r\n onClearClicked(): void {\r\n this.selectedTime = { startDate: null, endDate: null };\r\n this.selectedStartDateTime = null;\r\n this.selectedEndDateTime = null;\r\n\r\n this.wrongDateRange = false;\r\n this.okOrClear = true;\r\n }\r\n onStartDateChanged($event): void {\r\n if ($event.startDate != null)\r\n this.selectedTime.startDate = $event.startDate;\r\n }\r\n onEndDateChanged($event): void {\r\n if ($event.startDate != null)\r\n this.selectedTime.endDate = $event.startDate;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ApiInterceptor implements HttpInterceptor {\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n const baseUrl = document.getElementsByTagName('base')[0].href.replace('/Webviewer/', '');\r\n //console.log(baseUrl)\r\n if (req.url.indexOf('localhost:') != -1)\r\n return next.handle(req.clone({ url: req.url }));\r\n else {\r\n const apiReq = req.clone({ url: req.url.replace('http://localhost', baseUrl) });\r\n //console.log(apiReq)\r\n return next.handle(apiReq);\r\n }\r\n }\r\n}\r\n","/* \"Barrel\" of Http Interceptors */\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\n\r\nimport { ApiInterceptor } from './api-interceptor';\r\n\r\n/** Http interceptor providers in outside-in order */\r\nexport const httpInterceptorProviders = [\r\n { provide: HTTP_INTERCEPTORS, useClass: ApiInterceptor, multi: true },\r\n];\r\n","import { Directive, ElementRef, AfterViewInit } from '@angular/core';\n\n@Directive({\n selector: '[appAfterViewFocus]',\n})\nexport class AfterViewFocusDirective implements AfterViewInit {\n\n constructor(private elementRef: ElementRef) { }\n\n ngAfterViewInit() {\n //https://stackoverflow.com/questions/25241544/angular-bootstrap-modal-popup-autofocus-not-working - give settimeout for focus to work\n setTimeout(() => {\n this.elementRef.nativeElement.focus();\n });\n }\n\n}\n","export * from './inline-edit-module';\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\n\nimport {InlineEditComponent} from './inline-edit.component';\nimport {AfterViewFocusDirective} from './after-view-focus-directory';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n InlineEditComponent,\n AfterViewFocusDirective,\n ],\n exports: [\n InlineEditComponent,\n ],\n providers: []\n})\nexport class InlineEditModule {}\n","module.exports = \".dt-inline-data {\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n}\\n\\n.dt-inline-editor {\\n width: 100%;\\n height: 100%;\\n}\\n\\n.dt-inline-editor input,\\n.dt-inline-editor select {\\n width: 100%;\\n height: 100%;\\n padding: 0 3px;\\n outline: 0;\\n border: 1px solid #1976D2; /*#5b9bd5;*/\\n}\\n\\n.dt-inline-editor input:focus,\\n.dt-inline-editor select:focus {\\n border: 1px solid #1976D2; /*#5b9bd5;*/\\n}\\n\\n.dt-inline-editor select {\\n cursor: pointer;\\n background: #ffffff;\\n}\\n\\n/*Added for validation error - IMP*/\\n\\n.dt-has-error .dt-inline-input-group > .dt-inline-input,\\n.dt-has-error > .dt-inline-input {\\n border-color: #a94442;\\n}\\n\\n.dt-has-error .dt-inline-input-group > .dt-inline-input:focus,\\n .dt-has-error > .dt-inline-input:focus {\\n outline: 0;\\n border-color: #843534;\\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px #ce8483;\\n }\\n\\n.dt-has-error > .dt-help-block {\\n color: #a94442;\\n}\\n\\n/*https://codepen.io/Sohail05/pen/yOpeBm*/\\n\\n.field-icon {\\n float: right;\\n margin-left: -25px;\\n margin-top: -25px;\\n position: relative;\\n z-index: 2;\\n}\\n\\n.dt-inline-div {\\n height:22px;\\n}\\n\\n/*.form-group1 {\\n margin: 8px;\\n}\\n\\n .form-group1 > label {\\n position: absolute;\\n top: -1px;\\n }*/\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9pbmxpbmUtZWRpdC9pbmxpbmUtZWRpdC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQix1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsWUFBWTtBQUNkOztBQUVBOztFQUVFLFdBQVc7RUFDWCxZQUFZO0VBQ1osY0FBYztFQUNkLFVBQVU7RUFDVix5QkFBeUIsRUFBRSxXQUFXO0FBQ3hDOztBQUVBOztFQUVFLHlCQUF5QixFQUFFLFdBQVc7QUFDeEM7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsbUJBQW1CO0FBQ3JCOztBQUdBLG1DQUFtQzs7QUFDbkM7O0VBRUUscUJBQXFCO0FBQ3ZCOztBQUVFOztJQUVFLFVBQVU7SUFDVixxQkFBcUI7SUFDckIsNkRBQTZEO0VBQy9EOztBQUVGO0VBQ0UsY0FBYztBQUNoQjs7QUFFQSx5Q0FBeUM7O0FBQ3pDO0VBQ0UsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLFVBQVU7QUFDWjs7QUFHQTtFQUNFLFdBQVc7QUFDYjs7QUFHQTs7Ozs7OztJQU9JIiwiZmlsZSI6ImxpYi9pbmxpbmUtZWRpdC9pbmxpbmUtZWRpdC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmR0LWlubGluZS1kYXRhIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5kdC1pbmxpbmUtZWRpdG9yIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmR0LWlubGluZS1lZGl0b3IgaW5wdXQsXG4uZHQtaW5saW5lLWVkaXRvciBzZWxlY3Qge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAwIDNweDtcbiAgb3V0bGluZTogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzE5NzZEMjsgLyojNWI5YmQ1OyovXG59XG5cbi5kdC1pbmxpbmUtZWRpdG9yIGlucHV0OmZvY3VzLFxuLmR0LWlubGluZS1lZGl0b3Igc2VsZWN0OmZvY3VzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzE5NzZEMjsgLyojNWI5YmQ1OyovXG59XG5cbi5kdC1pbmxpbmUtZWRpdG9yIHNlbGVjdCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbn1cblxuXG4vKkFkZGVkIGZvciB2YWxpZGF0aW9uIGVycm9yIC0gSU1QKi9cbi5kdC1oYXMtZXJyb3IgLmR0LWlubGluZS1pbnB1dC1ncm91cCA+IC5kdC1pbmxpbmUtaW5wdXQsXG4uZHQtaGFzLWVycm9yID4gLmR0LWlubGluZS1pbnB1dCB7XG4gIGJvcmRlci1jb2xvcjogI2E5NDQ0Mjtcbn1cblxuICAuZHQtaGFzLWVycm9yIC5kdC1pbmxpbmUtaW5wdXQtZ3JvdXAgPiAuZHQtaW5saW5lLWlucHV0OmZvY3VzLFxuICAuZHQtaGFzLWVycm9yID4gLmR0LWlubGluZS1pbnB1dDpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgICBib3JkZXItY29sb3I6ICM4NDM1MzQ7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksIDAgMCA2cHggI2NlODQ4MztcbiAgfVxuXG4uZHQtaGFzLWVycm9yID4gLmR0LWhlbHAtYmxvY2sge1xuICBjb2xvcjogI2E5NDQ0Mjtcbn1cblxuLypodHRwczovL2NvZGVwZW4uaW8vU29oYWlsMDUvcGVuL3lPcGVCbSovXG4uZmllbGQtaWNvbiB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWxlZnQ6IC0yNXB4O1xuICBtYXJnaW4tdG9wOiAtMjVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xufVxuXG5cbi5kdC1pbmxpbmUtZGl2IHtcbiAgaGVpZ2h0OjIycHg7XG59XG5cblxuLyouZm9ybS1ncm91cDEge1xuICBtYXJnaW46IDhweDtcbn1cblxuICAuZm9ybS1ncm91cDEgPiBsYWJlbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTFweDtcbiAgfSovXG4iXX0= */\"","import {Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ViewEncapsulation, HostBinding} from '@angular/core';\r\nimport {SelectItem} from '../common';\r\nimport {inputFormattedDate} from '../common/utils';\r\n\r\n@Component({\r\n selector: 'app-inline-edit, [inline-edit]',\r\n templateUrl: 'inline-edit.component.html',\r\n styleUrls: ['inline-edit.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class InlineEditComponent {\r\n\r\n @Input() editing: boolean;\r\n @Input() disabled: boolean;\r\n @Input() critErrors: boolean;\r\n @Input() type = 'text';\r\n @Input() customRep: boolean;\r\n @Input() options: SelectItem[];\r\n @Input() viewValue: string | number;\r\n @Input() selectPlaceholder: string;\r\n @Input() placeHolder: string;//Added newly - IMP\r\n @Input() highlightText: boolean;\r\n @Input() setFocus: boolean=true;\r\n\r\n @Input()\r\n get value(): string | number { return this._value; }\r\n set value(value: string | number) {\r\n this._value = value;\r\n this.valueChange.emit(this._value);\r\n }\r\n private _value: string | number;\r\n\r\n @Output() valueChange: EventEmitter = new EventEmitter();\r\n @Output() inputChange: EventEmitter = new EventEmitter();\r\n @Output() focusChange: EventEmitter = new EventEmitter();\r\n @Output() blurChange: EventEmitter = new EventEmitter();\r\n\r\n @HostBinding('class.dt-inline-editor') cssClass = true;\r\n\r\n get inputFormattedValue() {\r\n return inputFormattedDate(this.type, this.value);\r\n }\r\n\r\n constructor() { }\r\n\r\n onInput(event: any) {\r\n this.value = (this.type === 'number') ? parseFloat(event.target.value) : event.target.value;\r\n }\r\n\r\n onInputChange() {\r\n this.inputChange.emit();\r\n }\r\n\r\n onInputColorChange() {\r\n this.inputChange.emit();\r\n }\r\n\r\n onInputFocus() {\r\n this.focusChange.emit();\r\n }\r\n\r\n onInputBlur() {\r\n this.blurChange.emit();\r\n }\r\n\r\n //https://www.w3schools.com/howto/howto_js_toggle_password.asp\r\n eyeIconVisible = false;\r\n onEyeClick() {\r\n this.eyeIconVisible = true;\r\n //console.log(this.type)\r\n if (this.type === \"password\") {\r\n this.type = \"text\";\r\n }\r\n else {\r\n this.type = \"password\";\r\n }\r\n } \r\n}\r\n","export * from './modal-edit-form-module';\nexport {ModalEditFormComponent} from './modal-edit-form.component';\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ModalModule} from '../modal';\nimport {RowViewModule} from '../row-view';\nimport {DynamicFormModule} from '../dynamic-form';\nimport {ModalEditFormComponent} from './modal-edit-form.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ModalModule,\n RowViewModule,\n DynamicFormModule,\n ],\n declarations: [\n ModalEditFormComponent,\n ],\n exports: [\n ModalEditFormComponent,\n ],\n providers: []\n})\nexport class ModalEditFormModule {}\n","import {\n Component, OnInit, Input, Output, EventEmitter, ViewChild, ChangeDetectionStrategy, ChangeDetectorRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {ModalComponent} from '../modal/modal.component';\nimport {DataManager} from '../ng-crud-table/base';\nimport {DynamicFormElement, GetOptionsFunc} from '../dynamic-form';\nimport {KeyValuePair} from '../row-view';\n\n@Component({\n selector: 'app-modal-edit-form',\n templateUrl: './modal-edit-form.component.html',\n styleUrls: ['../styles/buttons.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class ModalEditFormComponent implements OnInit {\n\n @Input() dataManager: DataManager;\n @Input() isNewItem: boolean;\n\n @Input()\n get detailView(): boolean { return this._detailView; }\n set detailView(val: boolean) {\n this._detailView = val;\n }\n private _detailView: boolean;\n\n @Output() loaded: EventEmitter = new EventEmitter();\n\n @ViewChild('childModal', {static: false}) childModal: ModalComponent;\n\n dynElements: DynamicFormElement[];\n formValid: boolean = true;\n transposedData: KeyValuePair[];\n getOptionsFunc: GetOptionsFunc;\n\n constructor(private cd: ChangeDetectorRef) {}\n\n ngOnInit() {\n this.getOptionsFunc = this.dataManager.service.getOptions.bind(this.dataManager.service);\n }\n\n get modalTitle() {\n if (!this.detailView) {\n return this.isNewItem ? this.dataManager.messages.titleCreate :\n this.dataManager.messages.titleUpdate;\n } else {\n return this.dataManager.messages.titleDetailView;\n }\n }\n\n save() {\n if (this.isNewItem) {\n this.dataManager.create(this.dataManager.item);\n } else {\n this.dataManager.update(this.dataManager.item);\n }\n this.childModal.hide();\n this.cd.markForCheck();\n }\n\n open() {\n this.createDynamicFormElements();\n this.childModal.show();\n this.cd.markForCheck();\n }\n\n close() {\n this.childModal.hide();\n this.cd.markForCheck();\n }\n\n onFormValid(event: any) {\n this.formValid = event;\n }\n\n createDynamicFormElements() {\n const temp: DynamicFormElement[] = [];\n const tempDetailView: KeyValuePair[] = [];\n\n for (const column of this.dataManager.columns) {\n const element = new DynamicFormElement();\n element.name = column.name;\n element.title = column.title;\n element.options = column.options;\n element.optionsUrl = column.optionsUrl;\n element.type = column.type;\n element.validatorFunc = column.validatorFunc;\n element.dependsElement = column.dependsColumn;\n element.cellTemplate = column.formTemplate ? column.formTemplate : column.cellTemplate;\n element.hidden = column.formHidden;\n element.keyElement = column.keyColumn;\n element.disableOnEdit = column.formDisableOnEdit;\n temp.push(element);\n tempDetailView.push({key: column.title, value: column.getValueView(this.dataManager.item)});\n }\n this.dynElements = temp;\n this.transposedData = tempDetailView;\n }\n\n}\n","export * from './modal-select-module';\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\n\nimport {ModalModule} from '../modal';\nimport {PaginationModule} from '../pagination';\nimport {PaginatePipeModule} from '../pipes';\nimport {ModalSelectComponent} from './modal-select.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ModalModule,\n PaginationModule,\n PaginatePipeModule,\n ],\n declarations: [\n ModalSelectComponent,\n ],\n exports: [\n ModalSelectComponent,\n ],\n providers: []\n})\nexport class ModalSelectModule {}\n","module.exports = \".dt-select-header {\\n margin: 3px 0;\\n}\\n\\n.dt-modal-select .dt-input-group input:not([disabled]) {\\n cursor: pointer;\\n}\\n\\ninput.dt-select-input[readonly]:not([disabled]) {\\n background-color: white;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9tb2RhbC1zZWxlY3QvbW9kYWwtc2VsZWN0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsdUJBQXVCO0FBQ3pCIiwiZmlsZSI6ImxpYi9tb2RhbC1zZWxlY3QvbW9kYWwtc2VsZWN0LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZHQtc2VsZWN0LWhlYWRlciB7XG4gIG1hcmdpbjogM3B4IDA7XG59XG5cbi5kdC1tb2RhbC1zZWxlY3QgLmR0LWlucHV0LWdyb3VwIGlucHV0Om5vdChbZGlzYWJsZWRdKSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuaW5wdXQuZHQtc2VsZWN0LWlucHV0W3JlYWRvbmx5XTpub3QoW2Rpc2FibGVkXSkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiJdfQ== */\"","import {\n Component, Input, Output, EventEmitter, ViewChild, ViewEncapsulation, ChangeDetectionStrategy, HostBinding,\n ChangeDetectorRef\n} from '@angular/core';\nimport {PageEvent} from '../../lib/pagination';\nimport {SelectItem} from '../common';\n\n@Component({\n selector: 'app-modal-select',\n templateUrl: './modal-select.component.html',\n styleUrls: [\n 'modal-select.component.css',\n '../styles/input-group.css',\n '../styles/clearable-input.css',\n '../styles/list-menu.css',\n '../styles/input.css',\n '../styles/buttons.css',\n '../styles/icons.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\n\nexport class ModalSelectComponent {\n\n @Input()\n get options(): SelectItem[] { return this._options; }\n set options(val: SelectItem[]) {\n this._options = val;\n if (this._options) {\n this.optionsCopy = [...val];\n this.selectedName = this.getName();\n this.nameChanged.emit(this.selectedName);\n }\n }\n private _options: SelectItem[];\n\n @Input('value')\n get model() { return this._model; }\n set model(value) {\n if (this._model !== value) {\n this._model = value;\n this.valueChange.emit(this._model);\n this.selectedName = this.getName();\n this.nameChanged.emit(this.selectedName);\n }\n }\n private _model: any;\n\n @Input() zIndex: number;\n @Input() filterDelay: number = 300;\n @Input() disabled: boolean;\n @Input() modalTitle: string = 'Search Dialog';\n @Input() itemsPerPage: number = 10;\n @Input() placeholder: string = 'Select';\n @Input() searchInputPlaceholder: string = 'Search...';\n\n @Output() valueChange: EventEmitter = new EventEmitter();\n @Output() nameChanged: EventEmitter = new EventEmitter();\n\n @HostBinding('class.dt-modal-select') cssClass = true;\n @ViewChild('modal', {static: false}) modal: any;\n searchFilterText: string = null;\n currentPage: number = 1;\n sortOrder: number = 1;\n totalItems: number;\n filterTimeout: any;\n selectedName: string;\n\n private optionsCopy: SelectItem[] = [];\n\n constructor(private cd: ChangeDetectorRef) {}\n\n open() {\n if (!this.disabled) {\n this.searchFilterText = '';\n this.modal.show();\n this._options = this.getOptions();\n }\n }\n\n onFilterKeyup() {\n if (this.filterTimeout) {\n clearTimeout(this.filterTimeout);\n }\n this.filterTimeout = setTimeout(() => {\n this._options = this.getOptions();\n this.filterTimeout = null;\n this.cd.markForCheck();\n }, this.filterDelay);\n }\n\n getOptions() {\n if (this.optionsCopy && this.optionsCopy.length && this.searchFilterText) {\n const data = this.optionsCopy.filter(x => x.name.toLocaleLowerCase().indexOf(this.searchFilterText.toLocaleLowerCase()) > -1);\n this.totalItems = data.length;\n return data;\n }\n this.totalItems = this.optionsCopy.length;\n return this.optionsCopy;\n }\n\n onPageChanged(event: PageEvent) {\n this.currentPage = event.currentPage;\n this.itemsPerPage = event.perPage;\n this._options = this.getOptions();\n }\n\n setSelected(option: SelectItem) {\n this.model = option.id;\n this.modal.hide();\n }\n\n isSelected(option: SelectItem): boolean {\n return option.id === this.model;\n }\n\n getName() {\n if (this.optionsCopy) {\n const option = this.optionsCopy.find((x) => {\n return x.id === this.model;\n });\n return (option) ? option.name : '';\n }\n }\n\n onClickClearSearch() {\n this.searchFilterText = '';\n this.onFilterKeyup();\n }\n\n}\n","export * from './modal-module';\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ModalComponent} from './modal.component';\nimport {ResizableModule} from '../resizable';\nimport {DraggableModule} from '../draggable';\n\n@NgModule({\n imports: [\n CommonModule,\n ResizableModule,\n DraggableModule,\n ],\n declarations: [\n ModalComponent,\n ],\n exports: [\n ModalComponent,\n ],\n providers: []\n})\nexport class ModalModule {}\n","module.exports = \".resize-handle-e {\\n position: absolute;\\n cursor: e-resize;\\n height: 100%;\\n width: 7px;\\n right: -5px;\\n top: 0;\\n background-color: #728BB4;\\n}\\n\\n.resize-handle-se {\\n position: absolute;\\n cursor: se-resize;\\n height: 15px;\\n width: 15px;\\n right: 0;\\n bottom: 0;\\n background-color: #728BB4;\\n}\\n\\n.resize-handle-s {\\n position: absolute;\\n cursor: s-resize;\\n height: 7px;\\n width: 100%;\\n bottom: -5px;\\n left: 0;\\n background-color: #728BB4;\\n}\\n\\n.resizing {\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.ui-modal-overlay {\\n display: none;\\n position: fixed;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.2);\\n}\\n\\n.ui-modal {\\n display: none;\\n position: fixed;\\n left: 0;\\n top: 0;\\n max-width: 100%;\\n outline: none;\\n background-color: #fefefe;\\n padding: 0;\\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\\n}\\n\\n.ui-modal-header {\\n position: relative;\\n padding: 2px 16px;\\n background-color: #1976D2; /*#5b9bd5;*/\\n color: white;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-direction: row;\\n flex-direction: row;\\n -ms-flex-wrap: nowrap;\\n flex-wrap: nowrap;\\n -ms-flex-align: center;\\n align-items: center;\\n}\\n\\n.ui-modal-body {\\n position: relative;\\n padding: 10px 16px;\\n max-height: calc(100vh - 200px);\\n overflow-y: auto;\\n -webkit-overflow-scrolling: touch;\\n}\\n\\n.ui-modal-footer {\\n padding: 15px;\\n}\\n\\n.ui-titlebar {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-align: center;\\n align-items: center;\\n -ms-flex-positive: 1;\\n flex-grow: 1;\\n height: 100%;\\n overflow: hidden;\\n}\\n\\n.ui-modal-title {\\n font-size: 18px;\\n}\\n\\n.ui-controlbar {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-align: center;\\n align-items: center;\\n}\\n\\n.ui-icon {\\n cursor: pointer;\\n padding-top: 9px;\\n}\\n\\n.ui-icon:hover {\\n opacity: 0.75;\\n}\\n\\n.dragging {\\n cursor: move;\\n border-color: #66afe9;\\n outline: 0;\\n box-shadow: 0 4px 8px rgba(102,175,233,.6), 0 6px 20px rgba(0,0,0,.2);\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9yZXNpemFibGUvcmVzaXphYmxlLmNzcyIsImxpYi9tb2RhbC9tb2RhbC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixZQUFZO0VBQ1osVUFBVTtFQUNWLFdBQVc7RUFDWCxNQUFNO0VBQ04seUJBQXlCO0FBQzNCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixZQUFZO0VBQ1osV0FBVztFQUNYLFFBQVE7RUFDUixTQUFTO0VBQ1QseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsV0FBVztFQUNYLFlBQVk7RUFDWixPQUFPO0VBQ1AseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UseUJBQXlCO0VBQ3pCLHNCQUFpQjtHQUFqQixxQkFBaUI7T0FBakIsaUJBQWlCO0FBQ25COztBQy9CQTtFQUNFLGFBQWE7RUFDYixlQUFlO0VBQ2YsT0FBTztFQUNQLE1BQU07RUFDTixXQUFXO0VBQ1gsWUFBWTtFQUNaLG9DQUFvQztBQUN0Qzs7QUFFQTtFQUNFLGFBQWE7RUFDYixlQUFlO0VBQ2YsT0FBTztFQUNQLE1BQU07RUFDTixlQUFlO0VBQ2YsYUFBYTtFQUNiLHlCQUF5QjtFQUN6QixVQUFVO0VBQ1YsNEVBQTRFO0FBQzlFOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQix5QkFBeUIsRUFBRSxXQUFXO0VBQ3RDLFlBQVk7RUFDWix5QkFBaUI7S0FBakIsc0JBQWlCO01BQWpCLHFCQUFpQjtVQUFqQixpQkFBaUI7RUFDakIsb0JBQWE7RUFBYixhQUFhO0VBQ2IsdUJBQW1CO01BQW5CLG1CQUFtQjtFQUNuQixxQkFBaUI7TUFBakIsaUJBQWlCO0VBQ2pCLHNCQUFtQjtNQUFuQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLCtCQUErQjtFQUMvQixnQkFBZ0I7RUFDaEIsaUNBQWlDO0FBQ25DOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0Usb0JBQWE7RUFBYixhQUFhO0VBQ2Isc0JBQW1CO01BQW5CLG1CQUFtQjtFQUNuQixvQkFBWTtNQUFaLFlBQVk7RUFDWixZQUFZO0VBQ1osZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLG9CQUFhO0VBQWIsYUFBYTtFQUNiLHNCQUFtQjtNQUFuQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0UsWUFBWTtFQUNaLHFCQUFxQjtFQUNyQixVQUFVO0VBQ1YscUVBQXFFO0VBQ3JFLHlCQUF5QjtFQUN6QixzQkFBaUI7R0FBakIscUJBQWlCO09BQWpCLGlCQUFpQjtBQUNuQiIsImZpbGUiOiJsaWIvbW9kYWwvbW9kYWwuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5yZXNpemUtaGFuZGxlLWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogZS1yZXNpemU7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDdweDtcbiAgcmlnaHQ6IC01cHg7XG4gIHRvcDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzcyOEJCNDtcbn1cblxuLnJlc2l6ZS1oYW5kbGUtc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogc2UtcmVzaXplO1xuICBoZWlnaHQ6IDE1cHg7XG4gIHdpZHRoOiAxNXB4O1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzI4QkI0O1xufVxuXG4ucmVzaXplLWhhbmRsZS1zIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjdXJzb3I6IHMtcmVzaXplO1xuICBoZWlnaHQ6IDdweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvdHRvbTogLTVweDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzcyOEJCNDtcbn1cblxuLnJlc2l6aW5nIHtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4iLCJAaW1wb3J0IFwiLi4vcmVzaXphYmxlL3Jlc2l6YWJsZS5jc3NcIjtcblxuLnVpLW1vZGFsLW92ZXJsYXkge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuXG4udWktbW9kYWwge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICBwYWRkaW5nOiAwO1xuICBib3gtc2hhZG93OiAwIDRweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgNnB4IDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTkpO1xufVxuXG4udWktbW9kYWwtaGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAycHggMTZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5NzZEMjsgLyojNWI5YmQ1OyovXG4gIGNvbG9yOiB3aGl0ZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4udWktbW9kYWwtYm9keSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjAwcHgpO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG5cbi51aS1tb2RhbC1mb290ZXIge1xuICBwYWRkaW5nOiAxNXB4O1xufVxuXG4udWktdGl0bGViYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LWdyb3c6IDE7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnVpLW1vZGFsLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4udWktY29udHJvbGJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi51aS1pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nLXRvcDogOXB4O1xufVxuXG4udWktaWNvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNzU7XG59XG5cbi5kcmFnZ2luZyB7XG4gIGN1cnNvcjogbW92ZTtcbiAgYm9yZGVyLWNvbG9yOiAjNjZhZmU5O1xuICBvdXRsaW5lOiAwO1xuICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgxMDIsMTc1LDIzMywuNiksIDAgNnB4IDIwcHggcmdiYSgwLDAsMCwuMik7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuIl19 */\"","import {\n Component, ElementRef, ViewChild, Input, Output, OnInit, AfterViewChecked, HostListener, HostBinding, EventEmitter, ViewEncapsulation\n} from '@angular/core';\nimport {ResizableEvent} from '../resizable';\nimport {maxZIndex, findAncestor} from '../common/utils';\n\n@Component({\n selector: 'app-modal',\n templateUrl: 'modal.component.html',\n styleUrls: ['modal.component.css'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ModalComponent implements OnInit, AfterViewChecked {\n\n @Input() modalTitle: string;\n @Input() width: any;\n @Input() zIndex: number;\n @Input() minWidth: number = 260;\n @Input() minHeight: number = 200;\n @Input() scrollTop: boolean = true;\n @Input() maximizable: boolean;\n @Input() backdrop: boolean = true;\n\n @Output() closeModal: EventEmitter = new EventEmitter();\n\n @ViewChild('modalRoot', {static: false}) modalRoot: ElementRef;\n @ViewChild('modalBody', {static: false}) modalBody: ElementRef;\n @ViewChild('modalHeader', {static: false}) modalHeader: ElementRef;\n @ViewChild('modalFooter', {static: false}) modalFooter: ElementRef;\n\n @HostBinding('class.app-modal') cssClass = true;\n\n visible: boolean;\n contentzIndex: number;\n executePostDisplayActions: boolean;\n maximized: boolean;\n preMaximizeRootWidth: number;\n preMaximizeRootHeight: number;\n preMaximizeBodyHeight: number;\n preMaximizePageX: number;\n preMaximizePageY: number;\n dragEventTarget: MouseEvent | TouchEvent;\n\n constructor(private element: ElementRef) {}\n\n ngOnInit() {\n if (!this.zIndex) {\n this.zIndex = this.getMaxModalIndex();\n this.zIndex = (this.zIndex || 1000) + 1;\n }\n this.contentzIndex = this.zIndex + 1;\n }\n\n ngAfterViewChecked() {\n if (this.executePostDisplayActions) {\n this.center();\n this.executePostDisplayActions = false;\n }\n }\n\n @HostListener('keydown.esc', ['$event'])\n onKeyDown(event): void {\n event.preventDefault();\n event.stopPropagation();\n this.hide();\n }\n\n @HostListener('window:resize')\n onWindowResize(): void {\n this.executePostDisplayActions = true;\n this.center();\n }\n\n show(): void {\n this.executePostDisplayActions = true;\n this.visible = true;\n setTimeout(() => {\n this.modalRoot.nativeElement.focus();\n if (this.scrollTop) {\n this.modalBody.nativeElement.scrollTop = 0;\n }\n }, 1);\n }\n\n hide(): void {\n this.visible = false;\n this.closeModal.emit(true);\n this.focusLastModal();\n }\n\n center() {\n let elementWidth = this.modalRoot.nativeElement.offsetWidth;\n let elementHeight = this.modalRoot.nativeElement.offsetHeight;\n\n if (elementWidth === 0 && elementHeight === 0) {\n this.modalRoot.nativeElement.style.visibility = 'hidden';\n this.modalRoot.nativeElement.style.display = 'block';\n elementWidth = this.modalRoot.nativeElement.offsetWidth;\n elementHeight = this.modalRoot.nativeElement.offsetHeight;\n this.modalRoot.nativeElement.style.display = 'none';\n this.modalRoot.nativeElement.style.visibility = 'visible';\n }\n\n const x = Math.max((window.innerWidth - elementWidth) / 2, 0);\n const y = Math.max((window.innerHeight - elementHeight) / 2, 0);\n\n this.modalRoot.nativeElement.style.left = x + 'px';\n this.modalRoot.nativeElement.style.top = y + 'px';\n }\n\n initDrag(event: MouseEvent | TouchEvent) {\n ///// commented as dragging of popup modal is not needed\n //if (!this.maximized) {\n // this.dragEventTarget = event;\n //}\n }\n\n onResize(event: ResizableEvent) {\n if (event.direction === 'vertical') {\n this.calcBodyHeight();\n }\n }\n\n calcBodyHeight() {\n const diffHeight = this.modalHeader.nativeElement.offsetHeight + this.modalFooter.nativeElement.offsetHeight;\n const contentHeight = this.modalRoot.nativeElement.offsetHeight - diffHeight;\n this.modalBody.nativeElement.style.height = contentHeight + 'px';\n this.modalBody.nativeElement.style.maxHeight = 'none';\n }\n\n getMaxModalIndex() {\n return maxZIndex('.ui-modal');\n }\n\n focusLastModal() {\n const modal = findAncestor(this.element.nativeElement.parentElement, 'app-modal');\n if (modal && modal.children[1]) {\n modal.children[1].focus();\n }\n }\n\n onCloseIcon(event: Event) {\n event.stopPropagation();\n }\n\n toggleMaximize(event) {\n if (this.maximized) {\n this.revertMaximize();\n } else {\n this.maximize();\n }\n event.preventDefault();\n }\n\n maximize() {\n this.preMaximizePageX = parseFloat(this.modalRoot.nativeElement.style.top);\n this.preMaximizePageY = parseFloat(this.modalRoot.nativeElement.style.left);\n this.preMaximizeRootWidth = this.modalRoot.nativeElement.offsetWidth;\n this.preMaximizeRootHeight = this.modalRoot.nativeElement.offsetHeight;\n this.preMaximizeBodyHeight = this.modalBody.nativeElement.offsetHeight;\n\n this.modalRoot.nativeElement.style.top = '0px';\n this.modalRoot.nativeElement.style.left = '0px';\n this.modalRoot.nativeElement.style.width = '100vw';\n this.modalRoot.nativeElement.style.height = '100vh';\n const diffHeight = this.modalHeader.nativeElement.offsetHeight + this.modalFooter.nativeElement.offsetHeight;\n this.modalBody.nativeElement.style.height = 'calc(100vh - ' + diffHeight + 'px)';\n this.modalBody.nativeElement.style.maxHeight = 'none';\n\n this.maximized = true;\n }\n\n revertMaximize() {\n this.modalRoot.nativeElement.style.top = this.preMaximizePageX + 'px';\n this.modalRoot.nativeElement.style.left = this.preMaximizePageY + 'px';\n this.modalRoot.nativeElement.style.width = this.preMaximizeRootWidth + 'px';\n this.modalRoot.nativeElement.style.height = this.preMaximizeRootHeight + 'px';\n this.modalBody.nativeElement.style.height = this.preMaximizeBodyHeight + 'px';\n\n this.maximized = false;\n }\n\n moveOnTop() {\n if (!this.backdrop) {\n const zIndex = this.getMaxModalIndex();\n if (this.contentzIndex <= zIndex) {\n this.contentzIndex = zIndex + 1;\n }\n }\n }\n\n get dialogStyles() {\n return {\n display: this.visible ? 'block' : 'none',\n 'z-index': this.contentzIndex,\n 'width.px': this.width,\n 'min-width.px': this.minWidth,\n };\n }\n\n get overlayStyles() {\n return {\n display: (this.visible && this.backdrop) ? 'block' : 'none',\n 'z-index': this.zIndex,\n };\n }\n\n}\n","import { Component, Input, Output, EventEmitter, HostBinding } from '@angular/core';\nimport { TreeNode } from '../tree';\nimport { isBlank } from '../common';\n\n@Component({\n selector: 'app-nav-item',\n templateUrl: 'nav-item.component.html',\n})\nexport class NavItemComponent {\n\n @Input() node: TreeNode;\n @Input() set expandedNode(val: TreeNode) {\n if (val && val.$$level === this.node.$$level && val !== this.node) {\n this.node.expanded = false;\n }\n }\n @Output() expand: EventEmitter = new EventEmitter();\n @Output() linkClicked: EventEmitter = new EventEmitter();\n\n @HostBinding('class.nav-item') cssClass = true;\n\n constructor() {}\n\n get classes(): any {\n return {\n ['level-' + (this.node.$$level + 1)]: true,\n collapsed: !this.node.expanded,\n expanded: this.node.expanded,\n active: this.node.isSelected,\n heading: this.node.hasChildren\n };\n }\n\n get headingChildrenClasses(): any {\n return {\n collapsed: !this.node.expanded,\n expanded: this.node.expanded\n };\n }\n\n onClickLink(event: MouseEvent): void {\n event.preventDefault();\n if (this.node.hasChildren) {\n this.node.expanded = !this.node.expanded;\n this.expand.emit(this.node);\n } else {\n this.node.setSelected();\n }\n if (!isBlank(this.node.id)) {\n this.linkClicked.emit(this.node.id);\n }\n }\n\n}\n","import { Component, Input, HostBinding, HostListener, Output, EventEmitter } from '@angular/core';\nimport { TreeNode, Tree } from '../tree';\n\n@Component({\n selector: 'app-nav-menu',\n template: `\n \n `,\n})\nexport class NavMenuComponent {\n\n @Input()\n get nodes(): TreeNode[] { return this.tree.nodes; }\n set nodes(val: TreeNode[]) {\n this.tree.nodes = val;\n }\n @Input() minimize: boolean;\n\n @Output() linkClicked: EventEmitter = new EventEmitter();\n\n tree: Tree = new Tree();\n expandedNode: TreeNode;\n private collapsed = true;\n\n @HostBinding('class.nav-menu') cssClass = true;\n\n @HostBinding('class.nav-expanded') get cssClassExp(): boolean {\n return (this.minimize) ? !this.collapsed : true;\n }\n @HostBinding('class.nav-collapsed') get cssClassCol(): boolean {\n return (this.minimize) && this.collapsed;\n }\n\n @HostListener('mouseenter')\n onMouseEnter(): void {\n this.collapsed = false;\n }\n\n @HostListener('mouseleave')\n onMouseLeave(): void {\n this.collapsed = true;\n }\n\n constructor() {}\n\n onLinkClicked(event): void {\n this.linkClicked.emit(event);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { NavMenuComponent } from './nav-menu.component';\nimport { NavItemComponent } from './nav-item.component';\n\n@NgModule({\n declarations: [\n NavMenuComponent,\n NavItemComponent,\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n NavMenuComponent,\n ],\n})\nexport class NavMenuModule { }\n","import {Settings} from '../../ng-data-table/base/settings';\n\nexport class CdtSettings extends Settings {\n crud?: boolean;\n initLoad?: boolean = true;\n globalFilter?: boolean;\n clickRows?: boolean;\n singleRowView?: boolean = true;\n zIndexModal?: number;\n exportAction?: boolean;\n exportKMLAction?: boolean;\n columnToggleAction?: boolean;\n clearAllFiltersAction?: boolean;\n clearAllFiltersIcon?: boolean = true;\n unshiftExpandIcon?: boolean = false;//To toggle expanding(popup details view screen) icon column - IMP\n unPopDelIcon?: boolean = false;//To toggle Del icon column at the end of tabe - IMP\n\n constructor(init: Partial) {\n super(init);\n Object.assign(this, init);\n }\n\n}\n","import {DataSource, RequestMetadata} from './types';\r\nimport {Row, FilterMetadata} from '../../ng-data-table';\r\nimport {DataTable} from '../../ng-data-table/base/data-table';\r\nimport {ColumnBase} from '../../ng-data-table/base/column-base';\r\nimport {ColumnModelGenerator} from '../../ng-data-table/base/column-model-generator';\r\nimport {CdtSettings} from './cdt-settings';\r\nimport {DtMessages} from '../../dt-translate';\r\nimport { SelectItem } from 'lib/common';\r\n\r\nexport class DataManager extends DataTable {\r\n\r\n readonly settings: CdtSettings;\r\n readonly DB_TZ: number;\r\n readonly DB_BRDiff: number;\r\n readonly MainFilterTZ: number;\r\n readonly service: DataSource;\r\n readonly rsltType: string;\r\n readonly selectedColumns: SelectItem[] = [];\r\n readonly rsltTypeActual: string;\r\n ResultOrFileType: number;\r\n readonly requestID: string;\r\n readonly respColumnsList: string[] = [];\r\n item: any;\r\n refreshRowOnSave: boolean;\r\n pagerCache: any = {};\r\n\r\n constructor(columns: ColumnBase[], settings: CdtSettings, dataSource: DataSource, DB_TZ?: number, DB_BRDiff?: number, MainFilterTZ?: number, selectedColumns?: SelectItem[], messages?: DtMessages, rsltType?: string, rsltTypeActual?: string,\r\n ResultOrFileType?: number, requestID?: string) {\r\n // super(((x) => { columns.unshift(x); return columns; })(ColumnModelGenerator.actionColumn), settings, messages);\r\n super(settings.unshiftExpandIcon === true ? ((x) => { columns.unshift(x); return columns; })(ColumnModelGenerator.actionColumn) : columns, settings, messages, DB_TZ, DB_BRDiff, MainFilterTZ);\r\n super(settings.unPopDelIcon === true ? ((x) => { columns.push(x); return columns; })(ColumnModelGenerator.delColumn) : columns, settings, messages, DB_TZ, DB_BRDiff, MainFilterTZ);\r\n //super(columns, settings, messages);\r\n this.settings = new CdtSettings(settings);\r\n this.DB_TZ = DB_TZ;\r\n this.DB_BRDiff = DB_BRDiff;\r\n this.MainFilterTZ = MainFilterTZ;\r\n this.clientSide = false;\r\n //this.refreshed = false;\r\n this.service = dataSource;\r\n this.rsltType = rsltType;\r\n this.selectedColumns = selectedColumns;\r\n this.rsltTypeActual = rsltTypeActual;\r\n this.ResultOrFileType = ResultOrFileType;\r\n this.requestID = requestID;\r\n\r\n //debugger;\r\n /////to add only preapred column i.e show on main screen.\r\n let preparedcol = this.columnModelGenerator.prepareColumns(this.columns);\r\n preparedcol.forEach((col) => {\r\n this.respColumnsList.push(col.name);\r\n });\r\n\r\n this.columns.forEach(col => { \r\n //this.respColumnsList.push(col.name);\r\n if (col.filterValues && typeof col.filterValues === 'string') {\r\n col.filterValues = this.service.getOptions.bind(this.service, col.filterValues);\r\n }\r\n });\r\n }\r\n\r\n get filters(): FilterMetadata { return this.dataFilter.filters; }\r\n set filters(val: FilterMetadata) {\r\n this.dataFilter.filters = val;\r\n this.events.onFilter();\r\n }\r\n\r\n //main function to be called from component pointing to service connecting to DB\r\n async loadItems() {\r\n if (this.requestID == \"\" || this.requestID == undefined)\r\n return await this.getItems(this.settings.virtualScroll);\r\n else\r\n return await this.getItemsByID(this.settings.virtualScroll);\r\n\r\n //return this.getItems(this.settings.virtualScroll);\r\n }\r\n\r\n clearAllFilters() {\r\n this.service.clearAllFilters();\r\n }\r\n\r\n async getItems(concatRows: boolean = false): Promise {\r\n //console.log('dm-enter')\r\n if (concatRows === true && this.pagerCache[this.pager.current]) {\r\n return Promise.resolve();\r\n }\r\n let groupRowsBybool = false;\r\n if (this.settings.groupRowsBy) {\r\n if (this.settings.groupRowsBy.length > 0)\r\n groupRowsBybool = true;\r\n }\r\n this.events.onLoading(true);\r\n this.setSortMetaGroup();\r\n //console.log(this.sorter.sortMeta)\r\n //console.log(this.dataFilter.filters);\r\n\r\n //actual set of rows from database fetched and loading in table\r\n //console.log(this.pager.perPageOrCurrPageChanged)\r\n //console.log(this.pagerCache)\r\n const requestMeta: RequestMetadata = {\r\n pageMeta: { currentPage: this.pager.current, perPage: this.pager.perPage, perPageOrCurrPageChanged: this.pager.perPageOrCurrPageChanged },\r\n filters: this.dataFilter.filters,\r\n sortMeta: this.sorter.sortMeta,\r\n globalFilterValue: this.dataFilter.globalFilterValue,\r\n rsltType: this.rsltType,\r\n rsltTypeActual: this.rsltTypeActual,\r\n ResultOrFileType: this.ResultOrFileType,\r\n respColumnsList: this.respColumnsList,\r\n groupRowsBy: groupRowsBybool,\r\n };\r\n //sets the total number of records - demo service\r\n return await this.service\r\n .getItems(requestMeta)\r\n .then(data => {\r\n data.items.forEach(x => x.expanded = true);//For Call Timestamp grouping, makes all sub tables expanded or not, by default - IMP\r\n this.rows = (concatRows) ? this.rows.concat(data.items) : data.items;\r\n this.rowsRest = data.itemsRest;\r\n //console.log(this.rows)\r\n //console.log(this.rowsRest)\r\n if (concatRows) {\r\n this.pager.total = (data._meta.totalCount > this.rows.length) ? this.rows.length + 1 : this.rows.length;\r\n } else {\r\n this.pager.total = data._meta.totalCount;\r\n }\r\n this.pager.perPage = data._meta.perPage;\r\n this.pager.perPageOrCurrPageChanged = data._meta.perPageOrCurrPageChanged;\r\n this.pagerCache[this.pager.current] = true;\r\n //if (data._meta.clearSortOrder)\r\n // this.sorter.sortMeta = [];\r\n //console.log(this.sorter.sortMeta)\r\n //console.log('dm-exit')\r\n //this.refreshed = true;\r\n })\r\n .finally(() => {\r\n this.events.onLoading(false);\r\n this.ResultOrFileType = 0;//IMP - resetting for records per page sel event\r\n });\r\n }\r\n\r\n async getItemsByID(concatRows: boolean = false): Promise {\r\n //console.log(concatRows)\r\n if (concatRows === true && this.pagerCache[this.pager.current]) {\r\n return Promise.resolve();\r\n }\r\n this.events.onLoading(true);\r\n this.setSortMetaGroup();\r\n const requestMeta: RequestMetadata = {\r\n pageMeta: { currentPage: this.pager.current, perPage: this.pager.perPage, perPageOrCurrPageChanged: this.pager.perPageOrCurrPageChanged },\r\n filters: this.dataFilter.filters,\r\n sortMeta: this.sorter.sortMeta,\r\n globalFilterValue: this.dataFilter.globalFilterValue,\r\n rsltType: this.rsltType,\r\n id: parseInt(this.requestID)\r\n };\r\n //sets the total number of records\r\n return await this.service\r\n .getItemsByID(requestMeta)\r\n .then(data => {\r\n this.rows = (concatRows) ? this.rows.concat(data.items) : data.items;\r\n if (concatRows) {\r\n this.pager.total = (data._meta.totalCount > this.rows.length) ? this.rows.length + 1 : this.rows.length;\r\n } else {\r\n this.pager.total = data._meta.totalCount;\r\n }\r\n this.pager.perPage = data._meta.perPage;\r\n this.pager.perPageOrCurrPageChanged = data._meta.perPageOrCurrPageChanged;\r\n this.pagerCache[this.pager.current] = true;\r\n })\r\n .finally(() => { this.events.onLoading(false); });\r\n }\r\n\r\n create(row: Row) {\r\n this.events.onLoading(true);\r\n this.service\r\n .post(row, '')\r\n .then(res => {\r\n if (this.refreshRowOnSave) {\r\n this.loadItems();\r\n } else {\r\n this.addRow(res || row);\r\n }\r\n })\r\n .finally(() => { this.events.onLoading(false); });\r\n }\r\n\r\n update(row: Row) {\r\n this.events.onLoading(true);\r\n this.service.put(row, '')\r\n .then(res => {\r\n this.afterUpdate(row, res);\r\n })\r\n .finally(() => { this.events.onLoading(false); });\r\n }\r\n\r\n delete(row: Row) {\r\n this.events.onLoading(true);\r\n this.service\r\n .delete(row, '')\r\n .then(res => {\r\n this.deleteRow(row);\r\n })\r\n .finally(() => { this.events.onLoading(false); });\r\n }\r\n deleteInternally(row: Row) {\r\n console.log(this)\r\n this.deleteRow(row);\r\n }\r\n\r\n afterUpdate(row: Row, result: any) {\r\n if (this.refreshRowOnSave) {\r\n this.refreshRow(row);\r\n } else {\r\n this.mergeRow(row, result || row);\r\n }\r\n }\r\n\r\n refreshRow(row: Row) {\r\n this.events.onLoading(true);\r\n this.service.getItem(row)\r\n .then(data => {\r\n this.mergeRow(row, data);\r\n })\r\n .finally(() => { this.events.onLoading(false); });\r\n }\r\n\r\n clear() {\r\n this.rows = [];\r\n this.pager.total = 0;\r\n }\r\n\r\n rowIsValid(row: Row) {\r\n const hasError = this.columns.some(x => {\r\n const errors = x.validate(row[x.name]);\r\n return (errors && errors.length > 0);\r\n });\r\n return !hasError;\r\n }\r\n\r\n}\r\n","export { DataManager } from './data-manager';\nexport { CdtSettings } from './cdt-settings';\nexport * from './types';\n","import { FilterMetadata, SortMetadata } from '../../ng-data-table';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface DataSource {\r\n clearAllFilters();\r\n getItems(requestMeta: RequestMetadata): Promise;\r\n getItemsByID(requestMeta: RequestMetadata): Promise;\r\n getItem(row: any): Promise;\r\n post(row: any, methodName: string): Promise;\r\n put(row: any, methodName: string): Promise;\r\n delete(row: any, methodName: string): Promise;\r\n getOptions?(url: string, parentId: any): Promise;\r\n}\r\n\r\nexport interface HeaderDataSource {\r\n getTotalRecords(rsltType: any): Observable;\r\n getItems(dates: any, dateOperator: any, rsltType: any): Observable;\r\n}\r\n\r\nexport class RequestMetadata {\r\n pageMeta: PageMetadata;\r\n sortMeta: SortMetadata[];\r\n filters: FilterMetadata;\r\n globalFilterValue?: string;\r\n rsltType?: string;\r\n rsltTypeActual?: string;\r\n ResultOrFileType?: number;//Export to file or just display\r\n id?: number;\r\n respColumnsList?: string[];//Used while exporting to file using global cols filtering\r\n groupRowsBy?: boolean;\r\n\r\n}\r\n\r\nexport class PagedResult {\r\n items: any[];\r\n itemsRest: any[];\r\n _meta: PageMetadata;\r\n}\r\n\r\nexport class PageMetadata {\r\n currentPage: number;\r\n perPage: number;\r\n perPageOrCurrPageChanged: boolean;\r\n totalCount?: number;\r\n pageCount?: number;\r\n maxRowCount?: number;\r\n //clearSortOrder?: boolean;\r\n}\r\n","module.exports = \".dt-icon-actions {\\r\\n display: inline-block;\\r\\n width: 16px;\\r\\n height: 2px;\\r\\n box-shadow: inset 0 0 0 32px, 0 -5px, 0 5px;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n.dt-button-actions {\\r\\n margin: 0;\\r\\n padding: 8px 12px;\\r\\n background-color: transparent;\\r\\n border: none;\\r\\n outline:none;\\r\\n cursor:pointer;\\r\\n}\\r\\n\\r\\n.dt-button-del-actions {/*IMP*/\\r\\n margin: 0;\\r\\n background-color: transparent;\\r\\n border: none;\\r\\n outline: none;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.dt-button-actions:hover {\\r\\n background-color: rgba(0,0,0,.1);\\r\\n}\\r\\n\\r\\n.datatable-header-cell {\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n}\\r\\n\\r\\n.click {\\r\\n cursor:pointer;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9uZy1jcnVkLXRhYmxlL2NvbXBvbmVudHMvY3J1ZC10YWJsZS9jcnVkLXRhYmxlLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxxQkFBcUI7RUFDckIsV0FBVztFQUNYLFdBQVc7RUFDWCwyQ0FBMkM7RUFDM0Msc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsU0FBUztFQUNULGlCQUFpQjtFQUNqQiw2QkFBNkI7RUFDN0IsWUFBWTtFQUNaLFlBQVk7RUFDWixjQUFjO0FBQ2hCOztBQUNBLHdCQUF3QixNQUFNO0VBQzVCLFNBQVM7RUFDVCw2QkFBNkI7RUFDN0IsWUFBWTtFQUNaLGFBQWE7RUFDYixlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsZ0NBQWdDO0FBQ2xDOztBQUdBO0VBQ0UscUJBQXVCO01BQXZCLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLGNBQWM7QUFDaEIiLCJmaWxlIjoibGliL25nLWNydWQtdGFibGUvY29tcG9uZW50cy9jcnVkLXRhYmxlL2NydWQtdGFibGUuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5kdC1pY29uLWFjdGlvbnMge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB3aWR0aDogMTZweDtcclxuICBoZWlnaHQ6IDJweDtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAzMnB4LCAwIC01cHgsIDAgNXB4O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbn1cclxuXHJcbi5kdC1idXR0b24tYWN0aW9ucyB7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IDhweCAxMnB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBvdXRsaW5lOm5vbmU7XHJcbiAgY3Vyc29yOnBvaW50ZXI7XHJcbn1cclxuLmR0LWJ1dHRvbi1kZWwtYWN0aW9ucyB7LypJTVAqL1xyXG4gIG1hcmdpbjogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5kdC1idXR0b24tYWN0aW9uczpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwuMSk7XHJcbn1cclxuXHJcblxyXG4uZGF0YXRhYmxlLWhlYWRlci1jZWxsIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG5cclxuLmNsaWNrIHtcclxuICBjdXJzb3I6cG9pbnRlcjtcclxufVxyXG4iXX0= */\"","import {\r\n Component, OnInit, Input, Output, EventEmitter, OnDestroy, ViewEncapsulation, TemplateRef,\r\n HostBinding, ChangeDetectionStrategy, ChangeDetectorRef, OnChanges, SimpleChanges, SimpleChange, ViewChild\r\n} from '@angular/core';\r\nimport {ModalEditFormComponent} from '../../../modal-edit-form';\r\nimport {DataManager} from '../../base';\r\nimport { Subscription, interval, timer} from 'rxjs';\r\nimport {ContextMenuComponent, MenuEventArgs} from '../../../context-menu';\r\nimport {DataTableComponent, Row} from '../../../ng-data-table';\r\nimport {EventHelper, ColumnModelGenerator, DataFilter} from '../../../ng-data-table/base';\r\nimport {MenuItem} from '../../../common';\r\nimport { mainAndSubHeaders } from 'src/app/shared/columns';\r\nimport { PageEvent } from 'lib/pagination';\r\n\r\n@Component({\r\n selector: 'app-crud-table',\r\n templateUrl: './crud-table.component.html',\r\n styleUrls: [\r\n 'crud-table.component.css',\r\n '../../../styles/icons.css',\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\n\r\nexport class CrudTableComponent implements OnChanges, OnDestroy {\r\n\r\n @Input() popupOrNot: boolean;\r\n @Input() dataManager: DataManager;\r\n @Input() rsltType: string;\r\n @Input() selectedSubResults: any;\r\n\r\n @Input() AutoRefreshInfo: any = {};\r\n\r\n @Input() requestID: string;\r\n\r\n @Input() boolMainHeader: boolean;\r\n @Output() rowsChanged: EventEmitter = new EventEmitter();\r\n @Output() downloaded = new EventEmitter();\r\n @Output() rowDeleted = new EventEmitter();\r\n @Output() calleventErrorEvents = new EventEmitter();\r\n @Output() connDropEvents = new EventEmitter();\r\n\r\n @ViewChild('modalEditForm', {static: false}) modalEditForm: ModalEditFormComponent;\r\n @ViewChild('rowMenu', {static: true}) rowMenu: ContextMenuComponent;\r\n @ViewChild(DataTableComponent, {static: true}) dt: DataTableComponent;\r\n @ViewChild('rowActionTemplate', {static: true}) rowActionTemplate: TemplateRef;\r\n @ViewChild('headerActionTemplate', { static: true }) headerActionTemplate: TemplateRef;\r\n @ViewChild('onlyDelActionTemplate', { static: true }) onlyDelActionTemplate: TemplateRef;//susheel - Delete button at the end of each config screen table row\r\n\r\n @HostBinding('class.datatable') cssClass = true;\r\n\r\n actionMenu: MenuItem[] = [];\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(private cd: ChangeDetectorRef) { }\r\n //ngOnChanges(changes: SimpleChanges) {\r\n // const dM: SimpleChange = changes.dataManager;\r\n // this.dataManager = dM.currentValue;\r\n //}\r\n\r\n //ngOnChanges(changes: SimpleChanges) {\r\n // //const currentItem: SimpleChange = changes.dataManager;\r\n // //this.dataManager = currentItem.currentValue;\r\n\r\n // for (const propName in changes) {\r\n // if (changes.hasOwnProperty(propName)) {\r\n // switch (propName) {\r\n // case 'selectedSubResults': {\r\n // if (changes.currentValue != undefined)\r\n // this.selectedSubResults = changes.currentValue;\r\n // break;\r\n // }\r\n // }\r\n // }\r\n // }\r\n //}\r\n\r\n interval;\r\n async ngOnChanges(changes: SimpleChanges) {\r\n if (this.dataManager) {\r\n if (this.boolMainHeader) {\r\n let headersList = mainAndSubHeaders(this.rsltType, this.selectedSubResults);\r\n\r\n this.items = headersList.internal;\r\n this.LeftStartIndex = headersList.LeftStartIndex;\r\n this.LeftEndIndex = headersList.LeftEndIndex;\r\n this.RightStartIndex = headersList.RightStartIndex;\r\n this.RightEndIndex = headersList.RightEndIndex;\r\n }\r\n\r\n const actionColumn = this.dataManager.columns.find(x => x.name === ColumnModelGenerator.actionColumn.name);\r\n if (actionColumn) {\r\n actionColumn.cellTemplate = this.rowActionTemplate;\r\n actionColumn.headerCellTemplate = this.headerActionTemplate;\r\n }\r\n const delColumn = this.dataManager.columns.find(x => x.name === ColumnModelGenerator.delColumn.name);\r\n if (delColumn) {\r\n delColumn.cellTemplate = this.onlyDelActionTemplate;\r\n }\r\n this.initRowMenu();\r\n if (this.dataManager.settings.initLoad) {\r\n await this.dataManager.loadItems();//.catch(() => this.cd.markForCheck());\r\n //console.log(this.dataManager.rows)\r\n //console.log('onInitLoad' + new Date())\r\n //this.dataManager.settings.initLoad = false;\r\n }\r\n\r\n if (this.AutoRefreshInfo) {\r\n //https://stackoverflow.com/questions/45293635/how-to-use-clearinterval-in-angular-4\r\n if (this.AutoRefreshInfo.AutoRefStop) {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n }\r\n }\r\n else {\r\n this.interval = setInterval(() => {\r\n //console.log(this.AutoRefreshInfo.AutoRefStop);\r\n this.dataManager.loadItems();//.catch(() => this.cd.markForCheck());\r\n }, this.AutoRefreshInfo.AutoRefSelected);\r\n }\r\n }\r\n //const subInterval = interval(this.AutoRefreshInfo.AutoRefSelected)\r\n // .subscribe(x => {\r\n // if (this.AutoRefreshInfo.AutoRefStop) {\r\n // return;\r\n // }\r\n // console.log(new Date());\r\n // console.log(this.AutoRefreshInfo.AutoRefSelected)\r\n // this.dataManager.loadItems().catch(() => this.cd.markForCheck());\r\n //});\r\n ////if (this.AutoRefreshInfo.AutoRefStop && subInterval)\r\n //// subInterval.unsubscribe();\r\n\r\n const subFilter = this.dataManager.events.filterSource$.subscribe(() => {\r\n this.onFilter();\r\n });\r\n //const subFilterClear = this.dataManager.events.filterClearSource$.subscribe(() => {\r\n // this.onFilterClear();\r\n //});\r\n const subSort = this.dataManager.events.sortSource$.subscribe(() => {\r\n this.onSort();\r\n });\r\n const subPage = this.dataManager.events.pageSource$.subscribe(() => {\r\n this.onPageChanged();\r\n });\r\n //const subRows = this.dataManager.events.rowsChanged$.subscribe(() => {\r\n // console.log('subRows')\r\n // this.rowsChanged.emit(true);\r\n //});\r\n const subScroll = this.dataManager.events.scrollSource$.subscribe(() => {\r\n this.rowMenu.hide();\r\n requestAnimationFrame(() => this.cd.detectChanges());\r\n });\r\n\r\n //this.subscriptions.push(subInterval);\r\n this.subscriptions.push(subFilter);\r\n //this.subscriptions.push(subFilterClear);\r\n this.subscriptions.push(subSort);\r\n this.subscriptions.push(subPage);\r\n //this.subscriptions.push(subRows);\r\n this.subscriptions.push(subScroll);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n //console.log('called')\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n }\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n initRowMenu() {\r\n if (this.dataManager.settings.singleRowView) {\r\n this.actionMenu.push(\r\n {\r\n id: this.dataManager.messages.titleDetailView,\r\n label: this.dataManager.messages.titleDetailView,\r\n icon: 'dt-icon dt-icon-rightwards',\r\n command: (row) => this.viewAction(row),\r\n }\r\n );\r\n }\r\n if (this.dataManager.settings.crud) {\r\n this.actionMenu.push(\r\n {\r\n id: this.dataManager.messages.titleUpdate,\r\n label: this.dataManager.messages.titleUpdate,\r\n icon: 'dt-icon dt-icon-pencil',\r\n command: (row) => this.updateAction(row),\r\n },\r\n {\r\n id: this.dataManager.messages.refresh,\r\n label: this.dataManager.messages.refresh,\r\n icon: 'dt-icon dt-icon-reload',\r\n command: (row) => this.dataManager.refreshRow(row),\r\n },\r\n {\r\n id: this.dataManager.messages.revertChanges,\r\n label: this.dataManager.messages.revertChanges,\r\n icon: 'dt-icon dt-icon-return',\r\n command: (row) => this.dataManager.revertRowChanges(row),\r\n disabled: true,\r\n },\r\n {\r\n id: this.dataManager.messages.save,\r\n label: this.dataManager.messages.save,\r\n icon: 'dt-icon dt-icon-ok',\r\n command: (row) => this.dataManager.update(row),\r\n disabled: true,\r\n },\r\n {\r\n id: this.dataManager.messages.delete,\r\n label: this.dataManager.messages.delete,\r\n icon: 'dt-icon dt-icon-remove',\r\n command: (row) => confirm('Delete ?') ? this.dataManager.delete(row) : null,\r\n },\r\n {\r\n id: this.dataManager.messages.duplicate,\r\n label: this.dataManager.messages.duplicate,\r\n icon: 'dt-icon dt-icon-plus',\r\n command: (row) => this.duplicateAction(row),\r\n },\r\n );\r\n }\r\n }\r\n\r\n rowMenuBeforeOpen(row: Row) {\r\n const rowChanged = this.dataManager.rowChanged(row);\r\n let menuIndex = this.actionMenu.findIndex(x => x.id === this.dataManager.messages.revertChanges);\r\n if (menuIndex > -1) {\r\n this.actionMenu[menuIndex].disabled = !rowChanged;\r\n }\r\n menuIndex = this.actionMenu.findIndex(x => x.id === this.dataManager.messages.save);\r\n if (menuIndex > -1) {\r\n const rowIsValid = this.dataManager.rowIsValid(row);\r\n this.actionMenu[menuIndex].disabled = !rowChanged || !rowIsValid;\r\n }\r\n }\r\n\r\n onRowMenuClick(event: Event, row: Row) {\r\n const {left, top} = EventHelper.getRowPosition(event, this.dataManager.settings.virtualScroll);\r\n this.rowMenuBeforeOpen(row);\r\n this.rowMenu.show({originalEvent: event, data: row, left, top} as MenuEventArgs);\r\n }\r\n onRowDelClick(event: Event, row: Row) {\r\n //confirm('Delete ?') ? this.dataManager.deleteInternally(row) : null;\r\n this.rowDeleted.emit(row);\r\n }\r\n\r\n createAction() {\r\n this.dataManager.item = new Row({});\r\n this.modalEditForm.isNewItem = true;\r\n this.modalEditForm.detailView = false;\r\n this.modalEditForm.open();\r\n }\r\n\r\n viewAction(row: Row) {\r\n this.dataManager.item = row;\r\n this.modalEditForm.isNewItem = false;\r\n this.modalEditForm.detailView = true;\r\n this.modalEditForm.open();\r\n }\r\n\r\n updateAction(row: Row) {\r\n this.dataManager.item = row;\r\n this.modalEditForm.isNewItem = false;\r\n this.modalEditForm.detailView = false;\r\n this.modalEditForm.open();\r\n }\r\n\r\n duplicateAction(row: Row) {\r\n this.dataManager.item = row.clone();\r\n this.modalEditForm.isNewItem = true;\r\n this.modalEditForm.detailView = false;\r\n this.modalEditForm.open();\r\n }\r\n\r\n onPageChanged() {\r\n this.dataManager.loadItems();\r\n //console.log('onPageCh')\r\n }\r\n onPerPageChanged(event: PageEvent): void {\r\n //console.log('Records per page')\r\n event.perPageOrCurrPageChanged = true;\r\n this.dt.onPageChanged(event);\r\n }\r\n onDownloaded(type): void {\r\n this.downloaded.emit(type);\r\n }\r\n\r\n onFilterCEErrorEvents(getErrorEvent): void {\r\n this.calleventErrorEvents.emit(getErrorEvent);\r\n }\r\n onFilterConnDrops(getErrorEvent): void {\r\n this.connDropEvents.emit(getErrorEvent);\r\n }\r\n\r\n onFilter() {\r\n this.dataManager.pager.current = 1;\r\n if (this.dataManager.settings.virtualScroll) {\r\n this.dt.body.scroller.setOffsetY(0);\r\n this.dataManager.pagerCache = {};\r\n this.dataManager.clear();\r\n }\r\n this.dataManager.loadItems();\r\n //console.log(new Date())\r\n //console.log('onFilter')\r\n }\r\n //onFilterClear() {\r\n // this.clearAllFilters();\r\n //}\r\n\r\n onSort() {\r\n if (this.dataManager.settings.virtualScroll) {\r\n this.dt.body.scroller.setOffsetY(0);\r\n this.dataManager.pager.current = 1;\r\n this.dataManager.pagerCache = {};\r\n this.dataManager.clear();\r\n }\r\n this.dataManager.loadItems();\r\n //console.log('onSort')\r\n }\r\n\r\n onLoadedForm() {\r\n this.cd.markForCheck();\r\n }\r\n\r\n clearAllFilters() {\r\n //console.log(new Date())\r\n this.dataManager.service.clearAllFilters();\r\n this.dataManager.dataFilter.clear();\r\n this.dataManager.events.onFilter();\r\n this.dataManager.events.onSort();\r\n }\r\n\r\n\r\n items: any[];\r\n LeftStartIndex: number;\r\n LeftEndIndex: number;\r\n RightStartIndex: number;\r\n RightEndIndex: number;\r\n\r\n getWidth(from: number, to: number) {\r\n let width = 0;\r\n //console.log(from + \":\" + to);\r\n for (let index = from; index < to; index++) {\r\n //console.log(index + \":\" + this.dataManager.columns[index].title);\r\n width += this.dataManager.columns[index].width;\r\n }\r\n return width;\r\n }\r\n\r\n translate3d() {\r\n return `translate3d(${this.dataManager.dimensions.offsetX * -1}px, 0, 0)`;\r\n }\r\n\r\n translate3dCell() {\r\n return `translate3d(${this.dataManager.dimensions.offsetX}px, 0, 0)`;\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {HttpClientModule} from '@angular/common/http';\n\nimport {DataTableModule} from '../ng-data-table';\nimport {DtToolbarModule} from '../dt-toolbar';\nimport {NotifyModule} from '../notify';\nimport {ModalEditFormModule} from '../modal-edit-form';\nimport {ContextMenuModule} from '../context-menu';\nimport { CrudTableComponent } from './components/crud-table/crud-table.component';\n\nimport { MaterialModule } from '../../src/app/material/material.module';\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n DataTableModule,\n DtToolbarModule,\n NotifyModule,\n ModalEditFormModule,\n ContextMenuModule,\n\n MaterialModule,\n ],\n declarations: [\n CrudTableComponent,\n ],\n exports: [\n CrudTableComponent,\n ],\n providers: []\n})\nexport class CrudTableModule {}\n","export {CrudTableModule} from './crud-table-module';\nexport {CrudTableComponent} from './components/crud-table/crud-table.component';\nexport {DataManager, DataSource, HeaderDataSource, RequestMetadata, PagedResult, CdtSettings} from './base';\nexport {Column, DataTable, DataType} from '../ng-data-table';\n","import { Column } from './column';\nimport { Row } from './row';\n\nexport class Cell {\n\n get value(): any { return this._value; }\n set value(val: any) {\n this._value = val;\n this.row[this.column.name] = val;\n }\n private _value: any;\n\n oldValue: any;\n viewValue: any;\n hasError: boolean;\n\n get isChanged(): boolean {\n return (this.row && this.row.$$data && this.value !== this.oldValue);\n }\n\n get rowIndex(): number {\n return (this.row) ? this.row.$$index : null;\n }\n\n constructor(public readonly row: Row, public readonly column: Column) {\n this._value = this.column.getValue(this.row);\n if (this.row && this.row.$$data) {\n this.oldValue = this.column.getValue(this.row.$$data);\n }\n this.updateViewValue();\n }\n\n validate() {\n const errors = this.column.validate(this.value);\n this.hasError = (errors && errors.length > 0);\n }\n\n exist(rowIndex: number, columnIndex: number): boolean {\n return this.row.$$index === rowIndex && this.column.index === columnIndex;\n }\n\n updateViewValue(): void {\n this.viewValue = this.column.getValueView(this.row);\n }\n\n getOptions() {\n return this.column.getOptions(this.row[this.column.dependsColumn]);\n }\n\n}\n","import {ColumnType, AggregateType, DataType} from './types';\nimport {TemplateRef, PipeTransform} from '@angular/core';\nimport {SelectItem} from '../../common';\n\ntype FilterValuesFunc = (columnName: string) => Promise;\ntype CellClassFunc = (obj: any) => any;\n\nexport class ColumnBase {\n\n name: string;\n title: string;\n titleBgColor?: string;\n titleColor?: string;\n sortable?: boolean = true;\n filter?: boolean = true;\n options?: SelectItem[];\n optionsUrl?: string;\n width?: number = null;\n frozen?: boolean;\n type?: ColumnType;\n validatorFunc?: (name: string, value: any) => string[];\n editable?: boolean;\n resizeable?: boolean = true;\n dependsColumn?: string;\n cellTemplate?: TemplateRef;\n //delCellTemplate?: TemplateRef;//susheel\n formTemplate?: TemplateRef;\n headerCellTemplate?: TemplateRef;\n formHidden?: boolean;\n tableHidden?: boolean;\n cellClass?: string | CellClassFunc;\n headerCellClass?: string;\n keyColumn?: string;\n multiSelectFilter?: boolean;\n minWidth?: number = 50;\n maxWidth?: number = 500;\n aggregation?: AggregateType;\n filterValues?: FilterValuesFunc | SelectItem[] | string;\n dataType?: DataType;\n formDisableOnEdit?: boolean;\n pipe?: PipeTransform;\n}\n","import {ColumnBase} from './column-base';\nimport {Column} from './column';\nimport {Settings} from './settings';\nimport {supportsStickyPosition} from '../../common/utils';\n\nexport class ColumnModelGenerator {\n\n static actionColumn: ColumnBase = {\n name: 'action',\n title: 'Row actions',\n titleBgColor: '#1976D2',\n titleColor: 'white',\n sortable: false,\n filter: false,\n frozen: true,\n resizeable: false,\n width: 40,\n minWidth: 40,\n formHidden: true,\n cellClass: 'action-cell',\n headerCellClass: 'action-cell',\n };\n\n static delColumn: ColumnBase = {\n name: 'del',\n title: '',\n titleBgColor: '#1976D2',\n titleColor: 'white',\n sortable: false,\n filter: false,\n frozen: false,//IMP to keep this cell at the end instead of beginning\n resizeable: false,\n width: 40,\n minWidth: 40,\n formHidden: true,\n cellClass: 'action-cell',\n headerCellClass: 'action-cell',\n };\n\n static checkboxColumn: ColumnBase = {\n name: 'checkbox',\n title: 'Checkbox selection',\n titleBgColor: '#1976D2',\n titleColor: 'white',\n sortable: false,\n filter: false,\n frozen: true,\n resizeable: false,\n width: 40,\n minWidth: 40,\n formHidden: true,\n cellClass: 'action-cell',\n headerCellClass: 'action-cell',\n };\n\n constructor(private readonly settings: Settings, private readonly DB_TZ?: number, readonly DB_BRDiff?: number, readonly MainFilterTZ?: number) { }\n\n createColumns(columns: ColumnBase[]): Column[] {\n if (this.settings.selectionMode) {\n columns.unshift(ColumnModelGenerator.checkboxColumn);\n }\n return columns.map(x => new Column(x, this.DB_TZ, this.DB_BRDiff, this.MainFilterTZ));\n }\n\n prepareColumns(columns: Column[]): Column[] {\n const frozenColumns = [];\n const scrollableColumns = [];\n let columnIndex = 0;\n const canSticky = supportsStickyPosition();\n\n columns.forEach((column) => {\n column.frozen = column.frozen && canSticky;\n this.setColumnSettings(column);\n if (!column.tableHidden) {\n if (column.frozen) {\n frozenColumns.push(column);\n } else {\n scrollableColumns.push(column);\n }\n column.index = columnIndex++;\n }\n });\n return [...frozenColumns, ...scrollableColumns];\n }\n\n private setColumnSettings(column: Column) {\n if (this.settings.sortable === false) {\n column.sortable = false;\n }\n if (this.settings.filter === false) {\n column.filter = false;\n }\n // hide if column is grouped\n if (this.settings.groupRowsBy && this.settings.groupRowsBy.length) {\n if (this.settings.groupRowsBy.indexOf(column.name) >= 0) {\n column.tableHidden = true;\n }\n }\n }\n\n}\n","import { ColumnBase } from './column-base';\r\nimport { isBlank, getDeepValue, getDateValue, formatDBTZDateToLocalDate, getPOLQAValue } from '../../common/utils';\r\nimport { DataType } from './types';\r\nimport { SelectItem } from '../../common';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\n\r\nexport class Column extends ColumnBase {\r\n\r\n index: number;\r\n filterValuesTemp: SelectItem[] = [];\r\n left: number;\r\n\r\n get containsDots(): boolean {\r\n return (this.name.indexOf('.') >= 0);\r\n }\r\n\r\n get isDateType(): boolean {\r\n return (this.type === 'date' || this.type === 'datetime-local' || this.type === 'month');\r\n }\r\n\r\n dbTz = -500;\r\n db_BrDiff = -500;\r\n mainFilterTZ = 0;\r\n constructor(init: Partial, DB_TZ?: number, DB_BRDiff?: number, mainFilterTZ?: number) {//, private commonFilterService: CommonFilterService\r\n super();\r\n this.dbTz = DB_TZ;\r\n //console.log(DB_TZ)\r\n this.db_BrDiff = DB_BRDiff;\r\n //console.log(DB_BRDiff)\r\n this.mainFilterTZ = mainFilterTZ;\r\n //console.log(MainFilterID)\r\n Object.assign(this, init);\r\n this.setDefaults();\r\n }\r\n\r\n private setDefaults() {\r\n if (!this.width) {\r\n this.width = 108; //column width default settings - IMP\r\n ////GetMapColumAllia IMP to give spaces between units and headers\r\n if (this.title !== undefined) {\r\n // //this.width = this.title.length * 4;\r\n // //if (this.title.length <= 10 && this.title.indexOf(' ') === -1)\r\n // // this.width = this.title.length * 9;\r\n //console.log(this.title)\r\n if (this.title === 'Event ID' || this.title === 'Call Event Condition')\r\n this.width = 300;\r\n else if (this.title === 'Called Number')\r\n this.width = 180;\r\n else if (this.title === 'Call ID' || this.title === 'Device ID' || this.title === 'PHONEINFO IMEI' || this.title === 'Call Control Event')\r\n this.width = 180;//120;\r\n else if (this.title.indexOf('Timestamp') !== -1 || this.title === 'Latitude' || this.title === 'Longitude' || this.title === 'Degraded Filename'\r\n || this.title === 'Dropout')\r\n this.width = 70;\r\n else if (this.title === 'EModel (R-factor)')\r\n this.width = 60;\r\n // else {\r\n ////https://stackoverflow.com/questions/49432789/angular-translate-using-replace-in-an-interpolation-string-in-html \r\n //this.title = this.title.replace(/\\s/g, '
'); // Giving breaks similar to webviewer old - IMP\r\n //this.title = this.title.replace('Call
Type', 'Call Type');\r\n //this.title = this.title.replace('
-
', ' - ');\r\n // }\r\n // //this.title = this.title.replace('VQuad', 'VQuad');\r\n }\r\n }\r\n if (this.width < this.minWidth) {\r\n this.width = 108;//this.minWidth;\r\n }\r\n if (this.width > this.maxWidth) {\r\n this.width = this.maxWidth;\r\n }\r\n //this.width += 5;//extra gap for filter and sort icons - IMP\r\n\r\n if (!this.type) {\r\n if (this.options) {\r\n this.type = 'select';\r\n } else {\r\n this.type = 'text';\r\n }\r\n }\r\n if (!this.dataType) {\r\n if (this.isDateType) {\r\n this.dataType = DataType.Date;\r\n } else if (this.type === 'number') {\r\n this.dataType = DataType.Number;\r\n this.width = 60;\r\n if (this.title === 'Psophometric Noise (dBm)' || this.title === 'C-Message Noise (dBm)' || this.title.indexOf('Retransmit') !== -1 || this.title.indexOf('Downstream') !== -1)\r\n this.width = 80;\r\n }\r\n }\r\n }\r\n\r\n getOptions(dependsValue?: any): SelectItem[] {\r\n if (this.options) {\r\n if (this.dependsColumn && dependsValue) {\r\n return this.options.filter((value) => value.parentId === dependsValue);\r\n } else {\r\n return this.options;\r\n }\r\n }\r\n }\r\n\r\n getOptionName(value: any, dependsValue?: any) {\r\n const options = this.getOptions(dependsValue);\r\n if (!options || isBlank(value)) {\r\n return value;\r\n }\r\n const el = options.find(o => o.id.toString() === value.toString());\r\n return (el) ? el.name : null;\r\n }\r\n\r\n validate(value: any): string[] {\r\n if (this.validatorFunc && this.editable) {\r\n return this.validatorFunc(this.title, value);\r\n }\r\n return [];\r\n }\r\n\r\n setWidth(width: number) {\r\n if (width <= this.minWidth) {\r\n width = this.minWidth;\r\n } else if (width >= this.maxWidth) {\r\n width = this.maxWidth;\r\n }\r\n this.width = width;\r\n }\r\n\r\n getValue(row: any) {\r\n //console.log(row[this.name] + this.containsDots + this.name)\r\n if (!row) {\r\n return '';\r\n }\r\n if (this.containsDots) {\r\n return getDeepValue(row, this.name);\r\n } else {\r\n if (this.name.indexOf(\"_Timestamp\") != -1 || this.name.indexOf(\"_TimeStamp\") != -1) {\r\n //console.log(this.dbTz)\r\n\r\n ////let dbTz1 = -500;\r\n ////this.commonFilterService.DB_TZ.subscribe(res => {\r\n //// //dbTz1 = res;\r\n //// console.log(res)\r\n ////});\r\n return formatDBTZDateToLocalDate(getDateValue(row, this.name), this.dbTz, this.db_BrDiff, this.mainFilterTZ);\r\n }\r\n else if (this.name == \"POLQA_Score\" || this.name == \"POLQA_v3\") {\r\n return getPOLQAValue(row, this.name);\r\n }\r\n return row[this.name];\r\n }\r\n }\r\n\r\n getValueView(row: any) {\r\n let value = this.getValue(row);\r\n const dependsValue = row[this.dependsColumn] ? row[this.dependsColumn] : null;\r\n if (value) {\r\n value = this.getOptionName(value, dependsValue);\r\n }\r\n if (this.pipe) {\r\n value = this.pipe.transform(value);\r\n }\r\n return value;\r\n }\r\n\r\n getFilterValues(): Promise {\r\n if (this.filterValues && typeof this.filterValues === 'function') {\r\n return this.filterValues(this.name);\r\n } else if (this.filterValues && this.filterValues instanceof Array) {\r\n return Promise.resolve(this.filterValues);\r\n } else if (this.options) {\r\n return Promise.resolve(this.options);\r\n }\r\n return Promise.resolve([]);\r\n }\r\n\r\n}\r\n","import {isBlank} from '../../common/utils';\nimport {AggregateType, AggregateMeta, GroupMetadata} from './types';\n\nexport class DataAggregation {\n\n aggregates: AggregateMeta[] = [];\n\n get enabled(): boolean {\n return this.aggregates && this.aggregates.length > 0;\n }\n\n groupStringValues(item: any, keys: any[]): string {\n return keys.map(x => item[x]).join(', ');\n }\n\n groupBy(array: any[], keys: any[]) {\n const groups = {};\n array.forEach(row => {\n const group = this.groupStringValues(row, keys);\n groups[group] = groups[group] || [];\n groups[group].push(row);\n });\n return groups;\n }\n\n groupMetaData(array: any[], keys: any[]): GroupMetadata {\n const groupMetadata: GroupMetadata = {};\n if (array) {\n for (let i = 0; i < array.length; i++) {\n const row = array[i];\n const group = this.groupStringValues(row, keys);\n if (i === 0) {\n groupMetadata[group] = {index: 0, size: 1};\n groupMetadata[group].aggRow = this.summaryIterator(groupMetadata[group].aggRow, row);\n } else {\n const previousRow = array[i - 1];\n const previousRowGroup = this.groupStringValues(previousRow, keys);\n if (group === previousRowGroup) {\n groupMetadata[group].size++;\n groupMetadata[group].aggRow = this.summaryIterator(groupMetadata[group].aggRow, row);\n } else {\n groupMetadata[group] = {index: i, size: 1};\n groupMetadata[group].aggRow = this.summaryIterator(groupMetadata[group].aggRow, row);\n }\n }\n }\n Object.keys(groupMetadata).forEach(key => {\n groupMetadata[key].aggRow = this.average(groupMetadata[key].aggRow, groupMetadata[key].size);\n });\n }\n return groupMetadata;\n }\n\n private summaryIterator(aggRow: any, currentRow: any) {\n aggRow = aggRow || {};\n if (this.enabled) {\n for (const agg of this.aggregates) {\n const previousValue = aggRow[agg.field] || null;\n aggRow[agg.field] = this.aggregate(previousValue, currentRow[agg.field], agg.type);\n }\n }\n return aggRow;\n }\n\n private aggregate(previousValue: any, currentValue: any, aggregateType: AggregateType) {\n if (aggregateType === 'sum' || aggregateType === 'average') {\n return parseFloat(previousValue || 0) + parseFloat(currentValue || 0);\n } else if (aggregateType === 'max') {\n return (parseFloat(previousValue || 0) < parseFloat(currentValue)) ? currentValue : previousValue;\n } else if (aggregateType === 'min') {\n if (previousValue === null) {\n return currentValue;\n }\n return (parseFloat(previousValue) > parseFloat(currentValue)) ? currentValue : previousValue;\n } else if (aggregateType === 'count') {\n return previousValue + (isBlank(currentValue) ? 0 : 1);\n }\n }\n\n private average(aggRow: any, count: number) {\n if (this.enabled) {\n this.aggregates.filter(x => x.type === 'average').forEach(agg => {\n aggRow[agg.field] = +(aggRow[agg.field] / count).toFixed(5);\n });\n }\n return aggRow;\n }\n\n grandTotal(array: any[]) {\n let total = {};\n if (array && this.enabled) {\n array.forEach((row, i) => {\n for (const agg of this.aggregates) {\n total[agg.field] = this.aggregate((i === 0) ? null : total[agg.field], row[agg.field], agg.type);\n }\n });\n total = this.average(total, array.length);\n }\n return total;\n }\n\n}\n","import { FilterMeta, FilterMetadata, DataType } from './types';\r\nimport { isBlank, isNumeric, LastDateType, formatDate } from '../../common/utils';\r\n//import { filter } from 'minimatch';\r\nimport { GeneralFilter } from 'src/app/shared/models/Common/common-filter';\r\nimport { rsltTypeInAPICall } from 'src/app/shared/functions/title';\r\n//import { RatingOperator } from 'src/app/shared/models/MAINFILTER';\r\n\r\nexport enum FilterOperator {\r\n EQUALS = 'equals', // ==\r\n NOT_EQUAL = 'notEqual', // !=\r\n LESS_THAN = 'lessThan', // <\r\n LESS_THAN_OR_EQUAL = 'lessThanOrEqual', // <=\r\n GREATER_THAN = 'greaterThan', // >\r\n GREATER_THAN_OR_EQUAL = 'greaterThanOrEqual', // >=\r\n IN_RANGE = 'inRange', // 3-7\r\n IN = 'in', // in\r\n CONTAINS = 'contains', // like lower(%val%);\r\n NOT_CONTAINS = 'notContains', // not like lower(%val%);\r\n STARTS_WITH = 'startsWith', // like val%;\r\n ENDS_WITH = 'endsWith', // like %val;\r\n IS_EMPTY = 'isEmpty', // is null\r\n IS_NOT_EMPTY = 'isNotEmpty', // is not null\r\n}\r\n\r\nexport class DataFilter {\r\n\r\n filters: FilterMetadata = {} as FilterMetadata;\r\n globalFilterValue: string = null;\r\n\r\n //IMP to filter rows in a page's data\r\n filterRows(data: any[], rsltType?: string) {\r\n const filters = this.filters;\r\n let filteredRows: any[] = data;\r\n //console.log(filteredRows);\r\n for (const key in filters) {\r\n //debugger\r\n //console.log(filters[key]);\r\n if (filters[key]) {\r\n if (this.filters[key].rsltType.indexOf('|') != -1) {//multiple rslt types having same column\r\n let rsltTypesArr = this.filters[key].rsltType.split('|');\r\n let boolRsltCheck = false;\r\n rsltTypesArr.forEach(function (value) {\r\n //if (key != \"VQuad_Timestamp\" && rsltTypeInAPICall(value) == rsltType) {\r\n if (rsltTypeInAPICall(value) == rsltType) {\r\n boolRsltCheck = true;\r\n return false;\r\n }\r\n });\r\n //console.log(boolRsltCheck)\r\n if (boolRsltCheck) {\r\n filteredRows = filteredRows.filter((row: any) => {\r\n return (key in row) ? this.compare(row[key], filters[key]) : false;\r\n });\r\n }\r\n }\r\n else {\r\n if (this.filters[key].rsltType == \"\" || rsltTypeInAPICall(this.filters[key].rsltType) == rsltType) {\r\n filteredRows = filteredRows.filter((row: any) => {\r\n return (key in row) ? this.compare(row[key], filters[key]) : false;\r\n });\r\n }\r\n }\r\n }\r\n }\r\n filteredRows = this.globalFilterRows(filteredRows);//Global filter function - IMP\r\n return filteredRows;\r\n }\r\n filteringDates() {\r\n let arr = [];\r\n const filters = this.filters;\r\n //debugger;\r\n\r\n for (const key in filters) {\r\n if (filters[key].type === DataType.Date) {\r\n return this.dates(filters[key]);\r\n }\r\n }\r\n return arr;\r\n }\r\n filteringDatesArr(dates) {\r\n let arr = [];\r\n //arr.push(dates);\r\n //arr.push(6);\r\n return arr;\r\n }\r\n\r\n globalFilterRows(data: any[]) {\r\n if (this.globalFilterValue) {\r\n return data.filter(item => Object.keys(item).map((key) => {\r\n return this.startsWith(item[key], this.globalFilterValue);\r\n }).includes(true));\r\n } else {\r\n return data;\r\n }\r\n }\r\n\r\n private dates(filter: FilterMeta) {\r\n //debugger;\r\n let arr = [];\r\n let filterValue;\r\n let filterValueTo;\r\n if (!isBlank(filter.value)) {\r\n filterValue = filter.value;//new Date(filter.value).setSeconds(0, 0);\r\n if (filterValue.indexOf('T') != -1)\r\n filterValue = formatDate(new Date(filterValue));\r\n }\r\n if (!isBlank(filter.valueTo)) {\r\n filterValueTo = filter.valueTo;//new Date(filter.valueTo).setSeconds(0, 0);\r\n if (filterValueTo.indexOf('T') != -1)\r\n filterValueTo = formatDate(new Date(filterValueTo));\r\n }\r\n switch (filter.matchMode) {\r\n case FilterOperator.EQUALS:\r\n arr = [];\r\n arr.push(filterValue + \"^\");\r\n arr.push(0);\r\n break;\r\n case FilterOperator.NOT_EQUAL:\r\n arr = [];\r\n arr.push(filterValue + \"^\");\r\n arr.push(1);\r\n break;\r\n case FilterOperator.IN_RANGE:\r\n arr = [];\r\n arr.push(filterValue + \"^\" + filterValueTo);\r\n arr.push(6);\r\n break;\r\n case FilterOperator.LESS_THAN:\r\n arr = [];\r\n arr.push(\"^\" + filterValueTo);\r\n arr.push(2);\r\n break;\r\n case FilterOperator.LESS_THAN_OR_EQUAL:\r\n arr = [];\r\n arr.push(\"^\" + filterValueTo);\r\n arr.push(3);\r\n break;\r\n case FilterOperator.GREATER_THAN:\r\n arr = [];\r\n arr.push(filterValue + \"^\");\r\n arr.push(4);\r\n break;\r\n case FilterOperator.GREATER_THAN_OR_EQUAL:\r\n arr = [];\r\n arr.push(filterValue + \"^\");\r\n arr.push(5);\r\n break;\r\n case FilterOperator.IS_EMPTY:\r\n arr = [];\r\n arr.push(\"\");\r\n arr.push(12);\r\n break;\r\n case FilterOperator.IS_NOT_EMPTY:\r\n arr = [];\r\n arr.push(\"\");\r\n arr.push(13);\r\n break;\r\n default:\r\n arr = [];\r\n arr.push(filterValue + \"^\");\r\n arr.push(0);\r\n break;\r\n }\r\n return arr;\r\n }\r\n \r\n //returns true or false\r\n private compare(value: any, filter: FilterMeta) {\r\n if (filter.type === DataType.Date) {\r\n //debugger;\r\n let filterValue;\r\n let filterValueTo;\r\n if (!isBlank(value)) {\r\n value = new Date(value);//.setSeconds(0, 0);\r\n }\r\n if (!isBlank(filter.value)) {\r\n filterValue = new Date(filter.value);//.setSeconds(0, 0);\r\n }\r\n if (!isBlank(filter.valueTo)) {\r\n filterValueTo = new Date(filter.valueTo);//.setSeconds(0, 0);\r\n }\r\n switch (filter.matchMode) {\r\n case FilterOperator.EQUALS:\r\n return this.dateEquals(value, filterValue);\r\n case FilterOperator.NOT_EQUAL:\r\n return !this.equals(value, filterValue);\r\n case FilterOperator.IN_RANGE:\r\n return this.inRange(value, filterValue, filterValueTo);\r\n case FilterOperator.LESS_THAN:\r\n return this.lessThan(value, filterValue);\r\n case FilterOperator.LESS_THAN_OR_EQUAL:\r\n return this.lessThanOrEqual(value, filterValue);\r\n case FilterOperator.GREATER_THAN:\r\n return this.greaterThan(value, filterValue);\r\n case FilterOperator.GREATER_THAN_OR_EQUAL:\r\n return this.greaterThanOrEqual(value, filterValue);\r\n case FilterOperator.IS_EMPTY:\r\n return isBlank(value);\r\n case FilterOperator.IS_NOT_EMPTY:\r\n return !isBlank(value);\r\n default:\r\n return this.dateEquals(value, filterValue);\r\n }\r\n } else {\r\n switch (filter.matchMode) {\r\n case FilterOperator.EQUALS:\r\n return this.equals(value, filter.value);\r\n case FilterOperator.NOT_EQUAL:\r\n return !this.equals(value, filter.value);\r\n case FilterOperator.IN_RANGE:\r\n return this.inRange(value, filter.value, filter.valueTo);\r\n case FilterOperator.IN:\r\n return this.in(value, filter.value);\r\n case FilterOperator.CONTAINS:\r\n return this.contains(value, filter.value);\r\n case FilterOperator.NOT_CONTAINS:\r\n return !this.contains(value, filter.value);\r\n case FilterOperator.STARTS_WITH:\r\n return this.startsWith(value, filter.value);\r\n case FilterOperator.ENDS_WITH:\r\n return this.endsWith(value, filter.value);\r\n case FilterOperator.LESS_THAN:\r\n return this.lessThan(value, filter.value);\r\n case FilterOperator.LESS_THAN_OR_EQUAL:\r\n return this.lessThanOrEqual(value, filter.value);\r\n case FilterOperator.GREATER_THAN:\r\n return this.greaterThan(value, filter.value);\r\n case FilterOperator.GREATER_THAN_OR_EQUAL:\r\n return this.greaterThanOrEqual(value, filter.value);\r\n case FilterOperator.IS_EMPTY:\r\n return isBlank(value);\r\n case FilterOperator.IS_NOT_EMPTY:\r\n return !isBlank(value);\r\n default:\r\n return this.equals(value, filter.value);\r\n }\r\n }\r\n }\r\n\r\n private equals(value, filter): boolean {\r\n if (isBlank(filter)) {\r\n return true;\r\n }\r\n if (isBlank(value)) {\r\n return false;\r\n }\r\n return value.toString().toLowerCase() === filter.toString().toLowerCase();\r\n }\r\n\r\n private in(value, filter: any[]): boolean {\r\n if (isBlank(filter)) {\r\n return true;\r\n }\r\n if (isBlank(value)) {\r\n return false;\r\n }\r\n if (!Array.isArray(filter)) {\r\n return value === filter;\r\n }\r\n return filter.some(x => x === value);\r\n }\r\n\r\n private startsWith(value, filter): boolean {\r\n if (isBlank(filter)) {\r\n return true;\r\n }\r\n if (isBlank(value)) {\r\n return false;\r\n }\r\n const filterValue = filter.toLowerCase();\r\n return value.toString().toLowerCase().slice(0, filterValue.length) === filterValue;\r\n }\r\n\r\n private endsWith(value, filter): boolean {\r\n if (isBlank(filter)) {\r\n return true;\r\n }\r\n if (isBlank(value)) {\r\n return false;\r\n }\r\n const filterValue = filter.toString().toLowerCase();\r\n return value.toString().toLowerCase().indexOf(filterValue, value.toString().length - filterValue.length) !== -1;\r\n }\r\n\r\n private contains(value, filter): boolean {\r\n if (isBlank(filter)) {\r\n return true;\r\n }\r\n if (isBlank(value)) {\r\n return false;\r\n }\r\n return value.toString().toLowerCase().indexOf(filter.toLowerCase()) !== -1;\r\n }\r\n\r\n private lessThan(value, filter): boolean {\r\n if (isBlank(filter)) {\r\n return true;\r\n }\r\n if (isBlank(value)) {\r\n return false;\r\n }\r\n return value < filter;\r\n }\r\n\r\n private lessThanOrEqual(value, filter): boolean {\r\n if (isBlank(filter)) {\r\n return true;\r\n }\r\n if (isBlank(value)) {\r\n return false;\r\n }\r\n return value <= filter;\r\n }\r\n\r\n private greaterThan(value, filter): boolean {\r\n if (isBlank(filter)) {\r\n return true;\r\n }\r\n if (isBlank(value)) {\r\n return false;\r\n }\r\n return value > filter;\r\n }\r\n\r\n private greaterThanOrEqual(value, filter): boolean {\r\n if (isBlank(filter)) {\r\n return true;\r\n }\r\n if (isBlank(value)) {\r\n return false;\r\n }\r\n return value >= filter;\r\n }\r\n\r\n private inRange(value, from, to): boolean {\r\n if (isBlank(from)) {\r\n //return this.lessThan(value, to);\r\n return this.lessThanOrEqual(value, to);\r\n }\r\n if (isBlank(to)) {\r\n //return this.greaterThan(value, from);\r\n return this.greaterThanOrEqual(value, from);\r\n }\r\n if (isBlank(value)) {\r\n return false;\r\n }\r\n //return value > from && value < to;\r\n return value >= from && value <= to;\r\n }\r\n\r\n private dateEquals(value, filter): boolean {\r\n if (isBlank(filter)) {\r\n return true;\r\n }\r\n if (isBlank(value)) {\r\n return false;\r\n }\r\n const dt1 = new Date(value);//.setSeconds(0, 0);\r\n const dt2 = new Date(filter);//.setSeconds(0, 0);\r\n return dt1 === dt2;\r\n }\r\n\r\n clear() {\r\n this.filters = {} as FilterMetadata;\r\n this.globalFilterValue = null;\r\n }\r\n\r\n hasFilter(columnName: string): boolean {\r\n return !isBlank(this.filters[columnName]);\r\n }\r\n\r\n hasFilters(): boolean {\r\n //return !(Object.keys(this.filters).length === 0 && this.filters.constructor === Object) || !isBlank(this.globalFilterValue);\r\n //console.log(Object.keys(this.filters).length)\r\n return !(Object.keys(this.filters).length <= 1 && this.filters.constructor === Object) || !isBlank(this.globalFilterValue);//ignore default timestamp col making length == 1\r\n }\r\n\r\n //IMP in filtering ind column\r\n setFilter(value: any, field: string, matchMode: string, valueTo?: any, dataType?: DataType, rsltType?: string, title?: string) {\r\n if (!isBlank(value) || !isBlank(valueTo)) {\r\n value = this.toNumberIfNumeric(value, dataType);\r\n valueTo = this.toNumberIfNumeric(valueTo, dataType);\r\n this.filters[field] = { value, matchMode, valueTo, type: dataType, rsltType, title };\r\n } else if (this.filters[field]) {\r\n delete this.filters[field];\r\n }\r\n }\r\n\r\n private toNumberIfNumeric(value: any, dataType?: DataType) {\r\n if (!isBlank(value) && dataType === DataType.Number && isNumeric(value)) {\r\n value = parseFloat(value);\r\n }\r\n return value;\r\n }\r\n\r\n getFilterValue(columnName: string) {\r\n //console.log(this.filters[columnName])\r\n return this.filters[columnName] ? this.filters[columnName].value : null;\r\n }\r\n\r\n getFilterValueTo(columnName: string) {\r\n return this.filters[columnName] ? this.filters[columnName].valueTo : null;\r\n }\r\n\r\n getFilterMatchMode(columnName: string) {\r\n return this.filters[columnName] ? this.filters[columnName].matchMode : null;\r\n }\r\n\r\n isNonValueFilter(matchMode: string) {\r\n return (matchMode === FilterOperator.IS_EMPTY || matchMode === FilterOperator.IS_NOT_EMPTY);\r\n }\r\n\r\n getProcessedFiltersArray(rsltType: string) {\r\n const filters = this.filters;\r\n let filtersArray: Array = [];\r\n for (const key in filters) {\r\n if (filters[key]) {\r\n if (filters[key].rsltType.indexOf('|') != -1) {\r\n let rsltTypesArr = filters[key].rsltType.split('|');\r\n let boolRsltCheck = false;\r\n rsltTypesArr.forEach(function (value) {\r\n //if (key != \"VQuad_Timestamp\" && rsltTypeInAPICall(value) == rsltType) {\r\n if (rsltTypeInAPICall(value) == rsltType || rsltType == \"ALL\") {\r\n boolRsltCheck = true;\r\n return false;\r\n }\r\n });\r\n //console.log(boolRsltCheck)\r\n if (boolRsltCheck)\r\n filtersArray.push({ ColumnName: key, Operator: (this.getOperatorType(filters[key].matchMode))[0], Value: filters[key].value, ValueTo: filters[key].valueTo, LoggedInUserName: null, RsltType: filters[key].rsltType});\r\n }\r\n else {\r\n //if (key != \"VQuad_Timestamp\" && (filters[key].rsltType == \"\" || rsltTypeInAPICall(filters[key].rsltType) == rsltType)) {\r\n if (filters[key].rsltType == \"\" || rsltTypeInAPICall(filters[key].rsltType) == rsltType || rsltType == \"ALL\") {\r\n let newValue = filters[key].value;\r\n let newValueTo = filters[key].valueTo;\r\n if (key == \"ASR_Ref\" || key == \"ASR_Deg\") {\r\n newValue = parseFloat(newValue) / 100;\r\n if (newValueTo != null)\r\n newValueTo = parseInt(newValueTo) / 100;\r\n }\r\n filtersArray.push({ ColumnName: key, Operator: (this.getOperatorType(filters[key].matchMode))[0], Value: newValue, ValueTo: newValueTo, LoggedInUserName: null, RsltType: filters[key].rsltType })\r\n }\r\n }\r\n }\r\n }\r\n //console.log(filtersArray)\r\n return filtersArray;\r\n }\r\n getProcessedFilters(rsltType: string) {\r\n const filters: FilterMetadata = {} as FilterMetadata;\r\n //console.log(this.filters)\r\n for (const key in this.filters) {\r\n if (this.filters[key]) {\r\n if (this.filters[key].rsltType.indexOf('|') != -1) {//multiple rslt types having same column\r\n let rsltTypesArr = this.filters[key].rsltType.split('|');\r\n let boolRsltCheck = false;\r\n rsltTypesArr.forEach(function (value) {\r\n //if (key != \"VQuad_Timestamp\" && rsltTypeInAPICall(value) == rsltType) {\r\n if (rsltTypeInAPICall(value) == rsltType) {\r\n boolRsltCheck = true;\r\n return false;\r\n }\r\n });\r\n //console.log(boolRsltCheck)\r\n if (boolRsltCheck) {\r\n let value = this.filters[key].value;\r\n let matchMode = this.filters[key].matchMode;\r\n let valueTo = this.filters[key].valueTo;\r\n let type = this.filters[key].type;\r\n let rsltType = this.filters[key].rsltType;\r\n let title = this.filters[key].title;\r\n filters[key] = { value, matchMode, valueTo, type, rsltType, title };\r\n }\r\n }\r\n else {\r\n //if (key != \"VQuad_Timestamp\" && (filters[key].rsltType == \"\" || rsltTypeInAPICall(filters[key].rsltType) == rsltType)) {\r\n if (this.filters[key].rsltType == \"\" || rsltTypeInAPICall(this.filters[key].rsltType) == rsltType) {\r\n let value = this.filters[key].value;\r\n let matchMode = this.filters[key].matchMode;\r\n let valueTo = this.filters[key].valueTo;\r\n let type = this.filters[key].type;\r\n let rsltType = this.filters[key].rsltType;\r\n let title = this.filters[key].title;\r\n filters[key] = { value, matchMode, valueTo, type, rsltType, title };\r\n }\r\n }\r\n }\r\n }\r\n //console.log(filters)\r\n return filters;\r\n }\r\n replOldTSFilterWithNew() {\r\n for (const field in this.filters) {\r\n if (field.toLowerCase().indexOf('_timestamp') != -1) {\r\n delete this.filters[field];\r\n break;\r\n }\r\n }\r\n }\r\n getOperatorType(matchMode) {//(filter: FilterMeta) {\r\n let arr = [];\r\n //switch (filter.matchMode) {\r\n //Object.values(FilterOperator).forEach(x => console.log(x)) - IMP IMP\r\n //Object.keys(FilterOperator).forEach(x => console.log(x))\r\n switch (matchMode) {\r\n case FilterOperator.EQUALS:\r\n arr = [];\r\n arr.push(0)\r\n arr.push(\"Equals\");\r\n break;\r\n //case RatingOperator.NOTUSE:\r\n // arr = [];\r\n // arr.push(0)\r\n // arr.push(\"Not in use\");\r\n // break;\r\n case FilterOperator.NOT_EQUAL:\r\n arr = [];\r\n arr.push(1)\r\n arr.push(\"Not Equals\");\r\n break;\r\n case FilterOperator.LESS_THAN:\r\n arr = [];\r\n arr.push(2)\r\n arr.push(\"Less than\");\r\n break;\r\n case FilterOperator.LESS_THAN_OR_EQUAL:\r\n arr = [];\r\n arr.push(3)\r\n arr.push(\"Less than or equals\");\r\n break;\r\n case FilterOperator.GREATER_THAN:\r\n arr = [];\r\n arr.push(4)\r\n arr.push(\"Greater than\");\r\n break;\r\n case FilterOperator.GREATER_THAN_OR_EQUAL:\r\n arr = [];\r\n arr.push(5)\r\n arr.push(\"Greater than or equals\");\r\n break;\r\n case FilterOperator.IN_RANGE:\r\n arr = [];\r\n arr.push(6)\r\n arr.push(\"In range of\");\r\n break;\r\n case FilterOperator.IN:\r\n arr = [];\r\n arr.push(7)\r\n arr.push(\"In\");\r\n break;\r\n case FilterOperator.CONTAINS:\r\n arr = [];\r\n arr.push(8)\r\n arr.push(\"Contains\");\r\n break;\r\n case FilterOperator.NOT_CONTAINS:\r\n arr = [];\r\n arr.push(9)\r\n arr.push(\"Not contains\");\r\n break;\r\n case FilterOperator.STARTS_WITH:\r\n arr = [];\r\n arr.push(10)\r\n arr.push(\"Starts with\");\r\n break;\r\n case FilterOperator.ENDS_WITH:\r\n arr = [];\r\n arr.push(11)\r\n arr.push(\"Ends with\");\r\n break; \r\n case FilterOperator.IS_EMPTY:\r\n arr = [];\r\n arr.push(12)\r\n arr.push(\"Is empty\");\r\n break;\r\n case FilterOperator.IS_NOT_EMPTY:\r\n arr = [];\r\n arr.push(13)\r\n arr.push(\"Is not empty\");\r\n break;\r\n default:\r\n arr = [];\r\n arr.push(0)\r\n arr.push(\"Equals\");\r\n break;\r\n }\r\n\r\n return arr;\r\n }\r\n}\r\n","import {arrayPaginate} from '../../common/utils';\n\nexport class DataPager {\n\n perPage: number = 200;\n total: number = 0;\n current: number = 1;\n pageSizeOptions: number[] = [20, 50, 100, 200, 300, 500];\n\n perPageOrCurrPageChanged: boolean = false;\n\n pager(data: any[]): any[] {\n return arrayPaginate(data, this.current, this.perPage);\n }\n\n}\n","import {Subject} from 'rxjs';\n\nexport class DataSelection {\n\n get multiple(): boolean {\n return this._multiple;\n }\n\n private selection = new Set();\n\n constructor(private readonly _multiple = false, private readonly selectionSource: Subject) {\n }\n\n selectValue(value: T) {\n if (!this.isSelected(value)) {\n this._markSelected(value);\n this.selectionSource.next();\n }\n }\n\n selectAll(values: T[]): void {\n if (values && values.length) {\n this._unmarkAll();\n this.select(...values);\n }\n }\n\n clearSelection(): void {\n this._unmarkAll();\n this.selectionSource.next();\n }\n\n isSelected(value: T): boolean {\n return this.selection.has(value);\n }\n\n getSelection(): T[] {\n return Array.from(this.selection.values());\n }\n\n allSelected(values: T[]): boolean {\n return(values &&\n this.selection &&\n this.selection.size === values.length &&\n values.length !== 0);\n }\n\n select(...values: T[]): void {\n values.forEach(value => this._markSelected(value));\n this.selectionSource.next();\n }\n\n deselect(...values: T[]): void {\n values.forEach(value => this._unmarkSelected(value));\n this.selectionSource.next();\n }\n\n toggle(value: T): void {\n this.isSelected(value) ? this._unmarkSelected(value) : this._markSelected(value);\n this.selectionSource.next();\n }\n\n isEmpty(): boolean {\n return this.selection.size === 0;\n }\n\n private _markSelected(value: T) {\n if (!this.isSelected(value)) {\n if (!this.multiple) {\n this._unmarkAll();\n }\n this.selection.add(value);\n }\n }\n\n private _unmarkSelected(value: T) {\n if (this.isSelected(value)) {\n this.selection.delete(value);\n }\n }\n\n private _unmarkAll() {\n if (!this.isEmpty()) {\n this.selection.forEach(value => this._unmarkSelected(value));\n }\n }\n\n}\n","import {SortMetadata} from './types';\n\nexport class DataSort {\n\n //Get or Set Sort Info - IMP\n sortMeta: SortMetadata[] = [];\n\n //Multiple columns sorting - IMP\n constructor(public multiple: boolean = false) {\n }\n\n setOrder(columnName: string, columnTitle?: string) {\n //console.log(columnName)\n const index = this.sortMeta.findIndex(x => x.field === columnName);\n if (index === -1) {\n if (!this.multiple) {\n this.sortMeta = [];\n }\n this.sortMeta.push({ field: columnName, title: columnTitle, order: 1});\n } else if (this.sortMeta[index].order === 1) {\n this.sortMeta[index].order = -1;\n } else if (this.sortMeta[index].order === -1) {\n this.sortMeta.splice(index, 1);\n }\n }\n\n set(columnNames: string[], columnTitles: string[]): void {\n columnNames.forEach(columnName => {\n const index = this.sortMeta.findIndex(x => x.field === columnName);\n if (index === -1) {\n if (!this.multiple) {\n this.sortMeta = [];\n }\n this.sortMeta.push({ field: columnName, title: columnTitles[0], order: 1});\n }\n });\n }\n\n getOrder(columnName: string) {\n const meta = this.sortMeta.find(x => x.field === columnName);\n return (meta) ? meta.order : 0;\n }\n\n sortRows(data: any[]): any[] {\n if (!data) {\n return [];\n }\n if (!this.sortMeta || !this.sortMeta.length) {\n return data;\n }\n return data.sort((previous, current) => {\n return this.multiSort(previous, current, this.sortMeta, 0);\n });\n }\n\n private multiSort(previous: any, current: any, meta: SortMetadata[], index: number) {\n const value1 = previous[meta[index].field];\n const value2 = current[meta[index].field];\n const result = (value1 < value2) ? -1 : 1;\n\n if (value1 === value2) {\n return (meta.length - 1) > (index) ? (this.multiSort(previous, current, meta, index + 1)) : 0;\n }\n\n return (meta[index].order * result);\n }\n\n clear() {\n this.sortMeta = [];\n }\n\n}\n","import {CellEventArgs} from './types';\r\nimport {ColumnBase} from './column-base';\r\nimport {Column} from './column';\r\nimport {Settings} from './settings';\r\nimport {DataPager} from './data-pager';\r\nimport {DataSort} from './data-sort';\r\nimport {DataFilter} from './data-filter';\r\nimport {Events} from './events';\r\nimport {DataSelection} from './data-selection';\r\nimport {Dimensions} from './dimensions';\r\nimport {DtMessages, DtMessagesEn} from '../../dt-translate';\r\nimport {RowGroup} from './row-group';\r\nimport {RowModelGenerator} from './row-model-generator';\r\nimport {ColumnModelGenerator} from './column-model-generator';\r\nimport { LocalDataSource } from './local-data-source';\r\nimport {Row} from './row';\r\nimport { HeaderDataSource } from 'lib/ng-crud-table/base/types';\r\nimport { SelectItem } from 'lib/common';\r\n\r\nexport class DataTable {\r\n\r\n readonly settings: Settings;\r\n readonly DB_TZ: number;\r\n readonly DB_BRDiff: number;\r\n readonly MainFilterTZ: number;\r\n readonly messages: DtMessages;\r\n readonly pager: DataPager;\r\n readonly sorter: DataSort;\r\n readonly dataFilter: DataFilter;\r\n readonly events: Events;\r\n readonly selection: DataSelection;\r\n readonly dimensions: Dimensions;\r\n readonly rowGroup: RowGroup;\r\n readonly localDataSource: LocalDataSource;\r\n readonly rowModelGenerator: RowModelGenerator;\r\n readonly columnModelGenerator: ColumnModelGenerator;\r\n readonly columns: Column[] = [];\r\n preparedColumns: Column[] = [];\r\n clientSide: boolean = true;\r\n readonly rsltType: string;\r\n readonly headerDemoService: HeaderDataSource;\r\n readonly selectedColumns: SelectItem[] = [];\r\n readonly requestID: string;\r\n\r\n get rows(): any[] { return this._rows; }\r\n set rows(val: any[]) {\r\n val = this.rowModelGenerator.generateRows(val);\r\n if (this.clientSide) {\r\n this.localDataSource.setRows(val);\r\n this.setSortMetaGroup();\r\n this._rows = this.localDataSource.getRows();\r\n } else {\r\n this._rows = val;\r\n }\r\n this.rowGroup.updateRowGroupMetadata(this._rows);\r\n this.rowModelGenerator.setRowIndexes(this._rows);\r\n //console.log(val)\r\n\r\n this.events.onRowsChanged();\r\n }\r\n private _rows: Row[] = [];\r\n\r\n\r\n get rowsRest(): any[] { return this._rowsRest; }\r\n set rowsRest(val: any[]) {\r\n val = this.rowModelGenerator.generateRows(val);\r\n if (this.clientSide) {\r\n this.localDataSource.setRows(val);\r\n this.setSortMetaGroup();\r\n this._rowsRest = this.localDataSource.getRows();\r\n } else {\r\n this._rowsRest = val;\r\n }\r\n //this.rowGroup.updateRowGroupMetadata(this._rowsRest);\r\n this.rowModelGenerator.setRowIndexesRest(this._rowsRest);\r\n //console.log(val)\r\n\r\n this.events.onRowsChanged();\r\n }\r\n private _rowsRest: Row[] = [];\r\n\r\n //refreshed: boolean;\r\n\r\n constructor(columns: ColumnBase[], settings: Settings, messages?: DtMessages, DB_TZ?: number, DB_BRDiff?: number, MainFilterTZ?: number, selectedColumns?: SelectItem[], rsltType?: string, requestID?: string, dataSource?: HeaderDataSource) {\r\n this.settings = new Settings(settings);\r\n this.DB_TZ = DB_TZ;\r\n this.DB_BRDiff = DB_BRDiff;\r\n this.MainFilterTZ = MainFilterTZ;\r\n this.dataFilter = new DataFilter();\r\n this.columnModelGenerator = new ColumnModelGenerator(this.settings, DB_TZ, DB_BRDiff, MainFilterTZ);\r\n this.columns = this.columnModelGenerator.createColumns(columns);\r\n //console.log(this.columns)\r\n this.initColumns();\r\n this.events = new Events();\r\n this.pager = new DataPager();\r\n this.sorter = new DataSort(this.settings.multipleSort);\r\n this.selection = new DataSelection(this.settings.selectionMultiple, this.events.selectionSource);\r\n this.dimensions = new Dimensions(this.settings, this.columns);\r\n this.rowGroup = new RowGroup(this.settings.groupRowsBy, this.settings.groupRowsByTitles, this.columns);\r\n this.rsltType = rsltType;\r\n this.requestID = requestID;\r\n this.selectedColumns = selectedColumns;\r\n this.headerDemoService = dataSource;\r\n this.localDataSource = new LocalDataSource(this.dataFilter, this.pager, this.sorter, this.settings, this.rsltType, this.headerDemoService);\r\n this.rowModelGenerator = new RowModelGenerator(this.settings, this.columns);\r\n this.messages = new DtMessagesEn();\r\n if (messages) {\r\n Object.assign(this.messages, messages);\r\n }\r\n }\r\n\r\n initColumns(): void {\r\n this.preparedColumns = this.columnModelGenerator.prepareColumns(this.columns);\r\n }\r\n\r\n selectRow(rowIndex: number) {\r\n if (this.rows && this.rows.length) {\r\n this.selection.selectValue(rowIndex);\r\n } else {\r\n this.selection.clearSelection();\r\n }\r\n }\r\n\r\n addRow(newRow: any) {\r\n newRow = this.rowModelGenerator.generateRow(newRow);\r\n\r\n if (this.clientSide) {\r\n this.localDataSource.post(newRow);\r\n this._rows = this.localDataSource.getRows();\r\n } else {\r\n this._rows.push(newRow);\r\n this.pager.total += 1;\r\n }\r\n this.rowGroup.updateRowGroupMetadata(this._rows);\r\n this.rowModelGenerator.setRowIndexes(this._rows);\r\n this.events.onRowsChanged();\r\n setTimeout(() => {\r\n this.events.onActivateCell({columnIndex: 0, rowIndex: newRow.$$index} as CellEventArgs);\r\n }, 10);\r\n }\r\n\r\n deleteRow(row: Row) {\r\n //console.log(this.rows)\r\n if (this.clientSide) {\r\n this.localDataSource.delete(row);\r\n this._rows = this.localDataSource.getRows();\r\n } else {\r\n const rowIndex = this.rows.findIndex(x => x.$$uid === row.$$uid);\r\n this._rows.splice(rowIndex, 1);\r\n this.pager.total -= 1;\r\n }\r\n this.rowGroup.updateRowGroupMetadata(this._rows);\r\n this.rowModelGenerator.setRowIndexes(this._rows);\r\n this.selection.clearSelection();//susheel\r\n this.events.onRowsChanged();\r\n }\r\n deleteAllRows(row: Row) {\r\n //console.log(this.rows)\r\n if (this.clientSide) {\r\n this.localDataSource.delete(row);\r\n this._rows = this.localDataSource.getRows();\r\n } else {\r\n const rowIndex = this.rows.findIndex(x => x.$$uid === row.$$uid);\r\n this._rows.splice(rowIndex, 1);\r\n this.pager.total -= 1;\r\n }\r\n this.rowGroup.updateRowGroupMetadata(this._rows);\r\n this.rowModelGenerator.setRowIndexes(this._rows);\r\n this.events.onRowsChanged();\r\n }\r\n\r\n mergeRow(oldRow: Row, newRow: any) {\r\n oldRow.merge(newRow);\r\n this.events.onRowsChanged();\r\n }\r\n\r\n editCell(rowIndex: number, columnIndex: number, editMode: boolean) {\r\n this.events.onCellEditMode({columnIndex, rowIndex, editMode} as CellEventArgs);\r\n }\r\n\r\n revertRowChanges(row: Row) {\r\n row.revertChanges(this.columns);\r\n this.events.onRowsChanged();\r\n }\r\n\r\n rowChanged(row: Row): boolean {\r\n return this.columns.some(x => x.getValue(row) !== x.getValue(row.$$data));\r\n }\r\n\r\n getSelection() {\r\n return this.selection.getSelection().map(x => this.rows[x]);\r\n }\r\n\r\n loadLocalRows() {\r\n //this.localDataSource.getServerRows().then(res => {\r\n // this._rows = res;\r\n // this.rowGroup.updateRowGroupMetadata(this._rows);\r\n // this.rowModelGenerator.setRowIndexes(this._rows);\r\n //});\r\n this._rows = this.localDataSource.getRows();\r\n this.rowGroup.updateRowGroupMetadata(this._rows);\r\n this.rowModelGenerator.setRowIndexes(this._rows);\r\n }\r\n\r\n protected setSortMetaGroup() {\r\n if (this.rowGroup.groupEnabled) {\r\n this.sorter.multiple = true;\r\n this.sorter.set(this.rowGroup.groupRowsBy, this.rowGroup.groupRowsByTitles);\r\n }\r\n }\r\n\r\n allRowsSelected(): boolean {\r\n const selectedIndexes = this.rows.map(x => x.$$index);\r\n return this.selection.allSelected(selectedIndexes);\r\n }\r\n\r\n partiallySelected(): boolean {\r\n return !this.selection.isEmpty() && !this.allRowsSelected();\r\n }\r\n\r\n selectAllRows() {\r\n if (this.allRowsSelected()) {\r\n this.selection.clearSelection();\r\n } else {\r\n const selectedIndexes = this.rows.map(x => x.$$index);\r\n this.selection.selectAll(selectedIndexes);\r\n }\r\n }\r\n\r\n selectMultipleRows(selectedIndexes) {\r\n //const selectedIndexes = this.rows.map(x => x.$$index);\r\n this.selection.selectAll(selectedIndexes);\r\n }\r\n\r\n}\r\n","import {Column} from './column';\nimport {Settings} from './settings';\n\nexport class Dimensions {\n \n //Table, row dimensions - IMP\n bodyHeight: number;\n bodyHeightOrig: number;\n columnMenuWidth: number = 220;\n columnsTotalWidth: number;\n headerRowHeight: number;\n rowHeight: number = 50;\n offsetX: number = 0;\n offsetY: number = 0;\n\n constructor(settings: Settings, private readonly columns: Column[]) {\n this.bodyHeight = settings.bodyHeight;\n this.bodyHeightOrig = settings.bodyHeight;\n this.rowHeight = settings.rowHeight;\n this.headerRowHeight = settings.headerRowHeight;\n this.recalcColumns();\n }\n\n calcColumnsTotalWidth() {\n this.columnsTotalWidth = this.columns.filter(x => !x.tableHidden).reduce((acc, cur) => acc + cur.width, 0);\n }\n\n calcColumnsLeftPosition() {\n this.columns.filter(x => x.frozen).reduce((acc, cur) => {\n cur.left = acc;\n return acc + cur.width;\n }, 0);\n }\n\n recalcColumns() {\n this.calcColumnsTotalWidth();\n this.calcColumnsLeftPosition();\n }\n\n}\n","import { CellEventArgs } from './types';\nimport { isBlank, findAncestor } from '../../common/utils';\n\nexport class EventHelper {\n\n static findCellEventTarget(event: any, element: HTMLElement): HTMLElement {\n let target = event.target;\n if (target === null) { return; }\n while (target !== element) {\n if (target.classList.contains('datatable-body-cell') && !target.classList.contains('action-cell')) { //- Check of del button or body cell clicked to select row\n break;\n }\n target = target.parentNode;\n }\n if (target === element) {\n return;\n }\n return target;\n }\n\n static findCellEvent(event: any, element: HTMLElement): CellEventArgs {\n const target = this.findCellEventTarget(event, element);\n if (target) {\n const dataColIndex = target.dataset.columnIndex;\n const dataRowIndex = target.dataset.rowIndex;\n if (!isBlank(dataColIndex) && !isBlank(dataRowIndex)) {\n const columnIndex = parseInt(dataColIndex, 10);\n const rowIndex = parseInt(dataRowIndex, 10);\n return { columnIndex, rowIndex, event, fromCell: target } as CellEventArgs;\n }\n }\n }\n\n static getRowPosition(event: Event, virtualScroll: boolean = false) {\n const rowElement = findAncestor(event.target, '.datatable-body-row');\n let top = rowElement.offsetTop + rowElement.offsetHeight;\n const cell = findAncestor(event.target, '.datatable-body-cell');\n let left = cell ? cell.offsetLeft : 0;\n const datatable = findAncestor(event.target, '.datatable');\n\n if (datatable && datatable.previousSibling && datatable.previousSibling.classList.contains('dt-toolbar')) {\n top += datatable.previousSibling.offsetHeight;\n }\n const header = datatable.querySelector('.datatable-header');\n if (header) {\n top += header.offsetHeight;\n }\n const scroller = findAncestor(event.target, '.dt-scroller');\n const scrollTop = scroller ? scroller.scrollTop : 0;\n const scrollLeft = scroller ? scroller.scrollLeft : 0;\n left -= scrollLeft;\n if (virtualScroll) {\n top -= scrollTop ? 17 : 0;\n } else {\n top -= scrollTop;\n }\n return {left, top};\n }\n\n static getColumnPosition(event: MouseEvent, menuWidth: number, isLast: boolean = false) {\n const colElement = findAncestor(event.target, '.datatable-header-cell');\n const isSticky = colElement.classList.contains('dt-sticky');\n const header = findAncestor(event.target, '.datatable-header');\n const top = header.offsetHeight;\n let left = colElement.offsetLeft;\n\n const datatable = findAncestor(event.target, '.datatable');\n const scroller = datatable.querySelector('.dt-scroller');\n const scrollLeft = scroller ? scroller.scrollLeft : 0;\n if (!isSticky) {\n left -= scrollLeft;\n }\n if ((event.pageX + 1 + menuWidth - document.body.scrollLeft > window.innerWidth) || isLast) {\n left = left + colElement.offsetWidth - menuWidth;\n }\n return {left, top};\n }\n\n}\n","import { Subject, BehaviorSubject } from 'rxjs';\nimport { ColumnMenuEventArgs, CellEventArgs, CellEventType } from './types';\n\nexport class Events {\n\n readonly selectionSource = new Subject();\n private readonly sortSource = new Subject();\n private readonly filterSource = new Subject();\n //private readonly filterClearSource = new Subject();\n private readonly pageSource = new Subject();\n private readonly columnMenuSource = new Subject();\n private readonly resizeBeginSource = new Subject();\n private readonly resizeSource = new Subject();\n private readonly resizeEndSource = new Subject();\n private readonly rowsChanged = new Subject();\n private readonly scrollSource = new Subject();\n private readonly loadingSource = new BehaviorSubject(false);\n private readonly checkboxSource = new Subject();\n private readonly cellSource = new Subject();\n\n readonly sortSource$ = this.sortSource.asObservable();\n readonly filterSource$ = this.filterSource.asObservable();\n //readonly filterClearSource$ = this.filterSource.asObservable();\n readonly selectionSource$ = this.selectionSource.asObservable();\n readonly pageSource$ = this.pageSource.asObservable();\n readonly columnMenuSource$ = this.columnMenuSource.asObservable();\n readonly resizeBeginSource$ = this.resizeBeginSource.asObservable();\n readonly resizeSource$ = this.resizeSource.asObservable();\n readonly resizeEndSource$ = this.resizeEndSource.asObservable();\n readonly rowsChanged$ = this.rowsChanged.asObservable();\n readonly scrollSource$ = this.scrollSource.asObservable();\n readonly loadingSource$ = this.loadingSource.asObservable();\n readonly checkboxSource$ = this.checkboxSource.asObservable();\n readonly cellSource$ = this.cellSource.asObservable();\n\n onSort() {\n this.sortSource.next();\n }\n\n onFilter() {\n this.filterSource.next();\n }\n //onFilterClear() {\n // this.filterClearSource.next();\n //}\n\n onSelectionChange() {\n this.selectionSource.next();\n }\n\n onPage() {\n this.pageSource.next();\n }\n\n onColumnMenuClick(data: ColumnMenuEventArgs) {\n this.columnMenuSource.next(data);\n }\n\n onResizeBegin() {\n this.resizeBeginSource.next();\n }\n\n onResize(data: any) {\n this.resizeSource.next(data);\n }\n\n onResizeEnd() {\n this.resizeEndSource.next();\n }\n\n onRowsChanged() {\n this.rowsChanged.next();\n }\n\n onScroll(data: any) {\n this.scrollSource.next(data);\n }\n\n onLoading(data: boolean) {\n this.loadingSource.next(data);\n }\n\n onCheckbox(data: any) {\n this.checkboxSource.next(data);\n }\n\n onCell(data: CellEventArgs) {\n this.cellSource.next(data);\n }\n\n onMouseover(data: CellEventArgs) {\n data.type = CellEventType.Mouseover;\n this.onCell(data);\n }\n\n onMouseout(data: CellEventArgs) {\n data.type = CellEventType.Mouseout;\n this.onCell(data);\n }\n\n onActivateCell(data: CellEventArgs) {\n data.type = CellEventType.Activate;\n this.onCell(data);\n }\n\n onClickCell(data: CellEventArgs) {\n data.type = CellEventType.Click;\n this.onCell(data);\n }\n\n onDblClickCell(data: CellEventArgs) {\n data.type = CellEventType.DblClick;\n this.onCell(data);\n }\n\n onKeydownCell(data: CellEventArgs) {\n data.type = CellEventType.Keydown;\n this.onCell(data);\n }\n\n onContextMenu(data: CellEventArgs) {\n data.type = CellEventType.ContextMenu;\n this.onCell(data);\n }\n\n onCellEditMode(data: CellEventArgs) {\n data.type = CellEventType.EditMode;\n this.onCell(data);\n }\n\n onCellValueChanged(data: CellEventArgs) {\n data.type = CellEventType.ValueChanged;\n this.onCell(data);\n }\n\n}\n","export { ColumnBase } from './column-base';\nexport { Column } from './column';\nexport { DataAggregation } from './data-aggregation';\nexport { DataFilter, FilterOperator } from './data-filter';\nexport { DataPager } from './data-pager';\nexport { DataSelection } from './data-selection';\nexport { DataSort } from './data-sort';\nexport { DataTable } from './data-table';\nexport { Dimensions } from './dimensions';\nexport { EventHelper } from './event-helper';\nexport { Events } from './events';\nexport { KeyboardAction } from './keyboard-action';\nexport { Settings } from './settings';\nexport { RowModelGenerator } from './row-model-generator';\nexport { ColumnModelGenerator } from './column-model-generator';\nexport { Row } from './row';\nexport { Cell } from './cell';\nexport * from './types';\n","import { Events } from './events';\nimport { DataSelection } from './data-selection';\nimport { CellEventArgs } from './types';\nimport { isBlank } from '../../common/utils';\nimport { Keys } from '../../common';\nimport { EventHelper } from './event-helper';\n\nexport interface FindCellArgs {\n columnIndex: number;\n rowIndex: number;\n keyCode: number;\n shiftKey: boolean;\n maxColIndex: number;\n maxRowIndex: number;\n}\n\nexport class KeyboardAction {\n\n constructor(private readonly events: Events, private readonly selection: DataSelection) {}\n\n handleEvent(event: KeyboardEvent, element: HTMLElement, maxColIndex: number, maxRowIndex: number) {\n const target = EventHelper.findCellEventTarget(event, element);\n if (!target) {\n return;\n }\n const keyCode = event.keyCode;\n const shiftKey = event.shiftKey;\n if (!this.isAction(keyCode) && !this.isNavigationKey(keyCode)) {\n return;\n }\n const isEditing = target.classList.contains('cell-editing');\n const dataColIndex = target.dataset.columnIndex;\n const dataRowIndex = target.dataset.rowIndex;\n if (!isBlank(dataColIndex) && !isBlank(dataRowIndex)) {\n let columnIndex = parseInt(dataColIndex, 10);\n let rowIndex = parseInt(dataRowIndex, 10);\n if (this.isAction(keyCode)) {\n this.events.onKeydownCell({ columnIndex, rowIndex, event, fromCell: target } as CellEventArgs);\n }\n if (this.isNavigationKey(keyCode) && !isEditing) {\n [columnIndex, rowIndex] = this.findNextCell({columnIndex, rowIndex, keyCode, shiftKey, maxColIndex, maxRowIndex});\n this.events.onActivateCell({ columnIndex, rowIndex, event, fromCell: target } as CellEventArgs);\n if (!this.selection.multiple) {\n this.selection.selectValue(rowIndex);\n }\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n\n private findNextCell(args: FindCellArgs): number[] {\n if (args.keyCode === Keys.LEFT) {\n args.columnIndex = (args.columnIndex > 0) ? args.columnIndex - 1 : 0;\n } else if (args.keyCode === Keys.RIGHT) {\n args.columnIndex = (args.columnIndex < args.maxColIndex) ? args.columnIndex + 1 : 0;\n } else if (args.keyCode === Keys.UP) {\n args.rowIndex = (args.rowIndex > 0) ? args.rowIndex - 1 : 0;\n } else if (args.keyCode === Keys.DOWN) {\n args.rowIndex = (args.rowIndex < args.maxRowIndex) ? args.rowIndex + 1 : 0;\n } else if (args.keyCode === Keys.TAB && args.shiftKey) {\n args.columnIndex = (args.columnIndex > 0) ? args.columnIndex - 1 : 0;\n } else if (args.keyCode === Keys.TAB) {\n args.columnIndex = (args.columnIndex < args.maxColIndex) ? args.columnIndex + 1 : 0;\n }\n return [args.columnIndex, args.rowIndex];\n }\n\n private isAction(keyCode: number): boolean {\n const isAction =\n keyCode === Keys.ENTER ||\n keyCode === Keys.ESCAPE ||\n keyCode === Keys.KEY_F2;\n return (isAction);\n }\n\n private isNavigationKey(keyCode: number) {\n const isAction =\n keyCode === Keys.UP ||\n keyCode === Keys.DOWN ||\n keyCode === Keys.LEFT ||\n keyCode === Keys.RIGHT ||\n keyCode === Keys.TAB;\n return (isAction);\n }\n\n}\n","import { DataPager } from './data-pager';\r\nimport { DataSort } from './data-sort';\r\nimport { DataFilter } from './data-filter';\r\nimport { Settings } from './settings';\r\nimport { Row } from './row';\r\nimport { rsltTypeInAPICall } from 'src/app/shared/functions/title';\r\nimport { PagedResult } from 'lib/ng-crud-table';\r\nimport { HeaderDataSource } from 'lib/ng-crud-table/base';\r\nimport 'rxjs/add/operator/takeWhile';\r\n\r\nexport class LocalDataSource {\r\n\r\n localRows: Row[] = [];\r\n\r\n constructor(\r\n private readonly dataFilter: DataFilter,\r\n private readonly pager: DataPager,\r\n private readonly sorter: DataSort,\r\n private readonly settings: Settings,\r\n private readonly rsltType: string,\r\n private headerDemoService: HeaderDataSource) { }\r\n\r\n setRows(data: Row[]) {\r\n this.dataFilter.clear();\r\n this.sorter.clear();\r\n this.pager.current = 1;\r\n this.localRows = (data) ? data.slice(0) : [];\r\n }\r\n\r\n getRows(): Row[] {\r\n if (this.localRows) {\r\n const data = this.dataFilter.filterRows(this.localRows, this.rsltType);\r\n this.pager.total = data.length;\r\n let rows = this.sorter.sortRows(data);\r\n if (!this.settings.virtualScroll) {\r\n rows = this.pager.pager(rows);\r\n }\r\n return rows;\r\n }\r\n\r\n //this.headerDemoService.getTotalRecords(rsltTypeInAPICall(this.rsltType)).subscribe(res => this.pager.total = res);\r\n //let rows: any[] = [];\r\n //this.headerDemoService.getItems(this.pager.perPage, this.pager.current, rsltTypeInAPICall(this.rsltType)).subscribe(res => {\r\n // const data = JSON.parse(res) as any[];\r\n // rows = this.sorter.sortRows(data);\r\n //});\r\n //return rows;\r\n }\r\n\r\n //async getServerRows(): Promise {\r\n // if (this.localRows) {\r\n\r\n // //const result = {\r\n // // items: pageData,\r\n // // _meta: {\r\n // // totalCount,//number of records totally\r\n // // pageCount,//number of records in current page\r\n // // currentPage,//page number selected\r\n // // perPage//selected option for number of records to be actually displayed\r\n // // }\r\n // //} as PagedResult;\r\n\r\n // return await this.headerDemoService.getItems(this.pager.perPage, this.pager.current, rsltTypeInAPICall(this.rsltType)).then(res =>\r\n // {\r\n // this.pager.total = res._meta.totalCount;\r\n // let rows = this.sorter.sortRows(res.items);\r\n\r\n // if (!this.settings.virtualScroll) {\r\n // rows = this.pager.pager(rows);\r\n // }\r\n // return rows;\r\n // });\r\n // }\r\n //}\r\n\r\n post(newRow: Row) {\r\n this.localRows.push(newRow);\r\n }\r\n\r\n put(row: Row) {\r\n const rowIndex = this.localRows.findIndex(x => x.$$uid === row.$$uid);\r\n this.localRows[rowIndex] = row;\r\n }\r\n\r\n delete(row: Row) {\r\n const rowIndex = this.localRows.findIndex(x => x.$$uid === row.$$uid);\r\n this.localRows.splice(rowIndex, 1);\r\n }\r\n\r\n}\r\n","import { GroupMetadata, AggregateMeta } from './types';\r\nimport { DataAggregation } from './data-aggregation';\r\nimport { Column } from './column';\r\nimport { Row } from './row';\r\nimport { getDateValueRowGrp } from 'lib/common';\r\n\r\nexport class RowGroup {\r\n\r\n rowGroupMetadata: GroupMetadata;\r\n groupRowsBy: string[];\r\n groupRowsByTitles: string[];\r\n\r\n get aggregationEnabled(): boolean {\r\n return this.dataAggregation.enabled;\r\n }\r\n\r\n get groupEnabled(): boolean {\r\n return this.groupRowsBy && this.groupRowsBy.length > 0;\r\n }\r\n\r\n get aggregates(): AggregateMeta[] {\r\n return this.dataAggregation.aggregates;\r\n }\r\n\r\n private dataAggregation: DataAggregation;\r\n private grandTotalRow: Row;\r\n\r\n constructor(groupRowsBy: string[], groupRowsByTitles: string[], columns: Column[]) {\r\n this.groupRowsBy = groupRowsBy;\r\n this.groupRowsByTitles = groupRowsByTitles;\r\n this.dataAggregation = new DataAggregation();\r\n this.dataAggregation.aggregates = columns\r\n .filter(x => x.aggregation)\r\n .map(x => ({ field: x.name, type: x.aggregation }) as AggregateMeta);\r\n }\r\n\r\n updateRowGroupMetadata(rows: Row[]) {\r\n if (this.groupEnabled) {\r\n this.rowGroupMetadata = this.dataAggregation.groupMetaData(rows, this.groupRowsBy);\r\n }\r\n this.grandTotalRow = new Row(this.dataAggregation.grandTotal(rows));\r\n }\r\n\r\n getRowGroupName(row: Row) {\r\n return this.dataAggregation.groupStringValues(row, this.groupRowsBy);\r\n }\r\n getRowGroupValue(row: Row) {\r\n let x = this.dataAggregation.groupStringValues(row, this.groupRowsBy);\r\n if (this.groupRowsByTitles[0] == \"Call Timestamp\")\r\n return getDateValueRowGrp(x);\r\n else\r\n return x;\r\n }\r\n\r\n getRowGroupSize(row: Row) {\r\n const group = this.getRowGroupName(row);\r\n return this.rowGroupMetadata[group].size;\r\n }\r\n\r\n isRowGroup(row: Row) {\r\n if (this.groupEnabled) {\r\n const group = this.getRowGroupName(row);\r\n return this.rowGroupMetadata[group].index === row.$$index;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n isRowGroupSummary(row: Row) {\r\n if (this.groupEnabled && this.aggregationEnabled) {\r\n const group = this.getRowGroupName(row);\r\n const lastRowIndex = (this.rowGroupMetadata[group].index + this.rowGroupMetadata[group].size) - 1;\r\n return lastRowIndex === row.$$index;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n getRowGroupSummary(row: Row): Row {\r\n const group = this.getRowGroupName(row);\r\n return new Row(this.rowGroupMetadata[group].aggRow);\r\n }\r\n\r\n getRowSummary(): Row {\r\n return this.grandTotalRow || new Row({});\r\n }\r\n\r\n getGroupRows(row: Row, rows: Row[]): Row[] {\r\n const group = this.getRowGroupName(row);\r\n return rows.filter(x => this.getRowGroupName(x) === group);\r\n }\r\n\r\n}\r\n","import {Row} from './row';\nimport {Settings} from './settings';\nimport {Column} from './column';\n\nexport class RowModelGenerator {\n\n private uidRow: number = 0;\n\n constructor(private readonly settings: Settings, private readonly columns: Column[]) {}\n\n getUidRow() {\n return ++this.uidRow;\n }\n\n curUidRow() {\n return this.uidRow;\n }\n\n generateRow(row: any): Row {\n if (!(row instanceof Row)) {\n row = new Row(row, this.settings);\n }\n this.columns.forEach((column) => {\n if (column.containsDots) {\n row[column.name] = column.getValue(row);\n }\n });\n if (!row.$$uid) {\n row.$$uid = this.getUidRow();\n }\n return row;\n }\n\n generateRows(data: any[]): Row[] {\n if (data)\n return data.map(x => this.generateRow(x));\n return [];\n }\n\n setRowIndexes(rows: Row[]): void {\n rows.forEach((row, i) => row.$$index = i);\n }\n setRowIndexesRest(rows: Row[]): void {\n rows.forEach((row, i) => row.$$index = i + 20);\n }\n}\n","import { Column } from './column';\nimport { Settings } from './settings';\n\nexport class Row {\n\n $$uid: number;\n $$index: number;\n $$data: any;\n $$height: number;\n $$editable: boolean;\n $$level: number;\n private readonly $$settings: Settings;\n\n constructor(options: { [x: string]: any }, settings?: Settings) {\n Object.assign(this, options);\n this.$$data = options;\n this.$$settings = settings;\n }\n\n clone(): Row {\n const newRow = new Row(Object.assign({}, this), this.$$settings);\n newRow.$$uid = null;\n newRow.$$index = null;\n newRow.$$data = null;\n return newRow;\n }\n\n isEditableCell(column: Column): boolean {\n if (column.editable && this.$$settings && this.hasOwnProperty(this.$$settings.isEditableCellProp)) {\n return this[this.$$settings.isEditableCellProp];\n }\n return column.editable;\n }\n\n getRowClass() {\n const rowClass = this.$$settings ? this.$$settings.rowClass : null;\n if (rowClass) {\n if (typeof rowClass === 'string') {\n return rowClass;\n } else if (typeof rowClass === 'function') {\n return rowClass(this);\n }\n }\n }\n\n getCellClass(column: Column) {\n if (column.cellClass) {\n if (typeof column.cellClass === 'string') {\n return column.cellClass;\n } else if (typeof column.cellClass === 'function') {\n return column.cellClass({ row: this, column, value: this[column.name] });\n }\n }\n }\n\n merge(newRow: any) {\n Object.keys(newRow).forEach(key => {\n if (key in this) {\n this[key] = newRow[key];\n }\n });\n this.backup();\n }\n\n backup(): void {\n this.$$data = Object.assign({}, this);\n }\n\n revertChanges(columns: Column[]) {\n columns.forEach((column) => {\n this[column.name] = this.$$data[column.name];\n });\n }\n\n dispose() {\n this.$$data = null;\n }\n\n}\n","import {SelectionMode, EditMode} from './types';\n\ntype RowClassFunc = (row) => any;\n\nexport class Settings {\n bodyHeight?: number;\n sortable?: boolean = true;\n filter?: boolean = true;\n //https://mazdik.github.io/ng-mazdik/#/multiple-sort-demo\n multipleSort?: boolean = true;//Multiple columns sort - IMP\n trackByProp?: string;\n groupRowsBy?: string[];\n groupRowsByTitles?: string[];//Sorted Columns titles list - IMP\n selectionMultiple?: boolean;\n selectionMode?: SelectionMode;\n virtualScroll?: boolean;\n rowClass?: string | RowClassFunc;\n headerRowHeight?: number;\n rowHeight?: number = 40;//30 chnages row height - IMP\n rowNumber?: boolean = true;\n hoverEvents?: boolean;\n contextMenu?: boolean;\n editMode?: EditMode;\n paginator?: boolean = true;\n rowHeightProp?: string;\n isEditableCellProp?: string;\n\n constructor(init: Partial) {\n Object.assign(this, init);\n if (!this.editMode) {\n this.editMode = EditMode.EditCellOnDblClick;\n }\n }\n\n}\n","import { LastDateType } from 'lib/common/utils';\r\n\r\nexport type ColumnType =\r\n 'text'\r\n | 'password'\r\n | 'number'\r\n | 'select'\r\n | 'radio'\r\n | 'checkbox'\r\n | 'textarea'\r\n | 'date'\r\n | 'datetime-local'\r\n | 'month'\r\n | 'select-popup'\r\n | 'select-dropdown';\r\n\r\nexport enum DataType {\r\n String = 'string',\r\n Number = 'number',\r\n Date = 'date',\r\n}\r\n\r\nexport type AggregateType = 'sum' | 'average' | 'max' | 'min' | 'count';\r\n\r\nexport type SelectionMode = 'checkbox' | 'radio';\r\n\r\nexport enum EditMode {\r\n EditCellOnDblClick = 'editCellOnDblClick',\r\n EditProgrammatically = 'editProgrammatically',\r\n}\r\n\r\nexport interface FilterMeta {\r\n value?: any;\r\n matchMode?: string;\r\n valueTo?: any;\r\n type?: DataType;\r\n rsltType?: string;\r\n title?: string;\r\n}\r\n\r\nexport interface FilterMetadata {\r\n [s: string]: FilterMeta;\r\n}\r\n\r\nexport interface SortMetadata {\r\n field: string;\r\n title: string;//Adding column sorted title for display purpose - IMP\r\n order: number;\r\n}\r\n\r\nexport interface AggregateMeta {\r\n field: string;\r\n type: AggregateType;\r\n}\r\n\r\nexport interface GroupMeta {\r\n index: number;\r\n size: number;\r\n aggRow?: {\r\n [name: string]: any;\r\n };\r\n}\r\n\r\nexport interface GroupMetadata {\r\n [s: string]: GroupMeta;\r\n}\r\n\r\nexport interface ColumnMenuEventArgs {\r\n left: number;\r\n top: number;\r\n column: any;\r\n}\r\n\r\nexport enum CellEventType {\r\n Activate = 'Activate',\r\n Click = 'Click',\r\n DblClick = 'DblClick',\r\n EditMode = 'EditMode',\r\n Keydown = 'Keydown',\r\n ContextMenu = 'ContextMenu',\r\n Mouseover = 'Mouseover',\r\n Mouseout = 'Mouseout',\r\n ValueChanged = 'ValueChanged',\r\n}\r\n\r\nexport interface CellEventArgs {\r\n type: CellEventType;\r\n columnIndex: number;\r\n rowIndex: number;\r\n event?: any;\r\n fromCell?: HTMLElement;\r\n editMode?: boolean;\r\n}\r\n","import {Component, ElementRef, OnInit, ChangeDetectionStrategy, ChangeDetectorRef} from '@angular/core';\nimport {BodyCellComponent} from './body-cell.component';\nimport {CellEventArgs, EditMode, CellEventType} from '../../base';\nimport {Keys} from '../../../common';\n\n@Component({\n selector: 'dt-body-cell-edit',\n templateUrl: './body-cell-edit.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BodyCellEditComponent extends BodyCellComponent implements OnInit {\n\n tempValue: any;\n\n constructor(cd: ChangeDetectorRef, element: ElementRef) {\n super(cd, element);\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n const subCell = this.table.events.cellSource$.subscribe((ev: CellEventArgs) => this.eventHandler(ev));\n //this.subscriptions.push(subCell);\n }\n\n eventHandler(ev: CellEventArgs) {\n if (this.cell.exist(ev.rowIndex, ev.columnIndex)) {\n if (ev.type === CellEventType.DblClick) {\n if (this.table.settings.editMode !== EditMode.EditProgrammatically) {\n this.switchCellToEditMode();\n }\n }\n if (ev.type === CellEventType.Keydown) {\n if (this.table.settings.editMode !== EditMode.EditProgrammatically) {\n this.onCellKeydown(ev.event);\n }\n }\n if (ev.type === CellEventType.EditMode) {\n if (ev.editMode) {\n this.switchCellToEditMode();\n } else {\n this.switchCellToViewMode();\n this.cd.markForCheck();\n }\n }\n }\n }\n\n switchCellToEditMode() {\n if (this.cell.column.editable) {\n this.editing = true;\n this.cell.validate();\n this.cd.markForCheck();\n }\n }\n\n switchCellToViewMode() {\n this.editing = false;\n if (this.cell.value !== this.tempValue) {\n this.updateValue();\n this.table.events.onCellValueChanged({\n columnIndex: this.cell.column.index,\n rowIndex: this.cell.rowIndex\n } as CellEventArgs);\n }\n }\n\n onCellKeydown(event: any) {\n if (this.editing) {\n this.onCellEditorKeydown(event);\n } else {\n if (event.keyCode === Keys.KEY_F2 || event.keyCode === Keys.ENTER) {\n this.switchCellToEditMode();\n }\n }\n if (!this.cell.column.options) {\n event.preventDefault();\n }\n }\n\n onCellEditorKeydown(event: any) {\n if (event.keyCode === Keys.ENTER) {\n this.switchCellToViewMode();\n this.element.nativeElement.focus();\n } else if (event.keyCode === Keys.ESCAPE) {\n this.editing = false;\n this.cell.value = this.tempValue;\n this.updateValue();\n this.element.nativeElement.focus();\n }\n }\n\n onInputBlur() {\n if (this.table.settings.editMode !== EditMode.EditProgrammatically) {\n this.switchCellToViewMode();\n }\n }\n\n onInputFocus() {\n this.tempValue = this.cell.value;\n }\n\n}\n","import {\n Component, Input, HostBinding, ViewContainerRef, ViewChild, OnInit, OnDestroy, ElementRef,\n ChangeDetectionStrategy, ChangeDetectorRef\n} from '@angular/core';\nimport {DataTable, Cell, CellEventArgs, CellEventType} from '../../base';\nimport {Subscription} from 'rxjs';\n\n@Component({\n selector: 'dt-body-cell',\n templateUrl: 'body-cell.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BodyCellComponent implements OnInit {//, OnDestroy\n\n //@Input() table: DataTable;\n @Input()\n get table(): DataTable { return this._table; }\n set table(val: DataTable) {\n this._table = val;\n this.funcInit();\n }\n private _table: DataTable;\n\n @Input()\n get cell(): Cell { return this._cell; }\n set cell(val: Cell) {\n this._cell = val;\n this.updateValue();\n }\n private _cell: Cell;\n\n @HostBinding('class.datatable-body-cell') cssClass = true;\n\n @HostBinding('class.dt-sticky') get cssSticky() {\n return this.cell.column.frozen;\n }\n @HostBinding('class.cell-editing') get cssEditing(): boolean {\n return this.editing;\n }\n\n @HostBinding('class.cell-changed') get cssChanged(): boolean {\n return this.cell.isChanged;\n }\n\n @HostBinding('class.cell-error') get cssError(): boolean {\n return this.cell.hasError;\n }\n\n @HostBinding('attr.role') role = 'gridcell';\n\n @HostBinding('style.width.px')\n get width(): number {\n return this.cell.column.width;\n }\n\n @HostBinding('style.left.px')\n get left() {\n return (this.cell.column.frozen) ? this.cell.column.left : null;\n }\n\n @HostBinding('attr.data-column-index')\n get attrColumnIndex(): number {\n return this.cell.column.index;\n }\n\n @HostBinding('attr.data-row-index')\n get attrRowIndex(): number {\n return this.cell.rowIndex;\n }\n\n @ViewChild('cellTemplate', {static: true}) cellTemplate: ViewContainerRef;\n\n editing: boolean;\n //subscriptions: Subscription[] = [];\n\n constructor(protected cd: ChangeDetectorRef, protected element: ElementRef) {}\n\n ngOnInit(): void {\n this.funcInit();\n }\n funcInit(): void {\n //ngOnChanges(changes: SimpleChanges) {\n const subRows = this.table.events.rowsChanged$.subscribe(() => {\n this.updateValue();\n });\n const subCell = this.table.events.cellSource$.subscribe((ev: CellEventArgs) => {\n if (this.cell.exist(ev.rowIndex, ev.columnIndex) && ev.type === CellEventType.Activate) {\n this.element.nativeElement.focus();\n }\n });\n const subSelection = this.table.events.selectionSource$.subscribe(() => {\n this.cd.markForCheck();\n });\n //this.subscriptions.push(subRows);\n //this.subscriptions.push(subCell);\n //this.subscriptions.push(subSelection);\n }\n\n //ngOnDestroy(): void {\n // if (this.cellTemplate) {\n // this.cellTemplate.clear();\n // }\n // this.subscriptions.forEach(s => s.unsubscribe());\n //}\n\n updateValue(): void {\n this.cell.updateViewValue();\n this.cell.validate();\n this.cd.markForCheck();\n }\n\n}\n","import {\n Component, OnInit, Input, HostBinding, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, OnChanges, SimpleChanges, SimpleChange\n} from '@angular/core';\nimport {DataTable, Row, Column, Cell} from '../../base';\nimport {Subscription} from 'rxjs';\nimport {isBlank} from '../../../common/utils';\n\n@Component({\n selector: 'dt-body-row',\n templateUrl: './body-row.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BodyRowComponent implements OnDestroy {\n\n @Input() table: DataTable;\n @Input() row: Row;\n\n @HostBinding('class.datatable-body-row') cssClass = true;\n @HostBinding('class.row-selected')\n get cssSelected(): boolean {\n return (this.row && !isBlank(this.row.$$index)) ? this.table.selection.isSelected(this.row.$$index) : false;\n }\n\n @HostBinding('attr.role') role = 'row';\n\n @HostBinding('style.height.px')\n get rowHeight(): number {\n if (this.table.settings.rowHeightProp) {\n const rowHeight = this.row[this.table.settings.rowHeightProp];\n return !isBlank(rowHeight) ? rowHeight : this.table.dimensions.rowHeight;\n } else {\n return this.table.dimensions.rowHeight;\n }\n }\n\n @HostBinding('style.width.px')\n get rowWidth(): number {\n return this.table.dimensions.columnsTotalWidth;\n }\n\n private subscriptions: Subscription[] = [];\n columnTrackingFn = (i: number, col: Column) => col.name;\n\n constructor(private cd: ChangeDetectorRef) {}\n\n //ngOnInit(): void {\n ngOnChanges(changes: SimpleChanges) {\n const subColumnResizeEnd = this.table.events.resizeEndSource$.subscribe(() => {\n this.cd.markForCheck();\n });\n const subSort = this.table.events.sortSource$.subscribe(() => {\n this.cd.markForCheck();\n });\n const subPage = this.table.events.pageSource$.subscribe(() => {\n this.cd.markForCheck();\n });\n const subSelection = this.table.events.selectionSource$.subscribe(() => {\n if (this.table.selection.isSelected(this.row.$$index)) {\n this.cd.markForCheck();\n }\n });\n this.subscriptions.push(subColumnResizeEnd);\n this.subscriptions.push(subSort);\n this.subscriptions.push(subPage);\n this.subscriptions.push(subSelection);\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(s => s.unsubscribe());\n }\n\n createCell(row: Row, column: Column): Cell {\n return new Cell(row, column);\n }\n\n}\n","import {\r\n Component, Input, HostBinding, AfterViewInit, NgZone, OnChanges, SimpleChanges, SimpleChange, ChangeDetectionStrategy, OnDestroy, ChangeDetectorRef, ViewChild, OnInit\r\n} from '@angular/core';\r\nimport {DataTable} from '../../base';\r\nimport {Subscription} from 'rxjs';\r\nimport {ScrollerComponent} from '../../../scroller';\r\nimport {RowGroupTemplateDirective} from '../../directives/row-group-template.directive';\r\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\r\n\r\n@Component({\r\n selector: 'dt-body',\r\n templateUrl: './body.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BodyComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {\r\n bottomVal: string | null = null;\r\n totalWidth: string | null = null;\r\n customTotalWidth: string | null = null;\r\n fixedOrNot: boolean = true;\r\n @Input() scrollDisplay: boolean;\r\n\r\n @Input() table: DataTable;\r\n @Input() loading: boolean;\r\n @Input() rowGroupTemplate: RowGroupTemplateDirective;\r\n\r\n @HostBinding('class') cssClass = 'datatable-body';\r\n @ViewChild(ScrollerComponent, {static: true}) scroller: ScrollerComponent;\r\n\r\n private subscriptions: Subscription[] = [];\r\n rowTrackingFn = (index: number, row: any) => (this.table.settings.trackByProp) ? row[this.table.settings.trackByProp] : index;\r\n\r\n constructor(private cd: ChangeDetectorRef, private _ngZone: NgZone, private responsive: BreakpointObserver) { }\r\n\r\n ngOnInit(): void {\r\n //ngOnChanges(changes: SimpleChanges) {\r\n //console.log(this.table.settings.groupRowsBy == [\"Device ID\"])\r\n const subRows = this.table.events.rowsChanged$.subscribe(() => {\r\n this.cd.markForCheck();\r\n });\r\n const subFilter = this.table.events.filterSource$.subscribe(() => {\r\n this.cd.markForCheck();\r\n });\r\n\r\n const subColumnResizeEnd = this.table.events.resizeEndSource$.subscribe(() => {//IMP - For extra column dyn created in vqtpesq screen\r\n if (this.table.rsltType == 'VqtData') {\r\n const wrapperTable = document.getElementById('wrapper-table');\r\n //console.log(this.table.dimensions.columnsTotalWidth + '::' + wrapperTable.offsetWidth)\r\n this.totalWidth = (this.table.dimensions.columnsTotalWidth - (this.table.dimensions.columnsTotalWidth - wrapperTable.offsetWidth)).toString();\r\n this.customTotalWidth = this.table.dimensions.columnsTotalWidth.toString();\r\n }\r\n });\r\n \r\n this.subscriptions.push(subRows);\r\n this.subscriptions.push(subFilter);\r\n this.subscriptions.push(subColumnResizeEnd);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n let currBottom = 8;//13\r\n //if (this.table.rsltType == 'NetTestData' || this.table.rsltType == 'MobileInfoData')\r\n // currBottom = 4;\r\n //else if (this.table.rsltType == 'VacData')\r\n // currBottom = 5;\r\n\r\n const wrapperTable = document.getElementById('wrapper-table');\r\n this.totalWidth = (this.table.dimensions.columnsTotalWidth - (this.table.dimensions.columnsTotalWidth - wrapperTable.offsetWidth)).toString();\r\n\r\n //console.log(this.table.dimensions.columnsTotalWidth)\r\n this.customTotalWidth = this.table.dimensions.columnsTotalWidth.toString();\r\n\r\n ////console.log(this.table.dimensions.bodyHeightOrig)\r\n //if (this.table.rsltType == 'VqtData')\r\n // this.table.dimensions.bodyHeight = 98;\r\n //else if (this.table.rsltType == 'VqtPolqa')\r\n // this.table.dimensions.bodyHeight = 98;\r\n //else if (this.table.rsltType == 'VquadData')\r\n // this.table.dimensions.bodyHeight = 115;\r\n //else if (this.table.rsltType == 'AudioDelayData')\r\n // this.table.dimensions.bodyHeight = 130;//320\r\n //else if (this.table.rsltType == 'FaxData')\r\n // this.table.dimensions.bodyHeight = 150;\r\n //else if (this.table.rsltType == 'VbaData')\r\n // this.table.dimensions.bodyHeight = 120;\r\n //else if (this.table.rsltType == 'NetTestData' || this.table.rsltType == 'MobileInfoData')\r\n // this.table.dimensions.bodyHeight = 100;\r\n //else if (this.table.rsltType == 'VacData')\r\n // this.table.dimensions.bodyHeight = 100;\r\n //else if (this.table.rsltType == 'EmuData')\r\n // this.table.dimensions.bodyHeight = 90;\r\n\r\n if (this.table.rows.length > 0) {\r\n currBottom = 16;\r\n //this.table.dimensions.bodyHeight = this.table.dimensions.bodyHeightOrig;\r\n //if (this.table.rows.length < 20)\r\n // this.table.dimensions.bodyHeight = (40 * this.table.rows.length) + 10;\r\n\r\n this.totalWidth = (this.table.dimensions.columnsTotalWidth - (this.table.dimensions.columnsTotalWidth - wrapperTable.offsetWidth) - 18).toString();\r\n this.customTotalWidth = (this.table.dimensions.columnsTotalWidth).toString();\r\n }\r\n this.bottomVal = currBottom.toString();\r\n \r\n\r\n\r\n this.responsive.observe([Breakpoints.Web, Breakpoints.WebLandscape, Breakpoints.WebPortrait,\r\n Breakpoints.Tablet, Breakpoints.TabletPortrait, Breakpoints.TabletLandscape,\r\n Breakpoints.Handset, Breakpoints.HandsetLandscape, Breakpoints.HandsetPortrait,\r\n Breakpoints.XSmall, Breakpoints.Small, Breakpoints.Medium, Breakpoints.Large, Breakpoints.XLarge\r\n ])\r\n .subscribe(result => {\r\n\r\n const breakpoints = result.breakpoints;\r\n if (breakpoints[Breakpoints.Tablet] || breakpoints[Breakpoints.TabletPortrait] || breakpoints[Breakpoints.TabletLandscape]\r\n || breakpoints[Breakpoints.Handset] || breakpoints[Breakpoints.HandsetPortrait] || breakpoints[Breakpoints.HandsetLandscape]\r\n || breakpoints[Breakpoints.XSmall] || breakpoints[Breakpoints.Small]) {\r\n this.scrollDisplay = true;\r\n }\r\n else if (breakpoints[Breakpoints.Medium]) //IPad Pro\r\n this.scrollDisplay = true;\r\n\r\n if (breakpoints[Breakpoints.XLarge]) {\r\n currBottom = 5;//8\r\n if (this.table.rows.length > 0)\r\n currBottom = 10.5;\r\n //if (this.table.rsltType == 'NetTestData' || this.table.rsltType == 'MobileInfoData')\r\n // currBottom = 7;\r\n //else if (this.table.rsltType == 'VacData')\r\n // currBottom = 10;\r\n\r\n //if (this.table.rsltType == 'VqtData')\r\n // this.table.dimensions.bodyHeight = 50;\r\n //else if (this.table.rsltType == 'VqtPolqa')\r\n // this.table.dimensions.bodyHeight = 50;\r\n //else if (this.table.rsltType == 'VquadData')\r\n // this.table.dimensions.bodyHeight = 60;\r\n //else if (this.table.rsltType == 'AudioDelayData')\r\n // this.table.dimensions.bodyHeight = 70;//320\r\n //else if (this.table.rsltType == 'FaxData')\r\n // this.table.dimensions.bodyHeight = 90;\r\n //else if (this.table.rsltType == 'VbaData')\r\n // this.table.dimensions.bodyHeight = 60;\r\n //else if (this.table.rsltType == 'NetTestData')\r\n // this.table.dimensions.bodyHeight = 100;\r\n //else if (this.table.rsltType == 'MobileInfoData')\r\n // this.table.dimensions.bodyHeight = 150;\r\n //else if (this.table.rsltType == 'VacData')\r\n // this.table.dimensions.bodyHeight = 80;\r\n //else if (this.table.rsltType == 'EmuData')\r\n // this.table.dimensions.bodyHeight = 40;\r\n\r\n if (this.table.rows.length > 0) {\r\n //this.table.dimensions.bodyHeight = this.table.dimensions.bodyHeightOrig;\r\n ////if (this.table.rows.length < 20) {\r\n //// this.table.dimensions.bodyHeight = (40 * this.table.rows.length) + 10;\r\n //// currBottom = this.table.rows.length < 10 ? (50 - (this.table.rows.length * 3)) : currBottom;\r\n ////}\r\n\r\n ////console.log(currBottom)\r\n }\r\n else {\r\n //currBottom = 50;\r\n //if (this.table.rsltType == 'NetTestData' || this.table.rsltType == 'MobileInfoData')\r\n // currBottom = 25;\r\n //else if (this.table.rsltType == 'VacData')\r\n // currBottom = 40;\r\n }\r\n this.bottomVal = currBottom.toString();\r\n }\r\n\r\n if (this.table.rsltType === undefined || this.table.requestID !== undefined) {\r\n this.fixedOrNot = false;\r\n if (this.table.requestID !== undefined)\r\n this.table.dimensions.bodyHeight = 100;\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n updatePage(direction: string) {\r\n if (this.table.settings.virtualScroll && direction && this.table.pager) {\r\n let page = this.scroller.start / this.scroller.itemsPerRow;\r\n page = Math.ceil(page) + 1;\r\n if (page !== this.table.pager.current) {\r\n this.table.pager.current = page;\r\n this.table.events.onPage();\r\n }\r\n }\r\n }\r\n\r\n onScroll(event: any) {\r\n this.table.dimensions.offsetY = event.scrollYPos;\r\n this.table.dimensions.offsetX = event.scrollXPos;\r\n this.table.events.onScroll(event);\r\n if (event.direction) {\r\n this.updatePage(event.direction);\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n\r\n //For Call Timestamp grouping, Maps config Device ID - IMP\r\n onExpand(row: any) {\r\n row.expanded = !row.expanded;\r\n if (!row.expanded) {\r\n const descendants = this.table.rowGroup.getGroupRows(row, this.table.rows);\r\n descendants.forEach(x => x.$$height = 0);\r\n } else {\r\n const descendants = this.table.rowGroup.getGroupRows(row, this.table.rows);\r\n descendants.forEach(x => x.$$height = null);\r\n }\r\n }\r\n\r\n getExpanderIcon(row: any) {\r\n return (!row.expanded) ? 'dt-icon-node dt-icon-collapsed' : 'dt-icon-node';\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n if (this.table.rsltType !== undefined && this.table.requestID === undefined)\r\n this._listenOnScroll();\r\n }\r\n _listenOnScroll() {\r\n this._ngZone.runOutsideAngular(() => {\r\n const wrapperScroll = document.getElementById('wrapper-scroll');\r\n const wrapperTable = document.getElementById('wrapper-table');\r\n wrapperScroll.onscroll = () => {\r\n wrapperTable.scrollLeft = wrapperScroll.scrollLeft;\r\n };\r\n wrapperTable.onscroll = () => {\r\n wrapperScroll.scrollLeft = wrapperTable.scrollLeft;\r\n };\r\n });\r\n }\r\n}\r\n","module.exports = \".datatable *,\\r\\n.datatable *::before,\\r\\n.datatable *::after {\\r\\n box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.datatable {\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.datatable-header-cell,\\r\\n.datatable-body-cell {\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n /*align-items: center;*/\\r\\n position: relative;\\r\\n -ms-flex-negative: 0;\\r\\n flex-shrink: 0;\\r\\n /*font-family: 'Times New Roman', Times, serif;*/\\r\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\r\\n}\\r\\n\\r\\n.datatable-body-cell {\\r\\n /*white-space: nowrap;*/ /*Breaks lengthy values in rows - IMP*/\\r\\n overflow: scroll;\\r\\n /*text-overflow: ellipsis;*/\\r\\n font-size: 12px;\\r\\n\\r\\n /*https://www.codegrepper.com/code-examples/css/how+to+hide+scrollbar+in+css*/\\r\\n -ms-overflow-style: none;\\r\\n scrollbar-width: none; /* Firefox */\\r\\n /*overflow: -moz-scrollbars-none;*/\\r\\n}\\r\\n\\r\\n/*https://stackoverflow.com/questions/43186015/css-hide-scroll-bar-but-have-element-scrollable - IMP*/\\r\\n\\r\\n.datatable-body-cell::-webkit-scrollbar {\\r\\n /*width: 0px;\\r\\n height: 0px;\\r\\n background: transparent;*/ /* make scrollbar transparent */\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.fixed-header .datatable-header-row {\\r\\n /*white-space: nowrap;*/\\r\\n}\\r\\n\\r\\n.fixed-header .datatable-header-cell,\\r\\n.fixed-header .dt-sort-header {\\r\\n /*white-space: nowrap;*/\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n}\\r\\n\\r\\n.datatable-body-row,\\r\\n.datatable-header-row {\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.datatable-body-row:first-child {\\r\\n border-top: 1px solid #c6c6c6;\\r\\n}\\r\\n\\r\\n/*Similar to Network Status screen - IMP*/\\r\\n\\r\\n.datatable-header-row {\\r\\n min-height: 30px;\\r\\n}\\r\\n\\r\\n.datatable-header {\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n overflow: hidden;\\r\\n}\\r\\n\\r\\n.datatable-body {\\r\\n position: relative;\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.datatable-body-row {\\r\\n /*white-space: nowrap;*/ /*Lengthy values breaking - IMP*/\\r\\n outline: none;\\r\\n}\\r\\n\\r\\n/* sticky columns */\\r\\n\\r\\n.dt-sticky {\\r\\n z-index: 1;\\r\\n position: sticky;\\r\\n}\\r\\n\\r\\n.datatable-body-cell.dt-sticky {\\r\\n background-color: white;\\r\\n}\\r\\n\\r\\n/******/\\r\\n\\r\\n.datatable-header-cell {\\r\\n background-color: #6D96D6; /*#5b9bd5;*/\\r\\n color: white;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n user-select: none;\\r\\n /*white-space: nowrap;*/\\r\\n /*font-weight: bold;*/\\r\\n padding-top: 10px;\\r\\n font-size: 11px; /*55%; Changed font size of table cells - IMP*/\\r\\n text-align: center !important;\\r\\n}\\r\\n\\r\\n/*.datatable-header-cell:hover {\\r\\n background-color: #337ab7;\\r\\n}*/\\r\\n\\r\\n.datatable-header-cell:hover .column-menu-icon {\\r\\n visibility: visible;\\r\\n}\\r\\n\\r\\n.datatable-body-cell:first-child,\\r\\n .datatable-header-cell:first-child {\\r\\n border-left: 1px solid #c6c6c6;\\r\\n }\\r\\n\\r\\n.datatable-body-cell,\\r\\n.datatable-header-cell {\\r\\n /*padding: 4px 3px;*/ /*remove padding - IMP*/\\r\\n border-right: 1px solid #c6c6c6;\\r\\n border-bottom: 1px solid #c6c6c6;\\r\\n}\\r\\n\\r\\n.datatable-body-cell:focus {\\r\\n box-shadow:0px 0px 0px 2px #5b9bd5 inset;\\r\\n}\\r\\n\\r\\n.dt-dropdown + .datatable-body {\\r\\n border-top: 1px solid #c6c6c6;\\r\\n}\\r\\n\\r\\n.dt-sort-header {\\r\\n cursor: pointer;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n}\\r\\n\\r\\n.column-menu-icon {\\r\\n position: absolute;\\r\\n /*top: 20%;*/\\r\\n right: 10px; /* - resize-handle */\\r\\n /*margin-top: -6px;*/ /* (height + padding)/2 */\\r\\n text-align: right;\\r\\n visibility: hidden;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.is-filter {\\r\\n visibility: visible;\\r\\n}\\r\\n\\r\\n.cell-editing {\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.cell-error input:focus,\\r\\n.cell-error select:focus {\\r\\n border: 1px solid red;\\r\\n}\\r\\n\\r\\n.cell-error {\\r\\n box-shadow:0px 0px 0px 1px red inset;\\r\\n}\\r\\n\\r\\n.row-selected {\\r\\n background-color: #ecf3ff;\\r\\n color: black;\\r\\n}\\r\\n\\r\\n.row-selected .dt-sticky {\\r\\n background-color: #ecf3ff;\\r\\n color: black;\\r\\n}\\r\\n\\r\\n.datatable-empty-row {\\r\\n padding: 0 0 5px 5px;\\r\\n}\\r\\n\\r\\n.datatable-group-header {\\r\\n border-right: 1px solid #c6c6c6;\\r\\n border-bottom: 1px solid #c6c6c6;\\r\\n}\\r\\n\\r\\n.datatable-body-row[style*=\\\"height: 0\\\"],\\r\\n.datatable-body-row[style*=\\\"height:0\\\"] {\\r\\n overflow-y: hidden;\\r\\n}\\r\\n\\r\\n.datatable-group-header .datatable-body-cell {\\r\\n border: none;\\r\\n border-left: 1px solid #c6c6c6;\\r\\n}\\r\\n\\r\\n.datatable-group-header,\\r\\n.datatable-group-header .dt-sticky,\\r\\n.datatable-group-row,\\r\\n.datatable-group-row .dt-sticky {\\r\\n background: #f5f5f5;\\r\\n color: grey;\\r\\n font-weight: bold;\\r\\n}\\r\\n\\r\\n.column-resizer-helper {\\r\\n width: 2px;\\r\\n position: absolute;\\r\\n z-index: 10;\\r\\n display: none;\\r\\n background: #C6C6C6;\\r\\n top: 0;\\r\\n}\\r\\n\\r\\n.datatable-unselectable .datatable-header-cell:hover {\\r\\n background-color: #6D96D6; /*#5b9bd5;*/\\r\\n}\\r\\n\\r\\n.datatable-unselectable .datatable-header-cell:hover .column-menu-icon {\\r\\n visibility: hidden;\\r\\n}\\r\\n\\r\\n.action-cell {\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n}\\r\\n\\r\\n.cell-changed::before {\\r\\n content: '';\\r\\n border: 3px solid;\\r\\n border-color: currentColor currentColor transparent transparent;\\r\\n display: block;\\r\\n position: absolute;\\r\\n top: 0;\\r\\n right: 0;\\r\\n color: #6D96D6; /*#5b9bd5;*/\\r\\n}\\r\\n\\r\\n.dropdown-filter-menu {\\r\\n position: absolute;\\r\\n z-index: 2;\\r\\n display: none;\\r\\n padding: 5px;\\r\\n background-color: #fff;\\r\\n border: 1px solid #ccc;\\r\\n border-radius: 2px;\\r\\n box-shadow: 0 6px 12px rgba(0, 0, 0, .175);\\r\\n}\\r\\n\\r\\n.filter-action {\\r\\n margin: 0;\\r\\n padding: 8px 10px;\\r\\n background-color: transparent;\\r\\n border: none;\\r\\n outline:none;\\r\\n cursor:pointer;\\r\\n color: white;\\r\\n}\\r\\n\\r\\n#wrapper-scroll {\\r\\n height: 20px;\\r\\n overflow-y: hidden;\\r\\n}\\r\\n\\r\\n#custom-scroll {\\r\\n /*width: 1000px;*/\\r\\n height: 1px;\\r\\n}\\r\\n\\r\\n/*#wrapper-table {\\r\\n overflow-y: auto;\\r\\n transform: rotate(-90deg);\\r\\n transform-origin: right top;\\r\\n transform: rotate(-90deg) translateY(-100px);\\r\\n}*/\\r\\n\\r\\n/*#wrapper-table > div {\\r\\n transform: rotate(90deg);\\r\\n transform-origin: right top;\\r\\n}*/\\r\\n\\r\\n/*https://stackoverflow.com/questions/49869947/overflow-y-hidden-but-should-enable-mouse-scrolling*/\\r\\n\\r\\n.child {\\r\\n width: 100%;\\r\\n box-sizing: content-box;\\r\\n overflow-x: scroll;\\r\\n}\\r\\n\\r\\n/*https://stackoverflow.com/a/73601398 - IMP*/\\r\\n\\r\\n#wrapper-table-demo::-webkit-scrollbar {\\r\\n background: transparent;\\r\\n}\\r\\n\\r\\n/*https://stackoverflow.com/a/70847285 - NOT USED to keep mouse wheel working even if scroll bar invisible\\r\\n https://stackoverflow.com/questions/44334106/how-can-i-style-horizontal-scrollbar-by-css\\r\\n https://www.w3schools.com/howto/howto_css_custom_scrollbar.asp\\r\\n*/\\r\\n\\r\\n#wrapper-table-demo::-webkit-scrollbar {\\r\\n /*display: none;*/\\r\\n height: 0; /* height of horizontal scrollbar ← https://stackoverflow.com/a/44334343*/\\r\\n}\\r\\n\\r\\n/* Track */\\r\\n\\r\\n#wrapper-table-demo::-webkit-scrollbar-track {\\r\\n box-shadow: inset 0 0 5px grey;\\r\\n border-radius: 10px;\\r\\n}\\r\\n\\r\\n/* Handle */\\r\\n\\r\\n#wrapper-table-demo::-webkit-scrollbar-thumb {\\r\\n background: red;\\r\\n border-radius: 10px;\\r\\n}\\r\\n\\r\\n/* Handle on hover */\\r\\n\\r\\n#wrapper-table-demo::-webkit-scrollbar-thumb:hover {\\r\\n background: #b30000;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9uZy1kYXRhLXRhYmxlL2NvbXBvbmVudHMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztFQUdFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDBCQUFzQjtNQUF0QixzQkFBc0I7RUFDdEIsa0JBQWtCO0FBQ3BCOztBQUVBOztFQUVFLG9CQUFhO0VBQWIsYUFBYTtFQUNiLHVCQUF1QjtFQUN2QixrQkFBa0I7RUFDbEIsb0JBQWM7TUFBZCxjQUFjO0VBQ2QsZ0RBQWdEO0VBQ2hELGtEQUFrRDtBQUNwRDs7QUFFQTtFQUNFLHVCQUF1QixFQUFFLHNDQUFzQztFQUMvRCxnQkFBZ0I7RUFDaEIsMkJBQTJCO0VBQzNCLGVBQWU7O0VBRWYsNkVBQTZFO0VBQzdFLHdCQUF3QjtFQUN4QixxQkFBcUIsRUFBRSxZQUFZO0VBQ25DLGtDQUFrQztBQUNwQzs7QUFFQSxxR0FBcUc7O0FBQ3JHO0VBQ0U7OzZCQUUyQixFQUFFLCtCQUErQjtFQUM1RCxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSx1QkFBdUI7QUFDekI7O0FBRUE7O0VBRUUsdUJBQXVCO0VBQ3ZCLGdCQUFnQjtFQUNoQix1QkFBdUI7QUFDekI7O0FBRUE7O0VBRUUsb0JBQWE7RUFBYixhQUFhO0VBQ2Isa0JBQWtCO0FBQ3BCOztBQUNBO0VBQ0UsNkJBQTZCO0FBQy9COztBQUVBLDBDQUEwQzs7QUFDMUM7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxvQkFBYTtFQUFiLGFBQWE7RUFDYiwwQkFBc0I7TUFBdEIsc0JBQXNCO0VBQ3RCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsdUJBQXVCLEVBQUUsZ0NBQWdDO0VBQ3pELGFBQWE7QUFDZjs7QUFFQSxtQkFBbUI7O0FBQ25CO0VBQ0UsVUFBVTtFQUNWLGdCQUFnQjtBQUNsQjs7QUFF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b21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmRhdGF0YWJsZSAqLFxyXG4uZGF0YXRhYmxlICo6OmJlZm9yZSxcclxuLmRhdGF0YWJsZSAqOjphZnRlciB7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG5cclxuLmRhdGF0YWJsZSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmRhdGF0YWJsZS1oZWFkZXItY2VsbCxcclxuLmRhdGF0YWJsZS1ib2R5LWNlbGwge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgLyphbGlnbi1pdGVtczogY2VudGVyOyovXHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGZsZXgtc2hyaW5rOiAwO1xyXG4gIC8qZm9udC1mYW1pbHk6ICdUaW1lcyBOZXcgUm9tYW4nLCBUaW1lcywgc2VyaWY7Ki9cclxuICBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxufVxyXG5cclxuLmRhdGF0YWJsZS1ib2R5LWNlbGwge1xyXG4gIC8qd2hpdGUtc3BhY2U6IG5vd3JhcDsqLyAvKkJyZWFrcyBsZW5ndGh5IHZhbHVlcyBpbiByb3dzIC0gSU1QKi9cclxuICBvdmVyZmxvdzogc2Nyb2xsO1xyXG4gIC8qdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Ki9cclxuICBmb250LXNpemU6IDEycHg7XHJcblxyXG4gIC8qaHR0cHM6Ly93d3cuY29kZWdyZXBwZXIuY29tL2NvZGUtZXhhbXBsZXMvY3NzL2hvdyt0bytoaWRlK3Njcm9sbGJhcitpbitjc3MqL1xyXG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcclxuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7IC8qIEZpcmVmb3ggKi9cclxuICAvKm92ZXJmbG93OiAtbW96LXNjcm9sbGJhcnMtbm9uZTsqL1xyXG59XHJcblxyXG4vKmh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQzMTg2MDE1L2Nzcy1oaWRlLXNjcm9sbC1iYXItYnV0LWhhdmUtZWxlbWVudC1zY3JvbGxhYmxlIC0gSU1QKi9cclxuLmRhdGF0YWJsZS1ib2R5LWNlbGw6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcclxuICAvKndpZHRoOiAwcHg7XHJcbiAgICBoZWlnaHQ6IDBweDtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyovIC8qIG1ha2Ugc2Nyb2xsYmFyIHRyYW5zcGFyZW50ICovXHJcbiAgZGlzcGxheTogbm9uZTtcclxufSAgXHJcblxyXG4uZml4ZWQtaGVhZGVyIC5kYXRhdGFibGUtaGVhZGVyLXJvdyB7XHJcbiAgLyp3aGl0ZS1zcGFjZTogbm93cmFwOyovXHJcbn1cclxuXHJcbi5maXhlZC1oZWFkZXIgLmRhdGF0YWJsZS1oZWFkZXItY2VsbCxcclxuLmZpeGVkLWhlYWRlciAuZHQtc29ydC1oZWFkZXIge1xyXG4gIC8qd2hpdGUtc3BhY2U6IG5vd3JhcDsqL1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbn1cclxuXHJcbi5kYXRhdGFibGUtYm9keS1yb3csXHJcbi5kYXRhdGFibGUtaGVhZGVyLXJvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuLmRhdGF0YWJsZS1ib2R5LXJvdzpmaXJzdC1jaGlsZCB7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjNmM2YzY7XHJcbn1cclxuXHJcbi8qU2ltaWxhciB0byAgTmV0d29yayBTdGF0dXMgc2NyZWVuIC0gSU1QKi9cclxuLmRhdGF0YWJsZS1oZWFkZXItcm93IHtcclxuICBtaW4taGVpZ2h0OiAzMHB4O1xyXG59XHJcblxyXG4uZGF0YXRhYmxlLWhlYWRlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5kYXRhdGFibGUtYm9keSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4uZGF0YXRhYmxlLWJvZHktcm93IHtcclxuICAvKndoaXRlLXNwYWNlOiBub3dyYXA7Ki8gLypMZW5ndGh5IHZhbHVlcyBicmVha2luZyAtIElNUCovXHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxuLyogc3RpY2t5IGNvbHVtbnMgKi9cclxuLmR0LXN0aWNreSB7XHJcbiAgei1pbmRleDogMTtcclxuICBwb3NpdGlvbjogc3RpY2t5O1xyXG59XHJcblxyXG4uZGF0YXRhYmxlLWJvZHktY2VsbC5kdC1zdGlja3kge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4vKioqKioqL1xyXG4uZGF0YXRhYmxlLWhlYWRlci1jZWxsIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNkQ5NkQ2OyAvKiM1YjliZDU7Ki9cclxuICBjb2xvcjogd2hpdGU7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLyp3aGl0ZS1zcGFjZTogbm93cmFwOyovXHJcbiAgLypmb250LXdlaWdodDogYm9sZDsqL1xyXG4gIHBhZGRpbmctdG9wOiAxMHB4O1xyXG4gIGZvbnQtc2l6ZTogMTFweDsgLyo1NSU7IENoYW5nZWQgZm9udCBzaXplIG9mIHRhYmxlIGNlbGxzIC0gSU1QKi9cclxuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcclxufVxyXG5cclxuLyouZGF0YXRhYmxlLWhlYWRlci1jZWxsOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzM3YWI3O1xyXG59Ki9cclxuXHJcbi5kYXRhdGFibGUtaGVhZGVyLWNlbGw6aG92ZXIgLmNvbHVtbi1tZW51LWljb24ge1xyXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbn1cclxuXHJcbiAgLmRhdGF0YWJsZS1ib2R5LWNlbGw6Zmlyc3QtY2hpbGQsXHJcbiAgLmRhdGF0YWJsZS1oZWFkZXItY2VsbDpmaXJzdC1jaGlsZCB7XHJcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjNmM2YzY7XHJcbiAgfVxyXG5cclxuLmRhdGF0YWJsZS1ib2R5LWNlbGwsXHJcbi5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xyXG4gIC8qcGFkZGluZzogNHB4IDNweDsqLyAvKnJlbW92ZSBwYWRkaW5nIC0gSU1QKi9cclxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYzZjNmM2O1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzZjNmM2O1xyXG59XHJcblxyXG4uZGF0YXRhYmxlLWJvZHktY2VsbDpmb2N1cyB7XHJcbiAgYm94LXNoYWRvdzowcHggMHB4IDBweCAycHggIzViOWJkNSBpbnNldDtcclxufVxyXG5cclxuLmR0LWRyb3Bkb3duICsgLmRhdGF0YWJsZS1ib2R5IHtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2M2YzZjNjtcclxufVxyXG5cclxuLmR0LXNvcnQtaGVhZGVyIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuLmNvbHVtbi1tZW51LWljb24ge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAvKnRvcDogMjAlOyovXHJcbiAgcmlnaHQ6IDEwcHg7IC8qIC0gcmVzaXplLWhhbmRsZSAqL1xyXG4gIC8qbWFyZ2luLXRvcDogLTZweDsqLyAvKiAoaGVpZ2h0ICsgcGFkZGluZykvMiAqL1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5pcy1maWx0ZXIge1xyXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbn1cclxuXHJcbi5jZWxsLWVkaXRpbmcge1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uY2VsbC1lcnJvciBpbnB1dDpmb2N1cyxcclxuLmNlbGwtZXJyb3Igc2VsZWN0OmZvY3VzIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZWQ7XHJcbn1cclxuXHJcbi5jZWxsLWVycm9yIHtcclxuICBib3gtc2hhZG93OjBweCAwcHggMHB4IDFweCByZWQgaW5zZXQ7XHJcbn1cclxuXHJcbi5yb3ctc2VsZWN0ZWQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2YzZmY7XHJcbiAgY29sb3I6IGJsYWNrO1xyXG59XHJcblxyXG4ucm93LXNlbGVjdGVkIC5kdC1zdGlja3kge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2YzZmY7XHJcbiAgY29sb3I6IGJsYWNrO1xyXG59XHJcblxyXG4uZGF0YXRhYmxlLWVtcHR5LXJvdyB7XHJcbiAgcGFkZGluZzogMCAwIDVweCA1cHg7XHJcbn1cclxuXHJcbi5kYXRhdGFibGUtZ3JvdXAtaGVhZGVyIHtcclxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYzZjNmM2O1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzZjNmM2O1xyXG59XHJcblxyXG4uZGF0YXRhYmxlLWJvZHktcm93W3N0eWxlKj1cImhlaWdodDogMFwiXSxcclxuLmRhdGF0YWJsZS1ib2R5LXJvd1tzdHlsZSo9XCJoZWlnaHQ6MFwiXSB7XHJcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xyXG59XHJcblxyXG4uZGF0YXRhYmxlLWdyb3VwLWhlYWRlciAuZGF0YXRhYmxlLWJvZHktY2VsbCB7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2M2YzZjNjtcclxufVxyXG5cclxuLmRhdGF0YWJsZS1ncm91cC1oZWFkZXIsXHJcbi5kYXRhdGFibGUtZ3JvdXAtaGVhZGVyIC5kdC1zdGlja3ksXHJcbi5kYXRhdGFibGUtZ3JvdXAtcm93LFxyXG4uZGF0YXRhYmxlLWdyb3VwLXJvdyAuZHQtc3RpY2t5IHtcclxuICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xyXG4gIGNvbG9yOiBncmV5O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4uY29sdW1uLXJlc2l6ZXItaGVscGVyIHtcclxuICB3aWR0aDogMnB4O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB6LWluZGV4OiAxMDtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIGJhY2tncm91bmQ6ICNDNkM2QzY7XHJcbiAgdG9wOiAwO1xyXG59XHJcblxyXG4uZGF0YXRhYmxlLXVuc2VsZWN0YWJsZSAuZGF0YXRhYmxlLWhlYWRlci1jZWxsOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNkQ5NkQ2OyAvKiM1YjliZDU7Ki9cclxufVxyXG5cclxuLmRhdGF0YWJsZS11bnNlbGVjdGFibGUgLmRhdGF0YWJsZS1oZWFkZXItY2VsbDpob3ZlciAuY29sdW1uLW1lbnUtaWNvbiB7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG59XHJcblxyXG4uYWN0aW9uLWNlbGwge1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG59XHJcblxyXG4uY2VsbC1jaGFuZ2VkOjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6ICcnO1xyXG4gIGJvcmRlcjogM3B4IHNvbGlkO1xyXG4gIGJvcmRlci1jb2xvcjogY3VycmVudENvbG9yIGN1cnJlbnRDb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGNvbG9yOiAjNkQ5NkQ2OyAvKiM1YjliZDU7Ki9cclxufVxyXG5cclxuLmRyb3Bkb3duLWZpbHRlci1tZW51IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgei1pbmRleDogMjtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIHBhZGRpbmc6IDVweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XHJcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG4gIGJveC1zaGFkb3c6IDAgNnB4IDEycHggcmdiYSgwLCAwLCAwLCAuMTc1KTtcclxufVxyXG5cclxuLmZpbHRlci1hY3Rpb24ge1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiA4cHggMTBweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgb3V0bGluZTpub25lO1xyXG4gIGN1cnNvcjpwb2ludGVyO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuI3dyYXBwZXItc2Nyb2xsIHtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xyXG59XHJcblxyXG4jY3VzdG9tLXNjcm9sbCB7XHJcbiAgLyp3aWR0aDogMTAwMHB4OyovXHJcbiAgaGVpZ2h0OiAxcHg7XHJcbn1cclxuLyojd3JhcHBlci10YWJsZSB7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xyXG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IHRvcDtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpIHRyYW5zbGF0ZVkoLTEwMHB4KTtcclxufSovXHJcbi8qI3dyYXBwZXItdGFibGUgPiBkaXYge1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcclxuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCB0b3A7XHJcbn0qL1xyXG5cclxuXHJcbi8qaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDk4Njk5NDcvb3ZlcmZsb3cteS1oaWRkZW4tYnV0LXNob3VsZC1lbmFibGUtbW91c2Utc2Nyb2xsaW5nKi9cclxuLmNoaWxkIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcclxuICBvdmVyZmxvdy14OiBzY3JvbGw7XHJcbn1cclxuLypodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNzM2MDEzOTggLSBJTVAqL1xyXG4jd3JhcHBlci10YWJsZS1kZW1vOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi8qaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzcwODQ3Mjg1IC0gTk9UIFVTRUQgdG8ga2VlcCBtb3VzZSB3aGVlbCB3b3JraW5nIGV2ZW4gaWYgc2Nyb2xsIGJhciBpbnZpc2libGVcclxuICBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80NDMzNDEwNi9ob3ctY2FuLWktc3R5bGUtaG9yaXpvbnRhbC1zY3JvbGxiYXItYnktY3NzXHJcbiAgaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9ob3d0by9ob3d0b19jc3NfY3VzdG9tX3Njcm9sbGJhci5hc3BcclxuKi9cclxuI3dyYXBwZXItdGFibGUtZGVtbzo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gIC8qZGlzcGxheTogbm9uZTsqL1xyXG4gIGhlaWdodDogMDsgLyogaGVpZ2h0IG9mIGhvcml6b250YWwgc2Nyb2xsYmFyIOKGkCBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDQzMzQzNDMqL1xyXG59XHJcbi8qIFRyYWNrICovXHJcbiN3cmFwcGVyLXRhYmxlLWRlbW86Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDAgNXB4IGdyZXk7XHJcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcclxufVxyXG5cclxuLyogSGFuZGxlICovXHJcbiN3cmFwcGVyLXRhYmxlLWRlbW86Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcclxuICBiYWNrZ3JvdW5kOiByZWQ7XHJcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcclxufVxyXG5cclxuLyogSGFuZGxlIG9uIGhvdmVyICovXHJcbiN3cmFwcGVyLXRhYmxlLWRlbW86Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiAjYjMwMDAwO1xyXG59XHJcbiJdfQ== */\"","import {\r\n Component, OnInit, Input, ViewEncapsulation, ElementRef, HostBinding, TemplateRef,\r\n ChangeDetectionStrategy, ChangeDetectorRef, OnChanges, SimpleChanges, SimpleChange, OnDestroy, ContentChild, ViewChild\r\n} from '@angular/core';\r\nimport {DataTable, ColumnModelGenerator, Row} from '../../base';\r\nimport {Subscription} from 'rxjs';\r\nimport {BodyComponent} from '../body/body.component';\r\nimport {PageEvent} from '../../../pagination';\r\nimport {HeaderTemplateDirective} from '../../directives/header-template.directive';\r\nimport {RowGroupTemplateDirective} from '../../directives/row-group-template.directive';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\n\r\n@Component({\r\n selector: 'app-datatable, app-data-table',\r\n templateUrl: './data-table.component.html',\r\n styleUrls: [\r\n './data-table.component.css',\r\n '../../../styles/checkbox.css',\r\n '../../../styles/radio.css',\r\n '../../../styles/buttons.css',\r\n '../../../styles/list-menu.css',\r\n '../../../styles/input.css',\r\n '../../../styles/spinners.css',\r\n '../../../styles/icons.css',\r\n '../../../resizable/resizable.css',\r\n ],\r\n //https://vibhas1892.medium.com/what-is-viewencapsulation-in-angular-58d31901901c\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DataTableComponent implements OnChanges, OnDestroy {\r\n\r\n @Input() table: DataTable;\r\n @Input() rsltType: string;\r\n\r\n @ContentChild(HeaderTemplateDirective, {static: true}) headerTemplate: HeaderTemplateDirective;\r\n @ContentChild(RowGroupTemplateDirective, {static: true}) rowGroupTemplate: RowGroupTemplateDirective;\r\n\r\n @ViewChild('resizeHelper', {static: true}) resizeHelper: ElementRef;\r\n @ViewChild('footer', {static: true}) footerViewChild: ElementRef;\r\n @ViewChild(BodyComponent, {static: false}) body: BodyComponent;\r\n @ViewChild('rowCheckboxTemplate', {static: true}) rowCheckboxTemplate: TemplateRef;\r\n @ViewChild('headerCheckboxTemplate', {static: true}) headerCheckboxTemplate: TemplateRef;\r\n //@ViewChild('onlyDelActionTemplate', { static: true }) onlyDelActionTemplate: TemplateRef;\r\n\r\n @HostBinding('class.datatable') cssClass = true;\r\n @HostBinding('attr.role') role = 'grid';\r\n\r\n @HostBinding('class.fixed-header')\r\n get isFixedHeader(): boolean {\r\n return (this.table.dimensions.headerRowHeight) ? true : false;\r\n }\r\n\r\n loading: boolean;\r\n scrollDisplay: boolean;\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(private element: ElementRef, private cd: ChangeDetectorRef) { }//, private commonFilterService: CommonFilterService\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (this.table) {\r\n const actionColumn = this.table.columns.find(x => x.name === ColumnModelGenerator.checkboxColumn.name);\r\n if (actionColumn) {\r\n actionColumn.cellTemplate = this.rowCheckboxTemplate;\r\n actionColumn.headerCellTemplate = this.headerCheckboxTemplate;\r\n }\r\n //const delColumn = this.table.columns.find(x => x.name === ColumnModelGenerator.delColumn.name);\r\n //if (delColumn) {\r\n // delColumn.cellTemplate = this.onlyDelActionTemplate;\r\n //}\r\n\r\n const subFilter = this.table.events.filterSource$.subscribe(() => {\r\n this.onFilter();\r\n });\r\n const subSort = this.table.events.sortSource$.subscribe(() => {\r\n this.onSort();\r\n });\r\n const subColumnResizeBegin = this.table.events.resizeBeginSource$.subscribe(() => {\r\n this.onColumnResizeBegin();\r\n });\r\n const subColumnResize = this.table.events.resizeSource$.subscribe((event) => {\r\n this.onColumnResize(event);\r\n });\r\n const subColumnResizeEnd = this.table.events.resizeEndSource$.subscribe(() => {\r\n this.onColumnResizeEnd();\r\n });\r\n const subScroll = this.table.events.scrollSource$.subscribe(() => {\r\n requestAnimationFrame(() => this.cd.detectChanges());\r\n });\r\n const subLoading = this.table.events.loadingSource$.subscribe((event) => {\r\n this.loading = event;\r\n if (this.table.rsltType == 'VqtData' && this.table.selectedColumns.length > 0)\r\n this.vqtColumnTogglerSave();\r\n //this.commonFilterService.SetItemsRest(this.table.rowsRest);\r\n\r\n //this.table.rowsRest = [];\r\n ////console.log(this.table.rowsRest)\r\n this.cd.markForCheck();\r\n // for server-side virtual scroll\r\n if (this.table.settings.virtualScroll) {\r\n requestAnimationFrame(() => this.cd.detectChanges());\r\n }\r\n });\r\n this.subscriptions.push(subFilter);\r\n this.subscriptions.push(subSort);\r\n this.subscriptions.push(subColumnResizeBegin);\r\n this.subscriptions.push(subColumnResize);\r\n this.subscriptions.push(subColumnResizeEnd);\r\n this.subscriptions.push(subScroll);\r\n this.subscriptions.push(subLoading);\r\n }\r\n }\r\n \r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n //Get records of the current page selected\r\n onPageChanged(event: PageEvent): void {\r\n this.table.pager.current = event.currentPage;\r\n this.table.pager.perPage = event.perPage;\r\n this.table.pager.perPageOrCurrPageChanged = event.perPageOrCurrPageChanged;\r\n this.table.events.onPage();\r\n if (this.table.settings.virtualScroll) {\r\n this.body.scroller.setPageOffsetY(event.currentPage);\r\n } else {\r\n if (this.table.clientSide) {\r\n //console.log('paging');\r\n this.table.loadLocalRows();\r\n }\r\n }\r\n this.table.selection.clearSelection();\r\n }\r\n\r\n onFilter() {\r\n this.table.pager.current = 1;\r\n if (this.table.clientSide) {\r\n this.table.loadLocalRows();\r\n }\r\n this.table.selection.clearSelection();\r\n //console.log('onFilter')\r\n }\r\n\r\n onSort() {\r\n if (this.table.clientSide) {\r\n this.table.loadLocalRows();\r\n }\r\n this.table.selection.clearSelection();\r\n }\r\n\r\n onColumnResizeBegin() {\r\n this.element.nativeElement.classList.add('datatable-unselectable');\r\n const height = this.element.nativeElement.offsetHeight - this.footerViewChild.nativeElement.offsetHeight;\r\n this.resizeHelper.nativeElement.style.height = height + 'px';\r\n }\r\n\r\n onColumnResize(event) {\r\n const rect = this.element.nativeElement.getBoundingClientRect();\r\n const containerLeft = rect.left + document.body.scrollLeft;\r\n this.resizeHelper.nativeElement.style.left = (event.pageX - containerLeft + this.element.nativeElement.scrollLeft) + 'px';\r\n this.resizeHelper.nativeElement.style.display = 'block';\r\n }\r\n\r\n onColumnResizeEnd() {\r\n this.resizeHelper.nativeElement.style.display = 'none';\r\n this.element.nativeElement.classList.remove('datatable-unselectable');\r\n this.table.dimensions.recalcColumns();\r\n }\r\n\r\n get headerVisible(): boolean {\r\n return this.table.dimensions.headerRowHeight === 0 ? false : true;\r\n }\r\n\r\n onCheckboxClick(row: Row) {\r\n this.table.selection.toggle(row.$$index);\r\n this.table.events.onCheckbox(row);\r\n }\r\n //onRowDelClick(event: Event, row: Row) {\r\n // confirm('Delete ?') ? this.dataManager.delete(row) : null;\r\n //}\r\n\r\n\r\n vqtColumnTogglerSave() {\r\n this.table.columns.forEach(x => { x.tableHidden = true; x.index = 99; });\r\n this.table.selectedColumns.forEach((el, i) => {\r\n const index = this.table.columns.findIndex(x => x.name === el.id);\r\n this.table.columns[index].tableHidden = false;\r\n this.table.columns[index].index = i;\r\n });\r\n this.table.columns.sort((a, b) => (a.index > b.index) ? 1 : (a.index < b.index) ? -1 : 0);\r\n this.table.initColumns();\r\n this.table.events.onRowsChanged();\r\n this.table.events.onResizeEnd();\r\n\r\n this.cd.markForCheck();\r\n }\r\n}\r\n","import {\r\n Component, Input, OnChanges, SimpleChanges, SimpleChange, HostBinding, ChangeDetectionStrategy, ChangeDetectorRef,\r\n OnDestroy, ElementRef\r\n} from '@angular/core';\r\nimport {Column, DataTable} from '../../base';\r\nimport {Subscription} from 'rxjs';\r\nimport {ColumnMenuEventArgs} from '../../base/types';\r\nimport {Dropdown} from '../../../dropdown';\r\n\r\n@Component({\r\n selector: 'app-filter',\r\n templateUrl: './filter.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FilterComponent implements OnChanges, OnDestroy {\r\n\r\n @Input() table: DataTable;\r\n @Input() rsltType: string;\r\n\r\n left: number;\r\n top: number;\r\n column: Column = new Column({}, 0, 0, 0);\r\n\r\n @HostBinding('class') cssClass = 'dropdown-filter-menu';\r\n\r\n @HostBinding('style.left.px')\r\n get getLeft(): number {\r\n return this.left;\r\n }\r\n\r\n @HostBinding('style.top.px')\r\n get getTop(): number {\r\n return this.top;\r\n }\r\n\r\n @HostBinding('style.width.px')\r\n get getWidth(): number {\r\n return this.table.dimensions.columnMenuWidth;\r\n }\r\n\r\n @HostBinding('style.display')\r\n get getDisplay(): string {\r\n return (this.dropdown.isOpen && this.column.filter) ? 'block' : 'none';\r\n }\r\n\r\n dropdown: Dropdown;\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(private element: ElementRef, private cd: ChangeDetectorRef) {\r\n if (this.table) {\r\n this.column = new Column({}, this.table.DB_TZ, this.table.DB_BRDiff, this.table.MainFilterTZ);\r\n }\r\n this.dropdown = new Dropdown(this.element.nativeElement);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const subColumnMenu = this.table.events.columnMenuSource$.subscribe((event) => {\r\n this.show(event);\r\n });\r\n const subScroll = this.table.events.scrollSource$.subscribe(() => {\r\n this.hide();\r\n });\r\n const subDropdown = this.dropdown.isOpenSource$.subscribe(() => {\r\n this.cd.markForCheck();\r\n });\r\n this.subscriptions.push(subColumnMenu);\r\n this.subscriptions.push(subScroll);\r\n this.subscriptions.push(subDropdown);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n this.dropdown.removeEventListeners();\r\n }\r\n\r\n show(event: ColumnMenuEventArgs) {\r\n //this.element.nativeElement.style.width = (this.table.dimensions.columnMenuWidth + 2) + 'px'; // Filter window width setting - IMP\r\n this.element.nativeElement.style.width = 185 + 'px';\r\n if (event.column.type === 'datetime-local')\r\n this.element.nativeElement.style.width = 235 + 'px';\r\n this.column = event.column;\r\n this.dropdown.selectContainerClicked = true;\r\n if (this.top === event.top && this.left === event.left) {\r\n this.dropdown.toggleDropdown();\r\n } else {\r\n this.top = event.top;\r\n this.left = event.left;\r\n this.dropdown.closeDropdown();\r\n this.dropdown.openDropdown();\r\n }\r\n }\r\n\r\n hide() {\r\n this.dropdown.closeDropdown();\r\n }\r\n\r\n onFilterClose() {\r\n this.dropdown.toggleDropdown();\r\n }\r\n\r\n get isListFilter(): boolean {\r\n if (this.column.options || this.column.filterValues) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n get isRangeFilter(): boolean {\r\n //console.log(this.column.isDateType)\r\n if (!this.isListFilter && (this.column.type === 'number' || this.column.isDateType)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n get isStringFilter(): boolean {\r\n if (!this.isListFilter && !this.isRangeFilter) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n}\r\n","import {\n Component, OnChanges, SimpleChanges, SimpleChange, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef\n} from '@angular/core';\nimport {Column, DataTable, FilterOperator} from '../../base';\n\n@Component({\n selector: 'app-list-filter',\n templateUrl: 'list-filter.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ListFilterComponent implements OnChanges {\n\n @Input() table: DataTable;\n @Input() rsltType: string;\n @Input() column: Column;\n @Input() isOpen: boolean;\n @Output() filterClose: EventEmitter = new EventEmitter();\n\n loading: boolean;\n selectedOptions: any[] = [];\n\n constructor(private cd: ChangeDetectorRef) {}\n\n ngOnChanges() {\n if (this.isOpen) {\n this.loadFilter();\n this.loading = true;\n this.column.getFilterValues().then((res) => {\n this.column.filterValuesTemp = res;\n })\n .catch(() => {})\n .finally(() => {\n this.loading = false;\n this.cd.markForCheck();\n });\n }\n }\n\n saveFilter(value) {\n const field = (this.column.keyColumn) ? this.column.keyColumn : this.column.name;\n //this.table.dataFilter.setFilter([...value], field, FilterOperator.IN, null, this.column.dataType, this.rsltType, this.column.title);\n this.table.dataFilter.setFilter(value[0], field, FilterOperator.IN, null, this.column.dataType, this.rsltType, this.column.title);\n this.table.events.onFilter();\n }\n\n loadFilter() {\n const field = (this.column.keyColumn) ? this.column.keyColumn : this.column.name;\n this.selectedOptions = this.table.dataFilter.getFilterValue(field) || [];\n }\n\n onSelectionChange(event) {\n this.saveFilter(event);\n this.filterClose.emit(true);\n }\n\n onSelectionCancel() {\n this.filterClose.emit(true);\n }\n\n}\n","import {\r\n Component, OnInit, Input, Output, EventEmitter, AfterViewInit, ChangeDetectionStrategy, OnChanges, SimpleChanges, SimpleChange, ViewChild\r\n //, Renderer2, ElementRef\r\n} from '@angular/core';\r\nimport {Column, DataTable, FilterOperator} from '../../base';\r\nimport {inputFormattedDate, getLastDate, formatDate, LastDateType} from '../../../common/utils';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\nimport { Keys } from '../../../common';\r\n\r\n@Component({\r\n selector: 'app-range-filter',\r\n templateUrl: 'range-filter.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RangeFilterComponent implements OnInit, AfterViewInit, OnChanges {\r\n\r\n @Input() table: DataTable;\r\n @Input() rsltType: string;\r\n @Input() column: Column;\r\n @Input() isOpen: boolean;\r\n @Output() filterClose: EventEmitter = new EventEmitter();\r\n @Output() filterOpen: EventEmitter = new EventEmitter();\r\n\r\n @ViewChild('filterInput', { static: false }) filterInput: any;\r\n @ViewChild('filterNewInput', { static: false }) filterNewInput: any;\r\n //https://stackoverflow.com/questions/38944725/how-to-get-dom-element-in-angular-2\r\n //https://stackoverflow.com/questions/46720611/how-to-use-angular4-to-set-focus-by-element-id\r\n //https://alligator.io/angular/using-renderer2/\r\n //@ViewChild('filterToInput', { static: false }) filterToInput: ElementRef;\r\n\r\n matchMode: string;\r\n value: any;\r\n valueTo: any;\r\n operators: any[];\r\n defaultMatchMode = FilterOperator.EQUALS;\r\n\r\n startHours = [];\r\n selectedStartHours = 0;\r\n endHours = [];\r\n selectedEndHours = 0;\r\n\r\n startMinutes = [];\r\n selectedStartMinutes = 0;\r\n endMinutes = [];\r\n selectedEndMinutes = 0;\r\n\r\n startSeconds = [];\r\n selectedStartSeconds = 0;\r\n endSeconds = [];\r\n selectedEndSeconds = 0;\r\n\r\n constructor(private commonFilterService: CommonFilterService) { };//, private renderer: Renderer2, private el: ElementRef) {}\r\n\r\n ngOnInit() {\r\n //console.log('onInit' + this.column.isDateType)\r\n for (let h = 0; h < 24; h++) {\r\n this.startHours.push({ id: h, name: h < 10 ? '0' + h.toString() : h.toString() });\r\n this.endHours.push({ id: h, name: h < 10 ? '0' + h.toString() : h.toString() });\r\n }\r\n for (let mOrs = 0; mOrs < 60; mOrs++) {\r\n this.startMinutes.push({ id: mOrs, name: mOrs < 10 ? '0' + mOrs.toString() : mOrs.toString() });\r\n this.endMinutes.push({ id: mOrs, name: mOrs < 10 ? '0' + mOrs.toString() : mOrs.toString() });\r\n\r\n this.startSeconds.push({ id: mOrs, name: mOrs < 10 ? '0' + mOrs.toString() : mOrs.toString() });\r\n this.endSeconds.push({ id: mOrs, name: mOrs < 10 ? '0' + mOrs.toString() : mOrs.toString() });\r\n }\r\n\r\n this.operators = [\r\n {value: FilterOperator.EQUALS, text: this.table.messages.equals},\r\n {value: FilterOperator.NOT_EQUAL, text: this.table.messages.notEqual},\r\n {value: FilterOperator.GREATER_THAN, text: this.table.messages.greaterThan},\r\n {value: FilterOperator.GREATER_THAN_OR_EQUAL, text: this.table.messages.greaterThanOrEqual},\r\n {value: FilterOperator.LESS_THAN, text: this.table.messages.lessThan},\r\n {value: FilterOperator.LESS_THAN_OR_EQUAL, text: this.table.messages.lessThanOrEqual},\r\n {value: FilterOperator.IN_RANGE, text: this.table.messages.inRange},\r\n //{value: FilterOperator.IS_EMPTY, text: this.table.messages.isEmpty},\r\n //{value: FilterOperator.IS_NOT_EMPTY, text: this.table.messages.isNotEmpty},\r\n ];\r\n \r\n }\r\n\r\n inputDateToTextType() {\r\n if (this.filterInput) {\r\n if (this.filterInput.nativeElement.type == \"datetime-local\")\r\n this.filterInput.nativeElement.type = \"text\";\r\n\r\n //const elementTo = this.renderer.selectRootElement(this.filterToInput[\"nativeElement\"]);\r\n //setTimeout(() => {\r\n // if (elementTo.type == \"datetime-local\")\r\n // elementTo.type = \"text\";\r\n //}, 0);\r\n\r\n //if (this.filterToInput && this.isRangeFilter) {\r\n // if (this.filterToInput.nativeElement.type == \"datetime-local\")\r\n // this.filterToInput.nativeElement.type = \"text\";\r\n // //else if (this.filterToInput.nativeElement.type == \"text\")\r\n // // this.filterToInput.nativeElement.type = \"datetime-local\";\r\n //}\r\n ////else if (this.filterInput.nativeElement.type == \"text\")\r\n //// this.filterInput.nativeElement.type = \"datetime-local\";\r\n }\r\n }\r\n ngAfterViewInit() {\r\n //console.log('onAfterView' + this.column.isDateType)\r\n //this.inputDateToTextType(); \r\n this.setFocus();\r\n //this.commonFilterService.GeneralFilter.subscribe(res => {\r\n // this.table.dataFilter.filters = res;\r\n // this.matchMode = this.table.dataFilter.getFilterMatchMode(this.column.name) || this.defaultMatchMode;\r\n // this.value = this.table.dataFilter.getFilterValue(this.column.name);\r\n // this.setFocus();\r\n //}); \r\n }\r\n\r\n dontApply: boolean = false;\r\n ngOnChanges(): void {\r\n //console.log('OnChanges' + this.column.isDateType + ':' + this.filterInput)\r\n this.dontApply = this.column.isDateType ? false : true;\r\n this.matchMode = this.table.dataFilter.getFilterMatchMode(this.column.name) || this.defaultMatchMode;\r\n this.value = this.table.dataFilter.getFilterValue(this.column.name);\r\n this.valueTo = this.table.dataFilter.getFilterValueTo(this.column.name);\r\n this.setFocus();\r\n }\r\n\r\n get isValueFilter() {\r\n return !this.table.dataFilter.isNonValueFilter(this.matchMode);\r\n }\r\n\r\n get isRangeFilter() {\r\n return this.matchMode === FilterOperator.IN_RANGE;\r\n }\r\n\r\n saveFilter() {\r\n //console.log(this.valueTo);//08/25/2020 12:38:48 - 2020-08-13\r\n //console.log(this.matchMode)\r\n let finalValue = this.value;\r\n let finalValueTo = this.valueTo;\r\n let colName = this.column.name.toLowerCase();\r\n if (colName.indexOf('timestamp') != -1) {\r\n if (this.lastDateSelected === false) {//equals, range, etc but not last 10min, today, last year etc\r\n if (finalValue != 0) {\r\n let finalValues = finalValue.split('-');\r\n finalValue = finalValues[1] + '/' + finalValues[2] + '/' + finalValues[0] + ' '\r\n + (this.selectedStartHours < 10 ? ('0' + this.selectedStartHours) : this.selectedStartHours)\r\n + ':' + (this.selectedStartMinutes < 10 ? ('0' + this.selectedStartMinutes) : this.selectedStartMinutes)\r\n + ':' + (this.selectedStartSeconds < 10 ? ('0' + this.selectedStartSeconds) : this.selectedStartSeconds);\r\n }\r\n if (this.matchMode === FilterOperator.IN_RANGE) {//valueTo only when in range selected\r\n if (finalValueTo != null) {\r\n let finalValuesTo = finalValueTo.split('-');\r\n finalValueTo = finalValuesTo[1] + '/' + finalValuesTo[2] + '/' + finalValuesTo[0] + ' '\r\n + (this.selectedEndHours < 10 ? ('0' + this.selectedEndHours) : this.selectedEndHours)\r\n + ':' + (this.selectedEndMinutes < 10 ? ('0' + this.selectedEndMinutes) : this.selectedEndMinutes)\r\n + ':' + (this.selectedEndSeconds < 10 ? ('0' + this.selectedEndSeconds) : this.selectedEndSeconds);\r\n }\r\n }\r\n }\r\n }\r\n if (colName.indexOf('timestamp') != -1\r\n || colName.indexOf('gps') != -1)\r\n this.rsltType = \"\";\r\n\r\n if (colName == 'vqt_timestamp') \r\n this.rsltType = \"pesq|polqa\";\r\n else if (colName == 'start_timestamp') \r\n this.rsltType = \"nettest|mobileinfo|vac\";\r\n else if (colName == 'battery_level')\r\n this.rsltType = \"nettest|mobileinfo\";\r\n else if (colName == 'rssi' && this.rsltType != 'pesq' && this.rsltType != 'polqa')\r\n this.rsltType = \"nettest|mobileinfo\";\r\n\r\n //console.log(finalValue)\r\n //console.log(finalValueTo)\r\n this.table.dataFilter.setFilter(finalValue, this.column.name, this.matchMode, finalValueTo, this.column.dataType, this.rsltType, this.column.title);\r\n this.table.events.onFilter();\r\n }\r\n\r\n setFocus() {\r\n\r\n if (this.filterInput && this.isValueFilter) {\r\n setTimeout(() => {\r\n this.filterInput.nativeElement.focus();\r\n }, 1);\r\n }\r\n\r\n //setTimeout(() => {\r\n // this.filterNewInput.nativeElement.focus();\r\n //}, 1);\r\n }\r\n\r\n onModeChange() {\r\n //console.log(this.isValueFilter + \"::\" + this.value)\r\n\r\n if (!this.isValueFilter) {\r\n //console.log(\"Empty/NotEmpty\")\r\n this.value = 0;\r\n this.valueTo = null;\r\n this.saveFilter();\r\n this.filterClose.emit(true);\r\n } else if (this.value === 0) {\r\n this.value = null;\r\n }\r\n this.setFocus();\r\n }\r\n\r\n lastDateSelected = false;\r\n lastDate(name: LastDateType, messageRange: string) {\r\n this.lastDateSelected = true;\r\n //this.matchMode = FilterOperator.GREATER_THAN_OR_EQUAL;\r\n this.matchMode = FilterOperator.IN_RANGE;\r\n //this.commonFilterService.setDatesRangeProperties(name);\r\n\r\n let rangeInfo: any = {\r\n RangeType : name,\r\n RangeSelected: messageRange,\r\n }\r\n //console.log(rangeInfo)\r\n this.commonFilterService.setRangeFilterData(rangeInfo);\r\n\r\n let dbTz = -500;\r\n this.commonFilterService.DB_TZ.subscribe(res => {\r\n dbTz = res;\r\n });\r\n //console.log(dbTz)\r\n\r\n let dbAndBrHrs = -500;\r\n this.commonFilterService.DB_BRDiff.subscribe(res => {\r\n dbAndBrHrs = res;\r\n });\r\n this.value = getLastDate(name, dbTz, dbAndBrHrs);\r\n let dt: Date = new Date();\r\n if (name === 'yesterday') {\r\n dt = new Date(Date.now() + -1 * 24 * 3600 * 1000);\r\n dt.setHours(23);\r\n dt.setMinutes(59);\r\n dt.setSeconds(59);\r\n }\r\n this.valueTo = formatDate(dt, dbTz, dbAndBrHrs);\r\n //console.log(this.value);\r\n this.saveFilter();\r\n this.lastDateSelected = false;\r\n this.filterClose.emit(true);\r\n }\r\n\r\n onClickOk() {\r\n this.saveFilter();\r\n this.filterClose.emit(true);\r\n }\r\n\r\n onClickCancel() {\r\n this.filterClose.emit(true);\r\n }\r\n\r\n onClickClear() {\r\n this.value = null;\r\n this.valueTo = null;\r\n this.matchMode = this.defaultMatchMode;\r\n this.saveFilter();\r\n this.filterClose.emit(true);\r\n }\r\n\r\n onDateFocusEvent(event: any) {\r\n if (event.target.type == \"datetime-local\")\r\n event.target.type = \"text\";\r\n }\r\n\r\n onKeyPressFilterInput(event: KeyboardEvent) {\r\n if (event.which === Keys.ENTER) {\r\n this.onClickOk();\r\n }\r\n //https://stackoverflow.com/questions/17976393/html5-input-type-number-not-working-in-firefox\r\n //else {\r\n // let char = String.fromCharCode(event.keyCode); // Get the character\r\n // if (/^[0-9]*$/.test(char))\r\n // return true;\r\n // // Match with regex\r\n // else event.preventDefault(); // If not match, don't add to input text\r\n //}\r\n }\r\n\r\n //onDateFocusOutEvent(event: any) {\r\n // if (event.target.type == \"text\")\r\n // event.target.type = \"datetime-local\";\r\n //}\r\n\r\n\r\n\r\n //addEvent(event: any) {\r\n // console.log(event.value);\r\n // this.filterOpen.emit(true);\r\n //}\r\n //public effectiveDateFrom = new Date();\r\n}\r\n","import {\r\n Component, OnInit, Input, Output, EventEmitter, AfterViewInit, ChangeDetectionStrategy, OnChanges, SimpleChanges, SimpleChange, ViewChild\r\n} from '@angular/core';\r\nimport {Column, DataTable, FilterOperator} from '../../base';\r\nimport {Keys} from '../../../common';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\n\r\n@Component({\r\n selector: 'app-string-filter',\r\n templateUrl: 'string-filter.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class StringFilterComponent implements OnInit, AfterViewInit, OnChanges {\r\n\r\n @Input() table: DataTable;\r\n @Input() rsltType: string;\r\n @Input() column: Column;\r\n @Input() isOpen: boolean;\r\n @Output() filterClose: EventEmitter = new EventEmitter();\r\n\r\n @ViewChild('filterInput', {static: false}) filterInput: any;\r\n\r\n matchMode: string;\r\n value: any;\r\n operators: any[];\r\n defaultMatchMode = FilterOperator.STARTS_WITH;\r\n\r\n constructor(private commonFilterService: CommonFilterService) { }\r\n\r\n ngOnInit() {\r\n this.operators = [\r\n {value: FilterOperator.EQUALS, text: this.table.messages.equals},\r\n {value: FilterOperator.NOT_EQUAL, text: this.table.messages.notEqual},\r\n {value: FilterOperator.STARTS_WITH, text: this.table.messages.startsWith},\r\n {value: FilterOperator.ENDS_WITH, text: this.table.messages.endsWith},\r\n {value: FilterOperator.CONTAINS, text: this.table.messages.contains},\r\n {value: FilterOperator.NOT_CONTAINS, text: this.table.messages.notContains},\r\n //{value: FilterOperator.IS_EMPTY, text: this.table.messages.isEmpty},\r\n //{value: FilterOperator.IS_NOT_EMPTY, text: this.table.messages.isNotEmpty},\r\n ];\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.commonFilterService.GeneralFilter.subscribe(res => {\r\n //console.log(res)\r\n this.table.dataFilter.filters = res;\r\n this.matchMode = this.table.dataFilter.getFilterMatchMode(this.column.name) || this.defaultMatchMode;\r\n this.value = this.table.dataFilter.getFilterValue(this.column.name);\r\n this.setFocus();\r\n }); \r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.column.name) {\r\n this.matchMode = this.table.dataFilter.getFilterMatchMode(this.column.name) || this.defaultMatchMode;\r\n this.value = this.table.dataFilter.getFilterValue(this.column.name);\r\n if (this.column.name.toLowerCase().indexOf('vquad_callid') != -1 && this.matchMode.toLowerCase().indexOf('contains') != -1\r\n && this.value.indexOf('_') == 0 && this.value.lastIndexOf('_') == this.value.length - 1\r\n && this.value.substring(1, this.value.length - 1).indexOf('_') == -1) {\r\n this.value = this.value.substring(1, this.value.length - 1);\r\n this.matchMode = this.matchMode.indexOf('not') != -1 ? 'notEqual' : 'equals';\r\n }\r\n }\r\n this.setFocus();\r\n }\r\n\r\n get isValueFilter() {\r\n return !this.table.dataFilter.isNonValueFilter(this.matchMode);\r\n }\r\n\r\n saveFilter() {\r\n let colName = this.column.name.toLowerCase();\r\n\r\n //For VBA only\r\n let newColName = this.column.name;\r\n if (colName == 'phone_id') {\r\n colName = 'vquad_phoneid';\r\n newColName = 'VQuad_PhoneID';\r\n }\r\n else if (colName == 'location') {\r\n colName = 'vquad_location';\r\n newColName = 'VQuad_Location';\r\n }\r\n\r\n if (colName.indexOf('vquad') != -1 || colName.indexOf('calltype') != -1 || colName.indexOf('gps') != -1)\r\n this.rsltType = \"\";\r\n\r\n if (colName.indexOf('start_gps') != -1)\r\n this.rsltType = \"nettest|mobileinfo|vac\";\r\n if (colName.indexOf('net_speed_test') != -1 || colName.indexOf('network_type') != -1 || colName.indexOf('tn_number') != -1 || colName.indexOf('target_server') != -1 ||\r\n (colName.indexOf('teststatus') != -1 && this.rsltType != 'vac'))\r\n this.rsltType = \"nettest|mobileinfo\";\r\n\r\n if (colName.indexOf('vquad_callid') != -1) {\r\n this.commonFilterService.setGeneralEventIDFilterData({});//clear event id subscribe here\r\n }\r\n\r\n //if (this.matchMode.toLowerCase().indexOf('contains') != -1\r\n // && this.value.indexOf('_') == 0 && this.value.lastIndexOf('_') == this.value.length - 1\r\n // && this.value.substring(1, this.value.length - 1).indexOf('_') == -1) {\r\n // let newVal = this.value.substring(1, this.value.length - 1);\r\n // let newMatchMode = this.matchMode.indexOf('not') != -1 ? 'notEqual' : 'equals';\r\n //}\r\n if (colName.indexOf('vquad_callid') != -1 && this.matchMode.toLowerCase().indexOf('equal') != -1 && this.value.indexOf('_') == -1) {\r\n this.value = \"_\" + this.value + \"_\";//dynamically changing Event filtering for either Cal ID or Device ID when equals or not equals operator selected\r\n this.matchMode = FilterOperator.CONTAINS;\r\n if (this.matchMode.toLowerCase().indexOf('not') != -1)\r\n this.matchMode = FilterOperator.NOT_CONTAINS;\r\n }\r\n\r\n this.table.dataFilter.setFilter(this.value, newColName, this.matchMode, null, this.column.dataType, this.rsltType, this.column.title);\r\n this.table.events.onFilter();\r\n }\r\n\r\n setFocus() { \r\n if (this.filterInput && this.isValueFilter) {\r\n setTimeout(() => {\r\n this.filterInput.nativeElement.focus();\r\n }, 1);\r\n }\r\n }\r\n\r\n onModeChange() {\r\n //console.log(this.isValueFilter + \"::\" + this.value)\r\n if (!this.isValueFilter) {\r\n this.value = 0;\r\n this.saveFilter();\r\n this.filterClose.emit(true);\r\n } else if (this.value === 0) {\r\n this.value = null;\r\n }\r\n }\r\n\r\n onClickOk() {\r\n this.saveFilter();\r\n this.filterClose.emit(true);\r\n }\r\n\r\n onClickCancel() {\r\n this.filterClose.emit(true);\r\n }\r\n\r\n onClickClear() {\r\n this.value = null;\r\n this.matchMode = this.defaultMatchMode;\r\n this.saveFilter();\r\n this.filterClose.emit(true);\r\n }\r\n\r\n onKeyPressFilterInput(event: KeyboardEvent) {\r\n if (event.which === Keys.ENTER) {\r\n this.onClickOk();\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n Component, Input, HostBinding, ChangeDetectionStrategy, ChangeDetectorRef, OnChanges, SimpleChanges, SimpleChange, OnDestroy\r\n} from '@angular/core';\r\nimport {Column, DataTable, EventHelper} from '../../base';\r\nimport {Subscription} from 'rxjs';\r\nimport {ColumnMenuEventArgs} from '../../base/types';\r\nimport {findAncestor} from '../../../common/utils';\r\nimport { TitlePipe } from 'lib/pipes';\r\n\r\n@Component({\r\n selector: 'dt-header-cell',\r\n templateUrl: 'header-cell.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class HeaderCellComponent implements OnChanges, OnDestroy {\r\n\r\n @Input() table: DataTable;\r\n @Input() column: Column;\r\n\r\n @HostBinding('class.datatable-header-cell') cssClass = true;\r\n @HostBinding('class.dt-sticky') get cssSticky() {\r\n return this.column.frozen;\r\n }\r\n\r\n @HostBinding('attr.role') role = 'columnheader';\r\n\r\n @HostBinding('style.width.px')\r\n get width(): number {\r\n return this.column.width;\r\n }\r\n\r\n @HostBinding('style.background-color')\r\n get titleBgColor(): string {\r\n return this.column.titleBgColor;\r\n }\r\n\r\n @HostBinding('style.color')\r\n get titleColor(): string {\r\n return this.column.titleColor;\r\n }\r\n\r\n @HostBinding('attr.title')\r\n get name(): string {\r\n return this.column.title === undefined ? this.column.title : this.titlePipe.transform(this.column.title);//susheel - while comlum resizing hovering and no need of label title\r\n }\r\n\r\n get direction() {\r\n const order = this.table.sorter.getOrder(this.column.name);\r\n return (order === -1) ? 'desc' : (order === 1) ? 'asc' : '';\r\n }\r\n\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(private cd: ChangeDetectorRef, private titlePipe: TitlePipe) {\r\n }\r\n\r\n //ngOnInit() {\r\n ngOnChanges(changes: SimpleChanges) {\r\n const subFilter = this.table.events.filterSource$.subscribe(() => {\r\n this.cd.markForCheck();\r\n });\r\n const subSort = this.table.events.sortSource$.subscribe(() => {\r\n this.cd.markForCheck();\r\n });\r\n const subSelection = this.table.events.selectionSource$.subscribe(() => {\r\n this.cd.markForCheck();\r\n });\r\n this.subscriptions.push(subFilter);\r\n this.subscriptions.push(subSort);\r\n this.subscriptions.push(subSelection);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n onSort() {\r\n if (this.column.sortable) {\r\n this.table.sorter.setOrder(this.column.name, this.column.title);\r\n this.table.events.onSort();\r\n }\r\n }\r\n\r\n clickColumnMenu(event: MouseEvent, column: Column) {\r\n const {left, top} = EventHelper.getColumnPosition(event, this.table.dimensions.columnMenuWidth);\r\n this.table.events.onColumnMenuClick({left, top, column} as ColumnMenuEventArgs);\r\n }\r\n\r\n isFiltered(): boolean {\r\n const field = (this.column.keyColumn) ? this.column.keyColumn : this.column.name;\r\n\r\n ////Filter Icon default visible - IMP\r\n //if (this.column.index == 0)\r\n // return true;\r\n\r\n return this.table.dataFilter.hasFilter(field);\r\n }\r\n\r\n}\r\n","import {\n Component, Input, HostBinding, OnDestroy, ChangeDetectorRef, OnChanges, SimpleChanges, SimpleChange, ChangeDetectionStrategy, ElementRef,\n ViewChild, ViewContainerRef\n} from '@angular/core';\nimport {DataTable, Column} from '../../base';\nimport {Subscription} from 'rxjs';\nimport {HeaderTemplateDirective} from '../../directives/header-template.directive';\n\n@Component({\n selector: 'dt-header',\n templateUrl: 'header.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\nexport class HeaderComponent implements OnChanges, OnDestroy {\n\n @Input() table: DataTable;\n @Input() headerTemplate: HeaderTemplateDirective;\n\n @HostBinding('class.datatable-header') cssClass = true;\n @ViewChild('headerTemplateView', {static: true}) headerTemplateView: ViewContainerRef;\n @ViewChild('headerRow', {static: true}) headerRow: ElementRef;\n\n private subscriptions: Subscription[] = [];\n columnTrackingFn = (i: number, col: Column) => col.name;\n\n constructor(private cd: ChangeDetectorRef) {}\n\n ngOnChanges(changes: SimpleChanges) {\n //console.log(this.table.preparedColumns);\n const subColumnResizeEnd = this.table.events.resizeEndSource$.subscribe(() => {\n this.cd.markForCheck();\n });\n const subScroll = this.table.events.scrollSource$.subscribe((event) => {\n if (!event.direction) {\n const stickyCells = this.headerRow.nativeElement.querySelectorAll('.dt-sticky');\n this.headerRow.nativeElement.style.transform = `translate3d(${this.table.dimensions.offsetX * -1}px, 0, 0)`;\n for (const cell of stickyCells) {\n cell.style.transform = `translate3d(${this.table.dimensions.offsetX}px, 0, 0)`;\n }\n this.cd.markForCheck();\n }\n });\n this.subscriptions.push(subColumnResizeEnd);\n this.subscriptions.push(subScroll);\n }\n\n ngOnDestroy() {\n if (this.headerTemplateView) {\n this.headerTemplateView.clear();\n }\n this.subscriptions.forEach(s => s.unsubscribe());\n }\n\n onResizeBegin() {\n this.table.events.onResizeBegin();\n }\n\n onResize(event: any, column: Column) {\n this.table.events.onResize(event.event);\n }\n\n onResizeEnd(event, column: Column) {\n column.setWidth(event.width);\n this.table.events.onResizeEnd();\n }\n\n}\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n\r\nimport { DropdownSelectModule } from '../dropdown-select';\r\nimport {PaginationModule} from '../pagination';\r\nimport {ScrollerModule} from '../scroller';\r\nimport {SelectListModule} from '../select-list';\r\nimport {InlineEditModule} from '../inline-edit';\r\nimport {ResizableModule} from '../resizable';\r\nimport {HeaderComponent} from './components/header/header.component';\r\nimport {HeaderCellComponent} from './components/header/header-cell.component';\r\nimport {FilterComponent} from './components/filter/filter.component';\r\nimport {StringFilterComponent} from './components/filter/string-filter.component';\r\nimport {ListFilterComponent} from './components/filter/list-filter.component';\r\nimport {RangeFilterComponent} from './components/filter/range-filter.component';\r\nimport {BodyComponent} from './components/body/body.component';\r\nimport {BodyRowComponent} from './components/body/body-row.component';\r\nimport {BodyCellComponent} from './components/body/body-cell.component';\r\nimport {BodyCellEditComponent} from './components/body/body-cell-edit.component';\r\nimport {DataTableComponent} from './components/data-table/data-table.component';\r\n\r\nimport {BodyMouseoverDirective} from './directives/body-mouseover.directive';\r\nimport {BodyKeydownDirective} from './directives/body-keydown.directive';\r\nimport {BodyClickDirective} from './directives/body-click.directive';\r\nimport {BodyDblClickDirective} from './directives/body-dblclick.directive';\r\nimport {BodyContextMenuDirective} from './directives/body-contextmenu.directive';\r\nimport {HeaderTemplateDirective} from './directives/header-template.directive';\r\nimport { RowGroupTemplateDirective } from './directives/row-group-template.directive';\r\n\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatNativeDateModule } from '@angular/material';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';//group mat components and give same style to all of them\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { MapsPipeModule } from '../pipes';\r\n\r\n//import { NgxDaterangepickerMd } from 'ngx-daterangepicker-material';\r\n\r\n//import { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n// RECOMMENDED\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\n//// NOT RECOMMENDED (Angular 9 doesn't support this kind of import)\r\n//import { BsDatepickerModule } from 'ngx-bootstrap';\r\n\r\nimport { TitlePipeModule } from '../pipes';\r\n\r\nimport { DirectivesModule } from '../directives/directives.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PaginationModule,\r\n ScrollerModule,\r\n SelectListModule,\r\n InlineEditModule,\r\n ResizableModule,\r\n\r\n MatInputModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatFormFieldModule,\r\n FormsModule,\r\n\r\n //NgxDaterangepickerMd,\r\n\r\n //BrowserAnimationsModule,\r\n BsDatepickerModule.forRoot(),\r\n\r\n TitlePipeModule,\r\n\r\n MapsPipeModule,\r\n\r\n DropdownSelectModule,\r\n DirectivesModule,\r\n ],\r\n declarations: [\r\n HeaderComponent,\r\n HeaderCellComponent,\r\n FilterComponent,\r\n StringFilterComponent,\r\n ListFilterComponent,\r\n RangeFilterComponent,\r\n BodyComponent,\r\n BodyRowComponent,\r\n BodyCellComponent,\r\n BodyCellEditComponent,\r\n DataTableComponent,\r\n BodyMouseoverDirective,\r\n BodyKeydownDirective,\r\n BodyClickDirective,\r\n BodyDblClickDirective,\r\n BodyContextMenuDirective,\r\n HeaderTemplateDirective,\r\n RowGroupTemplateDirective,\r\n ],\r\n exports: [\r\n DataTableComponent,\r\n HeaderTemplateDirective,\r\n RowGroupTemplateDirective,\r\n ],\r\n providers: []\r\n})\r\nexport class DataTableModule {}\r\n","import { Directive, Input, ElementRef, OnChanges, SimpleChanges, SimpleChange, OnDestroy, NgZone } from '@angular/core';\nimport { DataTable, EventHelper } from '../base';\n\n@Directive({\n selector: '[appBodyClick]'\n})\nexport class BodyClickDirective implements OnChanges, OnDestroy {\n\n @Input() table: DataTable;\n\n element: HTMLElement;\n private clickListener: any;\n\n constructor(element: ElementRef, private ngZone: NgZone) {\n this.element = element.nativeElement;\n }\n\n //ngOnInit(): void {\n ngOnChanges(changes: SimpleChanges) {\n this.ngZone.runOutsideAngular(() => {\n this.clickListener = this.onClick.bind(this);\n this.element.addEventListener('click', this.clickListener);\n });\n }\n\n ngOnDestroy(): void {\n this.element.removeEventListener('click', this.clickListener);\n }\n\n onClick(event: any): void {\n const cellEventArgs = EventHelper.findCellEvent(event, this.element);\n if (cellEventArgs) {\n this.ngZone.run(() => {\n this.table.events.onClickCell(cellEventArgs);\n if (!this.table.settings.selectionMode) {\n this.table.selectRow(cellEventArgs.rowIndex);//When a row selected on clicking that row - IMP\n }\n });\n }\n }\n\n}\n","import { Directive, Input, ElementRef, OnChanges, SimpleChanges, SimpleChange, OnDestroy, NgZone } from '@angular/core';\nimport { DataTable, EventHelper } from '../base';\n\n@Directive({\n selector: '[appBodyContextMenu]'\n})\nexport class BodyContextMenuDirective implements OnChanges, OnDestroy {\n\n @Input() table: DataTable;\n\n element: HTMLElement;\n private contextMenuListener: any;\n\n constructor(element: ElementRef, private ngZone: NgZone) {\n this.element = element.nativeElement;\n }\n\n //ngOnInit(): void {\n ngOnChanges(changes: SimpleChanges) {\n if (this.table.settings.contextMenu) {\n this.ngZone.runOutsideAngular(() => {\n this.contextMenuListener = this.onContextMenu.bind(this);\n this.element.addEventListener('contextmenu', this.contextMenuListener);\n });\n }\n }\n\n ngOnDestroy(): void {\n this.element.removeEventListener('contextmenu', this.contextMenuListener);\n }\n\n onContextMenu(event: any): void {\n const cellEventArgs = EventHelper.findCellEvent(event, this.element);\n if (cellEventArgs) {\n this.ngZone.run(() => {\n this.table.events.onContextMenu(cellEventArgs);\n });\n }\n }\n\n}\n","import { Directive, Input, ElementRef, OnChanges, SimpleChanges, SimpleChange, OnDestroy, NgZone } from '@angular/core';\nimport { DataTable, EventHelper } from '../base';\n\n@Directive({\n selector: '[appBodyDblClick]'\n})\nexport class BodyDblClickDirective implements OnChanges, OnDestroy {\n\n @Input() table: DataTable;\n\n element: HTMLElement;\n private clickListener: any;\n\n constructor(element: ElementRef, private ngZone: NgZone) {\n this.element = element.nativeElement;\n }\n\n //ngOnInit(): void {\n ngOnChanges(changes: SimpleChanges) {\n const editable = this.table.columns.some(x => x.editable);\n if (editable) {\n this.ngZone.runOutsideAngular(() => {\n this.clickListener = this.onDblClick.bind(this);\n this.element.addEventListener('dblclick', this.clickListener);\n });\n }\n }\n\n ngOnDestroy(): void {\n this.element.removeEventListener('dblclick', this.clickListener);\n }\n\n onDblClick(event: any): void {\n const cellEventArgs = EventHelper.findCellEvent(event, this.element);\n if (cellEventArgs) {\n this.ngZone.run(() => {\n this.table.events.onDblClickCell(cellEventArgs);\n });\n }\n }\n\n}\n","import { Directive, Input, ElementRef, OnChanges, SimpleChanges, SimpleChange, OnDestroy, NgZone } from '@angular/core';\nimport { DataTable, KeyboardAction } from '../base';\n\n@Directive({\n selector: '[appBodyKeydown]'\n})\nexport class BodyKeydownDirective implements OnChanges, OnDestroy {\n\n @Input() table: DataTable;\n\n element: HTMLElement;\n private keyboardAction: KeyboardAction;\n private keydownListener: any;\n\n constructor(element: ElementRef, private ngZone: NgZone) {\n this.element = element.nativeElement;\n }\n\n //ngOnInit(): void {\n ngOnChanges(changes: SimpleChanges) {\n this.keyboardAction = new KeyboardAction(this.table.events, this.table.selection);\n this.ngZone.runOutsideAngular(() => {\n this.keydownListener = this.onKeydown.bind(this);\n this.element.addEventListener('keydown', this.keydownListener);\n });\n }\n\n ngOnDestroy(): void {\n this.element.removeEventListener('keydown', this.keydownListener);\n }\n\n onKeydown(event: any): void {\n const maxColIndex = this.table.columns.length;\n const maxRowIndex = this.table.rows.length;\n this.ngZone.run(() => {\n this.keyboardAction.handleEvent(event, this.element, maxColIndex, maxRowIndex);\n });\n }\n\n}\n","import { Directive, Input, ElementRef, OnChanges, SimpleChanges, SimpleChange, OnDestroy, NgZone } from '@angular/core';\nimport { DataTable, EventHelper } from '../base';\n\n@Directive({\n selector: '[appBodyMouseover]'\n})\nexport class BodyMouseoverDirective implements OnChanges, OnDestroy {\n\n @Input() table: DataTable;\n\n element: HTMLElement;\n currentElem: any;\n private mouseoverListener: any;\n private mouseoutListener: any;\n\n constructor(element: ElementRef, private ngZone: NgZone) {\n this.element = element.nativeElement;\n }\n\n //ngOnInit(): void {\n ngOnChanges(changes: SimpleChanges) {\n if (this.table.settings.hoverEvents) {\n this.ngZone.runOutsideAngular(() => {\n this.mouseoverListener = this.onMouseover.bind(this);\n this.mouseoutListener = this.onMouseout.bind(this);\n this.element.addEventListener('mouseover', this.mouseoverListener);\n this.element.addEventListener('mouseout', this.mouseoutListener);\n });\n }\n }\n\n ngOnDestroy(): void {\n this.element.removeEventListener('mouseover', this.mouseoverListener);\n this.element.removeEventListener('mouseout', this.mouseoutListener);\n }\n\n onMouseover(event: any): void {\n if (this.currentElem) {\n return;\n }\n const target = EventHelper.findCellEventTarget(event, this.element);\n if (!target) { return; }\n this.currentElem = target;\n\n const cellEventArgs = EventHelper.findCellEvent(event, this.element);\n if (cellEventArgs) {\n this.table.events.onMouseover(cellEventArgs);\n }\n }\n\n onMouseout(event: any): void {\n if (!this.currentElem) {\n return;\n }\n let relatedTarget = event.relatedTarget;\n if (relatedTarget) {\n while (relatedTarget) {\n if (relatedTarget === this.currentElem) {\n return;\n }\n relatedTarget = relatedTarget.parentNode;\n }\n }\n this.currentElem = null;\n const cellEventArgs = EventHelper.findCellEvent(event, this.element);\n if (cellEventArgs) {\n this.table.events.onMouseout(cellEventArgs);\n }\n }\n\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({ selector: '[dtHeaderTemplate]' })\nexport class HeaderTemplateDirective {\n constructor(public template: TemplateRef) { }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({ selector: '[dtRowGroupTemplate]' })\nexport class RowGroupTemplateDirective {\n constructor(public template: TemplateRef) { }\n}\n","export {DataTableModule} from './data-table-module';\nexport {DataTableComponent} from './components/data-table/data-table.component';\nexport * from './base/types';\nexport {ColumnBase as Column, DataTable, Settings, Row} from './base';\n","export {TreeTableModule} from './tree-table-module';\nexport {TreeTableComponent} from './tree-table.component';\nexport {TreeTable} from './tree-table';\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\n\nimport {DataTableModule} from '../ng-data-table';\nimport {TreeTableComponent} from './tree-table.component';\n\n@NgModule({\n imports: [\n CommonModule,\n DataTableModule,\n ],\n declarations: [\n TreeTableComponent,\n ],\n exports: [\n TreeTableComponent,\n ],\n providers: []\n})\nexport class TreeTableModule {}\n","import {\n Component, OnInit, OnDestroy, Input, ViewEncapsulation, HostBinding, ViewChild, TemplateRef,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport {TreeTable} from './tree-table';\nimport {Row} from '../ng-data-table';\nimport {Subscription} from 'rxjs';\nimport {TreeNode, TreeHelper} from '../tree';\n\n@Component({\n selector: 'app-tree-table',\n templateUrl: './tree-table.component.html',\n styleUrls: ['../styles/icons.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TreeTableComponent implements OnInit, OnDestroy {\n\n @Input() treeTable: TreeTable;\n\n @HostBinding('class.datatable') cssClass = true;\n @ViewChild('cellTemplate', {static: true}) cellTemplate: TemplateRef;\n\n private subscriptions: Subscription[] = [];\n\n constructor() {}\n\n ngOnInit() {\n const index = this.treeTable.settings.selectionMode ? 1 : 0;\n this.treeTable.columns[index].cellTemplate = this.cellTemplate;\n this.initGetNodes();\n\n const subCheckbox = this.treeTable.events.checkboxSource$.subscribe((event) => {\n this.treeTable.selectionToggle(event);\n });\n this.subscriptions.push(subCheckbox);\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(s => s.unsubscribe());\n }\n\n initGetNodes() {\n this.treeTable.events.onLoading(true);\n this.treeTable.tree.initLoadNodes()\n .then(() => {\n this.treeTable.flatten();\n })\n .finally(() => { this.treeTable.events.onLoading(false); });\n }\n\n onExpand(node: TreeNode) {\n node.expanded = !node.expanded;\n if (node.expanded) {\n node.$$loading = true;\n this.treeTable.tree.loadNode(node)\n .then(() => {\n this.treeTable.flatten();\n })\n .finally(() => { node.$$loading = false; });\n } else {\n this.treeTable.flatten();\n }\n }\n\n getExpanderIcon(node: TreeNode) {\n return TreeHelper.getExpanderIcon(node);\n }\n\n getIcon(node: TreeNode) {\n if (this.treeTable.getIconFunc) {\n return this.treeTable.getIconFunc(node);\n } else {\n return node.icon;\n }\n }\n\n paddingIndent(row: Row): number {\n return row.$$level * this.treeTable.indent;\n }\n\n}\n","import {DataTable, ColumnBase, Settings, Row} from '../ng-data-table/base';\nimport {Tree, TreeNode, TreeDataSource, TreeFlattener} from '../tree';\nimport {DtMessages} from '../dt-translate';\n\nexport class TreeTable extends DataTable {\n\n get service(): TreeDataSource { return this.tree.service; }\n set service(val: TreeDataSource) {\n this.tree.service = val;\n }\n\n get nodes(): TreeNode[] { return this.tree.nodes; }\n set nodes(val: TreeNode[]) {\n this.tree.nodes = val;\n this.flatten();\n }\n\n set serverSideFiltering(val: boolean) {\n this.tree.serverSideFiltering = val;\n }\n\n get filterLoading(): boolean {\n return this.tree.filterLoading;\n }\n\n getIconFunc: (node?: TreeNode) => string;\n indent: number = 10;\n readonly tree: Tree;\n private readonly treeFlattener: TreeFlattener;\n\n constructor(columns: ColumnBase[], settings: Settings, dataSource: TreeDataSource, messages?: DtMessages) {\n super(columns, settings, messages);\n this.tree = new Tree();\n this.tree.service = dataSource;\n this.treeFlattener = new TreeFlattener(this.transformer);\n this.pager.pageSizeOptions = [];\n }\n\n transformer = (node: TreeNode, level: number) => {\n const data = {\n expandable: !!node.expanded,\n $$level: level,\n node,\n };\n return Object.assign(data, node.data);\n }\n\n flatten() {\n this.rows = this.treeFlattener.flattenNodes(this.nodes);\n this.events.onRowsChanged();\n }\n\n getDescendants(row: Row) {\n const results = [];\n for (let i = row.$$index + 1; i < this.rows.length && row.$$level < this.rows[i].$$level; i++) {\n results.push(this.rows[i]);\n }\n return results;\n }\n\n selectionToggle(row: Row): void {\n let descendants = this.getDescendants(row);\n descendants = descendants.map(x => x.$$index);\n this.selection.isSelected(row.$$index)\n ? this.selection.select(...descendants)\n : this.selection.deselect(...descendants);\n }\n\n}\n","export * from './notify-module';\nexport {NotifyService} from './notify.service';\n","import {\n Component, Input, Output, EventEmitter, ChangeDetectionStrategy, AfterViewInit, OnDestroy, HostBinding\n} from '@angular/core';\nimport { Message } from './types';\n\n@Component({\n selector: 'app-notify-item',\n template: `\n
{{message?.title}}
\n
{{message?.text}}
\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NotifyItemComponent implements AfterViewInit, OnDestroy {\n\n @Input() message: Message;\n @Input() index: number;\n @Output() closeNotify: EventEmitter = new EventEmitter();\n\n timeout: any;\n\n @HostBinding('class')\n get cssClass(): string {\n let cls = 'dt-notify-item';\n cls += (this.message.severity) ? ' dt-notify-' + this.message.severity : ' dt-notify-notify';\n return cls;\n }\n\n constructor() { }\n\n ngAfterViewInit() {\n this.initTimeout();\n }\n\n ngOnDestroy() {\n this.clearTimeout();\n }\n\n initTimeout() {\n if (!this.message.sticky) {\n this.timeout = setTimeout(() => {\n this.closeNotify.emit(this.index);\n }, this.message.life || 3000);\n }\n }\n\n clearTimeout() {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n }\n\n onCloseClick() {\n this.clearTimeout();\n this.closeNotify.emit(this.index);\n }\n\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {NotifyComponent} from './notify.component';\nimport {NotifyItemComponent} from './notify-item.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n NotifyComponent,\n NotifyItemComponent,\n ],\n exports: [\n NotifyComponent,\n ],\n providers: []\n})\nexport class NotifyModule {}\n","module.exports = \".dt-notify-container {\\n display: block;\\n position: fixed;\\n z-index: 1000;\\n}\\n\\n.dt-notify-container.dt-n-top-right {\\n right: 10px;\\n top: 10px;\\n}\\n\\n.dt-notify-container.dt-n-top-left {\\n top: 10px;\\n left: 10px;\\n}\\n\\n.dt-notify-container.dt-n-bottom-right {\\n bottom: 10px;\\n right: 10px;\\n}\\n\\n.dt-notify-container.dt-n-bottom-left {\\n bottom: 10px;\\n left: 10px;\\n}\\n\\n.dt-notify-container.dt-n-center {\\n top: 50%;\\n left: 50%;\\n -ms-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n}\\n\\n.dt-notify-container .dt-n-close {\\n position: absolute;\\n top: 5px;\\n right: 10px;\\n width: 15px;\\n height: 15px;\\n padding: 2px;\\n cursor: pointer;\\n}\\n\\n.dt-notify-container .dt-n-close:before,\\n.dt-notify-container .dt-n-close:after {\\n content: '';\\n position: absolute;\\n width: 100%;\\n top: 50%;\\n height: 2px;\\n background: #fff;\\n}\\n\\n.dt-notify-container .dt-n-close:before {\\n -ms-transform: rotate(45deg);\\n transform: rotate(45deg);\\n}\\n\\n.dt-notify-container .dt-n-close:after {\\n -ms-transform: rotate(-45deg);\\n transform: rotate(-45deg);\\n}\\n\\n.dt-notify-item {\\n display: block;\\n width: 20em;\\n padding: 15px;\\n position: relative;\\n border-radius: 5px;\\n margin-bottom: 15px;\\n opacity: 0.75;\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.Alpha(Opacity=75)\\\";\\n filter: alpha(opacity=75);\\n}\\n\\n.dt-notify-item:hover {\\n opacity: 1;\\n}\\n\\n.dt-notify-title {\\n font-weight: bold;\\n}\\n\\n.dt-notify-info {\\n background: #3498db;\\n color: #fff;\\n}\\n\\n.dt-notify-success {\\n background: #2ecc71;\\n color: #fff;\\n}\\n\\n.dt-notify-error {\\n background: #e74c3c;\\n color: #fff;\\n}\\n\\n.dt-notify-warning {\\n background: #f39c12;\\n color: #fff;\\n}\\n\\n.dt-notify-notify {\\n background: #333;\\n color: #fff;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9ub3RpZnkvbm90aWZ5LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxjQUFjO0lBQ2QsZUFBZTtJQUNmLGFBQWE7QUFDakI7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsU0FBUztBQUNiOztBQUVBO0lBQ0ksU0FBUztJQUNULFVBQVU7QUFDZDs7QUFFQTtJQUNJLFlBQVk7SUFDWixXQUFXO0FBQ2Y7O0FBRUE7SUFDSSxZQUFZO0lBQ1osVUFBVTtBQUNkOztBQUVBO0lBQ0ksUUFBUTtJQUNSLFNBQVM7SUFDVCxvQ0FBZ0M7UUFBaEMsZ0NBQWdDO0FBQ3BDOztBQUVBO0lBQ0ksa0JBQWtCO0lBQ2xCLFFBQVE7SUFDUixXQUFXO0lBQ1gsV0FBVztJQUNYLFlBQVk7SUFDWixZQUFZO0lBQ1osZUFBZTtBQUNuQjs7QUFFQTs7SUFFSSxXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxRQUFRO0lBQ1IsV0FBVztJQUNYLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUdJLDRCQUF3QjtRQUF4Qix3QkFBd0I7QUFDNUI7O0FBRUE7SUFHSSw2QkFBeUI7UUFBekIseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksY0FBYztJQUNkLFdBQVc7SUFDWCxhQUFhO0lBQ2Isa0JBQWtCO0lBSWxCLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsYUFBYTtJQUNiLGlFQUFpRTtJQUNqRSx5QkFBeUI7QUFDN0I7O0FBRUE7SUFDSSxVQUFVO0FBQ2Q7O0FBRUE7SUFDSSxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxtQkFBbUI7SUFDbkIsV0FBVztBQUNmOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLFdBQVc7QUFDZjs7QUFFQTtJQUNJLG1CQUFtQjtJQUNuQixXQUFXO0FBQ2Y7O0FBRUE7SUFDSSxtQkFBbUI7SUFDbkIsV0FBVztBQUNmOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLFdBQVc7QUFDZiIsImZpbGUiOiJsaWIvbm90aWZ5L25vdGlmeS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmR0LW5vdGlmeS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAxMDAwO1xufVxuXG4uZHQtbm90aWZ5LWNvbnRhaW5lci5kdC1uLXRvcC1yaWdodCB7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgdG9wOiAxMHB4O1xufVxuXG4uZHQtbm90aWZ5LWNvbnRhaW5lci5kdC1uLXRvcC1sZWZ0IHtcbiAgICB0b3A6IDEwcHg7XG4gICAgbGVmdDogMTBweDtcbn1cblxuLmR0LW5vdGlmeS1jb250YWluZXIuZHQtbi1ib3R0b20tcmlnaHQge1xuICAgIGJvdHRvbTogMTBweDtcbiAgICByaWdodDogMTBweDtcbn1cblxuLmR0LW5vdGlmeS1jb250YWluZXIuZHQtbi1ib3R0b20tbGVmdCB7XG4gICAgYm90dG9tOiAxMHB4O1xuICAgIGxlZnQ6IDEwcHg7XG59XG5cbi5kdC1ub3RpZnktY29udGFpbmVyLmR0LW4tY2VudGVyIHtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi5kdC1ub3RpZnktY29udGFpbmVyIC5kdC1uLWNsb3NlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1cHg7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgd2lkdGg6IDE1cHg7XG4gICAgaGVpZ2h0OiAxNXB4O1xuICAgIHBhZGRpbmc6IDJweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5kdC1ub3RpZnktY29udGFpbmVyIC5kdC1uLWNsb3NlOmJlZm9yZSxcbi5kdC1ub3RpZnktY29udGFpbmVyIC5kdC1uLWNsb3NlOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOiA1MCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLmR0LW5vdGlmeS1jb250YWluZXIgLmR0LW4tY2xvc2U6YmVmb3JlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5cbi5kdC1ub3RpZnktY29udGFpbmVyIC5kdC1uLWNsb3NlOmFmdGVyIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG59XG5cbi5kdC1ub3RpZnktaXRlbSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDIwZW07XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgLW1zLWJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBvcGFjaXR5OiAwLjc1O1xuICAgIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9NzUpXCI7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTc1KTtcbn1cblxuLmR0LW5vdGlmeS1pdGVtOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4uZHQtbm90aWZ5LXRpdGxlIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmR0LW5vdGlmeS1pbmZvIHtcbiAgICBiYWNrZ3JvdW5kOiAjMzQ5OGRiO1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4uZHQtbm90aWZ5LXN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6ICMyZWNjNzE7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi5kdC1ub3RpZnktZXJyb3Ige1xuICAgIGJhY2tncm91bmQ6ICNlNzRjM2M7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi5kdC1ub3RpZnktd2FybmluZyB7XG4gICAgYmFja2dyb3VuZDogI2YzOWMxMjtcbiAgICBjb2xvcjogI2ZmZjtcbn1cblxuLmR0LW5vdGlmeS1ub3RpZnkge1xuICAgIGJhY2tncm91bmQ6ICMzMzM7XG4gICAgY29sb3I6ICNmZmY7XG59XG4iXX0= */\"","import {\n Component, Input, ChangeDetectionStrategy, ChangeDetectorRef, ViewEncapsulation, OnDestroy, HostBinding\n} from '@angular/core';\nimport { NotifyService } from './notify.service';\nimport { Subscription } from 'rxjs';\nimport { Message, PositionType } from './types';\n\n@Component({\n selector: 'app-notify',\n template: `\n \n`,\n styleUrls: ['notify.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class NotifyComponent implements OnDestroy {\n\n @Input() position: PositionType;\n\n @HostBinding('class')\n get cssClass(): string {\n let cls = 'dt-notify-container';\n cls += (this.position) ? ' dt-n-' + this.position : ' dt-n-top-right';\n return cls;\n }\n\n messages: Message[] = [];\n subscription: Subscription;\n\n constructor(private cd: ChangeDetectorRef, private notifyService: NotifyService) {\n this.subscription = this.notifyService.getMessage().subscribe(message => {\n this.messages.push(message);\n this.cd.markForCheck();\n });\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n onCloseNotify(event) {\n this.messages.splice(event.index, 1);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { Message } from './types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotifyService {\n\n private subject = new Subject();\n\n sendMessage(message: Message) {\n this.subject.next(message);\n }\n\n clearMessage() {\n this.subject.next();\n }\n\n getMessage(): Observable {\n return this.subject.asObservable();\n }\n}\n","export * from './pagination-module';\nexport * from './pagination.component';\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {PaginationComponent} from './pagination.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n PaginationComponent,\n ],\n exports: [\n PaginationComponent,\n ],\n providers: []\n})\nexport class PaginationModule {}\n","module.exports = \".pagination {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n -ms-flex-pack: end;\\n justify-content: flex-end;/*Displays at the end*/\\n -ms-flex-align: center;\\n align-items: center;\\n min-height: 48px;\\n padding: 0 8px;\\n}\\n\\n.pagination-navigation {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-align: center;\\n align-items: center;\\n}\\n\\n.pagination-navigation a {\\n color: black;\\n padding: 5px 10px;\\n text-decoration: none;\\n border: 1px solid #ddd;\\n}\\n\\n.pagination-navigation a.active {\\n color: white;\\n pointer-events: none;\\n background-color: #1976D2; /*#5b9bd5;*/\\n border: 1px solid #1976D2; /*#5b9bd5;*/\\n}\\n\\n.pagination-navigation a:hover:not(.active) {\\n background-color: #ddd;\\n}\\n\\n.pagination-navigation a:first-child {\\n border-top-left-radius: 5px;\\n border-bottom-left-radius: 5px;\\n}\\n\\n.pagination-navigation a:last-child {\\n border-top-right-radius: 5px;\\n border-bottom-right-radius: 5px;\\n}\\n\\n.pagination-navigation a.disabled {\\n color: rgba(46, 64, 87, 0.4);\\n pointer-events: none;\\n}\\n\\n@media only screen and (max-width: 40.063em) {\\n .pagination-navigation a:first-child,\\n .pagination-navigation a:last-child {\\n position: absolute;\\n top: -9999px;\\n left: -9999px;\\n }\\n}\\n\\n@media only screen and (max-width: 30.063em) {\\n .pagination-navigation a {\\n position: absolute;\\n top: -9999px;\\n left: -9999px;\\n }\\n .pagination-navigation a.active,\\n .pagination-navigation a:first-of-type,\\n .pagination-navigation a:last-of-type,\\n .pagination-navigation a:nth-of-type(2),\\n .pagination-navigation a:nth-last-of-type(2){\\n position: initial;\\n top: initial;\\n left: initial;\\n }\\n}\\n\\n.pagination-range-label {\\n margin: 0 28px 0 20px;\\n}\\n\\n.pagination-range-label1 {\\n margin: 0 21px 0 0;\\n}\\n\\n.pagination-page-size select {\\n padding: 4px 4px;\\n color: #555;\\n background-color: #fff;\\n border: 1px solid #ccc;\\n border-radius: 4px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLG9CQUFhO0lBQWIsYUFBYTtJQUNiLG1CQUFlO1FBQWYsZUFBZTtJQUNmLGtCQUF5QjtRQUF6Qix5QkFBeUIsQ0FBQyxzQkFBc0I7SUFDaEQsc0JBQW1CO1FBQW5CLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsY0FBYztBQUNsQjs7QUFFQTtJQUNJLG9CQUFhO0lBQWIsYUFBYTtJQUNiLHNCQUFtQjtRQUFuQixtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLHFCQUFxQjtJQUNyQixzQkFBc0I7QUFDMUI7O0FBRUE7SUFDSSxZQUFZO0lBQ1osb0JBQW9CO0lBQ3BCLHlCQUF5QixFQUFFLFdBQVc7SUFDdEMseUJBQXlCLEVBQUUsV0FBVztBQUMxQzs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLDJCQUEyQjtJQUMzQiw4QkFBOEI7QUFDbEM7O0FBRUE7SUFDSSw0QkFBNEI7SUFDNUIsK0JBQStCO0FBQ25DOztBQUVBO0lBQ0ksNEJBQTRCO0lBQzVCLG9CQUFvQjtBQUN4Qjs7QUFFQTtFQUNFOztJQUVFLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osYUFBYTtFQUNmO0FBQ0Y7O0FBRUE7RUFDRTtJQUNFLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osYUFBYTtFQUNmO0VBQ0E7Ozs7O0lBS0UsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixhQUFhO0VBQ2Y7QUFDRjs7QUFFQTtJQUNJLHFCQUFxQjtBQUN6Qjs7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsc0JBQXNCO0VBQ3RCLHNCQUFzQjtFQUN0QixrQkFBa0I7QUFDcEIiLCJmaWxlIjoibGliL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnBhZ2luYXRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7LypEaXNwbGF5cyBhdCB0aGUgZW5kKi9cbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgcGFkZGluZzogMCA4cHg7XG59XG5cbi5wYWdpbmF0aW9uLW5hdmlnYXRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnBhZ2luYXRpb24tbmF2aWdhdGlvbiBhIHtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi5wYWdpbmF0aW9uLW5hdmlnYXRpb24gYS5hY3RpdmUge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk3NkQyOyAvKiM1YjliZDU7Ki9cbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMTk3NkQyOyAvKiM1YjliZDU7Ki9cbn1cblxuLnBhZ2luYXRpb24tbmF2aWdhdGlvbiBhOmhvdmVyOm5vdCguYWN0aXZlKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbn1cblxuLnBhZ2luYXRpb24tbmF2aWdhdGlvbiBhOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNXB4O1xufVxuXG4ucGFnaW5hdGlvbi1uYXZpZ2F0aW9uIGE6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNXB4O1xufVxuXG4ucGFnaW5hdGlvbi1uYXZpZ2F0aW9uIGEuZGlzYWJsZWQge1xuICAgIGNvbG9yOiByZ2JhKDQ2LCA2NCwgODcsIDAuNCk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDAuMDYzZW0pIHtcbiAgLnBhZ2luYXRpb24tbmF2aWdhdGlvbiBhOmZpcnN0LWNoaWxkLFxuICAucGFnaW5hdGlvbi1uYXZpZ2F0aW9uIGE6bGFzdC1jaGlsZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTk5OTlweDtcbiAgICBsZWZ0OiAtOTk5OXB4O1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzAuMDYzZW0pIHtcbiAgLnBhZ2luYXRpb24tbmF2aWdhdGlvbiBhIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtOTk5OXB4O1xuICAgIGxlZnQ6IC05OTk5cHg7XG4gIH1cbiAgLnBhZ2luYXRpb24tbmF2aWdhdGlvbiBhLmFjdGl2ZSxcbiAgLnBhZ2luYXRpb24tbmF2aWdhdGlvbiBhOmZpcnN0LW9mLXR5cGUsXG4gIC5wYWdpbmF0aW9uLW5hdmlnYXRpb24gYTpsYXN0LW9mLXR5cGUsXG4gIC5wYWdpbmF0aW9uLW5hdmlnYXRpb24gYTpudGgtb2YtdHlwZSgyKSxcbiAgLnBhZ2luYXRpb24tbmF2aWdhdGlvbiBhOm50aC1sYXN0LW9mLXR5cGUoMil7XG4gICAgcG9zaXRpb246IGluaXRpYWw7XG4gICAgdG9wOiBpbml0aWFsO1xuICAgIGxlZnQ6IGluaXRpYWw7XG4gIH1cbn1cblxuLnBhZ2luYXRpb24tcmFuZ2UtbGFiZWwge1xuICAgIG1hcmdpbjogMCAyOHB4IDAgMjBweDtcbn1cbi5wYWdpbmF0aW9uLXJhbmdlLWxhYmVsMSB7XG4gIG1hcmdpbjogMCAyMXB4IDAgMDtcbn1cblxuLnBhZ2luYXRpb24tcGFnZS1zaXplIHNlbGVjdCB7XG4gIHBhZGRpbmc6IDRweCA0cHg7XG4gIGNvbG9yOiAjNTU1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4iXX0= */\"","import {\r\n Component, Output, EventEmitter, Input, ChangeDetectionStrategy, HostBinding, ViewEncapsulation, OnChanges, SimpleChanges\r\n} from '@angular/core';\r\nimport { Keys } from '../common';\r\n\r\nexport class PageEvent {\r\n currentPage: number;\r\n perPage: number;\r\n perPageOrCurrPageChanged: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'app-pagination',\r\n templateUrl: 'pagination.component.html',\r\n styleUrls: ['pagination.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PaginationComponent implements OnChanges {\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.findElements('a', this.currentPage);\r\n }\r\n\r\n @Input() goMessage: string = 'Go';\r\n @Input() searchMessage: string = 'Go to Page:';\r\n\r\n @Input()\r\n get perPage(): number { return this._perPage; }\r\n set perPage(value: number) {\r\n this._perPage = value;\r\n this.pages = this.getPages();\r\n }\r\n private _perPage: number = 10;\r\n\r\n @Input()\r\n get totalItems(): number { return this._totalItems; }\r\n set totalItems(value: number) {\r\n this._totalItems = value;\r\n this.pages = this.getPages();\r\n }\r\n private _totalItems: number = 0;\r\n\r\n @Input()\r\n get currentPage(): number { return this._currentPage; }\r\n set currentPage(value: number) {\r\n const _previous = this._currentPage;\r\n this._currentPage = (value > this.totalPages()) ? this.totalPages() : (value || 1);\r\n\r\n if (_previous === this._currentPage || typeof _previous === 'undefined') {\r\n return;\r\n }\r\n this.pages = this.getPages();\r\n }\r\n private _currentPage: number = 1;\r\n\r\n //@Input()\r\n //get pageSizeOptions(): number[] { return this._pageSizeOptions; }\r\n //set pageSizeOptions(value: number[]) {\r\n // this._pageSizeOptions = (value || []).sort((a, b) => a - b);\r\n //}\r\n //private _pageSizeOptions: number[] = [];\r\n\r\n @Output() pageChanged = new EventEmitter();\r\n\r\n pages: number[];\r\n\r\n @HostBinding('class.pagination') cssClass = true;\r\n\r\n onKeyPressPageNum(page: number, event: KeyboardEvent) {\r\n if (event.which === Keys.ENTER) {\r\n this.setPage(page, event);\r\n }\r\n }\r\n\r\n //Function to be called for each page click\r\n setPage(page: number, event?: Event): void {//MouseEvent): void { // GO TO Page also included now - IMP\r\n //console.log(this.perPage)\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n\r\n if (event && event.target) {\r\n const target: any = event.target;\r\n target.blur();\r\n }\r\n if (page > 0 && page <= this.totalPages() && page !== this.currentPage) {\r\n this.currentPage = page;\r\n this.pageChanged.emit({ currentPage: this.currentPage, perPage: this.perPage, perPageOrCurrPageChanged: true } as PageEvent);\r\n }\r\n //console.log(this.currentPage)\r\n }\r\n\r\n //https://stackoverflow.com/questions/48422270/how-to-select-all-anchor-tags-with-specific-text-content-with-javascript\r\n findElements(tag, text) {\r\n var elements = document.getElementsByTagName(tag);\r\n //var found = [];\r\n for (var i = 0; i < elements.length; i++) {\r\n if (elements[i].innerText === text) {\r\n //found.push(elements[i]);\r\n elements[i].className += \" active\";//https://stackoverflow.com/questions/44165102/angular-toggle-active-class-on-only-button-the-current-clicked-button-not-usin\r\n }\r\n }\r\n\r\n //return found;\r\n }\r\n\r\n totalPages(): number {\r\n const totalPages = this.perPage < 1 ? 1 : Math.ceil(this.totalItems / this.perPage);\r\n return Math.max(totalPages || 0, 1);\r\n }\r\n\r\n getPages(): number[] {\r\n console.log\r\n const maxSize = 3;\r\n const pages: number[] = [];\r\n let startPage = 1;\r\n const totalPages = this.totalPages();\r\n let endPage = totalPages;\r\n\r\n if (maxSize < totalPages) {\r\n startPage = Math.max(this.currentPage - Math.floor(maxSize / 2), 1);\r\n endPage = startPage + maxSize - 1;\r\n\r\n if (endPage > totalPages) {\r\n endPage = totalPages;\r\n startPage = endPage - maxSize + 1;\r\n }\r\n }\r\n for (let num = startPage; num <= endPage; num++) {\r\n pages.push(num);\r\n }\r\n return pages;\r\n }\r\n\r\n getRangeLabel = (page: number, pageSize: number, length: number) => {\r\n if (length === 0 || pageSize === 0) { return `0 of ${length}`; }\r\n\r\n length = Math.max(length, 0);\r\n\r\n const startIndex = (page - 1) * pageSize;\r\n let newIndex = Math.min(parseInt(startIndex.toString()) + parseInt(pageSize.toString()), parseInt(length.toString()));//IMP = paseInt needed for addition of number type\r\n //console.log(newIndex)\r\n const endIndex = startIndex < length ?\r\n newIndex :\r\n parseInt(startIndex.toString()) + parseInt(pageSize.toString());\r\n //console.log(endIndex)\r\n return `${startIndex + 1} - ${endIndex} of ${length} results count`;\r\n }\r\n\r\n //onChangePageSize(pageSize: number) {\r\n // this.perPage = pageSize;\r\n // this.currentPage = 1;//start from the beginning but not from the page selected\r\n // this.pageChanged.emit({ currentPage: this.currentPage, perPage: this.perPage } as PageEvent);\r\n //}\r\n\r\n}\r\n","import { Pipe, PipeTransform, NgModule } from '@angular/core';\r\n\r\n@Pipe({ name: 'highlight' })\r\nexport class HighlightPipe implements PipeTransform {\r\n transform(text: string, search): string {\r\n const pattern = search\r\n .replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\")\r\n .split(' ')\r\n .filter(t => t.length > 0)\r\n .join('|');\r\n const regex = new RegExp(pattern, 'gi');\r\n const match = text.match(regex);\r\n if (!match) {\r\n return text;\r\n }\r\n return search ? text.replace(regex, match => `${match}`) : text;\r\n }\r\n}\r\n\r\n@NgModule({\r\n declarations: [HighlightPipe],\r\n exports: [HighlightPipe],\r\n})\r\nexport class HighlightPipeModule {}\r\n","import { Pipe, PipeTransform, NgModule } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'critDelim'\r\n})\r\nexport class CritDelimPipe implements PipeTransform {\r\n\r\n transform(critVal: string, saveOrDisplay: boolean, delimiterOrNot?): any {\r\n if (delimiterOrNot) {\r\n if (saveOrDisplay)\r\n return critVal.replace(/\\;/g, '~');\r\n else\r\n return critVal.replace(/\\~/g, ';');\r\n }\r\n else\r\n return critVal;\r\n }\r\n}\r\n\r\n@NgModule({\r\n declarations: [CritDelimPipe],\r\n exports: [CritDelimPipe],\r\n})\r\nexport class CritDelimPipeModule {}\r\n","import {Pipe, PipeTransform, NgModule} from '@angular/core';\n\n@Pipe({\n name: 'filterBy'\n})\nexport class FilterPipe implements PipeTransform {\n\n transform(array: any[], field: string, filter: string): any[] {\n if (!array || !field) {\n return array;\n }\n return array.filter(val =>\n val[field].toLowerCase().indexOf((filter || '').toLowerCase()) > -1);\n }\n}\n\n@NgModule({\n declarations: [FilterPipe],\n exports: [FilterPipe],\n})\nexport class FilterPipeModule {}\n","export * from './filter.pipe';\nexport * from './title.pipe';\nexport * from './order.pipe';\nexport * from './paginate.pipe';\nexport * from './maps.pipe';\nexport * from './critDelim.pipe';\nexport * from './Highlight.pipe';\n","import { Pipe, PipeTransform, NgModule } from '@angular/core';\r\n//https://www.c-sharpcorner.com/article/creating-custom-pipe-using-safehtml-in-angular-5/\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'customCssDevID'\r\n})\r\n\r\nexport class MapsPipe implements PipeTransform {\r\n\r\n constructor(private _sanitizer: DomSanitizer) { }\r\n\r\n transform(value: string): SafeHtml {\r\n\r\n //let devIDValue = 'All Devices';\r\n let devIDValue = 'All Devices';\r\n\r\n if (value == undefined || value == null || value == '') {\r\n //return this._sanitizer.bypassSecurityTrustHtml(devIDValue);\r\n return devIDValue;\r\n }\r\n else {\r\n //return this._sanitizer.bypassSecurityTrustHtml(value);\r\n return value;\r\n }\r\n }\r\n} \r\n\r\n\r\n@NgModule({\r\n declarations: [MapsPipe],\r\n exports: [MapsPipe],\r\n})\r\nexport class MapsPipeModule {}\r\n","import {Pipe, PipeTransform, NgModule} from '@angular/core';\n\n@Pipe({\n name: 'orderBy',\n pure: false\n})\nexport class OrderPipe implements PipeTransform {\n\n transform(array: any[], field: string, reverse?: boolean): any[] {\n if (!array || !field) {\n return array;\n }\n array.sort((a, b) => (a[field] > b[field]) ? 1 : (a[field] < b[field]) ? -1 : 0);\n return (reverse === false) ? array.reverse() : array;\n }\n}\n\n@NgModule({\n declarations: [OrderPipe],\n exports: [OrderPipe],\n})\nexport class OrderPipeModule {}\n","import {Pipe, PipeTransform, NgModule} from '@angular/core';\nimport {arrayPaginate} from '../common/utils';\n\n@Pipe({\n name: 'paginate'\n})\nexport class PaginatePipe implements PipeTransform {\n\n transform(array: any[], itemsPerPage: number, currentPage: number): any[] {\n return arrayPaginate(array, currentPage, itemsPerPage);\n }\n}\n\n@NgModule({\n declarations: [PaginatePipe],\n exports: [PaginatePipe],\n})\nexport class PaginatePipeModule {}\n","import { Pipe, PipeTransform, NgModule } from '@angular/core';\r\n//https://stackoverflow.com/questions/49432789/angular-translate-using-replace-in-an-interpolation-string-in-html?rq=1\r\n\r\n@Pipe({\r\n name: 'titleReplace'\r\n})\r\nexport class TitlePipe implements PipeTransform {\r\n\r\n transform(title: string): any {\r\n //https://stackoverflow.com/questions/9823718/replace-forward-slash-character-in-javascript-string\r\n //https://stackoverflow.com/questions/15604140/replace-multiple-strings-with-multiple-other-strings\r\n //console.log(title.replace(/\\//g, '').replace(//gi, '').replace(/
/gi, ' '))\r\n return title.replace(/\\//g, '').replace(//gi, '').replace(/
/gi, ' ');\r\n }\r\n}\r\n\r\n@NgModule({\r\n declarations: [TitlePipe],\r\n exports: [TitlePipe],\r\n})\r\nexport class TitlePipeModule {}\r\n","export * from './resizable-module';\nexport * from './resizable.directive';\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ResizableDirective} from './resizable.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n ResizableDirective,\n ],\n exports: [\n ResizableDirective,\n ],\n providers: []\n})\nexport class ResizableModule {}\n","module.exports = \".resize-handle-e {\\n position: absolute;\\n cursor: e-resize;\\n height: 100%;\\n width: 7px;\\n right: -5px;\\n top: 0;\\n background-color: #728BB4;\\n}\\n\\n.resize-handle-se {\\n position: absolute;\\n cursor: se-resize;\\n height: 15px;\\n width: 15px;\\n right: 0;\\n bottom: 0;\\n background-color: #728BB4;\\n}\\n\\n.resize-handle-s {\\n position: absolute;\\n cursor: s-resize;\\n height: 7px;\\n width: 100%;\\n bottom: -5px;\\n left: 0;\\n background-color: #728BB4;\\n}\\n\\n.resizing {\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9yZXNpemFibGUvcmVzaXphYmxlLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsWUFBWTtFQUNaLFVBQVU7RUFDVixXQUFXO0VBQ1gsTUFBTTtFQUNOLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsWUFBWTtFQUNaLFdBQVc7RUFDWCxRQUFRO0VBQ1IsU0FBUztFQUNULHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLFdBQVc7RUFDWCxZQUFZO0VBQ1osT0FBTztFQUNQLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QixzQkFBaUI7R0FBakIscUJBQWlCO09BQWpCLGlCQUFpQjtBQUNuQiIsImZpbGUiOiJsaWIvcmVzaXphYmxlL3Jlc2l6YWJsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucmVzaXplLWhhbmRsZS1lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjdXJzb3I6IGUtcmVzaXplO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiA3cHg7XG4gIHJpZ2h0OiAtNXB4O1xuICB0b3A6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MjhCQjQ7XG59XG5cbi5yZXNpemUtaGFuZGxlLXNlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjdXJzb3I6IHNlLXJlc2l6ZTtcbiAgaGVpZ2h0OiAxNXB4O1xuICB3aWR0aDogMTVweDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzcyOEJCNDtcbn1cblxuLnJlc2l6ZS1oYW5kbGUtcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY3Vyc29yOiBzLXJlc2l6ZTtcbiAgaGVpZ2h0OiA3cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBib3R0b206IC01cHg7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MjhCQjQ7XG59XG5cbi5yZXNpemluZyB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuIl19 */\"","import {\n Directive, ElementRef, HostListener, Input, Output, EventEmitter, OnDestroy, AfterViewInit\n} from '@angular/core';\nimport {Subscription, fromEvent} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {isLeftButton, getEvent} from '../common/utils';\n\nexport interface ResizableEvent {\n width: number;\n height: number;\n event?: MouseEvent | Touch;\n direction?: 'horizontal' | 'vertical';\n}\n\n@Directive({\n selector: '[appResizable]'\n})\nexport class ResizableDirective implements OnDestroy, AfterViewInit {\n\n @Input() south: boolean;\n @Input() east: boolean;\n @Input() southEast: boolean;\n @Input() minWidth: number;\n @Input() maxWidth: number;\n @Input() ghost: boolean;\n @Input() minHeight: number;\n @Input() maxHeight: number;\n\n @Output() resizeBegin: EventEmitter = new EventEmitter();\n @Output() resizing: EventEmitter = new EventEmitter();\n @Output() resizeEnd: EventEmitter = new EventEmitter();\n\n element: HTMLElement;\n private subscription: Subscription;\n private newWidth: number;\n private newHeight: number;\n private resizingS: boolean; // south\n private resizingE: boolean; // east\n private resizingSE: boolean; // south-east\n\n constructor(element: ElementRef) {\n this.element = element.nativeElement;\n }\n\n ngAfterViewInit(): void {\n if (this.south) {\n this.createHandle('resize-handle-s');\n }\n if (this.east) {\n this.createHandle('resize-handle-e');\n }\n if (this.southEast) {\n this.createHandle('resize-handle-se');\n }\n }\n\n ngOnDestroy(): void {\n this.destroySubscription();\n }\n\n @HostListener('mousedown', ['$event'])\n @HostListener('touchstart', ['$event'])\n onMousedown(event: MouseEvent | TouchEvent): void {\n if (!isLeftButton(event)) {\n return;\n }\n const classList = ((event.target) as HTMLElement).classList;\n const isSouth = classList.contains('resize-handle-s');\n const isEast = classList.contains('resize-handle-e');\n const isSouthEast = classList.contains('resize-handle-se');\n\n const evt = getEvent(event);\n const width = this.element.clientWidth;\n const height = this.element.clientHeight;\n const screenX = evt.screenX;\n const screenY = evt.screenY;\n\n const isTouchEvent = event.type.startsWith('touch');\n const moveEvent = isTouchEvent ? 'touchmove' : 'mousemove';\n const upEvent = isTouchEvent ? 'touchend' : 'mouseup';\n\n if (isSouth || isEast || isSouthEast) {\n this.initResize(event, isSouth, isEast, isSouthEast);\n\n const mouseup = fromEvent(document, upEvent);\n this.subscription = mouseup\n .subscribe((ev: MouseEvent | TouchEvent) => this.onMouseup(ev));\n\n const mouseMoveSub = fromEvent(document, moveEvent)\n .pipe(takeUntil(mouseup))\n .subscribe((e: MouseEvent | TouchEvent) => this.move(e, width, height, screenX, screenY));\n\n this.subscription.add(mouseMoveSub);\n }\n }\n\n move(event: MouseEvent | TouchEvent, width: number, height: number, screenX: number, screenY: number): void {\n const evt = getEvent(event);\n const movementX = evt.screenX - screenX;\n const movementY = evt.screenY - screenY;\n this.newWidth = width + movementX;\n this.newHeight = height + movementY;\n this.resizeWidth(evt);\n this.resizeHeight(evt);\n }\n\n onMouseup(event: MouseEvent | TouchEvent): void {\n this.endResize(event);\n this.destroySubscription();\n }\n\n private destroySubscription() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n this.subscription = undefined;\n }\n }\n\n private createHandle(edgeClass: string) {\n const node = document.createElement('span');\n node.className = edgeClass;\n this.element.appendChild(node);\n }\n\n initResize(event: MouseEvent | TouchEvent, isSouth: boolean, isEast: boolean, isSouthEast: boolean) {\n if (isSouth) {\n this.resizingS = true;\n }\n if (isEast) {\n this.resizingE = true;\n }\n if (isSouthEast) {\n this.resizingSE = true;\n }\n this.element.classList.add('resizing');\n this.newWidth = this.element.clientWidth;\n this.newHeight = this.element.clientHeight;\n\n event.stopPropagation();\n this.resizeBegin.emit();\n }\n\n endResize(event: MouseEvent | TouchEvent) {\n this.resizingS = false;\n this.resizingE = false;\n this.resizingSE = false;\n this.element.classList.remove('resizing');\n this.resizeEnd.emit({ event: getEvent(event), width: this.newWidth, height: this.newHeight });\n }\n\n resizeWidth(event: MouseEvent | Touch) {\n const overMinWidth = !this.minWidth || this.newWidth >= this.minWidth;\n const underMaxWidth = !this.maxWidth || this.newWidth <= this.maxWidth;\n\n if (this.resizingSE || this.resizingE) {\n if (overMinWidth && underMaxWidth) {\n if (!this.ghost) {\n this.element.style.width = `${this.newWidth}px`;\n }\n this.resizing.emit({ event, width: this.newWidth, height: this.newHeight, direction: 'horizontal' });\n }\n }\n }\n\n resizeHeight(event: MouseEvent | Touch) {\n const overMinHeight = !this.minHeight || this.newHeight >= this.minHeight;\n const underMaxHeight = !this.maxHeight || this.newHeight <= this.maxHeight;\n\n if (this.resizingSE || this.resizingS) {\n if (overMinHeight && underMaxHeight) {\n if (!this.ghost) {\n this.element.style.height = `${this.newHeight}px`;\n }\n this.resizing.emit({ event, width: this.newWidth, height: this.newHeight, direction: 'vertical' });\n }\n }\n }\n\n}\n","export * from './row-view-module';\nexport * from './row-view.component';\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {OrderPipeModule} from '../pipes';\nimport {RowViewComponent} from './row-view.component';\n\n@NgModule({\n imports: [\n CommonModule,\n OrderPipeModule,\n ],\n declarations: [\n RowViewComponent,\n ],\n exports: [\n RowViewComponent,\n ],\n providers: []\n})\nexport class RowViewModule {}\n","module.exports = \".dt-detail-view {\\n border-spacing: 0;\\n border-collapse: collapse;\\n width: 100%;\\n max-width: 100%;\\n margin-bottom: 20px;\\n}\\n\\n.dt-detail-view, .dt-detail-view th, .dt-detail-view td {\\n border: 1px solid #ddd;\\n}\\n\\n.dt-detail-view>tbody>tr:nth-of-type(odd) {\\n background-color: #f9f9f9;\\n}\\n\\n.dt-detail-view th, .dt-detail-view td {\\n padding: 8px;\\n line-height: 1.42857143;\\n vertical-align: top;\\n text-align: left;\\n}\\n\\n.dt-detail-view th.sortable {\\n cursor: pointer;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9yb3ctdmlldy9yb3ctdmlldy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCO0VBQ2pCLHlCQUF5QjtFQUN6QixXQUFXO0VBQ1gsZUFBZTtFQUNmLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLHlCQUF5QjtBQUMzQjs7QUFDQTtFQUNFLFlBQVk7RUFDWix1QkFBdUI7RUFDdkIsbUJBQW1CO0VBQ25CLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGVBQWU7QUFDakIiLCJmaWxlIjoibGliL3Jvdy12aWV3L3Jvdy12aWV3LmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZHQtZGV0YWlsLXZpZXcge1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLmR0LWRldGFpbC12aWV3LCAuZHQtZGV0YWlsLXZpZXcgdGgsIC5kdC1kZXRhaWwtdmlldyB0ZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi5kdC1kZXRhaWwtdmlldz50Ym9keT50cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbn1cbi5kdC1kZXRhaWwtdmlldyB0aCwgLmR0LWRldGFpbC12aWV3IHRkIHtcbiAgcGFkZGluZzogOHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmR0LWRldGFpbC12aWV3IHRoLnNvcnRhYmxlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuIl19 */\"","import {Component, Input, ChangeDetectionStrategy, ViewEncapsulation} from '@angular/core';\n\nexport interface KeyValuePair {\n key: string;\n value: any;\n}\n\n@Component({\n selector: 'app-row-view',\n templateUrl: './row-view.component.html',\n styleUrls: ['row-view.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class RowViewComponent {\n\n @Input() transposedData: KeyValuePair[];\n @Input() headerKeyMessage: string = 'Key';\n @Input() headerValueMessage: string = 'Value';\n\n order: string;\n reverse: boolean = true;\n\n constructor() {\n }\n\n setOrder(name: string) {\n if (this.order === name) {\n this.reverse = !this.reverse;\n }\n this.order = name;\n }\n\n isOrder(name: string) {\n return this.order === name && this.reverse;\n }\n\n isOrderReverse(name: string) {\n return this.order === name && !this.reverse;\n }\n\n}\n","export * from './scroller-module';\nexport * from './scroller.component';\nexport * from './types';\n","export class RowHeightCache {\n\n private cache: number[] = [];\n\n calcScrollLength(totalRecords: number) {\n return this.cache[totalRecords - 1];\n }\n\n initCache(rows: any[], rowHeightProp: string) {\n const size = rows.length;\n this.cache = new Array(size);\n for (let i = 0; i < size; ++i) {\n this.cache[i] = 0;\n }\n rows.forEach((row, i) => {\n for (let index = i; index < size; index++) {\n this.cache[index] += row[rowHeightProp];\n }\n });\n }\n\n calcRowIndex(offsetY: number): number {\n if (offsetY === 0) {\n return 0;\n }\n let pos = -1;\n const dataLength = this.cache.length;\n\n for (let i = dataLength; i >= 0; i--) {\n const nextPos = pos + i;\n if (nextPos < dataLength && offsetY >= this.cache[nextPos]) {\n offsetY -= this.cache[nextPos];\n pos = nextPos;\n }\n }\n return pos + 1;\n }\n\n getRowOffset(rowIndex: number) {\n if (rowIndex < 0) {\n return 0;\n }\n return this.cache[rowIndex];\n }\n\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport { ScrollerComponent } from './scroller.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n ScrollerComponent,\n ],\n exports: [\n ScrollerComponent,\n ],\n providers: []\n})\nexport class ScrollerModule {}\n","module.exports = \".dt-scroller {\\n display: block;\\n position: relative;\\n overflow: auto;\\n -webkit-overflow-scrolling: touch;\\n}\\n.dt-virtual-scroll {\\n contain: strict;\\n transform: translateZ(0);\\n will-change: scroll-position;\\n}\\n.dt-scrollable-content {\\n position: absolute;\\n top: 0;\\n left: 0;\\n contain: content;\\n}\\n.dt-total-padding {\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 1px;\\n width: 1px;\\n -ms-transform-origin: 0 0;\\n transform-origin: 0 0;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zY3JvbGxlci9zY3JvbGxlci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsY0FBYztFQUNkLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2QsaUNBQWlDO0FBQ25DO0FBQ0E7RUFDRSxlQUFlO0VBQ2Ysd0JBQXdCO0VBQ3hCLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxXQUFXO0VBQ1gsVUFBVTtFQUNWLHlCQUFxQjtNQUFyQixxQkFBcUI7QUFDdkIiLCJmaWxlIjoibGliL3Njcm9sbGVyL3Njcm9sbGVyLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZHQtc2Nyb2xsZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuLmR0LXZpcnR1YWwtc2Nyb2xsIHtcbiAgY29udGFpbjogc3RyaWN0O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gIHdpbGwtY2hhbmdlOiBzY3JvbGwtcG9zaXRpb247XG59XG4uZHQtc2Nyb2xsYWJsZS1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGNvbnRhaW46IGNvbnRlbnQ7XG59XG4uZHQtdG90YWwtcGFkZGluZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDFweDtcbiAgd2lkdGg6IDFweDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xufVxuIl19 */\"","import {\r\n Component, Input, Output, EventEmitter, HostBinding, ElementRef, OnChanges, SimpleChanges, OnDestroy, OnInit, ViewChild,\r\n ViewEncapsulation, NgZone, ChangeDetectionStrategy, ChangeDetectorRef\r\n} from '@angular/core';\r\nimport {RowHeightCache} from './row-height-cache';\r\nimport {ScrollerEventArgs} from './types';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\n\r\n@Component({\r\n selector: 'app-scroller, [scroller]',\r\n templateUrl: './scroller.component.html',\r\n styleUrls: ['./scroller.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ScrollerComponent implements OnInit, OnDestroy {\r\n\r\n @Input()\r\n get items(): any[] { return this._items; }\r\n set items(val: any[]) {\r\n //console.log(val)\r\n //console.log('reset2')\r\n this.totalItemsLength = 0;\r\n this.addRowsCnt = 1;\r\n this.nextSetStartIndex = 0;\r\n\r\n this._items = val;\r\n this.viewRowsMain.next(val);\r\n if (this.virtualScroll) {\r\n this.resetPosition();\r\n this.chunkRows(true);\r\n }\r\n }\r\n private _items: any[];\r\n\r\n @Input() virtualScroll: boolean;\r\n @Input() rowHeight: number;\r\n @Input() itemsPerRow: number = 20;\r\n @Input() rowHeightProp: string;\r\n\r\n @HostBinding('style.height.px')\r\n @Input() scrollHeight: number;\r\n\r\n @HostBinding('style.width.px')\r\n @Input() scrollWidth: number;\r\n\r\n @Input() itemsRest: any[];\r\n totalItemsLength = 0;\r\n\r\n @Output() scrollChange: EventEmitter = new EventEmitter();\r\n\r\n @HostBinding('class.dt-scroller') cssClass = true;\r\n @HostBinding('class.dt-virtual-scroll')\r\n get isVirtualScroll(): boolean {\r\n return this.virtualScroll;\r\n }\r\n\r\n @ViewChild('content', {static: false}) content: ElementRef;\r\n\r\n private viewRowsMain = new Subject();\r\n viewRowsMain$ = this.viewRowsMain.asObservable();\r\n get viewRows(): any[] {\r\n return (this.virtualScroll) ? this._viewRows : this.items;\r\n }\r\n set viewRows(val: any[]) {\r\n this._viewRows = val;\r\n }\r\n private _viewRows: any[];\r\n\r\n scrollYPos: number = 0;\r\n scrollXPos: number = 0;\r\n prevScrollYPos: number = 0;\r\n prevScrollXPos: number = 0;\r\n element: HTMLElement;\r\n scrollLength: number;\r\n start: number;\r\n end: number;\r\n private previousStart: number;\r\n private previousEnd: number;\r\n private rowHeightCache: RowHeightCache = new RowHeightCache();\r\n private scrollListener: any;\r\n\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(private cd: ChangeDetectorRef, element: ElementRef, private ngZone: NgZone, private commonFilterService: CommonFilterService) {\r\n this.element = element.nativeElement;\r\n }\r\n\r\n ngOnInit() {\r\n \r\n this.ngZone.runOutsideAngular(() => {\r\n this.scrollListener = this.onScrolled.bind(this);\r\n this.element.addEventListener('scroll', this.scrollListener);\r\n });\r\n\r\n //if (this.items.length < this.itemsPerRow) { //IMP -SUSHEEL\r\n // for (let i = this.items.length; i < this.itemsPerRow; i++)\r\n // this.scrollHeight -= this.rowHeight;\r\n //}\r\n const _broadSubRefresh = this.commonFilterService.componentMethodCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log('changed')\r\n this.refreshed = true;\r\n\r\n this.totalItemsLength = 0;\r\n this.addRowsCnt = 1;\r\n this.nextSetStartIndex = 0;\r\n }\r\n );\r\n this.subscriptions.push(_broadSubRefresh);\r\n }\r\n\r\n //ngOnChanges(changes: SimpleChanges) {\r\n ////Do Refresh\r\n //this.commonFilterService.componentMethodCalled$.subscribe(\r\n // //() => {\r\n // // alert('(Component2) Method called!');\r\n // //}\r\n\r\n // res => {\r\n // this.items = [];\r\n // this.viewRows = [];\r\n // this.viewRowsMain.next([]);\r\n // }\r\n //);\r\n \r\n //}\r\n\r\n ngOnDestroy() {\r\n this.element.removeEventListener('scroll', this.scrollListener);\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n refreshed = false;\r\n onScrolled(event: MouseEvent) {\r\n\r\n if (!this.refreshed) {\r\n this.chuckRowsMain();\r\n const dom: Element = event.currentTarget as Element;\r\n this.scrollYPos = dom.scrollTop;\r\n this.scrollXPos = dom.scrollLeft;\r\n\r\n let direction = null;\r\n if (this.scrollYPos < this.prevScrollYPos) {\r\n direction = 'up';\r\n } else if (this.scrollYPos > this.prevScrollYPos) {\r\n direction = 'down';\r\n }\r\n\r\n if (this.prevScrollYPos !== this.scrollYPos || this.prevScrollXPos !== this.scrollXPos) {\r\n if (direction && this.virtualScroll) {\r\n this.chunkRows();\r\n let topPadding = this.rowHeight * this.start;\r\n if (this.rowHeightProp) {\r\n topPadding = this.rowHeightCache.getRowOffset(this.start - 1);\r\n }\r\n this.ngZone.runOutsideAngular(() => {\r\n requestAnimationFrame(() => {\r\n this.content.nativeElement.style.transform = `translateY(${topPadding}px)`;\r\n });\r\n });\r\n }\r\n\r\n this.scrollChange.emit({\r\n direction,\r\n scrollYPos: this.scrollYPos,\r\n scrollXPos: this.scrollXPos\r\n });\r\n this.prevScrollYPos = this.scrollYPos;\r\n this.prevScrollXPos = this.scrollXPos;\r\n }\r\n }\r\n else {\r\n this.refreshed = false;\r\n //this.items = [];\r\n }\r\n }\r\n\r\n setOffsetY(offsetY: number) {\r\n if (this.element) {\r\n this.element.scrollTop = offsetY;\r\n }\r\n }\r\n\r\n setPageOffsetY(page: number) {\r\n const rowIndex = this.itemsPerRow * (page - 1);\r\n let offset = 0;\r\n if (this.rowHeightProp) {\r\n offset = this.rowHeightCache.getRowOffset(rowIndex - 1);\r\n } else {\r\n offset = this.rowHeight * rowIndex;\r\n }\r\n this.setOffsetY(offset);\r\n }\r\n\r\n private calculateDimensions() {\r\n if (this.rowHeightProp) {\r\n this.rowHeightCache.initCache(this.items, this.rowHeightProp);\r\n }\r\n if (this.items && this.items.length) {\r\n const totalRecords = this.items.length;\r\n if (this.rowHeightProp) {\r\n this.scrollLength = this.rowHeightCache.calcScrollLength(totalRecords);\r\n } else {\r\n this.scrollLength = this.rowHeight * totalRecords;\r\n }\r\n }\r\n if (this.scrollHeight && this.rowHeight) {\r\n this.itemsPerRow = Math.round(this.scrollHeight / this.rowHeight);\r\n } else {\r\n this.scrollHeight = this.itemsPerRow * this.rowHeight;\r\n if (this.scrollHeight > 0) {\r\n this.scrollHeight -= this.rowHeight; // for lazy load\r\n }\r\n }\r\n }\r\n\r\n //rows: any[];\r\n addRowsCnt = 1;\r\n nextSetStartIndex = 0;\r\n chuckRowsMain() {\r\n //console.log(this.items)\r\n //console.log(this.itemsRest)\r\n //console.log(this.items.length)\r\n //console.log(this.itemsRest.length)\r\n //console.log(this.totalItemsLength)\r\n //if (this.items.length == 0 && this.itemsRest.length == 0) {\r\n // this.totalItemsLength = 0;\r\n // this.addRowsCnt = 1;\r\n // this.nextSetStartIndex = 0;\r\n // console.log('reset')\r\n //}\r\n if (this.totalItemsLength == 0 && this.itemsRest.length > 0) {\r\n //console.log('reset1')\r\n this.totalItemsLength = this.items.length + this.itemsRest.length;\r\n }\r\n //console.log(this.totalItemsLength)\r\n if (this.items.length < this.totalItemsLength) {\r\n let sliced = [];\r\n let nextTwentySet = (this.addRowsCnt * 20) + 1;\r\n //console.log(this.nextSetStartIndex)\r\n //console.log(nextTwentySet)\r\n if (nextTwentySet < this.itemsRest.length) {\r\n //https://stackoverflow.com/questions/3580239/javascript-array-get-range-of-items\r\n if (this.itemsRest.length < (nextTwentySet + 20))\r\n sliced = this.itemsRest.slice(this.nextSetStartIndex, this.itemsRest.length);\r\n else\r\n sliced = this.itemsRest.slice(this.nextSetStartIndex, nextTwentySet);\r\n\r\n this.nextSetStartIndex = nextTwentySet;\r\n this.addRowsCnt++;\r\n }\r\n else {\r\n this.nextSetStartIndex = (this.addRowsCnt * 20) + 1;\r\n sliced = this.itemsRest;//.slice(this.nextSetStartIndex, this.itemsRest.length);\r\n //console.log(this.nextSetStartIndex)\r\n //console.log(this.itemsRest.length)\r\n }\r\n\r\n sliced.forEach((row, i) => {\r\n this.items.push(row);\r\n });\r\n //console.log(this.items)\r\n\r\n //console.log(this.items.length)\r\n this.viewRowsMain.next(this.items);\r\n //this.cd.detectChanges();\r\n }\r\n }\r\n\r\n chunkRows(force: boolean = false) {\r\n this.calculateDimensions();\r\n const totalRecords = this.items.length;\r\n if (this.rowHeightProp) {\r\n this.start = this.rowHeightCache.calcRowIndex(this.scrollYPos);\r\n } else {\r\n this.start = Math.floor(this.scrollYPos / this.rowHeight);\r\n }\r\n this.end = Math.min(totalRecords, this.start + this.itemsPerRow + 1);\r\n if ((this.end - this.start) < this.itemsPerRow) {\r\n this.start = totalRecords - this.itemsPerRow - 1;\r\n this.end = totalRecords;\r\n }\r\n\r\n if (this.start !== this.previousStart || this.end !== this.previousEnd || force === true) {\r\n const virtualRows = this.items.slice(this.start, this.end);\r\n this.previousStart = this.start;\r\n this.previousEnd = this.end;\r\n this.viewRows = virtualRows;\r\n }\r\n }\r\n\r\n resetPosition() {\r\n this.start = 0;\r\n this.end = 0;\r\n this.previousStart = 0;\r\n this.previousEnd = 0;\r\n }\r\n\r\n}\r\n","export * from './select-list-module';\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\n\nimport {FilterPipeModule} from '../pipes';\nimport {SelectListComponent} from './select-list.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FilterPipeModule,\n ],\n declarations: [\n SelectListComponent,\n ],\n exports: [\n SelectListComponent,\n ],\n providers: []\n})\nexport class SelectListModule {}\n","import {\n Component, Input, Output, EventEmitter, OnInit, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, AfterViewInit\n} from '@angular/core';\nimport {SelectItem} from '../common';\n\n@Component({\n selector: 'app-select-list',\n templateUrl: 'select-list.component.html',\n styleUrls: [\n '../styles/checkbox.css',\n '../styles/list-menu.css',\n '../styles/input.css',\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectListComponent implements OnInit, AfterViewInit {\n topSearchDisplay = false;//IMP\n\n @Input() mainScreenFilters = false;\n @Input() options: SelectItem[];\n @Input() multiple: boolean;\n @Input() selectAllMessage: string;\n @Input() cancelMessage: string;\n @Input() clearMessage: string;\n @Input() searchMessage: string;\n\n //IMP - Added to remove button if only list box needed\n @Input() okDisplay: boolean = false;\n @Input() cancelDisplay: boolean = true;\n @Input() clearDisplay: boolean = true;\n\n @Input() listItemWidth: number = 100;\n\n @Input('selected')\n get model(): any[] { return this._model; }\n set model(val: any[]) {\n this._model = val;\n this.selectedOptions = (val && val.length) ? val.slice(0) : [];\n }\n private _model: any[] = [];\n\n @Input()\n get isOpen(): boolean { return this._isOpen; }\n set isOpen(val: boolean) {\n this._isOpen = val;\n if (val === true) {\n this.setFocus();\n this.searchFilterText = null;\n }\n }\n private _isOpen: boolean;\n\n @Output() selectionChange: EventEmitter = new EventEmitter();\n @Output() selectionCancel: EventEmitter = new EventEmitter();\n\n @ViewChild('filterInput', {static: false}) filterInput: any;\n searchFilterText: string = null;\n private selectedOptions: any[] = [];\n\n constructor() {\n }\n\n ngOnInit() {\n this.selectAllMessage = this.selectAllMessage || 'Select all';\n this.cancelMessage = this.cancelMessage || 'Cancel';\n this.clearMessage = this.clearMessage || 'Clear';\n this.searchMessage = this.searchMessage || 'Search...';\n }\n\n ngAfterViewInit() {\n this.setFocus();\n }\n\n setSelectedOptions(value: any) {\n const index = this.selectedOptions.indexOf(value);\n if (index > -1) {\n if (this.multiple)//IMP - disables unselecting if not Multiple\n this.selectedOptions.splice(index, 1);\n } else {\n if (this.multiple) {\n this.selectedOptions.push(value);\n } else {\n this.selectedOptions = [];\n this.selectedOptions.push(value);\n }\n }\n }\n\n setSelected(event: MouseEvent, value: any) {\n event.stopPropagation();\n this.setSelectedOptions(value);\n if (!this.multiple) {\n this.selectionChangeEmit();\n }\n }\n\n checkAll() {\n this.selectedOptions = this.options.map(option => option.id);\n if (!this.multiple) {\n this.selectionChangeEmit();\n }\n }\n\n isSelected(value: any): boolean {\n //console.log(value)\n //if(value == 95)\n // document.getElementById('Location' + value).focus();\n\n //This add multiple items checked to array - IMP\n if (this.multiple || !this.mainScreenFilters)\n this.selectionChangeEmit();\n\n return this.selectedOptions.indexOf(value) > -1;\n }\n\n setFocus() {\n if (this.filterInput) {\n setTimeout(() => {\n this.filterInput.nativeElement.focus();\n }, 1);\n }\n }\n\n onClickOk(event: MouseEvent) {\n event.stopPropagation();\n this.selectionChangeEmit();\n }\n\n onClickCancel(event: MouseEvent) {\n event.stopPropagation();\n this.selectedOptions = this.model.slice(0);\n this.selectionCancel.emit(true);\n }\n\n onClickClear(event: MouseEvent) {\n event.stopPropagation();\n if (this.selectedOptions.length > 0) {\n this.selectedOptions = [];\n }\n //this.selectionChangeEmit();\n this.selectionCancel.emit(false);\n }\n\n get allSelected(): boolean {\n return(this.options &&\n this.options.length !== 0 &&\n this.selectedOptions &&\n this.selectedOptions.length === this.options.length);\n }\n\n get partiallySelected(): boolean {\n return this.selectedOptions.length !== 0 && !this.allSelected;\n }\n\n onCheckboxAllClick(event: MouseEvent) {\n event.stopPropagation();\n if (this.allSelected) {\n this.selectedOptions = [];\n } else {\n this.checkAll();\n }\n }\n\n selectionChangeEmit() {\n if (this.model.length === this.selectedOptions.length\n && this.model.every((value, index) => value === this.selectedOptions[index])) {\n this.selectionCancel.emit(true);\n } else {\n this.model = this.selectedOptions.slice(0);\n this.selectionChange.emit(this.model);\n }\n }\n\n}\n","module.exports = \"\\n.dt-button {\\n background-color: #6D96D6; /*#5b9bd5;*/\\n border: none;\\n color: white;\\n padding: 8px 16px;\\n cursor: pointer;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n outline: 0;\\n font-size: 12px; /*80% - For changing the buttons size - IMP*/\\n}\\n\\n.dt-button:active {\\n box-shadow: inset 0 3px 5px rgba(0,0,0,.125);\\n}\\n\\n.dt-button[disabled] {\\n cursor: not-allowed;\\n box-shadow: none;\\n opacity: 0.6;\\n}\\n\\n.dt-green {background-color: #4CAF50;}\\n\\n.dt-blue {background-color: #008CBA;}\\n\\n.dt-red {background-color: #f44336;}\\n\\n.dt-orange {background-color: #ff9800;}\\n\\n.dt-white {\\n background-color: white;\\n border: 1px solid #ccc;\\n color: #333;\\n}\\n\\n.dt-button-sm {\\n padding: 4px 8px;\\n}\\n\\n.dt-button-sm1 {\\n padding: 1px 15px 4px 15px;\\n}\\n\\n/*https://www.w3schools.com/howto/howto_css_round_buttons.asp*/\\n\\n.dt-button1 {\\n border-radius: 2px;\\n}\\n\\n.dt-button2 {\\n border-radius: 4px;\\n}\\n\\n.dt-button3 {\\n border-radius: 8px;\\n}\\n\\n.dt-button4 {\\n border-radius: 12px;\\n}\\n\\n.dt-button5 {\\n border-radius: 50%;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdHlsZXMvYnV0dG9ucy5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBO0VBQ0UseUJBQXlCLEVBQUUsV0FBVztFQUN0QyxZQUFZO0VBQ1osWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixlQUFlO0VBQ2YseUJBQWlCO0tBQWpCLHNCQUFpQjtNQUFqQixxQkFBaUI7VUFBakIsaUJBQWlCO0VBQ2pCLFVBQVU7RUFDVixlQUFlLEVBQUUsNENBQTRDO0FBQy9EOztBQUVBO0VBQ0UsNENBQTRDO0FBQzlDOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQixZQUFZO0FBQ2Q7O0FBRUEsV0FBVyx5QkFBeUIsQ0FBQzs7QUFDckMsVUFBVSx5QkFBeUIsQ0FBQzs7QUFDcEMsU0FBUyx5QkFBeUIsQ0FBQzs7QUFDbkMsWUFBWSx5QkFBeUIsQ0FBQzs7QUFFdEM7RUFDRSx1QkFBdUI7RUFDdkIsc0JBQXNCO0VBQ3RCLFdBQVc7QUFDYjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLDBCQUEwQjtBQUM1Qjs7QUFFQSw4REFBOEQ7O0FBQzlEO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCIiwiZmlsZSI6ImxpYi9zdHlsZXMvYnV0dG9ucy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcbi5kdC1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNkQ5NkQ2OyAvKiM1YjliZDU7Ki9cbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDhweCAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBvdXRsaW5lOiAwO1xuICBmb250LXNpemU6IDEycHg7IC8qODAlIC0gRm9yIGNoYW5naW5nIHRoZSBidXR0b25zIHNpemUgLSBJTVAqL1xufVxuXG4uZHQtYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgM3B4IDVweCByZ2JhKDAsMCwwLC4xMjUpO1xufVxuXG4uZHQtYnV0dG9uW2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLmR0LWdyZWVuIHtiYWNrZ3JvdW5kLWNvbG9yOiAjNENBRjUwO31cbi5kdC1ibHVlIHtiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4Q0JBO31cbi5kdC1yZWQge2JhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7fVxuLmR0LW9yYW5nZSB7YmFja2dyb3VuZC1jb2xvcjogI2ZmOTgwMDt9XG5cbi5kdC13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBjb2xvcjogIzMzMztcbn1cblxuLmR0LWJ1dHRvbi1zbSB7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG59XG5cbi5kdC1idXR0b24tc20xIHtcbiAgcGFkZGluZzogMXB4IDE1cHggNHB4IDE1cHg7XG59XG5cbi8qaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9ob3d0by9ob3d0b19jc3Nfcm91bmRfYnV0dG9ucy5hc3AqL1xuLmR0LWJ1dHRvbjEge1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG5cbi5kdC1idXR0b24yIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4uZHQtYnV0dG9uMyB7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLmR0LWJ1dHRvbjQge1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xufVxuXG4uZHQtYnV0dG9uNSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbiJdfQ== */\"","module.exports = \".dt-checkbox {\\n position: relative;\\n margin: 0;\\n cursor: pointer;\\n vertical-align: middle;\\n display: -ms-flexbox;\\n display: flex; /*inline-block*/\\n box-sizing: border-box;\\n padding: 0;\\n}\\n\\n .dt-checkbox input[type='checkbox'] {\\n position: relative;\\n margin: 0 1rem 0 0;\\n cursor: pointer;\\n outline: none;\\n width: 1rem;/*provided to be synch with below :before and :after*/\\n height: 1rem;\\n }\\n\\n .dt-checkbox input[type='checkbox']:before {\\n content: \\\"\\\";\\n position: absolute;\\n /*top: -25%; - susheel */\\n left: 0;\\n z-index: 1;\\n width: 1rem; /*changed from 2rem to 1rem for select-list checkboxes - IMP;*/\\n height: 1rem;\\n border: 1px solid #ccc;\\n border-radius: 2px;\\n }\\n\\n .dt-checkbox input[type='checkbox']:checked:before {\\n -ms-transform: rotate(-45deg);\\n transform: rotate(-45deg);\\n height: 0.5rem; /*changed from 1rem to 0.5rem for select-list checkbox tick icon - IMP;*/\\n border: 3px solid #1976D2; /*#5b9bd5;*/\\n border-top-style: none;\\n border-right-style: none;\\n top: -5%;\\n }\\n\\n .dt-checkbox input[type='checkbox']:after {\\n content: \\\"\\\";\\n position: absolute;\\n /*top: -25%; - susheel */\\n left: 0;\\n width: 1rem; /*changed from 2rem to 1rem for select-list checkboxes - IMP;*/\\n height: 1rem;\\n background: #fff;\\n cursor: pointer;\\n border: 1px solid #ccc;\\n border-radius: 2px;\\n }\\n\\n .dt-checkbox input + label {\\n padding-left: 3px;\\n}\\n\\n .dt-checkbox input[type='checkbox']:indeterminate:before {\\n -ms-transform: rotate(0deg);\\n transform: rotate(0deg);\\n height: 0.5rem; /*changed from 1rem to 0.5rem for select-list checkbox tick icon - IMP;*/\\n border: 3px #1976D2; /*#5b9bd5;*/\\n border-bottom-style: solid;\\n top: -8%;\\n }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdHlsZXMvY2hlY2tib3guY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxlQUFlO0VBQ2Ysc0JBQXNCO0VBQ3RCLG9CQUFhO0VBQWIsYUFBYSxFQUFFLGVBQWU7RUFDOUIsc0JBQXNCO0VBQ3RCLFVBQVU7QUFDWjs7RUFFRTtJQUNFLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLGFBQWE7SUFDYixXQUFXLENBQUMscURBQXFEO0lBQ2pFLFlBQVk7RUFDZDs7RUFFQTtJQUNFLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsd0JBQXdCO0lBQ3hCLE9BQU87SUFDUCxVQUFVO0lBQ1YsV0FBVyxFQUFFLDhEQUE4RDtJQUMzRSxZQUFZO0lBQ1osc0JBQXNCO0lBQ3RCLGtCQUFrQjtFQUNwQjs7RUFFQTtJQUNFLDZCQUF5QjtRQUF6Qix5QkFBeUI7SUFDekIsY0FBYyxFQUFFLHdFQUF3RTtJQUN4Rix5QkFBeUIsRUFBRSxXQUFXO0lBQ3RDLHNCQUFzQjtJQUN0Qix3QkFBd0I7SUFDeEIsUUFBUTtFQUNWOztFQUVBO0lBQ0UsV0FBVztJQUNYLGtCQUFrQjtJQUNsQix3QkFBd0I7SUFDeEIsT0FBTztJQUNQLFdBQVcsRUFBRSw4REFBOEQ7SUFDM0UsWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2Ysc0JBQXNCO0lBQ3RCLGtCQUFrQjtFQUNwQjs7RUFFRjtFQUNFLGlCQUFpQjtBQUNuQjs7RUFFRTtJQUNFLDJCQUF1QjtRQUF2Qix1QkFBdUI7SUFDdkIsY0FBYyxFQUFFLHdFQUF3RTtJQUN4RixtQkFBbUIsRUFBRSxXQUFXO0lBQ2hDLDBCQUEwQjtJQUMxQixRQUFRO0VBQ1YiLCJmaWxlIjoibGliL3N0eWxlcy9jaGVja2JveC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZHQtY2hlY2tib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiBmbGV4OyAvKmlubGluZS1ibG9jayovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7XG59XG5cbiAgLmR0LWNoZWNrYm94IGlucHV0W3R5cGU9J2NoZWNrYm94J10ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDAgMXJlbSAwIDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgd2lkdGg6IDFyZW07Lypwcm92aWRlZCB0byBiZSBzeW5jaCB3aXRoIGJlbG93IDpiZWZvcmUgYW5kIDphZnRlciovXG4gICAgaGVpZ2h0OiAxcmVtO1xuICB9XG5cbiAgLmR0LWNoZWNrYm94IGlucHV0W3R5cGU9J2NoZWNrYm94J106YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvKnRvcDogLTI1JTsgLSBzdXNoZWVsICovXG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIHdpZHRoOiAxcmVtOyAvKmNoYW5nZWQgZnJvbSAycmVtIHRvIDFyZW0gZm9yIHNlbGVjdC1saXN0IGNoZWNrYm94ZXMgLSBJTVA7Ki9cbiAgICBoZWlnaHQ6IDFyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gIH1cblxuICAuZHQtY2hlY2tib3ggaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkOmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICBoZWlnaHQ6IDAuNXJlbTsgLypjaGFuZ2VkIGZyb20gMXJlbSB0byAwLjVyZW0gZm9yIHNlbGVjdC1saXN0IGNoZWNrYm94IHRpY2sgaWNvbiAtIElNUDsqL1xuICAgIGJvcmRlcjogM3B4IHNvbGlkICMxOTc2RDI7IC8qIzViOWJkNTsqL1xuICAgIGJvcmRlci10b3Atc3R5bGU6IG5vbmU7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBub25lO1xuICAgIHRvcDogLTUlO1xuICB9XG5cbiAgLmR0LWNoZWNrYm94IGlucHV0W3R5cGU9J2NoZWNrYm94J106YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8qdG9wOiAtMjUlOyAtIHN1c2hlZWwgKi9cbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxcmVtOyAvKmNoYW5nZWQgZnJvbSAycmVtIHRvIDFyZW0gZm9yIHNlbGVjdC1saXN0IGNoZWNrYm94ZXMgLSBJTVA7Ki9cbiAgICBoZWlnaHQ6IDFyZW07XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gIH1cblxuLmR0LWNoZWNrYm94IGlucHV0ICsgbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IDNweDtcbn1cblxuICAuZHQtY2hlY2tib3ggaW5wdXRbdHlwZT0nY2hlY2tib3gnXTppbmRldGVybWluYXRlOmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgaGVpZ2h0OiAwLjVyZW07IC8qY2hhbmdlZCBmcm9tIDFyZW0gdG8gMC41cmVtIGZvciBzZWxlY3QtbGlzdCBjaGVja2JveCB0aWNrIGljb24gLSBJTVA7Ki9cbiAgICBib3JkZXI6IDNweCAjMTk3NkQyOyAvKiM1YjliZDU7Ki9cbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICB0b3A6IC04JTtcbiAgfVxuIl19 */\"","module.exports = \".dt-clearable-input {\\n position: relative;\\n}\\n.dt-clearable-input > input {\\n padding-right: 1.4em;\\n}\\n.dt-clearable-input > span {\\n display: none;\\n position: absolute;\\n top: 50%;\\n right: 5px;\\n -ms-transform: translateY(-50%);\\n transform: translateY(-50%);\\n font-weight: bold;\\n font-size: 1.6em;\\n cursor: pointer;\\n}\\n.dt-clearable-input > input::-ms-clear {\\n display: none;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdHlsZXMvY2xlYXJhYmxlLWlucHV0LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUixVQUFVO0VBQ1YsK0JBQTJCO01BQTNCLDJCQUEyQjtFQUMzQixpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLGVBQWU7QUFDakI7QUFDQTtFQUNFLGFBQWE7QUFDZiIsImZpbGUiOiJsaWIvc3R5bGVzL2NsZWFyYWJsZS1pbnB1dC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZHQtY2xlYXJhYmxlLWlucHV0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmR0LWNsZWFyYWJsZS1pbnB1dCA+IGlucHV0IHtcbiAgcGFkZGluZy1yaWdodDogMS40ZW07XG59XG4uZHQtY2xlYXJhYmxlLWlucHV0ID4gc3BhbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiA1cHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMS42ZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5kdC1jbGVhcmFibGUtaW5wdXQgPiBpbnB1dDo6LW1zLWNsZWFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiJdfQ== */\"","module.exports = \".dt-context-menu {\\n position: absolute;\\n z-index: 2;\\n margin: 0;\\n padding: 2px;\\n background-color: #fff;\\n border: 1px solid #ccc;\\n border-radius: 2px;\\n box-shadow: 0 6px 12px rgba(0, 0, 0, .175);\\n}\\n\\n.dt-context-menu ul {\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n}\\n\\n.dt-context-menu li {\\n display: block;\\n}\\n\\n.dt-context-menu li > a {\\n display: block;\\n padding: 0 2em 0 2em;\\n text-decoration: none;\\n width: auto;\\n color: black;\\n white-space: nowrap;\\n line-height: 2.4em;\\n text-shadow: 1px 1px 0 white;\\n border-radius: 1px;\\n}\\n\\n.dt-context-menu li > a:hover {\\n background-color: #e8eff7;\\n box-shadow: 0 0 2px #0a6aa1;\\n}\\n\\n.dt-context-menu .disabled a,\\n.dt-context-menu .disabled a:hover {\\n color: silver;\\n background-color: transparent;\\n border: 0;\\n box-shadow: 0 0 0;\\n}\\n\\n.dt-context-menu li > a > i {\\n text-decoration: none;\\n display: inline-block;\\n width: 2.4em;\\n height: 2.4em;\\n background: transparent;\\n margin: 0 0 0 -2em;\\n vertical-align: top;\\n text-align: center;\\n line-height: 2.4em;\\n}\\n\\n.dt-context-menu li > a > i:empty {\\n width: 2.4em;\\n line-height: 2.4em;\\n}\\n\\n.dt-context-menu li > a .context-menu-sep {\\n display: inline-block;\\n width: 1px;\\n height: 2.4em;\\n background: white;\\n margin: 0 0.5em 0 0;\\n border-left: 1px solid #e2e3e3;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdHlsZXMvY29udGV4dC1tZW51LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsU0FBUztFQUNULFlBQVk7RUFDWixzQkFBc0I7RUFDdEIsc0JBQXNCO0VBQ3RCLGtCQUFrQjtFQUNsQiwwQ0FBMEM7QUFDNUM7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsU0FBUztFQUNULFVBQVU7QUFDWjs7QUFFQTtFQUNFLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxjQUFjO0VBQ2Qsb0JBQW9CO0VBQ3BCLHFCQUFxQjtFQUNyQixXQUFXO0VBQ1gsWUFBWTtFQUNaLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsNEJBQTRCO0VBQzVCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QiwyQkFBMkI7QUFDN0I7O0FBRUE7O0VBRUUsYUFBYTtFQUNiLDZCQUE2QjtFQUM3QixTQUFTO0VBQ1QsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UscUJBQXFCO0VBQ3JCLHFCQUFxQjtFQUNyQixZQUFZO0VBQ1osYUFBYTtFQUNiLHVCQUF1QjtFQUN2QixrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLGtCQUFrQjtFQUNsQixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxZQUFZO0VBQ1osa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UscUJBQXFCO0VBQ3JCLFVBQVU7RUFDVixhQUFhO0VBQ2IsaUJBQWlCO0VBQ2pCLG1CQUFtQjtFQUNuQiw4QkFBOEI7QUFDaEMiLCJmaWxlIjoibGliL3N0eWxlcy9jb250ZXh0LW1lbnUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmR0LWNvbnRleHQtbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYm94LXNoYWRvdzogMCA2cHggMTJweCByZ2JhKDAsIDAsIDAsIC4xNzUpO1xufVxuXG4uZHQtY29udGV4dC1tZW51IHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4uZHQtY29udGV4dC1tZW51IGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5kdC1jb250ZXh0LW1lbnUgbGkgPiBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDAgMmVtIDAgMmVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHdpZHRoOiBhdXRvO1xuICBjb2xvcjogYmxhY2s7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGxpbmUtaGVpZ2h0OiAyLjRlbTtcbiAgdGV4dC1zaGFkb3c6IDFweCAxcHggMCB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xufVxuXG4uZHQtY29udGV4dC1tZW51IGxpID4gYTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOGVmZjc7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggIzBhNmFhMTtcbn1cblxuLmR0LWNvbnRleHQtbWVudSAuZGlzYWJsZWQgYSxcbi5kdC1jb250ZXh0LW1lbnUgLmRpc2FibGVkIGE6aG92ZXIge1xuICBjb2xvcjogc2lsdmVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBib3gtc2hhZG93OiAwIDAgMDtcbn1cblxuLmR0LWNvbnRleHQtbWVudSBsaSA+IGEgPiBpIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyLjRlbTtcbiAgaGVpZ2h0OiAyLjRlbTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIG1hcmdpbjogMCAwIDAgLTJlbTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMi40ZW07XG59XG5cbi5kdC1jb250ZXh0LW1lbnUgbGkgPiBhID4gaTplbXB0eSB7XG4gIHdpZHRoOiAyLjRlbTtcbiAgbGluZS1oZWlnaHQ6IDIuNGVtO1xufVxuXG4uZHQtY29udGV4dC1tZW51IGxpID4gYSAuY29udGV4dC1tZW51LXNlcCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAyLjRlbTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIG1hcmdpbjogMCAwLjVlbSAwIDA7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UyZTNlMztcbn1cbiJdfQ== */\"","module.exports = \".dlb-column {\\r\\n width: 40%;\\r\\n height: 40%;\\r\\n}\\r\\n.flex-cell {\\r\\n width: 10%;\\r\\n}\\r\\n.flex-container {\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -ms-flex-wrap: wrap;\\r\\n flex-wrap: wrap;\\r\\n /*justify-content: flex-end;\\r\\n align-items: center;\\r\\n min-height: 48px;\\r\\n padding: 0 8px;*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdHlsZXMvZHVhbC1saXN0LWJveC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxVQUFVO0VBQ1YsV0FBVztBQUNiO0FBQ0E7RUFDRSxVQUFVO0FBQ1o7QUFFQTtFQUNFLG9CQUFhO0VBQWIsYUFBYTtFQUNiLG1CQUFlO01BQWYsZUFBZTtFQUNmOzs7a0JBR2dCO0FBQ2xCIiwiZmlsZSI6ImxpYi9zdHlsZXMvZHVhbC1saXN0LWJveC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZGxiLWNvbHVtbiB7XHJcbiAgd2lkdGg6IDQwJTtcclxuICBoZWlnaHQ6IDQwJTtcclxufVxyXG4uZmxleC1jZWxsIHtcclxuICB3aWR0aDogMTAlO1xyXG59XHJcblxyXG4uZmxleC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIC8qanVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XHJcbiAgcGFkZGluZzogMCA4cHg7Ki9cclxufVxyXG4iXX0= */\"","module.exports = \".dt-icon {\\n position: relative;\\n /*https://stackoverflow.com/questions/15407636/relative-percentage-positioning-on-safari-ios-unexpected-result*/\\n /*position: absolute;\\n top: 0;\\n left: 0;\\n bottom: 0;\\n right: 0;*/\\n display: inline-block;\\n font-style: normal;\\n font-weight: bold;\\n}\\n\\n.dt-icon.asc:before {\\n content: \\\"\\\\2B06\\\";\\n}\\n\\n.dt-icon.desc:before {\\n content: \\\"\\\\2B07\\\";\\n}\\n\\n.dt-icon-ok:before {\\n content: \\\"\\\\2714\\\";\\n}\\n\\n.dt-icon-return:before {\\n content: \\\"\\\\21b5\\\";\\n}\\n\\n.dt-icon-reload:before {\\n content: \\\"\\\\21bb\\\";\\n}\\n\\n.dt-icon-rightwards:before {\\n content: \\\"\\\\27A4\\\";\\n}\\n\\n.dt-icon-pencil:before {\\n content: \\\"\\\\270E\\\";\\n}\\n\\n.dt-icon-remove:before {\\n content: \\\"\\\\2716\\\";\\n}\\n\\n.dt-icon-plus:before {\\n content: \\\"\\\\002B\\\";\\n}\\n\\n.dt-icon-filter {\\n display: inline-block;\\n width: 0;\\n height: 0;\\n border: 7.5px solid;\\n border-bottom: none;\\n border-left-color: transparent;\\n border-right-color: transparent;\\n padding: 2.5px;\\n box-shadow: inset 0 7px;\\n}\\n\\n.dt-icon-filter:before,\\n.dt-icon-filter:after {\\n content: '';\\n pointer-events: none;\\n}\\n\\n.dt-icon-node:before {\\n content: \\\"\\\";\\n position: relative;\\n display: inline-block;\\n border-top: .5em solid;\\n border-right: .45em solid transparent;\\n border-left: .45em solid transparent;\\n top: -1px;\\n margin-right: 4px;\\n opacity: .75;\\n transition: all .3s cubic-bezier(.4,0,.2,1);\\n vertical-align: middle;\\n}\\n\\n.dt-icon-node.dt-icon-collapsed:before {\\n -ms-transform: rotate(-90deg);\\n transform: rotate(-90deg);\\n transition: all .3s cubic-bezier(.4,0,.2,1);\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdHlsZXMvaWNvbnMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLCtHQUErRztFQUMvRzs7OztZQUlVO0VBQ1YscUJBQXFCO0VBQ3JCLGtCQUFrQjtFQUNsQixpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxxQkFBcUI7RUFDckIsUUFBUTtFQUNSLFNBQVM7RUFDVCxtQkFBbUI7RUFDbkIsbUJBQW1CO0VBQ25CLDhCQUE4QjtFQUM5QiwrQkFBK0I7RUFDL0IsY0FBYztFQUNkLHVCQUF1QjtBQUN6Qjs7QUFFQTs7RUFFRSxXQUFXO0VBQ1gsb0JBQW9CO0FBQ3RCOztBQUVBO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixxQkFBcUI7RUFDckIsc0JBQXNCO0VBQ3RCLHFDQUFxQztFQUNyQyxvQ0FBb0M7RUFDcEMsU0FBUztFQUNULGlCQUFpQjtFQUNqQixZQUFZO0VBQ1osMkNBQTJDO0VBQzNDLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLDZCQUF5QjtNQUF6Qix5QkFBeUI7RUFDekIsMkNBQTJDO0FBQzdDIiwiZmlsZSI6ImxpYi9zdHlsZXMvaWNvbnMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmR0LWljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8qaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTU0MDc2MzYvcmVsYXRpdmUtcGVyY2VudGFnZS1wb3NpdGlvbmluZy1vbi1zYWZhcmktaW9zLXVuZXhwZWN0ZWQtcmVzdWx0Ki9cbiAgLypwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDsqL1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5kdC1pY29uLmFzYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMkIwNlwiO1xufVxuXG4uZHQtaWNvbi5kZXNjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyQjA3XCI7XG59XG5cbi5kdC1pY29uLW9rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyNzE0XCI7XG59XG5cbi5kdC1pY29uLXJldHVybjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjFiNVwiO1xufVxuXG4uZHQtaWNvbi1yZWxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDIxYmJcIjtcbn1cblxuLmR0LWljb24tcmlnaHR3YXJkczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjdBNFwiO1xufVxuXG4uZHQtaWNvbi1wZW5jaWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDI3MEVcIjtcbn1cblxuLmR0LWljb24tcmVtb3ZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyNzE2XCI7XG59XG5cbi5kdC1pY29uLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDAwMkJcIjtcbn1cblxuLmR0LWljb24tZmlsdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IDcuNXB4IHNvbGlkO1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDIuNXB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDdweDtcbn1cblxuLmR0LWljb24tZmlsdGVyOmJlZm9yZSxcbi5kdC1pY29uLWZpbHRlcjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmR0LWljb24tbm9kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXRvcDogLjVlbSBzb2xpZDtcbiAgYm9yZGVyLXJpZ2h0OiAuNDVlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IC40NWVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICB0b3A6IC0xcHg7XG4gIG1hcmdpbi1yaWdodDogNHB4O1xuICBvcGFjaXR5OiAuNzU7XG4gIHRyYW5zaXRpb246IGFsbCAuM3MgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5kdC1pY29uLW5vZGUuZHQtaWNvbi1jb2xsYXBzZWQ6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgdHJhbnNpdGlvbjogYWxsIC4zcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtcbn1cbiJdfQ== */\"","module.exports = \".dt-input-group {\\n position: relative;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n -ms-flex-align: stretch;\\n align-items: stretch;\\n width: 100%;\\n}\\n\\n/*IMP - NOT NEEDED*/\\n\\n/*.dt-input-group input:not(:last-child) {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n border-right: 0;\\n}*/\\n\\n.dt-input-group input {\\n position: relative;\\n width: 1%;\\n margin-bottom: 0;\\n -ms-flex: 1 1 auto;\\n flex: 1 1 auto;\\n}\\n\\n.dt-input-group input:focus {\\n box-shadow: none;\\n}\\n\\n.dt-input-group button:last-child {\\n border-top-right-radius: 3px;\\n border-bottom-right-radius: 3px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdHlsZXMvaW5wdXQtZ3JvdXAuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLG9CQUFhO0VBQWIsYUFBYTtFQUNiLG1CQUFlO01BQWYsZUFBZTtFQUNmLHVCQUFvQjtNQUFwQixvQkFBb0I7RUFDcEIsV0FBVztBQUNiOztBQUVBLG1CQUFtQjs7QUFDbkI7Ozs7RUFJRTs7QUFFRjtFQUNFLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsZ0JBQWdCO0VBQ2hCLGtCQUFjO01BQWQsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLDRCQUE0QjtFQUM1QiwrQkFBK0I7QUFDakMiLCJmaWxlIjoibGliL3N0eWxlcy9pbnB1dC1ncm91cC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZHQtaW5wdXQtZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vKklNUCAtIE5PVCBORUVERUQqL1xuLyouZHQtaW5wdXQtZ3JvdXAgaW5wdXQ6bm90KDpsYXN0LWNoaWxkKSB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xufSovXG5cbi5kdC1pbnB1dC1ncm91cCBpbnB1dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDElO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmbGV4OiAxIDEgYXV0bztcbn1cblxuLmR0LWlucHV0LWdyb3VwIGlucHV0OmZvY3VzIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmR0LWlucHV0LWdyb3VwIGJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcbn1cbiJdfQ== */\"","module.exports = \".dt-input {\\n display: block;\\n width: 100%;\\n padding: 6px 12px;\\n font-size: 12px;\\n line-height: 1.42857143;\\n color: #555;\\n background-color: #fff;\\n border: 1px solid #ccc;\\n border-radius: 4px;\\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075);\\n transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;\\n}\\n\\n/*https://stackoverflow.com/questions/11320615/disable-native-datepicker-in-google-chrome*/\\n\\n/*input::-webkit-calendar-picker-indicator {\\n display: block;\\n}\\ninput[type=\\\"date\\\"]::-webkit-input-placeholder {\\n visibility: hidden !important;\\n}*/\\n\\n/*https://stackoverflow.com/questions/20428895/disable-webkits-input-mask-with-input-type-time\\nhttps://stackoverflow.com/a/28686510 - last comment*/\\n\\n.mat-datepicker-content .mat-calendar {\\n /*https: //stackoverflow.com/questions/57252561/customize-angular-material-datepicker-size-for-angular-6*/\\n /*width: unset !important;\\n height: unset !important;*/\\n\\n /*https: //stackoverflow.com/questions/37246319/how-to-change-horizontal-size-of-angular-material-datepicker*/\\n zoom: 0.75;\\n}\\n\\n/*https://stackoverflow.com/questions/55999905/angular-material-datepicker-position*/\\n\\n/*.cdk-overlay-connected-position-bounding-box {\\n position: relative !important;\\n}*/\\n\\n/*https://www.thetopsites.net/article/54045509.shtml*/\\n\\n/*.cdk-overlay-container {\\n z-index: 1200 !important;\\n}*/\\n\\n.dt-input:focus {\\n color: #495057;\\n background-color: #fff;\\n border-color: #80bdff;\\n outline: 0;\\n box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25);\\n}\\n\\n.dt-input[disabled], .dt-input[readonly] {\\n background-color: #eee;\\n opacity: 1;\\n}\\n\\n.dt-input[disabled] {\\n cursor: not-allowed;\\n}\\n\\n.dt-input.sm {\\n padding: 3px 9px;\\n}\\n\\n.dt-form-group {\\n margin-bottom: 1rem;\\n color: black;\\n}\\n\\n.dt-has-error .dt-input-group > .dt-input,\\n.dt-has-error > .dt-input {\\n border-color: #a94442;\\n}\\n\\n.dt-has-error .dt-input-group > .dt-input:focus,\\n.dt-has-error > .dt-input:focus {\\n outline: 0;\\n border-color: #843534;\\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px #ce8483;\\n}\\n\\n.dt-has-error > .dt-help-block {\\n color: #a94442;\\n}\\n\\n.dt-group {\\n margin-bottom: 1rem;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdHlsZXMvaW5wdXQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsY0FBYztFQUNkLFdBQVc7RUFDWCxpQkFBaUI7RUFDakIsZUFBZTtFQUNmLHVCQUF1QjtFQUN2QixXQUFXO0VBQ1gsc0JBQXNCO0VBQ3RCLHNCQUFzQjtFQUN0QixrQkFBa0I7RUFDbEIsNENBQTRDO0VBQzVDLHFFQUFxRTtBQUN2RTs7QUFFQSwwRkFBMEY7O0FBQzFGOzs7OztFQUtFOztBQUNGO29EQUNvRDs7QUFHcEQ7RUFDRSx5R0FBeUc7RUFDekc7NEJBQzBCOztFQUUxQiw2R0FBNkc7RUFDN0csVUFBVTtBQUNaOztBQUNBLG9GQUFvRjs7QUFDcEY7O0VBRUU7O0FBQ0YscURBQXFEOztBQUNyRDs7RUFFRTs7QUFFRjtFQUNFLGNBQWM7RUFDZCxzQkFBc0I7RUFDdEIscUJBQXFCO0VBQ3JCLFVBQVU7RUFDViw0Q0FBNEM7QUFDOUM7O0FBRUE7RUFDRSxzQkFBc0I7RUFDdEIsVUFBVTtBQUNaOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLFlBQVk7QUFDZDs7QUFFQTs7RUFFRSxxQkFBcUI7QUFDdkI7O0FBRUE7O0VBRUUsVUFBVTtFQUNWLHFCQUFxQjtFQUNyQiw2REFBNkQ7QUFDL0Q7O0FBRUE7RUFDRSxjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCIiwiZmlsZSI6ImxpYi9zdHlsZXMvaW5wdXQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmR0LWlucHV0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgY29sb3I6ICM1NTU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSk7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1cztcbn1cblxuLypodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMTMyMDYxNS9kaXNhYmxlLW5hdGl2ZS1kYXRlcGlja2VyLWluLWdvb2dsZS1jaHJvbWUqL1xuLyppbnB1dDo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5pbnB1dFt0eXBlPVwiZGF0ZVwiXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xufSovXG4vKmh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzIwNDI4ODk1L2Rpc2FibGUtd2Via2l0cy1pbnB1dC1tYXNrLXdpdGgtaW5wdXQtdHlwZS10aW1lXG5odHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjg2ODY1MTAgLSBsYXN0IGNvbW1lbnQqL1xuXG5cbi5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXIge1xuICAvKmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy81NzI1MjU2MS9jdXN0b21pemUtYW5ndWxhci1tYXRlcmlhbC1kYXRlcGlja2VyLXNpemUtZm9yLWFuZ3VsYXItNiovXG4gIC8qd2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogdW5zZXQgIWltcG9ydGFudDsqL1xuXG4gIC8qaHR0cHM6IC8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM3MjQ2MzE5L2hvdy10by1jaGFuZ2UtaG9yaXpvbnRhbC1zaXplLW9mLWFuZ3VsYXItbWF0ZXJpYWwtZGF0ZXBpY2tlciovXG4gIHpvb206IDAuNzU7XG59XG4vKmh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzU1OTk5OTA1L2FuZ3VsYXItbWF0ZXJpYWwtZGF0ZXBpY2tlci1wb3NpdGlvbiovXG4vKi5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG59Ki9cbi8qaHR0cHM6Ly93d3cudGhldG9wc2l0ZXMubmV0L2FydGljbGUvNTQwNDU1MDkuc2h0bWwqL1xuLyouY2RrLW92ZXJsYXktY29udGFpbmVyIHtcbiAgei1pbmRleDogMTIwMCAhaW1wb3J0YW50O1xufSovXG5cbi5kdC1pbnB1dDpmb2N1cyB7XG4gIGNvbG9yOiAjNDk1MDU3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICM4MGJkZmY7XG4gIG91dGxpbmU6IDA7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDAsMTIzLDI1NSwuMjUpO1xufVxuXG4uZHQtaW5wdXRbZGlzYWJsZWRdLCAuZHQtaW5wdXRbcmVhZG9ubHldIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmR0LWlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5kdC1pbnB1dC5zbSB7XG4gIHBhZGRpbmc6IDNweCA5cHg7XG59XG5cbi5kdC1mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgY29sb3I6IGJsYWNrO1xufVxuXG4uZHQtaGFzLWVycm9yIC5kdC1pbnB1dC1ncm91cCA+IC5kdC1pbnB1dCxcbi5kdC1oYXMtZXJyb3IgPiAuZHQtaW5wdXQge1xuICBib3JkZXItY29sb3I6ICNhOTQ0NDI7XG59XG5cbi5kdC1oYXMtZXJyb3IgLmR0LWlucHV0LWdyb3VwID4gLmR0LWlucHV0OmZvY3VzLFxuLmR0LWhhcy1lcnJvciA+IC5kdC1pbnB1dDpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG4gIGJvcmRlci1jb2xvcjogIzg0MzUzNDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksIDAgMCA2cHggI2NlODQ4Mztcbn1cblxuLmR0LWhhcy1lcnJvciA+IC5kdC1oZWxwLWJsb2NrIHtcbiAgY29sb3I6ICNhOTQ0NDI7XG59XG5cbi5kdC1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG4iXX0= */\"","module.exports = \".dt-list-menu {\\n list-style: none;\\n padding: 1px;\\n margin: 0;\\n}\\n\\n.dt-list-menu-item {\\n font-style: normal;/*Changed for list items in default date range selection - IMP*/\\n cursor: pointer;\\n display: block;\\n /*padding: 4px 3px;*/\\n padding: 2px 1px;\\n margin: 1px 0;\\n font-size: 80%;/*Changed list items size of date range filter - IMP*/\\n}\\n\\n.dt-list-menu-item:hover:not(.active) {\\n background-color: #e8eff7;\\n box-shadow: 0 0 2px #0a6aa1;\\n}\\n\\n.dt-list-menu-item.active {\\n background-color: #1976D2; /*#5b9bd5;*/\\n color: #fff;\\n}\\n\\n.dt-list-divider {\\n height: 1px;\\n margin: 3px 0;\\n overflow: hidden;\\n background-color: #e5e5e5;\\n}\\n\\n.dt-list-menu-row {\\n width: 80%;/*For changing space between 3 buttons in filter - IMP*/\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n}\\n\\n.dt-list-menu-row button {\\n width: 100%;\\n text-align: center;\\n}\\n\\n.dt-list-menu-row button + button {\\n margin-left: 2%;\\n }\\n\\n.dt-list-menu-scroll {\\n height: auto;\\n overflow-y: auto;\\n /*min-width: 160px; - Disabled for AND-OR dropdown li items width - IMP*/\\n max-height: 200px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdHlsZXMvbGlzdC1tZW51LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGdCQUFnQjtFQUNoQixZQUFZO0VBQ1osU0FBUztBQUNYOztBQUVBO0VBQ0Usa0JBQWtCLENBQUMsK0RBQStEO0VBQ2xGLGVBQWU7RUFDZixjQUFjO0VBQ2Qsb0JBQW9CO0VBQ3BCLGdCQUFnQjtFQUNoQixhQUFhO0VBQ2IsY0FBYyxDQUFDLHFEQUFxRDtBQUN0RTs7QUFDQTtFQUNFLHlCQUF5QjtFQUN6QiwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSx5QkFBeUIsRUFBRSxXQUFXO0VBQ3RDLFdBQVc7QUFDYjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLFVBQVUsQ0FBQyx1REFBdUQ7RUFDbEUsb0JBQWE7RUFBYixhQUFhO0VBQ2Isc0JBQThCO01BQTlCLDhCQUE4QjtBQUNoQzs7QUFFQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxlQUFlO0NBQ2hCOztBQUVEO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQix3RUFBd0U7RUFDeEUsaUJBQWlCO0FBQ25CIiwiZmlsZSI6ImxpYi9zdHlsZXMvbGlzdC1tZW51LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5kdC1saXN0LW1lbnUge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAxcHg7XG4gIG1hcmdpbjogMDtcbn1cblxuLmR0LWxpc3QtbWVudS1pdGVtIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsOy8qQ2hhbmdlZCBmb3IgbGlzdCBpdGVtcyBpbiBkZWZhdWx0IGRhdGUgcmFuZ2Ugc2VsZWN0aW9uIC0gSU1QKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgLypwYWRkaW5nOiA0cHggM3B4OyovXG4gIHBhZGRpbmc6IDJweCAxcHg7XG4gIG1hcmdpbjogMXB4IDA7XG4gIGZvbnQtc2l6ZTogODAlOy8qQ2hhbmdlZCBsaXN0IGl0ZW1zIHNpemUgb2YgZGF0ZSByYW5nZSBmaWx0ZXIgLSBJTVAqL1xufVxuLmR0LWxpc3QtbWVudS1pdGVtOmhvdmVyOm5vdCguYWN0aXZlKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOGVmZjc7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggIzBhNmFhMTtcbn1cblxuLmR0LWxpc3QtbWVudS1pdGVtLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTc2RDI7IC8qIzViOWJkNTsqL1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLmR0LWxpc3QtZGl2aWRlciB7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IDNweCAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1O1xufVxuXG4uZHQtbGlzdC1tZW51LXJvdyB7XG4gIHdpZHRoOiA4MCU7LypGb3IgY2hhbmdpbmcgc3BhY2UgYmV0d2VlbiAzIGJ1dHRvbnMgaW4gZmlsdGVyIC0gSU1QKi9cbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4uZHQtbGlzdC1tZW51LXJvdyBidXR0b24ge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZHQtbGlzdC1tZW51LXJvdyBidXR0b24gKyBidXR0b24ge1xuICBtYXJnaW4tbGVmdDogMiU7XG4gfVxuXG4uZHQtbGlzdC1tZW51LXNjcm9sbCB7XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgLyptaW4td2lkdGg6IDE2MHB4OyAtIERpc2FibGVkIGZvciBBTkQtT1IgZHJvcGRvd24gbGkgaXRlbXMgd2lkdGggLSBJTVAqL1xuICBtYXgtaGVpZ2h0OiAyMDBweDtcbn1cbiJdfQ== */\"","module.exports = \".dt-radio {\\n position: relative;\\n margin: 0;\\n cursor: pointer;\\n vertical-align: middle;\\n display: inline-block;\\n box-sizing: border-box;\\n padding: 0;\\n}\\n\\n.dt-radio input[type='radio'] {\\n position: relative;\\n margin: 0 1rem 0 0;\\n cursor: pointer;\\n outline: none;\\n}\\n\\n.dt-radio input[type='radio']:before {\\n content: \\\"\\\";\\n position: absolute;\\n top: -25%;\\n left: 0;\\n z-index: 1;\\n width: 2rem;\\n height: 2rem;\\n border: 1px solid #ccc;\\n border-radius: 100%;\\n}\\n\\n.dt-radio input[type='radio']:checked:before {\\n width: 1rem;\\n height: 1rem;\\n border: none;\\n background: #1976D2; /*#5b9bd5;*/\\n position: absolute;\\n left: 0.5rem;\\n top: 0.15rem;\\n}\\n\\n.dt-radio input[type='radio']:after {\\n content: \\\"\\\";\\n position: absolute;\\n top: -25%;\\n left: 0;\\n width: 2rem;\\n height: 2rem;\\n background: #fff;\\n cursor: pointer;\\n border: 1px solid #ccc;\\n border-radius: 100%;\\n}\\n\\n.dt-radio input + label {\\n padding-left: 3px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdHlsZXMvcmFkaW8uY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxlQUFlO0VBQ2Ysc0JBQXNCO0VBQ3RCLHFCQUFxQjtFQUNyQixzQkFBc0I7RUFDdEIsVUFBVTtBQUNaOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixlQUFlO0VBQ2YsYUFBYTtBQUNmOztBQUVBO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsT0FBTztFQUNQLFVBQVU7RUFDVixXQUFXO0VBQ1gsWUFBWTtFQUNaLHNCQUFzQjtFQUN0QixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsWUFBWTtFQUNaLFlBQVk7RUFDWixtQkFBbUIsRUFBRSxXQUFXO0VBQ2hDLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osWUFBWTtBQUNkOztBQUVBO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsT0FBTztFQUNQLFdBQVc7RUFDWCxZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixzQkFBc0I7RUFDdEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsaUJBQWlCO0FBQ25CIiwiZmlsZSI6ImxpYi9zdHlsZXMvcmFkaW8uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmR0LXJhZGlvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwO1xufVxuXG4uZHQtcmFkaW8gaW5wdXRbdHlwZT0ncmFkaW8nXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwIDFyZW0gMCAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5kdC1yYWRpbyBpbnB1dFt0eXBlPSdyYWRpbyddOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMjUlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogMnJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuXG4uZHQtcmFkaW8gaW5wdXRbdHlwZT0ncmFkaW8nXTpjaGVja2VkOmJlZm9yZSB7XG4gIHdpZHRoOiAxcmVtO1xuICBoZWlnaHQ6IDFyZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogIzE5NzZEMjsgLyojNWI5YmQ1OyovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMC41cmVtO1xuICB0b3A6IDAuMTVyZW07XG59XG5cbi5kdC1yYWRpbyBpbnB1dFt0eXBlPSdyYWRpbyddOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0yNSU7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAycmVtO1xuICBoZWlnaHQ6IDJyZW07XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbn1cblxuLmR0LXJhZGlvIGlucHV0ICsgbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IDNweDtcbn1cbiJdfQ== */\"","module.exports = \".sl-column {\\r\\n width: 20%;\\r\\n}\\r\\n.flex-cell {\\r\\n width: 10%;\\r\\n}\\r\\n.flex-container {\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -ms-flex-wrap: wrap;\\r\\n flex-wrap: wrap;\\r\\n /*justify-content: flex-end;\\r\\n align-items: center;\\r\\n min-height: 48px;\\r\\n padding: 0 8px;*/\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdHlsZXMvc2VsZWN0LWxpc3QuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsVUFBVTtBQUNaO0FBQ0E7RUFDRSxVQUFVO0FBQ1o7QUFFQTtFQUNFLG9CQUFhO0VBQWIsYUFBYTtFQUNiLG1CQUFlO01BQWYsZUFBZTtFQUNmOzs7a0JBR2dCO0FBQ2xCIiwiZmlsZSI6ImxpYi9zdHlsZXMvc2VsZWN0LWxpc3QuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnNsLWNvbHVtbiB7XHJcbiAgd2lkdGg6IDIwJTtcclxufVxyXG4uZmxleC1jZWxsIHtcclxuICB3aWR0aDogMTAlO1xyXG59XHJcblxyXG4uZmxleC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIC8qanVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XHJcbiAgcGFkZGluZzogMCA4cHg7Ki9cclxufVxyXG4iXX0= */\"","module.exports = \".dt-loader {\\n box-sizing: border-box;\\n display: inline-block;\\n border: 4px solid #f3f3f3;\\n border-radius: 50%;\\n border-top: 4px solid #3498db;\\n width: 18px;\\n height: 18px;\\n -webkit-animation: spin 2s linear infinite;\\n animation: spin 2s linear infinite;\\n vertical-align: middle;\\n}\\n\\n@-webkit-keyframes spin {\\n 0% { transform: rotate(0deg); }\\n 100% { transform: rotate(360deg); }\\n}\\n\\n@keyframes spin {\\n 0% { transform: rotate(0deg); }\\n 100% { transform: rotate(360deg); }\\n}\\n\\n/* spinner 2 */\\n\\n.dt-spinner {\\n box-sizing: border-box;\\n height: 60px;\\n width: 60px;\\n border-radius: 50%;\\n box-shadow: 0 -20px 0 24px #5b9bd5 inset;\\n -webkit-animation: spin 1s infinite linear;\\n animation: spin 1s infinite linear;\\n}\\n\\n.dt-spinner {\\n position: absolute;\\n top: calc(50% - 30px);\\n left: calc(50% - 30px);\\n z-index: 1000;\\n}\\n\\n.spinner_overlay {\\n position: fixed;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #fff;\\n opacity: 0.5;\\n z-index: 1000;\\n}\\n\\n.spinner {\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n height: 60px;\\n width: 60px;\\n margin: 0px auto;\\n -webkit-animation: rotation .6s infinite linear;\\n animation: rotation .6s infinite linear;\\n border-left: 6px solid rgba(0,174,239,.15);\\n border-right: 6px solid rgba(0,174,239,.15);\\n border-bottom: 6px solid rgba(0,174,239,.15);\\n border-top: 6px solid rgba(0,174,239,.8);\\n border-radius: 100%;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdHlsZXMvc3Bpbm5lcnMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usc0JBQXNCO0VBQ3RCLHFCQUFxQjtFQUNyQix5QkFBeUI7RUFDekIsa0JBQWtCO0VBQ2xCLDZCQUE2QjtFQUM3QixXQUFXO0VBQ1gsWUFBWTtFQUNaLDBDQUFrQztVQUFsQyxrQ0FBa0M7RUFDbEMsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsS0FBSyx1QkFBdUIsRUFBRTtFQUM5QixPQUFPLHlCQUF5QixFQUFFO0FBQ3BDOztBQUhBO0VBQ0UsS0FBSyx1QkFBdUIsRUFBRTtFQUM5QixPQUFPLHlCQUF5QixFQUFFO0FBQ3BDOztBQUVBLGNBQWM7O0FBQ2Q7RUFDRSxzQkFBc0I7RUFDdEIsWUFBWTtFQUNaLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsd0NBQXdDO0VBQ3hDLDBDQUFrQztVQUFsQyxrQ0FBa0M7QUFDcEM7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIscUJBQXFCO0VBQ3JCLHNCQUFzQjtFQUN0QixhQUFhO0FBQ2Y7O0FBSUE7RUFDRSxlQUFlO0VBQ2YsT0FBTztFQUNQLE1BQU07RUFDTixXQUFXO0VBQ1gsWUFBWTtFQUNaLHNCQUFzQjtFQUN0QixZQUFZO0VBQ1osYUFBYTtBQUNmOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxRQUFRO0VBQ1IsWUFBWTtFQUNaLFdBQVc7RUFDWCxnQkFBZ0I7RUFDaEIsK0NBQStDO0VBRy9DLHVDQUF1QztFQUN2QywwQ0FBMEM7RUFDMUMsMkNBQTJDO0VBQzNDLDRDQUE0QztFQUM1Qyx3Q0FBd0M7RUFDeEMsbUJBQW1CO0FBQ3JCIiwiZmlsZSI6ImxpYi9zdHlsZXMvc3Bpbm5lcnMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmR0LWxvYWRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyOiA0cHggc29saWQgI2YzZjNmMztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXItdG9wOiA0cHggc29saWQgIzM0OThkYjtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuQGtleWZyYW1lcyBzcGluIHtcbiAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxufVxuXG4vKiBzcGlubmVyIDIgKi9cbi5kdC1zcGlubmVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgaGVpZ2h0OiA2MHB4O1xuICB3aWR0aDogNjBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3gtc2hhZG93OiAwIC0yMHB4IDAgMjRweCAjNWI5YmQ1IGluc2V0O1xuICBhbmltYXRpb246IHNwaW4gMXMgaW5maW5pdGUgbGluZWFyO1xufVxuXG4uZHQtc3Bpbm5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDUwJSAtIDMwcHgpO1xuICBsZWZ0OiBjYWxjKDUwJSAtIDMwcHgpO1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG5cblxuLnNwaW5uZXJfb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBvcGFjaXR5OiAwLjU7XG4gIHotaW5kZXg6IDEwMDA7XG59XG5cbi5zcGlubmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBoZWlnaHQ6IDYwcHg7XG4gIHdpZHRoOiA2MHB4O1xuICBtYXJnaW46IDBweCBhdXRvO1xuICAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRpb24gLjZzIGluZmluaXRlIGxpbmVhcjtcbiAgLW1vei1hbmltYXRpb246IHJvdGF0aW9uIC42cyBpbmZpbml0ZSBsaW5lYXI7XG4gIC1vLWFuaW1hdGlvbjogcm90YXRpb24gLjZzIGluZmluaXRlIGxpbmVhcjtcbiAgYW5pbWF0aW9uOiByb3RhdGlvbiAuNnMgaW5maW5pdGUgbGluZWFyO1xuICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHJnYmEoMCwxNzQsMjM5LC4xNSk7XG4gIGJvcmRlci1yaWdodDogNnB4IHNvbGlkIHJnYmEoMCwxNzQsMjM5LC4xNSk7XG4gIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCByZ2JhKDAsMTc0LDIzOSwuMTUpO1xuICBib3JkZXItdG9wOiA2cHggc29saWQgcmdiYSgwLDE3NCwyMzksLjgpO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuIl19 */\"","module.exports = \".switch-toggle {\\n width: 30em;\\n}\\n\\n.switch-toggle label:not(.disabled) {\\n cursor: pointer;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zd2l0Y2hlcy9jb21wb25lbnRzL211bHRpLXN0YXRlLXN3aXRjaC9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvbGliXFxzd2l0Y2hlc1xcY29tcG9uZW50c1xcbXVsdGktc3RhdGUtc3dpdGNoXFxtdWx0aS1zdGF0ZS1zd2l0Y2guY29tcG9uZW50LnNjc3MiLCJsaWIvc3dpdGNoZXMvY29tcG9uZW50cy9tdWx0aS1zdGF0ZS1zd2l0Y2gvbXVsdGktc3RhdGUtc3dpdGNoLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBQTtBQ0NGOztBREVBO0VBQ0UsZUFBQTtBQ0NGIiwiZmlsZSI6ImxpYi9zd2l0Y2hlcy9jb21wb25lbnRzL211bHRpLXN0YXRlLXN3aXRjaC9tdWx0aS1zdGF0ZS1zd2l0Y2guY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuc3dpdGNoLXRvZ2dsZSB7XHJcbiAgd2lkdGg6IDMwZW07XHJcbn1cclxuXHJcbi5zd2l0Y2gtdG9nZ2xlIGxhYmVsOm5vdCguZGlzYWJsZWQpIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiB9XHJcbiIsIi5zd2l0Y2gtdG9nZ2xlIHtcbiAgd2lkdGg6IDMwZW07XG59XG5cbi5zd2l0Y2gtdG9nZ2xlIGxhYmVsOm5vdCguZGlzYWJsZWQpIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-multi-state-switch',\n templateUrl: './multi-state-switch.component.html',\n styleUrls: ['./multi-state-switch.component.scss']\n})\nexport class MultiStateSwitchComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-rect-switch',\n templateUrl: './rect-switch.component.html'\n})\nexport class RectSwitchComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-round-switch',\n templateUrl: './round-switch.component.html'\n})\nexport class RoundSwitchComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n checkedOrNot = false;\n @Output() selectionChanged: EventEmitter = new EventEmitter();\n isSelected() {\n this.checkedOrNot = !this.checkedOrNot;\n this.selectionChanged.emit(this.checkedOrNot);\n }\n\n}\n","module.exports = \"/* The switch - the box around the slider */\\n.switch {\\n position: relative;\\n display: inline-block;\\n width: 60px;\\n height: 34px;\\n}\\n/* Hide default HTML checkbox */\\n.switch input {\\n opacity: 0;\\n width: 0;\\n height: 0;\\n}\\n/* The slider */\\n.slider {\\n position: absolute;\\n cursor: pointer;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background-color: #ccc;\\n transition: 0.4s;\\n}\\n.slider:before {\\n position: absolute;\\n content: \\\"\\\";\\n height: 26px;\\n width: 26px;\\n left: 4px;\\n bottom: 4px;\\n background-color: white;\\n transition: 0.4s;\\n}\\ninput:checked + .slider {\\n background-color: #2196F3;\\n}\\ninput:focus + .slider {\\n box-shadow: 0 0 1px #2196F3;\\n}\\ninput:checked + .slider:before {\\n -ms-transform: translateX(26px);\\n transform: translateX(26px);\\n}\\n/* Rounded sliders */\\n.slider.round {\\n border-radius: 34px;\\n}\\n.slider.round:before {\\n border-radius: 50%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zd2l0Y2hlcy9jb21wb25lbnRzL3N3aXRjaGVzL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9saWJcXHN3aXRjaGVzXFxjb21wb25lbnRzXFxzd2l0Y2hlc1xcc3dpdGNoZXMuY29tcG9uZW50LnNjc3MiLCJsaWIvc3dpdGNoZXMvY29tcG9uZW50cy9zd2l0Y2hlcy9zd2l0Y2hlcy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBQTtBQUNBO0VBQ0Usa0JBQUE7RUFDQSxxQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0FDQ0Y7QURFQSwrQkFBQTtBQUNBO0VBQ0UsVUFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0FDQ0Y7QURFQSxlQUFBO0FBQ0E7RUFDRSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0Esc0JBQUE7RUFFQSxnQkFBQTtBQ0NGO0FERUE7RUFDRSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLFNBQUE7RUFDQSxXQUFBO0VBQ0EsdUJBQUE7RUFFQSxnQkFBQTtBQ0NGO0FERUE7RUFDRSx5QkFBQTtBQ0NGO0FERUE7RUFDRSwyQkFBQTtBQ0NGO0FERUE7RUFFRSwrQkFBQTtFQUNBLDJCQUFBO0FDQ0Y7QURFQSxvQkFBQTtBQUNBO0VBQ0UsbUJBQUE7QUNDRjtBREVBO0VBQ0Usa0JBQUE7QUNDRiIsImZpbGUiOiJsaWIvc3dpdGNoZXMvY29tcG9uZW50cy9zd2l0Y2hlcy9zd2l0Y2hlcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIFRoZSBzd2l0Y2ggLSB0aGUgYm94IGFyb3VuZCB0aGUgc2xpZGVyICovXHJcbi5zd2l0Y2gge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgd2lkdGg6IDYwcHg7XHJcbiAgaGVpZ2h0OiAzNHB4O1xyXG59XHJcblxyXG4vKiBIaWRlIGRlZmF1bHQgSFRNTCBjaGVja2JveCAqL1xyXG4uc3dpdGNoIGlucHV0IHtcclxuICBvcGFjaXR5OiAwO1xyXG4gIHdpZHRoOiAwO1xyXG4gIGhlaWdodDogMDtcclxufVxyXG5cclxuLyogVGhlIHNsaWRlciAqL1xyXG4uc2xpZGVyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLjRzO1xyXG4gIHRyYW5zaXRpb246IC40cztcclxufVxyXG5cclxuLnNsaWRlcjpiZWZvcmUge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBjb250ZW50OiBcIlwiO1xyXG4gIGhlaWdodDogMjZweDtcclxuICB3aWR0aDogMjZweDtcclxuICBsZWZ0OiA0cHg7XHJcbiAgYm90dG9tOiA0cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAuNHM7XHJcbiAgdHJhbnNpdGlvbjogLjRzO1xyXG59XHJcblxyXG5pbnB1dDpjaGVja2VkICsgLnNsaWRlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMztcclxufVxyXG5cclxuaW5wdXQ6Zm9jdXMgKyAuc2xpZGVyIHtcclxuICBib3gtc2hhZG93OiAwIDAgMXB4ICMyMTk2RjM7XHJcbn1cclxuXHJcbmlucHV0OmNoZWNrZWQgKyAuc2xpZGVyOmJlZm9yZSB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjZweCk7XHJcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNnB4KTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjZweCk7XHJcbn1cclxuXHJcbi8qIFJvdW5kZWQgc2xpZGVycyAqL1xyXG4uc2xpZGVyLnJvdW5kIHtcclxuICBib3JkZXItcmFkaXVzOiAzNHB4O1xyXG59XHJcblxyXG4uc2xpZGVyLnJvdW5kOmJlZm9yZSB7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG59XHJcbiIsIi8qIFRoZSBzd2l0Y2ggLSB0aGUgYm94IGFyb3VuZCB0aGUgc2xpZGVyICovXG4uc3dpdGNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA2MHB4O1xuICBoZWlnaHQ6IDM0cHg7XG59XG5cbi8qIEhpZGUgZGVmYXVsdCBIVE1MIGNoZWNrYm94ICovXG4uc3dpdGNoIGlucHV0IHtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbn1cblxuLyogVGhlIHNsaWRlciAqL1xuLnNsaWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC40cztcbiAgdHJhbnNpdGlvbjogMC40cztcbn1cblxuLnNsaWRlcjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGhlaWdodDogMjZweDtcbiAgd2lkdGg6IDI2cHg7XG4gIGxlZnQ6IDRweDtcbiAgYm90dG9tOiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAtd2Via2l0LXRyYW5zaXRpb246IDAuNHM7XG4gIHRyYW5zaXRpb246IDAuNHM7XG59XG5cbmlucHV0OmNoZWNrZWQgKyAuc2xpZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMztcbn1cblxuaW5wdXQ6Zm9jdXMgKyAuc2xpZGVyIHtcbiAgYm94LXNoYWRvdzogMCAwIDFweCAjMjE5NkYzO1xufVxuXG5pbnB1dDpjaGVja2VkICsgLnNsaWRlcjpiZWZvcmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNnB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNnB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI2cHgpO1xufVxuXG4vKiBSb3VuZGVkIHNsaWRlcnMgKi9cbi5zbGlkZXIucm91bmQge1xuICBib3JkZXItcmFkaXVzOiAzNHB4O1xufVxuXG4uc2xpZGVyLnJvdW5kOmJlZm9yZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn0iXX0= */\"","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-switches',\r\n templateUrl: './switches.component.html',\r\n styleUrls: ['./switches.component.scss']\r\n})\r\nexport class SwitchesComponent implements OnInit {\r\n\r\n @Input() switchType;\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n @Output() selectionChanged: EventEmitter = new EventEmitter();\r\n onSelectionChange(event): void {\r\n //debugger\r\n console.log(event)\r\n if (event !== undefined && event !== null) {\r\n this.selectionChanged.emit(event);\r\n }\r\n }\r\n}\r\n","export * from './switches.module';\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RoundSwitchComponent } from './components/round-switch/round-switch.component';\r\nimport { RectSwitchComponent } from './components/rect-switch/rect-switch.component';\r\nimport { SwitchesComponent } from './components/switches/switches.component';\r\nimport { MultiStateSwitchComponent } from './components/multi-state-switch/multi-state-switch.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [RoundSwitchComponent, RectSwitchComponent, SwitchesComponent, MultiStateSwitchComponent],\r\n exports: [SwitchesComponent],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class SwitchesModule { }\r\n","export * from './tabs.module';\n","module.exports = \"@import 'https://fonts.googleapis.com/css?family=Montserrat:400,700|Raleway:300,400';\\n.dt-tab {\\n display: -ms-flexbox;\\n display: flex;\\n}\\n.dt-tab span {\\n background-color: inherit;\\n cursor: pointer;\\n padding: 0.625rem 1rem;\\n transition: 0.3s;\\n}\\n.dt-tab span:hover {\\n background-color: var(--dt-color-secondary-lighter);\\n}\\n.dt-tab span.active {\\n box-shadow: 0 0.125rem 0 var(--dt-color-primary-lighter) inset;\\n}\\n/*\\n https: //www.excitoninteractive.com/articles/read/10/asp-net-core-angular-webpack/creation-and-basic-setup\\n https://github.com/thoughtbot/bourbon/issues/979#issuecomment-281282710\\n https://sass-lang.com/documentation/at-rules/mixin\\n*/\\n/* colors */\\n/* tab setting */\\n/* breakpoints */\\n/* selectors relative to radio inputs */\\nhtml {\\n width: 100%;\\n height: 100%;\\n}\\nbody {\\n background: #efefef;\\n color: #333;\\n font-family: \\\"Raleway\\\";\\n height: 100%;\\n}\\nbody h1 {\\n text-align: center;\\n color: #428BFF;\\n font-weight: 300;\\n padding: 40px 0 20px 0;\\n margin: 0;\\n}\\n.tabs {\\n left: 50%;\\n -ms-transform: translateX(-50%);\\n transform: translateX(-50%);\\n position: relative;\\n background: white;\\n padding: 50px;\\n padding-bottom: 80px;\\n width: 70%;\\n height: 250px;\\n box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);\\n border-radius: 5px;\\n min-width: 240px;\\n}\\n.tabs input[name=tab-control] {\\n display: none;\\n}\\n.tabs .content section h2,\\n.tabs ul li label {\\n font-family: \\\"Montserrat\\\";\\n font-weight: bold;\\n font-size: 18px;\\n color: #428BFF;\\n}\\n.tabs ul {\\n list-style-type: none;\\n padding-left: 0;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-direction: row;\\n flex-direction: row;\\n margin-bottom: 10px;\\n -ms-flex-pack: justify;\\n justify-content: space-between;\\n -ms-flex-align: end;\\n align-items: flex-end;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n}\\n.tabs ul li {\\n box-sizing: border-box;\\n -ms-flex: 1;\\n flex: 1;\\n width: 25%;\\n padding: 0 10px;\\n text-align: center;\\n}\\n.tabs ul li label {\\n transition: all 0.3s ease-in-out;\\n color: #929daf;\\n padding: 5px auto;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n cursor: pointer;\\n transition: all 0.2s ease-in-out;\\n white-space: nowrap;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n /*@include user-select(none); https://stackoverflow.com/questions/17593503/compass-syntax-error-undefined-mixin-user-select*/\\n}\\n.tabs ul li label br {\\n display: none;\\n}\\n.tabs ul li label svg {\\n fill: #929daf;\\n height: 1.2em;\\n vertical-align: bottom;\\n margin-right: 0.2em;\\n transition: all 0.2s ease-in-out;\\n}\\n.tabs ul li label:hover, .tabs ul li label:focus, .tabs ul li label:active {\\n outline: 0;\\n color: #bec5cf;\\n}\\n.tabs ul li label:hover svg, .tabs ul li label:focus svg, .tabs ul li label:active svg {\\n fill: #bec5cf;\\n}\\n.tabs .slider {\\n position: relative;\\n width: 25%;\\n transition: all 0.33s cubic-bezier(0.38, 0.8, 0.32, 1.07);\\n}\\n.tabs .slider .indicator {\\n position: relative;\\n width: 50px;\\n max-width: 100%;\\n margin: 0 auto;\\n height: 4px;\\n background: #428BFF;\\n border-radius: 1px;\\n}\\n.tabs .content {\\n margin-top: 30px;\\n}\\n.tabs .content section {\\n display: none;\\n -webkit-animation-name: content;\\n animation-name: content;\\n -webkit-animation-direction: normal;\\n animation-direction: normal;\\n -webkit-animation-duration: 0.3s;\\n animation-duration: 0.3s;\\n -webkit-animation-timing-function: ease-in-out;\\n animation-timing-function: ease-in-out;\\n -webkit-animation-iteration-count: 1;\\n animation-iteration-count: 1;\\n line-height: 1.4;\\n}\\n.tabs .content section h2 {\\n color: #428BFF;\\n display: none;\\n}\\n.tabs .content section h2::after {\\n content: \\\"\\\";\\n position: relative;\\n display: block;\\n width: 30px;\\n height: 3px;\\n background: #428BFF;\\n margin-top: 5px;\\n left: 1px;\\n}\\n.tabs input[name=tab-control]:nth-of-type(1):checked ~ ul > li:nth-child(1) > label {\\n cursor: default;\\n color: #428BFF;\\n}\\n.tabs input[name=tab-control]:nth-of-type(1):checked ~ ul > li:nth-child(1) > label svg {\\n fill: #428BFF;\\n}\\n@media (max-width: 600px) {\\n .tabs input[name=tab-control]:nth-of-type(1):checked ~ ul > li:nth-child(1) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(1):checked ~ .slider {\\n -ms-transform: translateX(0%);\\n transform: translateX(0%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(1):checked ~ .content > section:nth-child(1) {\\n display: block;\\n}\\n.tabs input[name=tab-control]:nth-of-type(2):checked ~ ul > li:nth-child(2) > label {\\n cursor: default;\\n color: #428BFF;\\n}\\n.tabs input[name=tab-control]:nth-of-type(2):checked ~ ul > li:nth-child(2) > label svg {\\n fill: #428BFF;\\n}\\n@media (max-width: 600px) {\\n .tabs input[name=tab-control]:nth-of-type(2):checked ~ ul > li:nth-child(2) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(2):checked ~ .slider {\\n -ms-transform: translateX(100%);\\n transform: translateX(100%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(2):checked ~ .content > section:nth-child(2) {\\n display: block;\\n}\\n.tabs input[name=tab-control]:nth-of-type(3):checked ~ ul > li:nth-child(3) > label {\\n cursor: default;\\n color: #428BFF;\\n}\\n.tabs input[name=tab-control]:nth-of-type(3):checked ~ ul > li:nth-child(3) > label svg {\\n fill: #428BFF;\\n}\\n@media (max-width: 600px) {\\n .tabs input[name=tab-control]:nth-of-type(3):checked ~ ul > li:nth-child(3) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(3):checked ~ .slider {\\n -ms-transform: translateX(200%);\\n transform: translateX(200%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(3):checked ~ .content > section:nth-child(3) {\\n display: block;\\n}\\n.tabs input[name=tab-control]:nth-of-type(4):checked ~ ul > li:nth-child(4) > label {\\n cursor: default;\\n color: #428BFF;\\n}\\n.tabs input[name=tab-control]:nth-of-type(4):checked ~ ul > li:nth-child(4) > label svg {\\n fill: #428BFF;\\n}\\n@media (max-width: 600px) {\\n .tabs input[name=tab-control]:nth-of-type(4):checked ~ ul > li:nth-child(4) > label {\\n background: rgba(0, 0, 0, 0.08);\\n }\\n}\\n.tabs input[name=tab-control]:nth-of-type(4):checked ~ .slider {\\n -ms-transform: translateX(300%);\\n transform: translateX(300%);\\n}\\n.tabs input[name=tab-control]:nth-of-type(4):checked ~ .content > section:nth-child(4) {\\n display: block;\\n}\\n@-webkit-keyframes content {\\n from {\\n opacity: 0;\\n transform: translateY(5%);\\n }\\n to {\\n opacity: 1;\\n transform: translateY(0%);\\n }\\n}\\n@keyframes content {\\n from {\\n opacity: 0;\\n transform: translateY(5%);\\n }\\n to {\\n opacity: 1;\\n transform: translateY(0%);\\n }\\n}\\n@media (max-width: 1000px) {\\n .tabs ul li label {\\n white-space: initial;\\n }\\n .tabs ul li label br {\\n display: initial;\\n }\\n .tabs ul li label svg {\\n height: 1.5em;\\n }\\n}\\n@media (max-width: 600px) {\\n .tabs ul li label {\\n padding: 5px;\\n border-radius: 5px;\\n }\\n .tabs ul li label span {\\n display: none;\\n }\\n .tabs .slider {\\n display: none;\\n }\\n .tabs .content {\\n margin-top: 20px;\\n }\\n .tabs .content section h2 {\\n display: block;\\n }\\n}\\n/*\\n CSS for the main interaction\\n*/\\n.tabset > input[type=radio] {\\n position: absolute;\\n left: -200vw;\\n}\\n.tabset .tab-panel {\\n display: none;\\n}\\n.tabset > input:first-child:checked ~ .tab-panels > .tab-panel:first-child,\\n.tabset > input:nth-child(3):checked ~ .tab-panels > .tab-panel:nth-child(2),\\n.tabset > input:nth-child(5):checked ~ .tab-panels > .tab-panel:nth-child(3),\\n.tabset > input:nth-child(7):checked ~ .tab-panels > .tab-panel:nth-child(4),\\n.tabset > input:nth-child(9):checked ~ .tab-panels > .tab-panel:nth-child(5),\\n.tabset > input:nth-child(11):checked ~ .tab-panels > .tab-panel:nth-child(6) {\\n display: block;\\n}\\n/*\\n Styling\\n*/\\nbody {\\n font: 16px/1.5em \\\"Overpass\\\", \\\"Open Sans\\\", Helvetica, sans-serif;\\n color: #333;\\n font-weight: 300;\\n}\\n.tabset > label {\\n position: relative;\\n display: inline-block;\\n padding: 15px 15px 25px;\\n border: 1px solid transparent;\\n border-bottom: 0;\\n cursor: pointer;\\n font-weight: 600;\\n}\\n.tabset > label::after {\\n content: \\\"\\\";\\n position: absolute;\\n left: 15px;\\n bottom: 10px;\\n width: 22px;\\n height: 4px;\\n background: #8d8d8d;\\n}\\n.tabset > label:hover,\\n.tabset > input:focus + label {\\n color: #06c;\\n}\\n.tabset > label:hover::after,\\n.tabset > input:focus + label::after,\\n.tabset > input:checked + label::after {\\n background: #06c;\\n}\\n.tabset > input:checked + label {\\n border-color: #ccc;\\n border-bottom: 1px solid #fff;\\n margin-bottom: -1px;\\n}\\n.tab-panel {\\n padding: 30px 0;\\n border-top: 1px solid #ccc;\\n}\\n/*\\n Demo purposes only\\n*/\\n*,\\n*:before,\\n*:after {\\n box-sizing: border-box;\\n}\\nbody {\\n padding: 30px;\\n}\\n.tabset {\\n max-width: 65em;\\n}\\n/**\\n * tabsNormal\\n */\\n.tabsNormal {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n}\\n.tabsNormal label {\\n -ms-flex-order: 1;\\n order: 1;\\n display: block;\\n padding: 1rem 2rem;\\n margin-right: 0.2rem;\\n cursor: pointer;\\n background: #90CAF9;\\n font-weight: bold;\\n transition: background ease 0.2s;\\n}\\n.tabsNormal .tabNormal {\\n -ms-flex-order: 99;\\n order: 99;\\n -ms-flex-positive: 1;\\n flex-grow: 1;\\n width: 100%;\\n display: none;\\n padding: 1rem;\\n background: #fff;\\n}\\n.tabsNormal input[type=radio] {\\n display: none;\\n}\\n.tabsNormal input[type=radio]:checked + label {\\n background: #fff;\\n}\\n.tabsNormal input[type=radio]:checked + label + .tabNormal {\\n display: block;\\n}\\n@media (max-width: 45em) {\\n .tabsNormal .tabNormal,\\n.tabsNormal label {\\n -ms-flex-order: initial;\\n order: initial;\\n }\\n\\n .tabsNormal label {\\n width: 100%;\\n margin-right: 0;\\n margin-top: 0.2rem;\\n }\\n}\\n/**\\n * Generic Styling\\n*/\\nbody {\\n background: #eee;\\n min-height: 100vh;\\n box-sizing: border-box;\\n padding-top: 10vh;\\n font-family: \\\"HelveticaNeue-Light\\\", \\\"Helvetica Neue Light\\\", \\\"Helvetica Neue\\\", Helvetica, Arial, \\\"Lucida Grande\\\", sans-serif;\\n font-weight: 300;\\n line-height: 1.5;\\n max-width: 60rem;\\n margin: 0 auto;\\n font-size: 112%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi90YWJzL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9saWJcXHRhYnNcXHRhYnMuY29tcG9uZW50LnNjc3MiLCJsaWIvdGFicy90YWJzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJCUSxvRkFBQTtBQTNCUjtFQUNFLG9CQUFBO0VBQUEsYUFBQTtBQ0VGO0FEQ0E7RUFDRSx5QkFBQTtFQUNBLGVBQUE7RUFDQSxzQkFBQTtFQUNBLGdCQUFBO0FDRUY7QURDQTtFQUNFLG1EQUFBO0FDRUY7QURDQTtFQUNFLDhEQUFBO0FDRUY7QURFQTs7OztDQUFBO0FBVUEsV0FBQTtBQVVBLGdCQUFBO0FBS0EsZ0JBQUE7QUFJQSx1Q0FBQTtBQXdCQTtFQUNFLFdBQUE7RUFDQSxZQUFBO0FDM0NGO0FEOENBO0VBQ0UsbUJBQUE7RUFDQSxXQS9DSztFQWdETCxzQkFBQTtFQUNBLFlBQUE7QUMzQ0Y7QUQ2Q0U7RUFDRSxrQkFBQTtFQUNBLGNBdkRHO0VBd0RILGdCQUFBO0VBQ0Esc0JBQUE7RUFDQSxTQUFBO0FDM0NKO0FEK0NBO0VBQ0UsU0FBQTtFQUNBLCtCQUFBO01BQUEsMkJBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsYUFBQTtFQUNBLG9CQUFBO0VBQ0EsVUFBQTtFQUNBLGFBQUE7RUFDQSw0RUFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7QUM1Q0Y7QUQ4Q0U7RUFDRSxhQUFBO0FDNUNKO0FEK0NFOztFQUVFLHlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBO0VBQ0EsY0FwRkc7QUN1Q1A7QURnREU7RUFDRSxxQkFBQTtFQUNBLGVBQUE7RUFDQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSx1QkFBQTtNQUFBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxzQkFBQTtNQUFBLDhCQUFBO0VBQ0EsbUJBQUE7TUFBQSxxQkFBQTtFQUNBLG1CQUFBO01B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QkY7QUFDRjtBRGtDQTs7Q0FBQTtBQUdBO0VBQ0UsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLHNCQUFBO0VBQ0EsaUJBQUE7RUFDQSwySEFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxlQUFBO0FDaENGIiwiZmlsZSI6ImxpYi90YWJzL3RhYnMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZHQtdGFiIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG59XHJcblxyXG4uZHQtdGFiIHNwYW4ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHBhZGRpbmc6IDAuNjI1cmVtIDFyZW07XHJcbiAgdHJhbnNpdGlvbjogMC4zcztcclxufVxyXG5cclxuLmR0LXRhYiBzcGFuOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kdC1jb2xvci1zZWNvbmRhcnktbGlnaHRlcik7XHJcbn1cclxuXHJcbi5kdC10YWIgc3Bhbi5hY3RpdmUge1xyXG4gIGJveC1zaGFkb3c6IDAgMC4xMjVyZW0gMCB2YXIoLS1kdC1jb2xvci1wcmltYXJ5LWxpZ2h0ZXIpIGluc2V0O1xyXG59XHJcblxyXG5cclxuLypcclxuICBodHRwczogLy93d3cuZXhjaXRvbmludGVyYWN0aXZlLmNvbS9hcnRpY2xlcy9yZWFkLzEwL2FzcC1uZXQtY29yZS1hbmd1bGFyLXdlYnBhY2svY3JlYXRpb24tYW5kLWJhc2ljLXNldHVwXHJcbiAgaHR0cHM6Ly9naXRodWIuY29tL3Rob3VnaHRib3QvYm91cmJvbi9pc3N1ZXMvOTc5I2lzc3VlY29tbWVudC0yODEyODI3MTBcclxuICBodHRwczovL3Nhc3MtbGFuZy5jb20vZG9jdW1lbnRhdGlvbi9hdC1ydWxlcy9taXhpblxyXG4qL1xyXG5AaW1wb3J0IFwifmJvdXJib24vY29yZS9fYm91cmJvbi5zY3NzXCI7XHJcblxyXG5AaW1wb3J0ICdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9TW9udHNlcnJhdDo0MDAsNzAwfFJhbGV3YXk6MzAwLDQwMCc7XHJcblxyXG5cclxuLyogY29sb3JzICovXHJcbiRibHVlOiAjNDI4QkZGO1xyXG4kcmVkOiAjRkY0QTUzO1xyXG4kZGFyazogIzMzMztcclxuXHJcbiRhY2NlbnQ6ICRibHVlO1xyXG4kYWNjZW50LWluYWN0aXZlOiBkZXNhdHVyYXRlKCRhY2NlbnQsIDg1JSk7XHJcbiRzZWNvbmRhcnk6ICRhY2NlbnQtaW5hY3RpdmU7XHJcblxyXG5cclxuLyogdGFiIHNldHRpbmcgKi9cclxuJHRhYi1jb3VudDogNDtcclxuJGluZGljYXRvci13aWR0aDogNTBweDtcclxuJGluZGljYXRvci1oZWlnaHQ6IDRweDtcclxuXHJcbi8qIGJyZWFrcG9pbnRzICovXHJcbiRicmVha3BvaW50czogKCBtZWRpdW06ICN7JHRhYi1jb3VudCoyNTBweH0sIHNtYWxsOiAjeyR0YWItY291bnQqMTUwcHh9ICk7XHJcblxyXG5cclxuLyogc2VsZWN0b3JzIHJlbGF0aXZlIHRvIHJhZGlvIGlucHV0cyAqL1xyXG4kbGFiZWwtc2VsZWN0b3I6IFwifiB1bCA+IGxpXCI7XHJcbiRzbGlkZXItc2VsZWN0b3I6IFwifiAuc2xpZGVyXCI7XHJcbiRjb250ZW50LXNlbGVjdG9yOiBcIn4gLmNvbnRlbnQgPiBzZWN0aW9uXCI7XHJcblxyXG5AbWl4aW4gdGFicyggJGxhYmVsLXNlbGVjdG9yOiAkbGFiZWwtc2VsZWN0b3IsICRzbGlkZXItc2VsZWN0b3I6ICRzbGlkZXItc2VsZWN0b3IsICRjb250ZW50LXNlbGVjdG9yOiAkY29udGVudC1zZWxlY3Rvcikge1xyXG5cclxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICR0YWItY291bnQge1xyXG4gICAgJjpudGgtb2YtdHlwZSgjeyRpfSk6Y2hlY2tlZCB7XHJcbiAgICAgICN7JGxhYmVsLXNlbGVjdG9yfTpudGgtY2hpbGQoI3skaX0pIHtcclxuICAgICAgICBAY29udGVudDtcclxuICAgICAgfVxyXG5cclxuICAgICAgI3skc2xpZGVyLXNlbGVjdG9yfSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCN7MTAwJSAqICgkaSAtIDEpfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICN7JGNvbnRlbnQtc2VsZWN0b3J9Om50aC1jaGlsZCgjeyRpfSkge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5odG1sIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbmJvZHkge1xyXG4gIGJhY2tncm91bmQ6ICNlZmVmZWY7XHJcbiAgY29sb3I6ICRkYXJrO1xyXG4gIGZvbnQtZmFtaWx5OiBcIlJhbGV3YXlcIjtcclxuICBoZWlnaHQ6IDEwMCU7XHJcblxyXG4gIGgxIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiAkYWNjZW50O1xyXG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgIHBhZGRpbmc6IDQwcHggMCAyMHB4IDA7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG59XHJcblxyXG4udGFicyB7XHJcbiAgbGVmdDogNTAlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgcGFkZGluZzogNTBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogODBweDtcclxuICB3aWR0aDogNzAlO1xyXG4gIGhlaWdodDogMjUwcHg7XHJcbiAgYm94LXNoYWRvdzogMCAxNHB4IDI4cHggcmdiYSgwLCAwLCAwLCAwLjI1KSwgMCAxMHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIyKTtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgbWluLXdpZHRoOiAjeyR0YWItY291bnQgKiA2MHB4fTtcclxuXHJcbiAgaW5wdXRbbmFtZT1cInRhYi1jb250cm9sXCJdIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAuY29udGVudCBzZWN0aW9uIGgyLFxyXG4gIHVsIGxpIGxhYmVsIHtcclxuICAgIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIjtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgY29sb3I6ICRhY2NlbnQ7XHJcbiAgfVxyXG5cclxuICB1bCB7XHJcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcblxyXG4gICAgbGkge1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgICB3aWR0aDogI3sxMDAlLyR0YWItY291bnR9O1xyXG4gICAgICBwYWRkaW5nOiAwIDEwcHg7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgIGxhYmVsIHtcclxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcclxuICAgICAgICBjb2xvcjogJHNlY29uZGFyeTtcclxuICAgICAgICBwYWRkaW5nOiA1cHggYXV0bztcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcclxuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTsgLypAaW5jbHVkZSB1c2VyLXNlbGVjdChub25lKTsgICBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNzU5MzUwMy9jb21wYXNzLXN5bnRheC1lcnJvci11bmRlZmluZWQtbWl4aW4tdXNlci1zZWxlY3QqL1xyXG4gICAgICAgIGJyIHtcclxuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzdmcge1xyXG4gICAgICAgICAgZmlsbDogJHNlY29uZGFyeTtcclxuICAgICAgICAgIGhlaWdodDogMS4yZW07XHJcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xyXG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjJlbTtcclxuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAmOmZvY3VzLFxyXG4gICAgICAgICY6YWN0aXZlIHtcclxuICAgICAgICAgIG91dGxpbmU6IDA7XHJcbiAgICAgICAgICBjb2xvcjogbGlnaHRlbigkc2Vjb25kYXJ5LCAxNSUpO1xyXG5cclxuICAgICAgICAgIHN2ZyB7XHJcbiAgICAgICAgICAgIGZpbGw6IGxpZ2h0ZW4oJHNlY29uZGFyeSwgMTUlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zbGlkZXIge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6ICN7MTAwJS8kdGFiLWNvdW50fTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjMzcyBjdWJpYy1iZXppZXIoMC4zOCwgMC44LCAwLjMyLCAxLjA3KTtcclxuXHJcbiAgICAuaW5kaWNhdG9yIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICB3aWR0aDogJGluZGljYXRvci13aWR0aDtcclxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgaGVpZ2h0OiAkaW5kaWNhdG9yLWhlaWdodDtcclxuICAgICAgYmFja2dyb3VuZDogJGFjY2VudDtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMXB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNvbnRlbnQge1xyXG4gICAgbWFyZ2luLXRvcDogMzBweDtcclxuXHJcbiAgICBzZWN0aW9uIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgICAgIGFuaW1hdGlvbjoge1xyXG4gICAgICAgIG5hbWU6IGNvbnRlbnQ7XHJcbiAgICAgICAgZGlyZWN0aW9uOiBub3JtYWw7XHJcbiAgICAgICAgZHVyYXRpb246IDAuM3M7XHJcbiAgICAgICAgdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcclxuICAgICAgICBpdGVyYXRpb24tY291bnQ6IDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XHJcblxyXG4gICAgICBoMiB7XHJcbiAgICAgICAgY29sb3I6ICRhY2NlbnQ7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgICAgICAgJjo6YWZ0ZXIge1xyXG4gICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgd2lkdGg6IDMwcHg7XHJcbiAgICAgICAgICBoZWlnaHQ6IDNweDtcclxuICAgICAgICAgIGJhY2tncm91bmQ6ICRhY2NlbnQ7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbiAgICAgICAgICBsZWZ0OiAxcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbnB1dFtuYW1lPVwidGFiLWNvbnRyb2xcIl0ge1xyXG4gICAgQGluY2x1ZGUgdGFicyB7XHJcbiAgICAgID4gbGFiZWwge1xyXG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgICAgICBjb2xvcjogJGFjY2VudDtcclxuXHJcbiAgICAgICAgc3ZnIHtcclxuICAgICAgICAgIGZpbGw6ICRhY2NlbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLWdldCgkYnJlYWtwb2ludHMsIHNtYWxsKSkge1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA4KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBrZXlmcmFtZXMgY29udGVudCB7XHJcbiAgICBmcm9tIHtcclxuICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUlKTtcclxuICAgIH1cclxuXHJcbiAgICB0byB7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKG1heC13aWR0aDogbWFwLWdldCgkYnJlYWtwb2ludHMsIG1lZGl1bSkpIHtcclxuICAgIHVsIGxpIGxhYmVsIHtcclxuICAgICAgd2hpdGUtc3BhY2U6IGluaXRpYWw7XHJcblxyXG4gICAgICBiciB7XHJcbiAgICAgICAgZGlzcGxheTogaW5pdGlhbDtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3ZnIHtcclxuICAgICAgICBoZWlnaHQ6IDEuNWVtO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKG1heC13aWR0aDogbWFwLWdldCgkYnJlYWtwb2ludHMsIHNtYWxsKSkge1xyXG4gICAgdWwgbGkgbGFiZWwge1xyXG4gICAgICBwYWRkaW5nOiA1cHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuXHJcbiAgICAgIHNwYW4ge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2xpZGVyIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAuY29udGVudCB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XHJcblxyXG4gICAgICBzZWN0aW9uIGgyIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4vKlxyXG4gQ1NTIGZvciB0aGUgbWFpbiBpbnRlcmFjdGlvblxyXG4qL1xyXG4udGFic2V0ID4gaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogLTIwMHZ3O1xyXG59XHJcblxyXG4udGFic2V0IC50YWItcGFuZWwge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi50YWJzZXQgPiBpbnB1dDpmaXJzdC1jaGlsZDpjaGVja2VkIH4gLnRhYi1wYW5lbHMgPiAudGFiLXBhbmVsOmZpcnN0LWNoaWxkLFxyXG4udGFic2V0ID4gaW5wdXQ6bnRoLWNoaWxkKDMpOmNoZWNrZWQgfiAudGFiLXBhbmVscyA+IC50YWItcGFuZWw6bnRoLWNoaWxkKDIpLFxyXG4udGFic2V0ID4gaW5wdXQ6bnRoLWNoaWxkKDUpOmNoZWNrZWQgfiAudGFiLXBhbmVscyA+IC50YWItcGFuZWw6bnRoLWNoaWxkKDMpLFxyXG4udGFic2V0ID4gaW5wdXQ6bnRoLWNoaWxkKDcpOmNoZWNrZWQgfiAudGFiLXBhbmVscyA+IC50YWItcGFuZWw6bnRoLWNoaWxkKDQpLFxyXG4udGFic2V0ID4gaW5wdXQ6bnRoLWNoaWxkKDkpOmNoZWNrZWQgfiAudGFiLXBhbmVscyA+IC50YWItcGFuZWw6bnRoLWNoaWxkKDUpLFxyXG4udGFic2V0ID4gaW5wdXQ6bnRoLWNoaWxkKDExKTpjaGVja2VkIH4gLnRhYi1wYW5lbHMgPiAudGFiLXBhbmVsOm50aC1jaGlsZCg2KSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi8qXHJcbiBTdHlsaW5nXHJcbiovXHJcbmJvZHkge1xyXG4gIGZvbnQ6IDE2cHgvMS41ZW0gXCJPdmVycGFzc1wiLCBcIk9wZW4gU2Fuc1wiLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbiAgY29sb3I6ICMzMzM7XHJcbiAgZm9udC13ZWlnaHQ6IDMwMDtcclxufVxyXG5cclxuLnRhYnNldCA+IGxhYmVsIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBhZGRpbmc6IDE1cHggMTVweCAyNXB4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlci1ib3R0b206IDA7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbi50YWJzZXQgPiBsYWJlbDo6YWZ0ZXIge1xyXG4gIGNvbnRlbnQ6IFwiXCI7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDE1cHg7XHJcbiAgYm90dG9tOiAxMHB4O1xyXG4gIHdpZHRoOiAyMnB4O1xyXG4gIGhlaWdodDogNHB4O1xyXG4gIGJhY2tncm91bmQ6ICM4ZDhkOGQ7XHJcbn1cclxuXHJcbi50YWJzZXQgPiBsYWJlbDpob3ZlcixcclxuLnRhYnNldCA+IGlucHV0OmZvY3VzICsgbGFiZWwge1xyXG4gIGNvbG9yOiAjMDZjO1xyXG59XHJcblxyXG4udGFic2V0ID4gbGFiZWw6aG92ZXI6OmFmdGVyLFxyXG4udGFic2V0ID4gaW5wdXQ6Zm9jdXMgKyBsYWJlbDo6YWZ0ZXIsXHJcbi50YWJzZXQgPiBpbnB1dDpjaGVja2VkICsgbGFiZWw6OmFmdGVyIHtcclxuICBiYWNrZ3JvdW5kOiAjMDZjO1xyXG59XHJcblxyXG4udGFic2V0ID4gaW5wdXQ6Y2hlY2tlZCArIGxhYmVsIHtcclxuICBib3JkZXItY29sb3I6ICNjY2M7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmZmY7XHJcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcclxufVxyXG5cclxuLnRhYi1wYW5lbCB7XHJcbiAgcGFkZGluZzogMzBweCAwO1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xyXG59XHJcblxyXG4vKlxyXG4gRGVtbyBwdXJwb3NlcyBvbmx5XHJcbiovXHJcbiosXHJcbio6YmVmb3JlLFxyXG4qOmFmdGVyIHtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG59XHJcblxyXG5ib2R5IHtcclxuICBwYWRkaW5nOiAzMHB4O1xyXG59XHJcblxyXG4udGFic2V0IHtcclxuICBtYXgtd2lkdGg6IDY1ZW07XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuLyoqXHJcbiAqIHRhYnNOb3JtYWxcclxuICovXHJcbi50YWJzTm9ybWFsIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDsgLy8gbWFrZSBzdXJlIGl0IHdyYXBzXHJcbn1cclxuXHJcbi50YWJzTm9ybWFsIGxhYmVsIHtcclxuICBvcmRlcjogMTsgLy8gUHV0IHRoZSBsYWJlbHMgZmlyc3RcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwYWRkaW5nOiAxcmVtIDJyZW07XHJcbiAgbWFyZ2luLXJpZ2h0OiAwLjJyZW07XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGJhY2tncm91bmQ6ICM5MENBRjk7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCBlYXNlIDAuMnM7XHJcbn1cclxuXHJcbi50YWJzTm9ybWFsIC50YWJOb3JtYWwge1xyXG4gIG9yZGVyOiA5OTsgLy8gUHV0IHRoZSB0YWJzTm9ybWFsIGxhc3RcclxuICBmbGV4LWdyb3c6IDE7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBwYWRkaW5nOiAxcmVtO1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7XHJcbn1cclxuXHJcbi50YWJzTm9ybWFsIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLnRhYnNOb3JtYWwgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbCB7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjtcclxufVxyXG5cclxuLnRhYnNOb3JtYWwgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbCArIC50YWJOb3JtYWwge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNDVlbSkge1xyXG4gIC50YWJzTm9ybWFsIC50YWJOb3JtYWwsXHJcbiAgLnRhYnNOb3JtYWwgbGFiZWwge1xyXG4gICAgb3JkZXI6IGluaXRpYWw7XHJcbiAgfVxyXG5cclxuICAudGFic05vcm1hbCBsYWJlbCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgIG1hcmdpbi10b3A6IDAuMnJlbTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmljIFN0eWxpbmdcclxuKi9cclxuYm9keSB7XHJcbiAgYmFja2dyb3VuZDogI2VlZTtcclxuICBtaW4taGVpZ2h0OiAxMDB2aDtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIHBhZGRpbmctdG9wOiAxMHZoO1xyXG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYU5ldWUtTGlnaHRcIiwgXCJIZWx2ZXRpY2EgTmV1ZSBMaWdodFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIFwiTHVjaWRhIEdyYW5kZVwiLCBzYW5zLXNlcmlmO1xyXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICBtYXgtd2lkdGg6IDYwcmVtO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIGZvbnQtc2l6ZTogMTEyJTtcclxufVxyXG4iLCJAaW1wb3J0ICdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9TW9udHNlcnJhdDo0MDAsNzAwfFJhbGV3YXk6MzAwLDQwMCc7XG4uZHQtdGFiIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmR0LXRhYiBzcGFuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwLjYyNXJlbSAxcmVtO1xuICB0cmFuc2l0aW9uOiAwLjNzO1xufVxuXG4uZHQtdGFiIHNwYW46aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kdC1jb2xvci1zZWNvbmRhcnktbGlnaHRlcik7XG59XG5cbi5kdC10YWIgc3Bhbi5hY3RpdmUge1xuICBib3gtc2hhZG93OiAwIDAuMTI1cmVtIDAgdmFyKC0tZHQtY29sb3ItcHJpbWFyeS1saWdodGVyKSBpbnNldDtcbn1cblxuLypcbiAgaHR0cHM6IC8vd3d3LmV4Y2l0b25pbnRlcmFjdGl2ZS5jb20vYXJ0aWNsZXMvcmVhZC8xMC9hc3AtbmV0LWNvcmUtYW5ndWxhci13ZWJwYWNrL2NyZWF0aW9uLWFuZC1iYXNpYy1zZXR1cFxuICBodHRwczovL2dpdGh1Yi5jb20vdGhvdWdodGJvdC9ib3VyYm9uL2lzc3Vlcy85NzkjaXNzdWVjb21tZW50LTI4MTI4MjcxMFxuICBodHRwczovL3Nhc3MtbGFuZy5jb20vZG9jdW1lbnRhdGlvbi9hdC1ydWxlcy9taXhpblxuKi9cbi8qIGNvbG9ycyAqL1xuLyogdGFiIHNldHRpbmcgKi9cbi8qIGJyZWFrcG9pbnRzICovXG4vKiBzZWxlY3RvcnMgcmVsYXRpdmUgdG8gcmFkaW8gaW5wdXRzICovXG5odG1sIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuYm9keSB7XG4gIGJhY2tncm91bmQ6ICNlZmVmZWY7XG4gIGNvbG9yOiAjMzMzO1xuICBmb250LWZhbWlseTogXCJSYWxld2F5XCI7XG4gIGhlaWdodDogMTAwJTtcbn1cbmJvZHkgaDEge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjNDI4QkZGO1xuICBmb250LXdlaWdodDogMzAwO1xuICBwYWRkaW5nOiA0MHB4IDAgMjBweCAwO1xuICBtYXJnaW46IDA7XG59XG5cbi50YWJzIHtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHBhZGRpbmc6IDUwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA4MHB4O1xuICB3aWR0aDogNzAlO1xuICBoZWlnaHQ6IDI1MHB4O1xuICBib3gtc2hhZG93OiAwIDE0cHggMjhweCByZ2JhKDAsIDAsIDAsIDAuMjUpLCAwIDEwcHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMjIpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIG1pbi13aWR0aDogMjQwcHg7XG59XG4udGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udGFicyAuY29udGVudCBzZWN0aW9uIGgyLFxuLnRhYnMgdWwgbGkgbGFiZWwge1xuICBmb250LWZhbWlseTogXCJNb250c2VycmF0XCI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGNvbG9yOiAjNDI4QkZGO1xufVxuLnRhYnMgdWwge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi50YWJzIHVsIGxpIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZmxleDogMTtcbiAgd2lkdGg6IDI1JTtcbiAgcGFkZGluZzogMCAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udGFicyB1bCBsaSBsYWJlbCB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICBjb2xvcjogIzkyOWRhZjtcbiAgcGFkZGluZzogNXB4IGF1dG87XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLypAaW5jbHVkZSB1c2VyLXNlbGVjdChub25lKTsgICBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNzU5MzUwMy9jb21wYXNzLXN5bnRheC1lcnJvci11bmRlZmluZWQtbWl4aW4tdXNlci1zZWxlY3QqL1xufVxuLnRhYnMgdWwgbGkgbGFiZWwgYnIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnRhYnMgdWwgbGkgbGFiZWwgc3ZnIHtcbiAgZmlsbDogIzkyOWRhZjtcbiAgaGVpZ2h0OiAxLjJlbTtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjJlbTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG59XG4udGFicyB1bCBsaSBsYWJlbDpob3ZlciwgLnRhYnMgdWwgbGkgbGFiZWw6Zm9jdXMsIC50YWJzIHVsIGxpIGxhYmVsOmFjdGl2ZSB7XG4gIG91dGxpbmU6IDA7XG4gIGNvbG9yOiAjYmVjNWNmO1xufVxuLnRhYnMgdWwgbGkgbGFiZWw6aG92ZXIgc3ZnLCAudGFicyB1bCBsaSBsYWJlbDpmb2N1cyBzdmcsIC50YWJzIHVsIGxpIGxhYmVsOmFjdGl2ZSBzdmcge1xuICBmaWxsOiAjYmVjNWNmO1xufVxuLnRhYnMgLnNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDI1JTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMzNzIGN1YmljLWJlemllcigwLjM4LCAwLjgsIDAuMzIsIDEuMDcpO1xufVxuLnRhYnMgLnNsaWRlciAuaW5kaWNhdG9yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNTBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgaGVpZ2h0OiA0cHg7XG4gIGJhY2tncm91bmQ6ICM0MjhCRkY7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbn1cbi50YWJzIC5jb250ZW50IHtcbiAgbWFyZ2luLXRvcDogMzBweDtcbn1cbi50YWJzIC5jb250ZW50IHNlY3Rpb24ge1xuICBkaXNwbGF5OiBub25lO1xuICBhbmltYXRpb24tbmFtZTogY29udGVudDtcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogbm9ybWFsO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuM3M7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxO1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuLnRhYnMgLmNvbnRlbnQgc2VjdGlvbiBoMiB7XG4gIGNvbG9yOiAjNDI4QkZGO1xuICBkaXNwbGF5OiBub25lO1xufVxuLnRhYnMgLmNvbnRlbnQgc2VjdGlvbiBoMjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzcHg7XG4gIGJhY2tncm91bmQ6ICM0MjhCRkY7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgbGVmdDogMXB4O1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMSk6Y2hlY2tlZCB+IHVsID4gbGk6bnRoLWNoaWxkKDEpID4gbGFiZWwge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGNvbG9yOiAjNDI4QkZGO1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMSk6Y2hlY2tlZCB+IHVsID4gbGk6bnRoLWNoaWxkKDEpID4gbGFiZWwgc3ZnIHtcbiAgZmlsbDogIzQyOEJGRjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAudGFicyBpbnB1dFtuYW1lPXRhYi1jb250cm9sXTpudGgtb2YtdHlwZSgxKTpjaGVja2VkIH4gdWwgPiBsaTpudGgtY2hpbGQoMSkgPiBsYWJlbCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgfVxufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMSk6Y2hlY2tlZCB+IC5zbGlkZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMSk6Y2hlY2tlZCB+IC5jb250ZW50ID4gc2VjdGlvbjpudGgtY2hpbGQoMSkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDIpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCgyKSA+IGxhYmVsIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBjb2xvcjogIzQyOEJGRjtcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDIpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCgyKSA+IGxhYmVsIHN2ZyB7XG4gIGZpbGw6ICM0MjhCRkY7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMik6Y2hlY2tlZCB+IHVsID4gbGk6bnRoLWNoaWxkKDIpID4gbGFiZWwge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIH1cbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDIpOmNoZWNrZWQgfiAuc2xpZGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMik6Y2hlY2tlZCB+IC5jb250ZW50ID4gc2VjdGlvbjpudGgtY2hpbGQoMikge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDMpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCgzKSA+IGxhYmVsIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBjb2xvcjogIzQyOEJGRjtcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDMpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCgzKSA+IGxhYmVsIHN2ZyB7XG4gIGZpbGw6ICM0MjhCRkY7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMyk6Y2hlY2tlZCB+IHVsID4gbGk6bnRoLWNoaWxkKDMpID4gbGFiZWwge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIH1cbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDMpOmNoZWNrZWQgfiAuc2xpZGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMCUpO1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoMyk6Y2hlY2tlZCB+IC5jb250ZW50ID4gc2VjdGlvbjpudGgtY2hpbGQoMykge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDQpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCg0KSA+IGxhYmVsIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBjb2xvcjogIzQyOEJGRjtcbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDQpOmNoZWNrZWQgfiB1bCA+IGxpOm50aC1jaGlsZCg0KSA+IGxhYmVsIHN2ZyB7XG4gIGZpbGw6ICM0MjhCRkY7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoNCk6Y2hlY2tlZCB+IHVsID4gbGk6bnRoLWNoaWxkKDQpID4gbGFiZWwge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIH1cbn1cbi50YWJzIGlucHV0W25hbWU9dGFiLWNvbnRyb2xdOm50aC1vZi10eXBlKDQpOmNoZWNrZWQgfiAuc2xpZGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMwMCUpO1xufVxuLnRhYnMgaW5wdXRbbmFtZT10YWItY29udHJvbF06bnRoLW9mLXR5cGUoNCk6Y2hlY2tlZCB+IC5jb250ZW50ID4gc2VjdGlvbjpudGgtY2hpbGQoNCkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbkBrZXlmcmFtZXMgY29udGVudCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUlKTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTAwMHB4KSB7XG4gIC50YWJzIHVsIGxpIGxhYmVsIHtcbiAgICB3aGl0ZS1zcGFjZTogaW5pdGlhbDtcbiAgfVxuICAudGFicyB1bCBsaSBsYWJlbCBiciB7XG4gICAgZGlzcGxheTogaW5pdGlhbDtcbiAgfVxuICAudGFicyB1bCBsaSBsYWJlbCBzdmcge1xuICAgIGhlaWdodDogMS41ZW07XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAudGFicyB1bCBsaSBsYWJlbCB7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgfVxuICAudGFicyB1bCBsaSBsYWJlbCBzcGFuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC50YWJzIC5zbGlkZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLnRhYnMgLmNvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gIH1cbiAgLnRhYnMgLmNvbnRlbnQgc2VjdGlvbiBoMiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLypcbiBDU1MgZm9yIHRoZSBtYWluIGludGVyYWN0aW9uXG4qL1xuLnRhYnNldCA+IGlucHV0W3R5cGU9cmFkaW9dIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjAwdnc7XG59XG5cbi50YWJzZXQgLnRhYi1wYW5lbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi50YWJzZXQgPiBpbnB1dDpmaXJzdC1jaGlsZDpjaGVja2VkIH4gLnRhYi1wYW5lbHMgPiAudGFiLXBhbmVsOmZpcnN0LWNoaWxkLFxuLnRhYnNldCA+IGlucHV0Om50aC1jaGlsZCgzKTpjaGVja2VkIH4gLnRhYi1wYW5lbHMgPiAudGFiLXBhbmVsOm50aC1jaGlsZCgyKSxcbi50YWJzZXQgPiBpbnB1dDpudGgtY2hpbGQoNSk6Y2hlY2tlZCB+IC50YWItcGFuZWxzID4gLnRhYi1wYW5lbDpudGgtY2hpbGQoMyksXG4udGFic2V0ID4gaW5wdXQ6bnRoLWNoaWxkKDcpOmNoZWNrZWQgfiAudGFiLXBhbmVscyA+IC50YWItcGFuZWw6bnRoLWNoaWxkKDQpLFxuLnRhYnNldCA+IGlucHV0Om50aC1jaGlsZCg5KTpjaGVja2VkIH4gLnRhYi1wYW5lbHMgPiAudGFiLXBhbmVsOm50aC1jaGlsZCg1KSxcbi50YWJzZXQgPiBpbnB1dDpudGgtY2hpbGQoMTEpOmNoZWNrZWQgfiAudGFiLXBhbmVscyA+IC50YWItcGFuZWw6bnRoLWNoaWxkKDYpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gU3R5bGluZ1xuKi9cbmJvZHkge1xuICBmb250OiAxNnB4LzEuNWVtIFwiT3ZlcnBhc3NcIiwgXCJPcGVuIFNhbnNcIiwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogIzMzMztcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cblxuLnRhYnNldCA+IGxhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDE1cHggMTVweCAyNXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4udGFic2V0ID4gbGFiZWw6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxNXB4O1xuICBib3R0b206IDEwcHg7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDRweDtcbiAgYmFja2dyb3VuZDogIzhkOGQ4ZDtcbn1cblxuLnRhYnNldCA+IGxhYmVsOmhvdmVyLFxuLnRhYnNldCA+IGlucHV0OmZvY3VzICsgbGFiZWwge1xuICBjb2xvcjogIzA2Yztcbn1cblxuLnRhYnNldCA+IGxhYmVsOmhvdmVyOjphZnRlcixcbi50YWJzZXQgPiBpbnB1dDpmb2N1cyArIGxhYmVsOjphZnRlcixcbi50YWJzZXQgPiBpbnB1dDpjaGVja2VkICsgbGFiZWw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogIzA2Yztcbn1cblxuLnRhYnNldCA+IGlucHV0OmNoZWNrZWQgKyBsYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogI2NjYztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmZmY7XG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG59XG5cbi50YWItcGFuZWwge1xuICBwYWRkaW5nOiAzMHB4IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xufVxuXG4vKlxuIERlbW8gcHVycG9zZXMgb25seVxuKi9cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5ib2R5IHtcbiAgcGFkZGluZzogMzBweDtcbn1cblxuLnRhYnNldCB7XG4gIG1heC13aWR0aDogNjVlbTtcbn1cblxuLyoqXG4gKiB0YWJzTm9ybWFsXG4gKi9cbi50YWJzTm9ybWFsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4udGFic05vcm1hbCBsYWJlbCB7XG4gIG9yZGVyOiAxO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMXJlbSAycmVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuMnJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiAjOTBDQUY5O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCBlYXNlIDAuMnM7XG59XG5cbi50YWJzTm9ybWFsIC50YWJOb3JtYWwge1xuICBvcmRlcjogOTk7XG4gIGZsZXgtZ3JvdzogMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJhY2tncm91bmQ6ICNmZmY7XG59XG5cbi50YWJzTm9ybWFsIGlucHV0W3R5cGU9cmFkaW9dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnRhYnNOb3JtYWwgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCArIGxhYmVsIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLnRhYnNOb3JtYWwgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCArIGxhYmVsICsgLnRhYk5vcm1hbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDVlbSkge1xuICAudGFic05vcm1hbCAudGFiTm9ybWFsLFxuLnRhYnNOb3JtYWwgbGFiZWwge1xuICAgIG9yZGVyOiBpbml0aWFsO1xuICB9XG5cbiAgLnRhYnNOb3JtYWwgbGFiZWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gIH1cbn1cbi8qKlxuICogR2VuZXJpYyBTdHlsaW5nXG4qL1xuYm9keSB7XG4gIGJhY2tncm91bmQ6ICNlZWU7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nLXRvcDogMTB2aDtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhTmV1ZS1MaWdodFwiLCBcIkhlbHZldGljYSBOZXVlIExpZ2h0XCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgXCJMdWNpZGEgR3JhbmRlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIG1heC13aWR0aDogNjByZW07XG4gIG1hcmdpbjogMCBhdXRvO1xuICBmb250LXNpemU6IDExMiU7XG59Il19 */\"","import { Component, OnChanges, ChangeDetectionStrategy, Input, Output, EventEmitter, HostBinding } from '@angular/core';\r\nimport { SelectItem } from '../common';\r\n\r\n@Component({\r\n selector: 'app-tabs',\r\n templateUrl: './tabs.component.html',\r\n styleUrls: ['./tabs.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TabsComponent implements OnChanges {\r\n\r\n @Input() tabs: SelectItem[];\r\n @Input() localStorageName: string;\r\n @Output() selectTab: EventEmitter = new EventEmitter();\r\n\r\n @HostBinding('class.dt-tab') cssClass = true;\r\n private selected: any;\r\n\r\n constructor() { }\r\n\r\n ngOnChanges() {\r\n console.log(this.localStorageName)\r\n if (this.localStorageName) {\r\n console.log(localStorage.getItem(this.localStorageName))\r\n this.selected = localStorage.getItem(this.localStorageName);\r\n if (this.selected) {\r\n this.selectTab.emit(this.selected);\r\n }\r\n }\r\n if (!this.selected && this.tabs && this.tabs.length) {\r\n this.selected = this.tabs[0].id;\r\n this.selectTab.emit(this.selected);\r\n }\r\n }\r\n\r\n onClickTab(event: SelectItem) {\r\n this.selected = event.id;\r\n this.selectTab.emit(this.selected);\r\n console.log(this.localStorageName)\r\n if (this.localStorageName) {\r\n localStorage.setItem(this.localStorageName, this.selected);\r\n console.log(localStorage.getItem(this.localStorageName))\r\n }\r\n }\r\n\r\n isActive(tab: SelectItem): boolean {\r\n return this.selected === tab.id;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TabsComponent } from './tabs.component';\n\n\n\n@NgModule({\n declarations: [TabsComponent],\n exports: [TabsComponent],\n imports: [\n CommonModule\n ]\n})\nexport class TabsModule { }\n","export * from './tree-view-module';\nexport {Tree, TreeNode, TreeDataSource} from '../tree';\nexport {TreeViewComponent} from './tree-view.component';\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {HttpClientModule} from '@angular/common/http';\n\nimport {TreeViewComponent} from './tree-view.component';\nimport {TreeViewNodeComponent} from './tree-view-node.component';\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n ],\n declarations: [\n TreeViewComponent,\n TreeViewNodeComponent,\n ],\n exports: [\n TreeViewComponent,\n ]\n})\nexport class TreeViewModule {\n}\n","import {Component, Input, Output, EventEmitter, OnInit} from '@angular/core';\nimport {TreeNode, FilterState, TreeHelper} from '../tree';\n\n@Component({\n selector: 'app-tree-view-node',\n template: `\n
  • \n \n \n \n \n {{node.name}}\n \n
      \n \n \n
    \n
  • \n `\n})\nexport class TreeViewNodeComponent implements OnInit {\n\n @Input() node: TreeNode;\n @Input() getIconFunc: (node?: TreeNode) => string;\n\n @Output() selectedChanged: EventEmitter = new EventEmitter();\n @Output() nodeRightClick: EventEmitter = new EventEmitter();\n\n constructor() {}\n\n ngOnInit() {\n }\n\n onSelectNode(node: TreeNode) {\n if (this.node.tree.selectedNode !== node) {\n this.node.tree.selectedNode = node;\n this.selectedChanged.emit(node);\n }\n }\n\n onExpand(node: TreeNode) {\n node.expanded = !node.expanded;\n if (node.expanded) {\n node.$$loading = true;\n this.node.tree.loadNode(node).finally(() => { node.$$loading = false; });\n }\n }\n\n getExpanderIcon(node: TreeNode) {\n return TreeHelper.getExpanderIcon(node);\n }\n\n getIcon(node: TreeNode) {\n if (this.getIconFunc) {\n return this.getIconFunc(node);\n } else {\n return node.icon;\n }\n }\n\n nodeClass(): string {\n let cls = 'treenode';\n if (this.node.$$filterState === FilterState.NOT_FOUND) {\n cls += ' filter-not-found';\n }\n return cls;\n }\n\n nodeContentClass(): string {\n let cls = 'treenode-content';\n if (this.node.$$filterState === FilterState.FOUND) {\n cls += ' filter-found';\n } else if (this.node.$$filterState === FilterState.ON_FOUND_PATH) {\n cls += ' filter-on-path';\n }\n if (this.node.isSelected) {\n cls += ' highlight';\n }\n return cls;\n }\n\n onNodeRightClick(event: MouseEvent) {\n this.onSelectNode(this.node);\n this.nodeRightClick.emit({event, node: this.node});\n }\n\n}\n","module.exports = \".tree-container {\\n height: 100%;\\n margin: 0;\\n white-space: nowrap;\\n padding-left: 20px;\\n}\\n\\n.treenode-content {\\n cursor: pointer;\\n display: inline-block;\\n vertical-align: middle;\\n padding: 0 .25em;\\n line-height: 24px;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.treenode {\\n list-style: none outside none;\\n margin: 0;\\n padding: 5px 0 0 0;\\n}\\n\\n.treenode:hover {\\n cursor: pointer;\\n}\\n\\n.treenode .highlight {\\n border-color: #156090;\\n background: #1976D2; /*#5b9bd5;*/\\n color: #FFFFFF;\\n border-radius: 2px;\\n}\\n\\n.treenode .filter-found {\\n font-weight: bold;\\n}\\n\\n.treenode .filter-on-path {\\n opacity: 0.5;\\n}\\n\\n.treenode.filter-not-found {\\n display: none;\\n}\\n\\n.treenode span:hover:not(.highlight) {\\n background: #e7f4f9;\\n border-radius: 2px;\\n box-shadow: inset 0 0 1px #cccccc;\\n}\\n\\n.tree-loading-content {\\n text-align: center;\\n}\\n\\n.tree-loading-content i {\\n height: 40px;\\n width: 40px;\\n}\\n\\n.tree-header {\\n display: -ms-flexbox;\\n display: flex;\\n padding-top: 3px;\\n}\\n\\n.tree-body {\\n overflow: auto;\\n max-height: calc(100% - 50px);\\n min-height: 200px;\\n}\\n\\n.tree-header button {\\n margin-right: 2px;\\n}\\n\\n.tree-button-actions {\\n margin: 0;\\n padding: 4px;\\n background-color: transparent;\\n border: none;\\n outline:none;\\n cursor:pointer;\\n color: #333;\\n}\\n\\n.tree-button-actions:hover {\\n background-color: rgba(0,0,0,.1);\\n}\\n\\n.tree-icon-actions {\\n background-repeat: no-repeat;\\n display: inline-block;\\n fill: currentColor;\\n height: 24px;\\n width: 24px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi90cmVlLXZpZXcvdHJlZS12aWV3LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxZQUFZO0VBQ1osU0FBUztFQUNULG1CQUFtQjtFQUNuQixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxlQUFlO0VBQ2YscUJBQXFCO0VBQ3JCLHNCQUFzQjtFQUN0QixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLHlCQUF5QjtFQUN6QixzQkFBaUI7R0FBakIscUJBQWlCO09BQWpCLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLDZCQUE2QjtFQUM3QixTQUFTO0VBQ1Qsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLHFCQUFxQjtFQUNyQixtQkFBbUIsRUFBRSxXQUFXO0VBQ2hDLGNBQWM7RUFDZCxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLGlDQUFpQztBQUNuQzs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxvQkFBYTtFQUFiLGFBQWE7RUFDYixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxjQUFjO0VBQ2QsNkJBQTZCO0VBQzdCLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLFNBQVM7RUFDVCxZQUFZO0VBQ1osNkJBQTZCO0VBQzdCLFlBQVk7RUFDWixZQUFZO0VBQ1osY0FBYztFQUNkLFdBQVc7QUFDYjs7QUFFQTtFQUNFLGdDQUFnQztBQUNsQzs7QUFFQTtFQUNFLDRCQUE0QjtFQUM1QixxQkFBcUI7RUFDckIsa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixXQUFXO0FBQ2IiLCJmaWxlIjoibGliL3RyZWUtdmlldy90cmVlLXZpZXcuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi50cmVlLWNvbnRhaW5lciB7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG59XG5cbi50cmVlbm9kZS1jb250ZW50IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHBhZGRpbmc6IDAgLjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLnRyZWVub2RlIHtcbiAgbGlzdC1zdHlsZTogbm9uZSBvdXRzaWRlIG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogNXB4IDAgMCAwO1xufVxuXG4udHJlZW5vZGU6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi50cmVlbm9kZSAuaGlnaGxpZ2h0IHtcbiAgYm9yZGVyLWNvbG9yOiAjMTU2MDkwO1xuICBiYWNrZ3JvdW5kOiAjMTk3NkQyOyAvKiM1YjliZDU7Ki9cbiAgY29sb3I6ICNGRkZGRkY7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuLnRyZWVub2RlIC5maWx0ZXItZm91bmQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnRyZWVub2RlIC5maWx0ZXItb24tcGF0aCB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxuLnRyZWVub2RlLmZpbHRlci1ub3QtZm91bmQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udHJlZW5vZGUgc3Bhbjpob3Zlcjpub3QoLmhpZ2hsaWdodCkge1xuICBiYWNrZ3JvdW5kOiAjZTdmNGY5O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAxcHggI2NjY2NjYztcbn1cblxuLnRyZWUtbG9hZGluZy1jb250ZW50IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4udHJlZS1sb2FkaW5nLWNvbnRlbnQgaSB7XG4gIGhlaWdodDogNDBweDtcbiAgd2lkdGg6IDQwcHg7XG59XG5cbi50cmVlLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmctdG9wOiAzcHg7XG59XG5cbi50cmVlLWJvZHkge1xuICBvdmVyZmxvdzogYXV0bztcbiAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gNTBweCk7XG4gIG1pbi1oZWlnaHQ6IDIwMHB4O1xufVxuXG4udHJlZS1oZWFkZXIgYnV0dG9uIHtcbiAgbWFyZ2luLXJpZ2h0OiAycHg7XG59XG5cbi50cmVlLWJ1dHRvbi1hY3Rpb25zIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6bm9uZTtcbiAgY3Vyc29yOnBvaW50ZXI7XG4gIGNvbG9yOiAjMzMzO1xufVxuXG4udHJlZS1idXR0b24tYWN0aW9uczpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsLjEpO1xufVxuXG4udHJlZS1pY29uLWFjdGlvbnMge1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgaGVpZ2h0OiAyNHB4O1xuICB3aWR0aDogMjRweDtcbn1cbiJdfQ== */\"","import {Component, Input, Output, EventEmitter, OnInit, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {TreeNode, Tree, TreeDataSource} from '../tree';\nimport {ContextMenuComponent, MenuEventArgs} from '../context-menu';\n\n@Component({\n selector: 'app-tree-view',\n templateUrl: 'tree-view.component.html',\n styleUrls: [\n './tree-view.component.css',\n './tree-view.css',\n '../styles/clearable-input.css',\n '../styles/input.css',\n '../styles/spinners.css',\n '../styles/icons.css',\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TreeViewComponent implements OnInit {\n\n @Input()\n get service(): TreeDataSource { return this.tree.service; }\n set service(val: TreeDataSource) {\n this.tree.service = val;\n this.tree.nodes = [];\n }\n\n @Input()\n get nodes(): TreeNode[] { return this.tree.nodes; }\n set nodes(val: TreeNode[]) {\n this.tree.nodes = val;\n }\n\n @Input()\n set serverSideFiltering(val: boolean) {\n this.tree.serverSideFiltering = val;\n }\n\n @Input() contextMenu: ContextMenuComponent;\n @Input() filterDelay = 500;\n @Input() getIconFunc: (node?: TreeNode) => string;\n\n get filterLoading(): boolean {\n return this.tree.filterLoading;\n }\n\n @Output() selectedChanged: EventEmitter = new EventEmitter();\n @ViewChild('filterInput', {static: false}) filterInput: any;\n\n tree: Tree = new Tree();\n filterTimeout: any;\n loading: boolean;\n searchFilterText: any = null;\n\n constructor() {}\n\n ngOnInit() {\n this.initGetNodes();\n }\n\n initGetNodes() {\n this.loading = true;\n this.tree.initLoadNodes().finally(() => { this.loading = false; });\n }\n\n onFilterKeyup() {\n if (this.filterTimeout) {\n clearTimeout(this.filterTimeout);\n }\n\n this.filterTimeout = setTimeout(() => {\n this.tree.filterTree(this.searchFilterText);\n this.filterTimeout = null;\n }, this.filterDelay);\n }\n\n onNodeRightClick(event) {\n if (this.contextMenu) {\n this.contextMenu.show({originalEvent: event.event, data: event.node} as MenuEventArgs);\n }\n }\n\n collapseAll() {\n this.tree.collapseAll();\n }\n\n refresh() {\n this.nodes = [];\n this.initGetNodes();\n this.tree.selectedNode = null;\n this.filterInput.nativeElement.value = null;\n }\n\n onClickClearSearch() {\n this.searchFilterText = null;\n this.onFilterKeyup();\n }\n\n getNodeById(nodeId: string) {\n return this.tree.getNodeById(nodeId);\n }\n\n}\n","module.exports = \".tree-icon {\\n display: inline-block;\\n text-decoration: none;\\n margin: 0;\\n padding: 0;\\n vertical-align: top;\\n text-align: center;\\n width: 24px;\\n height: 24px;\\n line-height: 24px;\\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAABgCAMAAABblVsaAAADAFBMVEUAAABaoVUEYBipAAA5OTkEBAQAAACFZUcJAAAECgLirGt+fn6lpaalpaW5GBhbolUGYhmqAACop6n5+fnBAgKmAQEAWxrfn2UCXhkIDQZ1d3wWhwSlAAAPcRu+EhL3qamnBQWlpaVYuC6xEBD//f+yCQl2d3wvkCQVhQbJLS3BISEqhyxVrz10x00fjwarBQUAWRMrmgyoAgLng4OtCAjvk5MPfAelBwf18/VhuUHLDAz1k5NmukkHYRaKz2t0wVmb23pesUqP1W+P0nDsZ2fUSUm1FxfnWVnqY2O0BASNAADq2p2+GxuwVzj8+PIdHRukpKThq2n////s7O0mJib+/P3enWP67uFVV1uop6kkmwD459b99tVcY3D29fb9+O3x8vHf3+Dp6Oj78ungyI337caYmZihjFU1rwACNrDx8vHT09Tw0rfz3Lv03cbp157Js3u3oWfOwJLdzKdGbUOAgonw8O82rgb35dSluaX67uDq6+ua5mfO48Ph4uJ0dnstowAyqwD78uhdxCovpgB910i38YzP9q9arkL8+/vSAADoAADr7O3S58Y5sAbn5+f249DjAADtAQGpy6JAtwU1lxuC2E2z74hPvxbV1NX99+uvr+NKvQ/36tmy6JHFwJ0ilgR41ELl5eXy9PLd3t7U1dbKAQHC1Meg3oCR1nBozDFerUYnngBgxywjihLV09X/mJjZBQX24MrxAAD+Zmb9+Oz7i4sqiR1uwku4zL2c427W+Lrs7+x7x1r58+Sv3JmOy213vlpxu1d/f7iwxbXW1tn/tLTdAAD9d3f4Jibx1rrwPT3rEBBRxBRlxDeH0mGI02KJ1WCo34qs8HhvzjjJz7iwza337d62FBRiuUP2MTHezKn/q6uDloeguqRRozrM1b6Lz2yi2IeGvm4/ohyrmVWV416c1Xui6W+/0bU7jjS98ZUxjSm5vJaXsZ8slBFSvh7/3t7/ycn/fHzdzqmww7bL2cO3nFnodXV1mHacnFB4kX+kvKuq7HuwuY6orohs99ZiAAAA7XRSTlMA/S4cWkEmAQkW/YD+/1v+NSL+/v5cR/k5F/3prEVM9qH9+27//fzZ2ayEYN3t2LQZ6avdnPrZg/ro8/rVIunV66/o0PLQV/v50hJqkwX9/////////v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////m1ZoxUAAAH80lEQVR42u2ceVjTZhzHCwXaeiAoc865TSbqDq8d7r7v4w9bwmjLUZ6uUFlKW8BRIqgoOEZBiYgKniBT0LlNcYrXnAdem+50uts5dzvdfd/vm7RMHn5JWUInxvcDNDzPm7xpPnyTvG/4gUrVtYwLcvvppru/PwJJIIEkkCSQJJAkkKDEBGq4z4BoJL/5CRy5ubnZDyowgXZ9716xsb166WN76/V2qB0Ti9YRa/dhB/2l+UhJyVFgAvVWDwftoWlWD7TTFo/nOYTHY6HBdq+PpmOH9bBAozGNT2B2jvISqC+kKQrJs1gsXgsoaPK2yTNnzpyMgAVSGNpSvWLLkl9BgSkpxglcACVHUN+JdRJkJEzfiQQK9K+JbZjBsjOwQhpMWF/qs5rSxxFfPr5thhnY96aPDrNIYPXKJSteX3kBsItcJG4Cpy8jQ2IC9ebA/hLkpEhG/7EN7JQpbCEXIlBg4fZJn9eUlpbW1GwvBPbz/taDW49QVPWHm1975dVVoaDAjJTcNKxPWGCgA6QCZTDBJCuBMvqPbbBarVMaHkYKaQ8ocMe8TychNs/bUdi3Q3PUxUvfmLfxSPXGJ0tKXv7gfRUsMAOnMENGAr2UPcDxmWQlUEb/WOAyZBCFkIYSaC7c+Rhm6ZPfrAIEDvi4dtGcl8reXpSZmTm3Cfw5ZiNx2XwAM8ZLPUAvmyd+fAET2P4D6l+4ne8fbkcCl+9GBqewLOWBBdaWPF1SUjunchV0Cv8+F6mbUzlt2rS5TTQsMMPJCXQixgclgQkcwUugaP961upw7F6GFLIUnMCy/PzKysr8/Pwy8Cay6+vp06dPnTp1QxO4PfLnznJmY39ut3t8sK6BMociMvrXsw6HY/5qFEIrCwqk+iQlJT2FvpLKKEgg/dUzuHXDJnB7rSonA4lzZ6e43enp6VITaFYFV6CM/jmB2CG6l8ACQ5J8hMACHV89U1+/4Ud4e50ux4nEuXPEBXbBOFCWQJVcgauXr57vsMID5YkhIX3QR0jILnCgbXE4/jhxfBPyxwLtuvAcd3ZubnpOSnq69AR265kIZeFBkzFQEMtPNfBAEZzqWVm2YVMTi7ECpzAWiAgg8AzGrjdj+uIXgYcFZh+SHiZoI8ZzKDaB/xe8RuLhND1tIhBIAgkkgQQCSSD5EQWpnSSQQBJIIAkkCSSQBBJIAjug4SAJBElsB9BuMBh6cKBvBNrbSBTeT5E5LzUvz6S8BCa6bG0wgACDbX3B84jiBcVpNgPU7q8PPHqs2iD8BuypeQ6TKVWBCSwwImy4gtSbBgks5usDcYFgMSjQyHeA6wN/g/aQymEyIYFoKf2div3yNqELEijev3ACGWMyk1zAOVwPCSzw1wdu2VYACfzio5MMMihcH5gaj/FSeQtN8UIR7EQCzaIHmCA7SRL71yQyyQzjMwgKfNNXH1hasx0S+MnWg1vrjMY64frA1PhHMPFiAjuRP9HylYSA1W3jgtS/5txZzFokMLmgwGgrBgT2WOyrD/xz3k5AIF8fWFfH1wf+rJIoMGAC7ZRX/ABN8jIouX8s0OWahRUajQICl/L1gbVlxo4C29UH/mRQBSmBeaw30AF2OELxksD27VD/p7YLFyBqzl3retHpWjsLGwQEanos3vnN04jaykxIoOqTf+sDj6YZTlsC5VYISu4fJdCV5TNYACbwzVX5HJmwQMNhX33g3ENGW9AS2H1LBJFAZ1ZWltPpcjFMMXgT6eMvb4MF2v7i6wMPMYyQQJ6iIN6FuwCJ/aO7cBYHNmgDhzFtAkNggVl/4/rAOrw9PJDmB4KpRQsT0EtwxoFdkkGJA2km6913f+AcukCBtolccSCuD4SucYY0p/PkieN1aCzEwNdAlRWD/C1sNdkpBc5E0hasX4BAkzFwJsIY/dgYSCA69ZkvDmF/jEtkKmdqbS1qbTWZVUoj8ZSnAYkSHhZ09mHCLnwSm1Lt5HkgoTtCEkggCSSQBBIIJIEEkkACgSSQQBJIIJAEnjU8wC+0JIHSGHJVJF5EXnWhwApahMj2up4cYYq3HHXn5aC/X94biwxGXvTtRbBBrS4iQidiMIz7rauF7anwBIbetmUJYHBI+YH9LWMjI2/cs+c72KA2gqLCI7TiAr2UI76nMoN3we03c/m7A66fu7q8quLAupaWljVr3ttzGXiKhlMTxQzyCaQdtLenEhM4YOTBW8eg/N2C6+dGdKif06gHlVdUPLt/377vW9ZcqhYQ+KiYQV6gl3Y4HOEKvPDh+rmbxoSOxPVzw4H6Q436yvKK2c++sG7dvkvVGiGB2KDQdZAXGOelKTpMeQkccAWunxtxPa6fGxUFrqK+v4ozeLda4C6LBSKDEaICcQi9SrwT97/CXz83KhRe45wb9nIG74qUKPAhv8E4BSYQGTyfr5+7JErAX0x5MzY4+537IlWSTmFOYFwcelHmWLD/+bh+7hKh/A1tbCxvbt5bUTH7nXvvkXQT8cY95PWizzNY4LgABuvrrxHIn+rat2IayxtHjy6vqjqwX8owRhPWz/+nLvFKnY30PzE8VOjw1YPfiom5Mjp6UGNV89VqSQPp6yz+/2Cn0ASqNAOihNvUg4cOQuLUg2IGw8OYgFM5zxMY/J+0lT8fhgxGnxOtaVtIeJgQ1q8fSl+/M/oUlvvHpKcs/jvhRQMHDhs2sAgRriL8d7Q6ne48BFpoz8oEEggkgQSSQAKBJLAb8Q85csYKBm7vjAAAAABJRU5ErkJggg==);\\n background-repeat: no-repeat;\\n}\\n.tree-folder {\\n background-position: -260px -4px;\\n}\\n.tree-file {\\n background-position: -100px -68px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi90cmVlLXZpZXcvdHJlZS12aWV3LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHFCQUFxQjtFQUNyQixxQkFBcUI7RUFDckIsU0FBUztFQUNULFVBQVU7RUFDVixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGluSUFBaW5JO0VBQ2puSSw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLGdDQUFnQztBQUNsQztBQUNBO0VBQ0UsaUNBQWlDO0FBQ25DIiwiZmlsZSI6ImxpYi90cmVlLXZpZXcvdHJlZS12aWV3LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi50cmVlLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFVQUFBQUJnQ0FNQUFBQmJsVnNhQUFBREFGQk1WRVVBQUFCYW9WVUVZQmlwQUFBNU9Ua0VCQVFBQUFDRlpVY0pBQUFFQ2dMaXJHdCtmbjZscGFhbHBhVzVHQmhib2xVR1lobXFBQUNvcDZuNStmbkJBZ0ttQVFFQVd4cmZuMlVDWGhrSURRWjFkM3dXaHdTbEFBQVBjUnUrRWhMM3FhbW5CUVdscGFWWXVDNnhFQkQvL2YreUNRbDJkM3d2a0NRVmhRYkpMUzNCSVNFcWh5eFZyejEweDAwZmp3YXJCUVVBV1JNcm1neW9BZ0xuZzRPdENBanZrNU1QZkFlbEJ3ZjE4L1ZodVVITERBejFrNU5tdWtrSFlSYUt6MnQwd1ZtYjIzcGVzVXFQMVcrUDBuRHNaMmZVU1VtMUZ4Zm5XVm5xWTJPMEJBU05BQURxMnAyK0d4dXdWemo4K1BJZEhSdWtwS1RocTJuLy8vL3M3TzBtSmliKy9QM2VuV1A2N3VGVlYxdW9wNmtrbXdENDU5Yjk5dFZjWTNEMjlmYjkrTzN4OHZIZjMrRHA2T2o3OHVuZ3lJMzM3Y2FZbVppaGpGVTFyd0FDTnJEeDh2SFQwOVR3MHJmejNMdjAzY2JwMTU3SnMzdTNvV2ZPd0pMZHpLZEdiVU9BZ29udzhPODJyZ2IzNWRTbHVhWDY3dURxNit1YTVtZk80OFBoNHVKMGRuc3Rvd0F5cXdENzh1aGR4Q292cGdCOTEwaTM4WXpQOXE5YXJrTDgrL3ZTQUFEb0FBRHI3TzNTNThZNXNBYm41K2YyNDlEakFBRHRBUUdweTZKQXR3VTFseHVDMkUyejc0aFB2eGJWMU5YOTkrdXZyK05LdlEvMzZ0bXk2SkhGd0owaWxnUjQxRUxsNWVYeTlQTGQzdDdVMWRiS0FRSEMxTWVnM29DUjFuQm96REZlclVZbm5nQmd4eXdqaWhMVjA5WC9tSmpaQlFYMjRNcnhBQUQrWm1iOStPejdpNHNxaVIxdXdrdTR6TDJjNDI3VytMcnM3K3g3eDFyNTgrU3YzSm1PeTIxM3ZscHh1MWQvZjdpd3hiWFcxdG4vdExUZEFBRDlkM2Y0SmlieDFycndQVDNyRUJCUnhCUmx4RGVIMG1HSTAyS0oxV0NvMzRxczhIaHZ6ampKejdpd3phMzM3ZDYyRkJSaXVVUDJNVEhlektuL3E2dURsb2VndXFSUm96ck0xYjZMejJ5aTJJZUd2bTQvb2h5cm1WV1Y0MTZjMVh1aTZXKy8wYlU3ampTOThaVXhqU201dkphWHNaOHNsQkZTdmg3LzN0Ny95Y24vZkh6ZHpxbXd3N2JMMmNPM25Gbm9kWFYxbUhhY25GQjRrWCtrdkt1cTdIdXd1WTZvcm9oczk5WmlBQUFBN1hSU1RsTUEvUzRjV2tFbUFRa1cvWUQrLzF2K05TTCsvdjVjUi9rNUYvM3ByRVZNOXFIOSsyNy8vZnpaMmF5RVlOM3QyTFFaNmF2ZG5QclpnL3JvOC9yVkl1blY2Ni9vMFBMUVYvdjUwaEpxa3dYOS8vLy8vLy8vL3YvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL20xWm94VUFBQUg4MGxFUVZSNDJ1MmNlVmpUWmh6SEN3WGFlaUFvYzg2NVRTYnFEcThkN3I3djR3OWJ3bWpMVVo2dVVGbEtXOEJSSXFnb09FWkJpWWdLbmlCVDBMbE5jWXJYbkFkZW0rNTB1dHM1ZHp2ZGZkL3ZtN1JNSG41SldVSW54dmNETkR6UG03eHBQbnlUdkcvNGdVclZ0WXdMY3Z2cHBydS9Qd0pKSUlFa2tDU1FKSkFra0tERUJHcTR6NEJvSkwvNUNSeTV1Ym5aRHlvd2dYWjk3MTZ4c2IxNjZXTjc2L1YycUIwVGk5WVJhL2RoQi8ybCtVaEp5VkZnQXZWV0R3ZnRvV2xXRDdUVEZvL25PWVRIWTZIQmRxK1BwbU9IOWJCQW96R05UMkIyanZJU3FDK2tLUXJKczFnc1hnc29hUEsyeVRObnpweU1nQVZTR05wU3ZXTExrbDlCZ1NrcHhnbGNBQ1ZIVU4rSmRSSmtKRXpmaVFRSzlLK0piWmpCc2pPd1FocE1XRi9xczVyU3h4RmZQcjV0aGhuWTk2YVBEck5JWVBYS0pTdGVYM2tCc0l0Y0pHNENweThqUTJJQzllYkEvaExrcEVoRy83RU43SlFwYkNFWElsQmc0ZlpKbjllVWxwYlcxR3d2QlBiei90YURXNDlRVlBXSG0xOTc1ZFZWb2FEQWpKVGNOS3hQV0dDZ0E2UUNaVERCSkN1Qk12cVBiYkJhclZNYUhrWUthUThvY01lOFR5Y2hOcy9iVWRpM1EzUFV4VXZmbUxmeFNQWEdKMHRLWHY3Z2ZSVXNNQU9uTUVOR0FyMlVQY0R4bVdRbFVFYi9XT0F5WkJDRmtJWVNhQzdjK1JobTZaUGZyQUlFRHZpNGR0R2NsOHJlWHBTWm1UbTNDZnc1WmlOeDJYd0FNOFpMUFVBdm15ZCtmQUVUMlA0RDZsKzRuZThmYmtjQ2wrOUdCcWV3TE9XQkJkYVdQRjFTVWp1bmNoVjBDdjgrRjZtYlV6bHQyclM1VFRRc01NUEpDWFFpeGdjbGdRa2N3VXVnYVA5NjF1cHc3RjZHRkxJVW5NQ3kvUHpLeXNyOC9Qd3k4Q2F5Nit2cDA2ZFBuVHAxUXhPNFBmTG56bkptWTM5dXQzdDhzSzZCTW9jaU12clhzdzZIWS81cUZFSXJDd3FrK2lRbEpUMkZ2cExLS0VnZy9kVXp1SFhESm5CN3JTb25BNGx6WjZlNDNlbnA2VklUYUZZRlY2Q00vam1CMkNHNmw4QUNRNUo4aE1BQ0hWODlVMSsvNFVkNGU1MHV4NG5FdVhQRUJYYkJPRkNXUUpWY2dhdVhyNTd2c01JRDVZa2hJWDNRUjBqSUxuQ2diWEU0L2poeGZCUHl4d0x0dXZBY2QzWnVibnBPU25xNjlBUjI2NWtJWmVGQmt6RlFFTXRQTmZCQUVaenFXVm0yWVZNVGk3RUNwekFXaUFnZzhBekdyamRqK3VJWGdZY0ZaaCtTSGlab0k4WnpLRGFCL3hlOFJ1TGhORDF0SWhCSUFna2tnUVFDU1NENUVRV3BuU1NRUUJKSUlBa2tDU1NRQkJKSUFqdWc0U0FKQkVsc0I5QnVNQmg2Y0tCdkJOcmJTQlRlVDVFNUx6VXZ6NlM4QkNhNmJHMHdnQUNEYlgzQjg0amlCY1ZwTmdQVTdxOFBQSHFzMmlEOEJ1eXBlUTZUS1ZXQkNTd3dJbXk0Z3RTYkJna3M1dXNEY1lGZ01TalF5SGVBNndOL2cvYVF5bUV5SVlGb0tmMmRpdjN5TnFFTEVpamV2M0FDR1dNeWsxekFPVndQQ1N6dzF3ZHUyVllBQ2Z6aW81TU1NaWhjSDVnYWovRlNlUXROOFVJUjdFUUN6YUlIbUNBN1NSTDcxeVF5eVF6ak13Z0tmTk5YSDFoYXN4MFMrTW5XZzF2cmpNWTY0ZnJBMVBoSE1QRmlBanVSUDlIeWxZU0ExVzNqZ3RTLzV0eFp6Rm9rTUxtZ3dHZ3JCZ1QyV095ckQveHozazVBSUY4ZldGZkgxd2YrckpJb01HQUM3WlJYL0FCTjhqSW91WDhzME9XYWhSVWFqUUlDbC9MMWdiVmx4bzRDMjlVSC9tUlFCU21CZWF3MzBBRjJPRUx4a3NEMjdWRC9wN1lMRnlCcXpsM3JldEhwV2pzTEd3UUVhbm9zM3ZuTjA0amF5a3hJb09xVGYrc0RqNllaVGxzQzVWWUlTdTRmSmRDVjVUTllBQ2J3elZYNUhKbXdRTU5oWDMzZzNFTkdXOUFTMkgxTEJKRkFaMVpXbHRQcGNqRk1NWGdUNmVNdmI0TUYydjdpNndNUE1ZeVFRSjZpSU42RnV3Q0ovYU83Y0JZSE5tZ0RoekZ0QWtOZ2dWbC80L3JBT3J3OVBKRG1CNEtwUlFzVDBFdHd4b0Zka2tHSkEya202OTEzZitBY3VrQ0J0b2xjY1NDdUQ0U3VjWVkwcC9Qa2llTjFhQ3pFd05kQWxSV0QvQzFzTmRrcEJjNUUwaGFzWDRCQWt6RndKc0lZL2RnWVNDQTY5Wmt2RG1GL2pFdGtLbWRxYlMxcWJUV1pWVW9qOFpTbkFZa1NIaFowOW1IQ0xud1NtMUx0NUhrZ29UdENFa2dnQ1NTUUJCSUlKSUVFa2tBQ2dTU1FRQkpJSUpBRW5qVTh3QyswSklIU0dISlZKRjVFWG5XaHdBcGFoTWoydXA0Y1lZcTNISFhuNWFDL1g5NGJpd3hHWHZUdFJiQkJyUzRpUWlkaU1JejdyYXVGN2Fud0JJYmV0bVVKWUhCSStZSDlMV01qSTIvY3MrYzcyS0EyZ3FMQ0k3VGlBcjJVSTc2bk1vTjN3ZTAzYy9tN0E2NmZ1N3E4cXVMQXVwYVdsalZyM3R0ekdYaUtobE1UeFF6eUNhUWR0TGVuRWhNNFlPVEJXOGVnL04yQzYrZEdkS2lmMDZnSGxWZFVQTHQvMzc3dlc5WmNxaFlRK0tpWVFWNmdsM1k0SE9FS3ZQRGgrcm1ieG9TT3hQVnp3NEg2UTQzNnl2S0syYysrc0c3ZHZrdlZHaUdCMktEUWRaQVhHT2VsS1RwTWVRa2NjQVd1bnh0eFBhNmZHeFVGcnFLK3Y0b3plTGRhNEM2TEJTS0RFYUlDY1FpOVNyd1Q5Ny9DWHo4M0toUmU0NXdiOW5JRzc0cVVLUEFodjhFNEJTWVFHVHlmcjUrN0pFckFYMHg1TXpZNCs1MzdJbFdTVG1GT1lGd2NlbEhtV0xELytiaCs3aEtoL0ExdGJDeHZidDViVVRIN25YdnZrWFFUOGNZOTVQV2l6ek5ZNExnQUJ1dnJyeEhJbityYXQySWF5eHRIank2dnFqcXdYOG93UmhQV3ovK25MdkZLblkzMFB6RThWT2p3MVlQZmlvbTVNanA2VUdOVjg5VnFTUVBwNnl6Ky8yQ24wQVNxTkFPaWhOdlVnNGNPUXVMVWcySUd3OE9ZZ0ZNNXp4TVkvSiswbFQ4ZmhneEdueE90YVZ0SWVKZ1ExcThmU2wrL00vb1VsdnZIcEtjcy9qdmhSUU1IRGhzMnNBZ1JyaUw4ZDdRNm5lNDhCRnBvejhvRUVnZ2tnUVNTUUFLQkpMQWI4UTg1Y3NZS0JtN3ZqQUFBQUFCSlJVNUVya0pnZ2c9PSk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG4udHJlZS1mb2xkZXIge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjYwcHggLTRweDtcbn1cbi50cmVlLWZpbGUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwcHggLTY4cHg7XG59XG4iXX0= */\"","export { TreeFlattener } from './tree-flattener';\nexport { TreeNode } from './tree-node';\nexport { Tree } from './tree';\nexport { TreeBuilder } from './tree-builder';\nexport { TreeHelper } from './tree-helper';\nexport * from './types';\n","import {TreeNode } from './tree-node';\n\nexport class TreeBuilder {\n\n static rowsToTree(rows: any[], from: string, to: string): TreeNode[] {\r\n const map = {};\r\n const roots: TreeNode[] = [];\r\n\r\n for (const row of rows) {\r\n const id = row[to];\r\n map[id] = {\r\n id,\r\n name: (row.name) ? row.name : null,\r\n data: Object.assign({}, row),\r\n icon: (row.icon) ? row.icon : null,\r\n children: [],\r\n } as TreeNode;\r\n }\r\n\r\n for (const row of rows) {\r\n const id = row[to];\r\n const node = map[id];\r\n const parentId = node.data[from];\r\n if (parentId !== 0) {\r\n map[parentId].children.push(node);\r\n } else {\r\n roots.push(node);\r\n }\r\n }\r\n return roots;\r\n }\n\n}\n","import {TreeNode} from './tree-node';\n\nexport class TreeFlattener {\n\n constructor(public transformFunction: (node: TreeNode, level: number) => any) { }\r\n\r\n _flattenNode(node: TreeNode, level: number, resultNodes: any[], parentMap: boolean[]): any[] {\r\n const flatNode = this.transformFunction(node, level);\r\n resultNodes.push(flatNode);\r\n\r\n if (flatNode.expandable) {\r\n const childrenNodes = node.children;\r\n if (Array.isArray(childrenNodes)) {\r\n this._flattenChildren(childrenNodes, level, resultNodes, parentMap);\r\n } else {\r\n this._flattenChildren(childrenNodes[0], level, resultNodes, parentMap);\r\n }\r\n }\r\n return resultNodes;\r\n }\r\n\r\n _flattenChildren(children: TreeNode[], level: number, resultNodes: any[], parentMap: boolean[]): void {\r\n children.forEach((child, index) => {\r\n const childParentMap: boolean[] = parentMap.slice();\r\n childParentMap.push(index !== children.length - 1);\r\n this._flattenNode(child, level + 1, resultNodes, childParentMap);\r\n });\r\n }\r\n\r\n flattenNodes(structuredData: TreeNode[]): any[] {\r\n const resultNodes: any[] = [];\r\n structuredData.forEach(node => this._flattenNode(node, 0, resultNodes, []));\r\n return resultNodes;\r\n }\n\n }\n","import {TreeNode} from './tree-node';\n\nexport class TreeHelper {\n\n static getExpanderIcon(node: TreeNode): string {\r\n let icon: string;\r\n if (node.$$loading && !node.isLeaf()) {\r\n return 'dt-loader';\r\n }\r\n if (!node.isLeaf() && !node.expanded) {\r\n icon = 'dt-icon-node dt-icon-collapsed';\r\n } else if (!node.isLeaf()) {\r\n icon = 'dt-icon-node';\r\n }\r\n return icon;\r\n }\n\n}\n","import { ITree } from './types';\r\n\r\nexport class TreeNode {\r\n id: string;\r\n name: string;\r\n data?: any;\r\n icon?: string;\r\n expanded?: boolean;\r\n leaf?: boolean;\r\n parent?: TreeNode;\r\n\r\n get children(): TreeNode[] { return this._children; }\r\n set children(val: TreeNode[]) {\r\n this._children = [];\r\n if (val) {\r\n this._children = val.map((c) => new TreeNode(c, this, this.tree));\r\n }\r\n }\r\n private _children: TreeNode[];\r\n\r\n $$id?: number;\r\n $$level?: number;\r\n $$filterState?: number;\r\n $$loading?: boolean;\r\n\r\n constructor(init: Partial, parentNode: TreeNode, public tree: ITree) {\r\n this.id = init.id;\r\n this.name = init.name;\r\n this.data = init.data;\r\n this.icon = init.icon;\r\n this.expanded = init.expanded;\r\n this.leaf = init.leaf;\r\n this.parent = parentNode;\r\n\r\n this.$$id = this.tree.generateId();\r\n this.$$level = (parentNode) ? parentNode.$$level + 1 : 0;\r\n\r\n this.children = init.children;\r\n }\r\n\r\n get path(): string[] {\r\n return this.parent ? [...this.parent.path, this.id] : [];\r\n }\r\n\r\n get hasChildren(): boolean {\r\n return (this.children && this.children.length > 0);\r\n }\r\n\r\n get isSelected(): boolean {\r\n return this === this.tree.selectedNode;\r\n }\r\n\r\n setSelected(): void {\r\n this.tree.selectedNode = this;\r\n }\r\n\r\n isLeaf(): boolean {\r\n return this.leaf === false ? false : !this.hasChildren;\r\n }\r\n\r\n ensureVisible(): TreeNode {\r\n if (this.parent) {\r\n this.parent.expanded = true;\r\n this.parent.ensureVisible();\r\n }\r\n return this;\r\n }\r\n\r\n}\r\n","import {TreeNode} from './tree-node';\nimport {TreeDataSource, FilterState, ITree} from './types';\nimport {isBlank} from '../common/utils';\n\nexport class Tree implements ITree {\n\n service: TreeDataSource;\r\n selectedNode: TreeNode;\r\n filterLoading: boolean;\r\n serverSideFiltering: boolean;\r\n filterLoadingFunc: (state: boolean) => void;\r\n\r\n get nodes(): TreeNode[] { return this._nodes; }\r\n set nodes(val: TreeNode[]) {\r\n this._nodes = [];\r\n for (const node of val) {\r\n this._nodes.push(new TreeNode(node, null, this));\r\n }\r\n }\r\n private _nodes: TreeNode[];\r\n\r\n private uidNode = 0;\r\n\r\n constructor() {\r\n }\r\n\r\n generateId(): number {\r\n return this.uidNode++;\r\n }\r\n\r\n initLoadNodes(): Promise {\r\n if (this.service && !(this.nodes && this.nodes.length)) {\r\n return this.service.getNodes().then(data => {\r\n this.nodes = data;\r\n });\r\n } else {\r\n return Promise.resolve();\r\n }\r\n }\r\n\r\n loadNode(node: TreeNode): Promise {\r\n if ((!node.children || node.children.length === 0) && node.leaf === false && this.service) {\r\n return this.service.getNodes(node).then(data => {\r\n this.addNode(node.$$id, data);\r\n });\r\n } else {\r\n return Promise.resolve();\r\n }\r\n }\r\n\r\n addNode(nodeId: number, children: TreeNode[]): void {\r\n this.nodes.forEach((node) => {\r\n this._addNode(node, nodeId, children);\r\n });\r\n }\r\n\r\n private _addNode(node: TreeNode, nodeId: number, children: TreeNode[]): boolean {\r\n if (node.$$id === nodeId) {\r\n node.children = children;\r\n return true;\r\n } else if (node.children) {\r\n node.children.forEach((child) => {\r\n this._addNode(child, nodeId, children);\r\n });\r\n }\r\n return false;\r\n }\r\n\r\n doForAll(fn: (node: TreeNode) => any): Promise {\r\n return this.doForEach(this.nodes, fn);\r\n }\r\n\r\n filterTree(filterValue: string): Promise {\r\n if (this.serverSideFiltering) {\r\n return this.filterServerSide(filterValue);\r\n } else {\r\n this.filterClientSide(filterValue);\r\n return Promise.resolve();\r\n }\r\n }\r\n\r\n filterClientSide(filterValue: string): void {\r\n if (!filterValue.trim()) {\r\n this.clearSearchState();\r\n return;\r\n }\r\n\r\n const searchNode = (node: TreeNode): boolean => {\r\n let expandUp = false;\r\n const index = node.name.toLowerCase().indexOf(filterValue.toLowerCase());\r\n if (index >= 0) {\r\n node.$$filterState = FilterState.FOUND;\r\n expandUp = true;\r\n } else {\r\n node.$$filterState = FilterState.NOT_FOUND;\r\n node.expanded = false;\r\n expandUp = false;\r\n }\r\n\r\n if (node.children) {\r\n const childState = node.children.map(searchNode).find((state: boolean) => state);\r\n if (childState) {\r\n if (node.$$filterState !== FilterState.FOUND) {\r\n node.$$filterState = FilterState.ON_FOUND_PATH;\r\n }\r\n node.expanded = true;\r\n expandUp = true;\r\n }\r\n }\r\n return expandUp;\r\n };\r\n\r\n if (this.nodes) {\r\n this.nodes.forEach(searchNode);\r\n }\r\n }\r\n\r\n clearSearchState(): Promise {\r\n return this.doForAll((node: TreeNode) => {\r\n node.$$filterState = null;\r\n node.expanded = false;\r\n });\r\n }\r\n\r\n getNodeById(nodeId: string): TreeNode {\r\n return this.getNodeBy(node => node.id && node.id.toString() === nodeId.toString());\r\n }\r\n\r\n getNodeBy(predicate, startNode = null): TreeNode {\r\n startNode = startNode || { children: this.nodes };\r\n if (!startNode.children) {\r\n return null;\r\n }\r\n\r\n const found = startNode.children.find(predicate);\r\n\r\n if (found) {\r\n return found;\r\n } else {\r\n for (const child of startNode.children) {\r\n const foundInChildren = this.getNodeBy(predicate, child);\r\n if (foundInChildren) {\r\n return foundInChildren;\r\n }\r\n }\r\n return null;\r\n }\r\n }\r\n\r\n getChildren(node: TreeNode): Promise {\r\n if ((!node.children || node.children.length === 0) && node.leaf === false) {\r\n return this.service.getNodes(node).then(data => {\r\n node.children = data;\r\n });\r\n } else {\r\n return Promise.resolve();\r\n }\r\n }\r\n\r\n doForEach(nodes: TreeNode[], fn: (node: TreeNode) => any): Promise {\r\n return Promise.all(nodes.map((node) => {\r\n return Promise.resolve(fn(node)).then(() => {\r\n return (node.children) ? this.doForEach(node.children, fn) : null;\r\n });\r\n }, this));\r\n }\r\n\r\n expandAll(): void {\r\n this.doForEach(this.nodes, (node) => {\r\n node.expanded = true;\r\n return this.getChildren(node);\r\n }).then();\r\n }\r\n\r\n collapseAll(): void {\r\n this.doForEach(this.nodes, (node) => {\r\n node.expanded = false;\r\n }).then();\r\n }\r\n\r\n loadPath(path: any[]): Promise {\r\n if (path && path.length) {\r\n return Promise.all(path.map((p) => {\r\n return this.doForEach(this.nodes, (node) => (node.id === p) ? this.getChildren(node) : null);\r\n }, this)).then(() => {\r\n path.shift();\r\n return this.loadPath(path);\r\n });\r\n } else {\r\n return Promise.resolve();\r\n }\r\n }\r\n\r\n filterServerSide(filterValue: string): Promise {\r\n if (isBlank(filterValue)) {\r\n return this.clearSearchState();\r\n }\r\n if (this.service) {\r\n this.filterLoading = true;\r\n if (this.filterLoadingFunc) {\r\n this.filterLoadingFunc(true);\r\n }\r\n return this.service.searchNodes(filterValue).then(items => {\r\n return this.loadPath(items).then(() => {\r\n this.filterClientSide(filterValue);\r\n this.filterLoading = false;\r\n if (this.filterLoadingFunc) {\r\n this.filterLoadingFunc(false);\r\n }\r\n });\r\n });\r\n }\r\n return null;\r\n }\n\n}\n","import {TreeNode} from './tree-node';\n\nexport interface TreeDataSource {\r\n getNodes(node?: TreeNode): Promise;\r\n searchNodes(name: string): Promise;\r\n}\r\n\r\nexport interface ITree {\r\n selectedNode: TreeNode;\r\n generateId(): number;\r\n loadNode(node: TreeNode): Promise;\r\n}\r\n\r\nexport enum FilterState {\r\n FOUND,\r\n ON_FOUND_PATH,\r\n NOT_FOUND\r\n}\n","export * from './vert-tab-color.module';\n","module.exports = \"@import url(https://fonts.googleapis.com/css?family=Lato);\\n/*@import url(../../src/css/GoogleFontsLato.css);*/\\nhtml, body {\\n height: 100%;\\n position: relative;\\n overflow: hidden;\\n}\\nh1 {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n -ms-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n font-size: 1.7rem;\\n font-family: \\\"Lato\\\";\\n text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);\\n line-height: 1.2;\\n color: #fff;\\n z-index: 2;\\n}\\ndiv[class=divColor] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n transition: transform 0.4s ease;\\n -ms-transform: translateX(-100%);\\n transform: translateX(-100%);\\n}\\ndiv[class=divColor]:nth-of-type(1) {\\n background-color: #a2666f;\\n}\\ndiv[class=divColor]:nth-of-type(2) {\\n background-color: #f49390;\\n}\\ndiv[class=divColor]:nth-of-type(3) {\\n background-color: #f45866;\\n}\\ndiv[class=divColor]:nth-of-type(4) {\\n background-color: #631a86;\\n}\\ninput[name=nameColor] {\\n position: absolute;\\n left: 0;\\n width: 10px;\\n height: 25%;\\n outline: 10px solid;\\n outline-offset: -10px;\\n margin: 0;\\n z-index: 1;\\n cursor: pointer;\\n}\\ninput[name=nameColor]:nth-of-type(1) {\\n outline-color: #a2666f;\\n top: 0%;\\n}\\ninput[name=nameColor]:nth-of-type(2) {\\n outline-color: #f49390;\\n top: 25%;\\n}\\ninput[name=nameColor]:nth-of-type(3) {\\n outline-color: #f45866;\\n top: 50%;\\n}\\ninput[name=nameColor]:nth-of-type(4) {\\n outline-color: #631a86;\\n top: 75%;\\n}\\ninput[name=nameColor]:checked + div {\\n -ms-transform: translateX(0%);\\n transform: translateX(0%);\\n transition: transform 0.4s ease 0.4s;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi92ZXJ0LXRhYi1jb2xvci9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvbGliXFx2ZXJ0LXRhYi1jb2xvclxcdmVydC10YWItY29sb3IuY29tcG9uZW50LnNjc3MiLCJsaWIvdmVydC10YWItY29sb3IvdmVydC10YWItY29sb3IuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVEseURBQUE7QUFDUixrREFBQTtBQUVBO0VBQ0UsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7QUNBRjtBREdBO0VBQ0Usa0JBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUVBLG9DQUFBO01BQUEsZ0NBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EseUNBQUE7RUFDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0FDQUY7QURHQTtFQUNFLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUdBLCtCQUFBO0VBR0EsZ0NBQUE7TUFBQSw0QkFBQTtBQ0FGO0FER0E7RUFDRSx5QkFBQTtBQ0FGO0FER0E7RUFDRSx5QkFBQTtBQ0FGO0FER0E7RUFDRSx5QkFBQTtBQ0FGO0FER0E7RUFDRSx5QkFBQTtBQ0FGO0FER0E7RUFDRSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxXQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EscUJBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLGVBQUE7QUNBRjtBREdBO0VBQ0Usc0JBQUE7RUFDQSxPQUFBO0FDQUY7QURHQTtFQUNFLHNCQUFBO0VBQ0EsUUFBQTtBQ0FGO0FER0E7RUFDRSxzQkFBQTtFQUNBLFFBQUE7QUNBRjtBREdBO0VBQ0Usc0JBQUE7RUFDQSxRQUFBO0FDQUY7QURHQTtFQUVFLDZCQUFBO01BQUEseUJBQUE7RUFHQSxvQ0FBQTtBQ0NGIiwiZmlsZSI6ImxpYi92ZXJ0LXRhYi1jb2xvci92ZXJ0LXRhYi1jb2xvci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1MYXRvKTtcclxuLypAaW1wb3J0IHVybCguLi8uLi9zcmMvY3NzL0dvb2dsZUZvbnRzTGF0by5jc3MpOyovXHJcblxyXG5odG1sLCBib2R5IHtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbmgxIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgbGVmdDogNTAlO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgZm9udC1zaXplOiAxLjdyZW07XHJcbiAgZm9udC1mYW1pbHk6IFwiTGF0b1wiO1xyXG4gIHRleHQtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjI7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgei1pbmRleDogMjtcclxufVxyXG5cclxuZGl2W2NsYXNzPVwiZGl2Q29sb3JcIl0ge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjRzIGVhc2U7XHJcbiAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC40cyBlYXNlO1xyXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGVhc2U7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZSwgLXdlYmtpdC10cmFuc2Zvcm0gMC40cyBlYXNlO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xyXG59XHJcblxyXG5kaXZbY2xhc3M9XCJkaXZDb2xvclwiXTpudGgtb2YtdHlwZSgxKSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2EyNjY2ZjtcclxufVxyXG5cclxuZGl2W2NsYXNzPVwiZGl2Q29sb3JcIl06bnRoLW9mLXR5cGUoMikge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDkzOTA7XHJcbn1cclxuXHJcbmRpdltjbGFzcz1cImRpdkNvbG9yXCJdOm50aC1vZi10eXBlKDMpIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ1ODY2O1xyXG59XHJcblxyXG5kaXZbY2xhc3M9XCJkaXZDb2xvclwiXTpudGgtb2YtdHlwZSg0KSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYzMWE4NjtcclxufVxyXG5cclxuaW5wdXRbbmFtZT1cIm5hbWVDb2xvclwiXSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwcHg7XHJcbiAgaGVpZ2h0OiAyNSU7XHJcbiAgb3V0bGluZTogMTBweCBzb2xpZDtcclxuICBvdXRsaW5lLW9mZnNldDogLTEwcHg7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHotaW5kZXg6IDE7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG5pbnB1dFtuYW1lPVwibmFtZUNvbG9yXCJdOm50aC1vZi10eXBlKDEpIHtcclxuICBvdXRsaW5lLWNvbG9yOiAjYTI2NjZmO1xyXG4gIHRvcDogMCU7XHJcbn1cclxuXHJcbmlucHV0W25hbWU9XCJuYW1lQ29sb3JcIl06bnRoLW9mLXR5cGUoMikge1xyXG4gIG91dGxpbmUtY29sb3I6ICNmNDkzOTA7XHJcbiAgdG9wOiAyNSU7XHJcbn1cclxuXHJcbmlucHV0W25hbWU9XCJuYW1lQ29sb3JcIl06bnRoLW9mLXR5cGUoMykge1xyXG4gIG91dGxpbmUtY29sb3I6ICNmNDU4NjY7XHJcbiAgdG9wOiA1MCU7XHJcbn1cclxuXHJcbmlucHV0W25hbWU9XCJuYW1lQ29sb3JcIl06bnRoLW9mLXR5cGUoNCkge1xyXG4gIG91dGxpbmUtY29sb3I6ICM2MzFhODY7XHJcbiAgdG9wOiA3NSU7XHJcbn1cclxuXHJcbmlucHV0W25hbWU9XCJuYW1lQ29sb3JcIl06Y2hlY2tlZCArIGRpdiB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjRzIGVhc2UgMC40cztcclxuICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjRzIGVhc2UgMC40cztcclxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBlYXNlIDAuNHM7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZSAwLjRzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjRzIGVhc2UgMC40cztcclxufVxyXG4iLCJAaW1wb3J0IHVybChodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9TGF0byk7XG4vKkBpbXBvcnQgdXJsKC4uLy4uL3NyYy9jc3MvR29vZ2xlRm9udHNMYXRvLmNzcyk7Ki9cbmh0bWwsIGJvZHkge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuaDEge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICBmb250LXNpemU6IDEuN3JlbTtcbiAgZm9udC1mYW1pbHk6IFwiTGF0b1wiO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgY29sb3I6ICNmZmY7XG4gIHotaW5kZXg6IDI7XG59XG5cbmRpdltjbGFzcz1kaXZDb2xvcl0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjRzIGVhc2U7XG4gIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuNHMgZWFzZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZSwgLXdlYmtpdC10cmFuc2Zvcm0gMC40cyBlYXNlO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG59XG5cbmRpdltjbGFzcz1kaXZDb2xvcl06bnRoLW9mLXR5cGUoMSkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTI2NjZmO1xufVxuXG5kaXZbY2xhc3M9ZGl2Q29sb3JdOm50aC1vZi10eXBlKDIpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0OTM5MDtcbn1cblxuZGl2W2NsYXNzPWRpdkNvbG9yXTpudGgtb2YtdHlwZSgzKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDU4NjY7XG59XG5cbmRpdltjbGFzcz1kaXZDb2xvcl06bnRoLW9mLXR5cGUoNCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjMxYTg2O1xufVxuXG5pbnB1dFtuYW1lPW5hbWVDb2xvcl0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDI1JTtcbiAgb3V0bGluZTogMTBweCBzb2xpZDtcbiAgb3V0bGluZS1vZmZzZXQ6IC0xMHB4O1xuICBtYXJnaW46IDA7XG4gIHotaW5kZXg6IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuaW5wdXRbbmFtZT1uYW1lQ29sb3JdOm50aC1vZi10eXBlKDEpIHtcbiAgb3V0bGluZS1jb2xvcjogI2EyNjY2ZjtcbiAgdG9wOiAwJTtcbn1cblxuaW5wdXRbbmFtZT1uYW1lQ29sb3JdOm50aC1vZi10eXBlKDIpIHtcbiAgb3V0bGluZS1jb2xvcjogI2Y0OTM5MDtcbiAgdG9wOiAyNSU7XG59XG5cbmlucHV0W25hbWU9bmFtZUNvbG9yXTpudGgtb2YtdHlwZSgzKSB7XG4gIG91dGxpbmUtY29sb3I6ICNmNDU4NjY7XG4gIHRvcDogNTAlO1xufVxuXG5pbnB1dFtuYW1lPW5hbWVDb2xvcl06bnRoLW9mLXR5cGUoNCkge1xuICBvdXRsaW5lLWNvbG9yOiAjNjMxYTg2O1xuICB0b3A6IDc1JTtcbn1cblxuaW5wdXRbbmFtZT1uYW1lQ29sb3JdOmNoZWNrZWQgKyBkaXYge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC40cyBlYXNlIDAuNHM7XG4gIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuNHMgZWFzZSAwLjRzO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBlYXNlIDAuNHM7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGVhc2UgMC40cywgLXdlYmtpdC10cmFuc2Zvcm0gMC40cyBlYXNlIDAuNHM7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-vert-tab-color',\n templateUrl: './vert-tab-color.component.html',\n styleUrls: ['./vert-tab-color.component.scss']\n})\nexport class VertTabColorComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VertTabColorComponent } from './vert-tab-color.component';\n\n\n\n@NgModule({\n declarations: [VertTabColorComponent],\n exports: [VertTabColorComponent],\n imports: [\n CommonModule\n ]\n})\nexport class VertTabColorModule { }\n","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-SG\": \"./node_modules/moment/locale/en-SG.js\",\n\t\"./en-SG.js\": \"./node_modules/moment/locale/en-SG.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","module.exports = \"\\n\"","module.exports = \"
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n \\r\\n
    • \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n {{this.locale.monthNames[calendarVariables?.left?.calendar[1][1].month()]}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ calendarVariables?.left?.calendar[1][1].format(\\\" YYYY\\\")}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{this.locale.monthNames[calendarVariables?.left?.calendar[1][1].month()]}} {{ calendarVariables?.left?.calendar[1][1].format(\\\" YYYY\\\")}}\\r\\n \\r\\n
    \\r\\n
    {{this.locale.weekLabel}}{{dayofweek}}
    \\r\\n {{calendarVariables.left.calendar[row][0].week()}}\\r\\n \\r\\n {{calendarVariables.left.calendar[row][0].isoWeek()}}\\r\\n \\r\\n {{calendarVariables.left.calendar[row][col].date()}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n {{this.locale.monthNames[calendarVariables?.right?.calendar[1][1].month()]}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ calendarVariables?.right?.calendar[1][1].format(\\\" YYYY\\\")}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{this.locale.monthNames[calendarVariables?.right?.calendar[1][1].month()]}} {{ calendarVariables?.right?.calendar[1][1].format(\\\" YYYY\\\")}}\\r\\n \\r\\n
    \\r\\n
    {{this.locale.weekLabel}}{{dayofweek}}
    \\r\\n {{calendarVariables.right.calendar[row][0].week()}}\\r\\n \\r\\n {{calendarVariables.right.calendar[row][0].isoWeek()}}\\r\\n \\r\\n {{calendarVariables.right.calendar[row][col].date()}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n\"","module.exports = \"\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
      \\r\\n
    • \\r\\n \\r\\n
        \\r\\n
      • \\r\\n
      • \\r\\n
      • \\r\\n \\r\\n
          \\r\\n
        • \\r\\n
        • \\r\\n \\r\\n
        \\r\\n
      • \\r\\n
      \\r\\n
    • \\r\\n
    \\r\\n\\r\\n
      \\r\\n
    • \\r\\n \\r\\n
        \\r\\n \\r\\n
      • \\r\\n   {{option.name}}\\r\\n
      • \\r\\n\\r\\n
      • \\r\\n \\r\\n
          \\r\\n
        • \\r\\n
        • \\r\\n
        \\r\\n
      • \\r\\n
        \\r\\n
      \\r\\n
    • \\r\\n
    \\r\\n\\r\\n \\r\\n
      \\r\\n
    • \\r\\n \\r\\n
    • \\r\\n   {{option.name}} 0\\\">>>\\r\\n
        \\r\\n
      • \\r\\n   {{optionChild.name}}\\r\\n
      • \\r\\n
      \\r\\n
    • \\r\\n
      \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n\"","module.exports = \"
    \\r\\n \\r\\n \\r\\n \\r\\n arrow_drop_up\\r\\n arrow_drop_down\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\"","module.exports = \"\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\"","module.exports = \"
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
     
    \\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n {{actionsMessage}} \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\\"More {{columnsMessage}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\\"Excel\\\" {{exportMessage}}\\r\\n
    \\r\\n
    \\r\\n \\\"PDF\\\" {{exportPDFMessage}}\\r\\n
    \\r\\n
    \\r\\n \\\"CSV\\\" {{exportCSVMessage}}\\r\\n
    \\r\\n
    \\r\\n \\\"GPS {{exportKMLMessage}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\\"Filters\\\" {{modifyFiltersMessage}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\\"Filters\\\"\\r\\n \\\"Filters\\\" {{modifyFiltersMessage}}\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n 0\\\" style=\\\"width:32px;height:32px;\\\" title=\\\"Clear Filters\\\" alt=\\\"Clear Filters\\\" src=\\\"assets/images/exports/filter-remove-1.png\\\" />\\r\\n \\\"Clear {{clearFiltersMessage}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n
    \\\"Excel\\\"
    \\r\\n
     
    \\r\\n \\r\\n
    \\\"PDF\\\"
    \\r\\n \\r\\n
     
    \\r\\n
    \\\"CSV\\\"
    \\r\\n
     
    \\r\\n
    \\\"GPS
    \\r\\n
    \\r\\n\\r\\n
     
    \\r\\n\\r\\n \\r\\n
    1\\\">\\r\\n
    \\r\\n \\r\\n Records Per Page:\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n Note: Click on any row in the below table to Edit\\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    0\\\">\\r\\n
    \\r\\n Sort By:\\r\\n
      \\r\\n
    \\r\\n {{SortCols}}\\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"
    \\n \\n
    \\n
    \\n {{option.name}}\\n
    \\n
    \\n
    \\n\\n
    \\n \\n \\n \\n \\n
    \\n\\n
    \\n \\n
    \\n
    \\n {{option.name}}\\n
    \\n
    \\n
    \\n\\n
    \\n \\n \\n \\n \\n
    \\n\\n\\n \\n \\n \\n\\n\\n \\n \\n \\n\\n\"","module.exports = \"
    \\n\\n
    \\n\\n \\n \\n\\n
    \\n\\n \\n \\n\\n \\n \\n\\n \\n \\n\\n \\n \\n\\n \\n \\n\\n \\n \\n\\n \\n \\n\\n \\n \\n\\n
    \\n\\n
    \\n\\n
    \\n\"","module.exports = \"\\r\\n\\r\\n\"","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Create or Select Filter\\r\\n
    \\r\\n                     \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{openOrClose == false ? \\\"arrow_drop_down\\\" : \\\"arrow_drop_up\\\"}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\"","module.exports = \"
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Select dates Range\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n   \\r\\n \\r\\n\\r\\n   \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    Applied
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n         \\r\\n\\r\\n
    \\r\\n
    \\r\\n Select Map Region\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n         \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n Call Direction (Inbound / Outbound)\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Results List\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Columns List\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Operators\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Operators\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Operators\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n Criteria\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n Criteria\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n Criteria\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n (Low to High)\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n Criteria\\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n Ratings\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Ratings\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Ratings\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Ratings\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n  \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n  \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n Saved\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n Saved criteria     \\r\\n \\r\\n Note: Click on any row in the below table to Edit\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
      \\r\\n
    0 && authorizeDeleteFilter\\\" class=\\\"flex-searchCrit-cell\\\">
      \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \"
    \\r\\n {{viewValue}}\\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n \\n
    \\n \\n \\n \\n \\n
    \\n
    \\n \\n \\n \\n \\n
    \\n\"","module.exports = \"
    \\n \\n \\n
    \\n\\n\\n \\n
    \\n
    \\n \\n 0 ? 'block' : 'none' \\\"\\n (click)=\\\"onClickClearSearch()\\\">×\\n
    \\n
    \\n
      \\n
    • \\n {{option.name}}\\n
    • \\n
    \\n
    \\n \\n \\n \\n \\n
    \\n\"","module.exports = \"
    \\n\\n
    \\n
    \\n
    \\n {{modalTitle}}\\n \\n
    \\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
    \\n
    \\n\\n
    \\n \\n
    \\n
    \\n \\n
    \\n
    \\n\"","module.exports = \"\\n \\n {{node.name}}\\n
    \\n \\n \\n \\n
    \\n
    \\n
    \\n \\n \\n
    \\n\"","module.exports = \"\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    {{eachItem.HeaderName}}
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\"","module.exports = \"\\n\\n\"","module.exports = \"\\r\\n
    \\r\\n {{cell.viewValue}}\\r\\n
    \\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n \\n \\n \\n \\n\\n\"","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n {{this.table.rowGroup.groupRowsByTitles[0]}} - {{table.rowGroup.getRowGroupValue(row) | customCssDevID}}   (Total Records: {{table.rowGroup.getRowGroupSize(row)}})\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n {{table.messages.loading}}\\r\\n {{table.messages.empty}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \"\\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
     
    \\r\\n
    0\\\" class=\\\"datatable-footer\\\">\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\"","module.exports = \"\\n\\n\\n\\n\\n\\n\"","module.exports = \"\\n\\n\\n\"","module.exports = \"
      \\r\\n \\r\\n \\r\\n
    • {{table.messages.lastSixMonths}}
    • \\r\\n
    • {{table.messages.lastMonth}}
    • \\r\\n
    • {{table.messages.lastSevenDays}}
    • \\r\\n
    • {{table.messages.yesterday}}
    • \\r\\n
    • {{table.messages.today}}
    • \\r\\n \\r\\n \\r\\n
    • {{table.messages.lastHour}}
    • \\r\\n
    • {{table.messages.lastTenMinutes}}
    • \\r\\n
      \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n
    Start Date and Time
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n =' : (column.isDateType? 'dd-mm-yyyy' : column.title | titleReplace)}}\\\"\\r\\n *ngIf=\\\"isValueFilter\\\"\\r\\n [value]=\\\"value\\\"\\r\\n (input)=\\\"value = $event.target.value\\\"\\r\\n (keypress)=\\\"onKeyPressFilterInput($event)\\\" appTwoDigitDecimaNumber [dontApply]=\\\"dontApply\\\" [inputApply] =\\\"true\\\">\\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n
    {{column.isDateType? 'End Date and Time' : 'And' }}
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\"","module.exports = \"\\n\\n\\n
    \\n
    \\n \\n \\n \\n
    \\n\"","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \"\\n\\n\\n
    \\n\\n \\n \\n\\n
    \\n\\n\"","module.exports = \"\\n\\n\\n
    \\n \\n \\n \\n \\n {{row.node.name}}\\n \\n
    \\n
    \\n\"","module.exports = \"\\r\\n\\r\\n
    \\r\\n {{getRangeLabel(currentPage, perPage, totalItems)}}\\r\\n
    \\r\\n\\r\\n\\r\\n
    1\\\">\\r\\n {{searchMessage}}\\r\\n
    \\r\\n
    1\\\"> \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    1\\\">\\r\\n «\\r\\n \\r\\n \\r\\n {{page}}\\r\\n \\r\\n \\r\\n »\\r\\n
    \\r\\n\"","module.exports = \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
    \\n {{headerKeyMessage}}\\n \\n \\n \\n {{headerValueMessage}}\\n \\n \\n
    {{i+1}}{{data.key}}{{data.value}}
    \\n\"","module.exports = \"\\n
    \\n \\n
    \\n
    \\n
    \\n\\n\"","module.exports = \"\\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    • \\r\\n
    • \\r\\n\\r\\n \\r\\n \\r\\n
    • \\r\\n   {{option.name}}\\r\\n
    • \\r\\n
      \\r\\n\\r\\n \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    • \\r\\n
      \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\"","module.exports = \"\\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n\"","module.exports = \"\\r\\n\"","module.exports = \"\\r\\n\"","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\r\\n {{tab.name}}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n

    Pure CSS Tabs With Indicator

    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
    • \\r\\n \\r\\n
    • \\r\\n
    • \\r\\n \\r\\n
    • \\r\\n
    • \\r\\n \\r\\n
    • \\r\\n
    • \\r\\n \\r\\n
    • \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    Features

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ea dolorem sequi, quo tempore in eum obcaecati atque quibusdam officiis est dolorum minima deleniti ratione molestias numquam. Voluptas voluptates quibusdam cum?\\r\\n
    \\r\\n
    \\r\\n

    Delivery Contents

    \\r\\n Lorem ipsum dolor sit amet, consectetur adipisicing elit. Autem quas adipisci a accusantium eius ut voluptatibus ad impedit nulla, ipsa qui. Quasi temporibus eos commodi aliquid impedit amet, similique nulla.\\r\\n
    \\r\\n
    \\r\\n

    Shipping

    \\r\\n Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quam nemo ducimus eius, magnam error quisquam sunt voluptate labore, excepturi numquam! Alias libero optio sed harum debitis! Veniam, quia in eum.\\r\\n
    \\r\\n
    \\r\\n

    Returns

    \\r\\n Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsa dicta vero rerum? Eaque repudiandae architecto libero reprehenderit aliquam magnam ratione quidem? Nobis doloribus molestiae enim deserunt necessitatibus eaque quidem incidunt.\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n

    6A. Märzen

    \\r\\n

    Overall Impression: An elegant, malty German amber lager with a clean, rich, toasty and bready malt flavor, restrained bitterness, and a dry finish that encourages another drink. The overall malt impression is soft, elegant, and complex, with a rich aftertaste that is never cloying or heavy.

    \\r\\n

    History: As the name suggests, brewed as a stronger “March beer” in March and lagered in cold caves over the summer. Modern versions trace back to the lager developed by Spaten in 1841, contemporaneous to the development of Vienna lager. However, the Märzen name is much older than 1841; the early ones were dark brown, and in Austria the name implied a strength band (14 °P) rather than a style. The German amber lager version (in the Viennese style of the time) was first served at Oktoberfest in 1872, a tradition that lasted until 1990 when the golden Festbier was adopted as the standard festival beer.

    \\r\\n
    \\r\\n
    \\r\\n

    6B. Rauchbier

    \\r\\n

    Overall Impression: An elegant, malty German amber lager with a balanced, complementary beechwood smoke character. Toasty-rich malt in aroma and flavor, restrained bitterness, low to high smoke flavor, clean fermentation profile, and an attenuated finish are characteristic.

    \\r\\n

    History: A historical specialty of the city of Bamberg, in the Franconian region of Bavaria in Germany. Beechwood-smoked malt is used to make a Märzen-style amber lager. The smoke character of the malt varies by maltster; some breweries produce their own smoked malt (rauchmalz).

    \\r\\n
    \\r\\n
    \\r\\n

    6C. Dunkles Bock

    \\r\\n

    Overall Impression: A dark, strong, malty German lager beer that emphasizes the malty-rich and somewhat toasty qualities of continental malts without being sweet in the finish.

    \\r\\n

    History: Originated in the Northern German city of Einbeck, which was a brewing center and popular exporter in the days of the Hanseatic League (14th to 17th century). Recreated in Munich starting in the 17th century. The name “bock” is based on a corruption of the name “Einbeck” in the Bavarian dialect, and was thus only used after the beer came to Munich. “Bock” also means “Ram” in German, and is often used in logos and advertisements.

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    Source: BJCP Style Guidelines

    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n

    Tab One Content

    \\r\\n

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    \\r\\n

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n

    Tab Two Content

    \\r\\n

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n

    Tab Three Content

    \\r\\n

    Lorem ipsum dolor sit amet, consectetur adipisicing elit.

    \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \"
    \\n \\n \\n\\n
    \\n \\n \\n \\n 0 && !filterLoading) ? 'block' : 'none' \\\"\\n (click)=\\\"onClickClearSearch()\\\">×\\n
    \\n
    \\n
    \\n
    \\n
      \\n \\n \\n
    \\n
    \\n\"","module.exports = \"\\r\\n

    Pure CSS Color Tabs

    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\"","module.exports = \"\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n Call Events\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Accounts \\r\\n Create Account \\r\\n Contacts \\r\\n Create Contact \\r\\n Activities \\r\\n Create Activity \\r\\n Close\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    Copyright © 2023 - GL Communications Inc. - All Rights Reserved
    \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \"
    \\r\\n
    \\r\\n \\r\\n Name\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \"\\r\\n\\r\\n
    \\r\\n

    Modify filters

    \\r\\n\\r\\n\\r\\n\"","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{actionsMessage}} \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\\"Filters\\\"\\r\\n \\\"Filters\\\" {{modifyFiltersMessage}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\\"Clear\\r\\n \\\"Clear {{clearFiltersMessage}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
     
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
     
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n\"","module.exports = \"\\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{actionsMessage}} \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\\"Filters\\\"\\r\\n \\\"Filters\\\" {{modifyFiltersMessage}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\\"Clear\\r\\n \\\"Clear {{clearFiltersMessage}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
     
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
     
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\"","module.exports = \"\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{actionsMessage}} \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\\"Filters\\\"\\r\\n \\\"Filters\\\" {{modifyFiltersMessage}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\\"Clear\\r\\n \\\"Clear {{clearFiltersMessage}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
     
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \"\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n GL VQuad WebViewer - {{versionLabel}}\\r\\n \\r\\n \\r\\n {{titleMessage}}\\r\\n \\r\\n
    \\r\\n

    \\r\\n \\r\\n \\r\\n \\r\\n

    \\r\\n\\r\\n

    \\r\\n {{ showErrorMsg }}\\r\\n

    \\r\\n\\r\\n
    \\r\\n  \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n

    \\r\\n \\r\\n \\r\\n \\r\\n

    \\r\\n\\r\\n

    \\r\\n {{ showErrorMsg }}\\r\\n

    \\r\\n\\r\\n
    \\r\\n  \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \"\\r\\n \\r\\n
    \\r\\n \\r\\n Invalid WebViewer license. Please contact your system administrator.\\r\\n \\r\\n
    \\r\\n

    \\r\\n \\r\\n

    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \"\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n GL VQuad WebViewer - {{versionLabel}}\\r\\n \\r\\n Please enter new pin\\r\\n \\r\\n
    \\r\\n

    \\r\\n \\r\\n \\r\\n {{(typeOld === 'password') ? 'visibility' : 'visibility_off'}}\\r\\n \\r\\n

    \\r\\n\\r\\n

    \\r\\n \\r\\n \\r\\n {{(typeNew === 'password') ? 'visibility' : 'visibility_off'}}\\r\\n \\r\\n

    \\r\\n\\r\\n

    \\r\\n \\r\\n \\r\\n {{(typeConf === 'password') ? 'visibility' : 'visibility_off'}}\\r\\n \\r\\n

    \\r\\n\\r\\n

    \\r\\n {{ showErrorMsg }}\\r\\n

    \\r\\n\\r\\n
    \\r\\n  \\r\\n  \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\"","module.exports = \"\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    GL WebViewer
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n Note : For the best experience, press Ctrl + F5 after installation / new version updates to refresh the screen. \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n

    Login Now

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n {{(type === 'password') ? 'visibility' : 'visibility_off'}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n

    \\r\\n {{ showErrorMsg }}\\r\\n

    \\r\\n\\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n Forgot Password?\\r\\n \\r\\n  \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n

    ACE Tool: User Login

    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n {{(type === 'password') ? 'visibility' : 'visibility_off'}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n

    \\r\\n {{ showErrorMsg }}\\r\\n

    \\r\\n\\r\\n
    \\r\\n \\r\\n\\r\\n   \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n Forgot Password?\\r\\n \\r\\n  \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    1. \\r\\n
    2. \\r\\n
    3. \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\\"First\\r\\n
    \\r\\n
    \\r\\n

    This is GL Slide 1

    \\r\\n

    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\\"First\\r\\n
    \\r\\n
    \\r\\n

    This is GL Slide 2

    \\r\\n

    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\\"First\\r\\n
    \\r\\n
    \\r\\n

    This is GL Slide 3

    \\r\\n

    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Previous\\r\\n \\r\\n \\r\\n \\r\\n Next\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n Warning: This system is restricted to {{logserviceHTML.LogType}} authorized users for business purposes.\\r\\n Unauthorized access is a violation of the law. This service may be monitored for\\r\\n administrative and security reasons. By proceeding, you consent to this monitoring.\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n
    Copyright © 2023 - GL Communications Inc. - All Rights Reserved
    \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\"","module.exports = \"\"","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n\"","module.exports = \"
    \\r\\n \\r\\n   {{nodeName}}\\r\\n \\r\\n
    \\r\\n\\r\\n

    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n {{message}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \"
    \\r\\n\"","module.exports = \"\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    Choose Date
    \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{actionsMessage}} \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\\"Filters\\\"\\r\\n \\\"Filters\\\" {{modifyFiltersMessage}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\\"Clear\\r\\n \\\"Clear {{clearFiltersMessage}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n Aggregate Based Results\\r\\n Timestamp Based Results\\r\\n Group based Results\\r\\n \\r\\n
    \\r\\n
     
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{openOrCloseCR == false ? \\\"arrow_drop_down\\\" : \\\"arrow_drop_up\\\"}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n  \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{openOrCloseGrpCR == false ? \\\"arrow_drop_down\\\" : \\\"arrow_drop_up\\\"}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n  \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    {{crFilterType}} Type
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n    \\r\\n \\\"Excel\\\" \\r\\n \\r\\n \\\"PDF\\\" \\r\\n \\r\\n \\\"CSV\\\"  \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    No record found
    \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    {{column.AliasName}} {{element[column.ColumnName]}}
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n

    \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n

    \\r\\n\"","module.exports = \"\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n\"","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    {{Loading}}
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{actionsMessage}} \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\\"Filters\\\"\\r\\n \\\"Filters\\\" {{modifyFiltersMessage}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\\"Clear\\r\\n \\\"Clear {{clearFiltersMessage}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n Plot Regions under config \\r\\n \\r\\n \\r\\n -- Select Region --\\r\\n {{region}}\\r\\n \\r\\n\\r\\n \\r\\n  \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n Display options\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    Display Options
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n Use Predefined Config \\r\\n ON\\r\\n OFF\\r\\n
    \\r\\n
    \\r\\n
     
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n
    • \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{result.Name}}\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n ON\\r\\n OFF\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n Direct Path\\r\\n Follow Roads\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    Refine your search
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n arrow_right\\r\\n arrow_drop_down\\r\\n
    \\r\\n Types\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n
    • \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n arrow_right\\r\\n arrow_drop_down\\r\\n
    \\r\\n Results\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n
    • \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    List of Results
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n arrow_right\\r\\n arrow_drop_down\\r\\n
    \\r\\n Analysis \\r\\n ON\\r\\n OFF\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n
    • \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n arrow_right\\r\\n arrow_drop_down\\r\\n
    \\r\\n Net Test \\r\\n ON\\r\\n OFF\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n
    • \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n arrow_right\\r\\n arrow_drop_down\\r\\n
    \\r\\n Mobile Info \\r\\n ON\\r\\n OFF\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n
    • \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n arrow_right\\r\\n arrow_drop_down\\r\\n
    \\r\\n Error Events \\r\\n ON\\r\\n OFF\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n
    • \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n Pin Legends\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    Default Pin Legends
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"VQUADUP\\\" = VQUAD UP
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"SCRIPTRUNNING\\\" = SCRIPT RUNNING
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"VQUADDOWN\\\" = VQUAD DOWN
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"VQUADOUTOFSERVICE\\\" = VQUAD OUT OF SERVICE
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"IDLE\\\" = PHONE IDLE
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"TEST = TEST IN PROGRESS
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"SUSPENDED\\\" = PHONE SUSPENDED
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"NOTCONNECTED\\\" = NOT CONNECTED
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"VQT\\\" = VQT - PESQ AND/OR POLQA
    \\r\\n
    No.of Pins :  PESQ =
    \\r\\n
    POLQA =
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\\"Audio = Call Connect AND/OR Audio and Delay (E stands for Error Events)
    No.of Pins :   ,
    ERROR
    ,
    ERROR
    ,
    ERROR
    ,
    ERROR
    ,
    ERROR
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\\"EMU\\\" = EMU
    \\r\\n
    No.of Pins :
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\\"FAX\\\" = FAX (E stands for Error Events)
    \\r\\n
    No.of Pins : FAX = , ERROR =
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\\"VBA\\\" = VBA
    \\r\\n
    No.of Pins :
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\\"VAC\\\" = VAC
    \\r\\n
    No.of Pins :  VAC = , FAIL =
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\\"NetTest\\\" = NetTest
    No.of Pins :   ,
    FAIL
    ,
    FAIL
    ,
    FAIL
    ,
    FAIL
    ,
    FAIL
    ,
    FAIL
    ,
    FAIL
    ,
    FAIL
    ,
    FAIL
    ----------------------------------------------------------------
    {{totalNetTestPassCount}} ,
    FAIL
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\\"Connection = Connection Drop AND/OR Failures (F)
    \\r\\n
    No.of Pins : Connection Drop =
    \\r\\n
    Failures Overall =
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\\"Mobile = Mobile Information
    No.of Pins :   ,
    FAIL
    ,
    FAIL
    ,
    FAIL
    ----------------------------------------------------------------
    ,
    FAIL
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    Pin Legends (Double-Click on PASS Icon below to set Thresholds)
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n = {{legend.resultType}} {{legend.thresholdType}} {{legend.pinType}}
    \\r\\n
    \\r\\n
    No.of Pins : {{legend.noOfRows}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
     
    \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n https://stackoverflow.com/questions/51234033/agm-info-window-infowindow-opened-by-default-angular-ionic3\\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\"","module.exports = \" \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{item.LabelHtml}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n AND\\r\\n OR\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    {{item.id}}
    \\r\\n
     
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
     
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
     
    \\r\\n
    {{item.andOr}}
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n\"","module.exports = \"
    \\r\\n \\r\\n


    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n Browse \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n Help\\r\\n Help\\r\\n
    \\r\\n
    \\r\\n \\r\\n Server System\\r\\n    \\r\\n Local System\\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n {{openOrCloseImage == false ? \\\"arrow_drop_down\\\" : \\\"arrow_drop_up\\\"}}\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n {{openOrCloseRTS == false ? \\\"arrow_drop_down\\\" : \\\"arrow_drop_up\\\"}}\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n {{openOrCloseIVQ == false ? \\\"arrow_drop_down\\\" : \\\"arrow_drop_up\\\"}}\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n {{openOrClosePCM == false ? \\\"arrow_drop_down\\\" : \\\"arrow_drop_up\\\"}}\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n   \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n   \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n 1\\r\\n Route Point\\r\\n
    \\r\\n
    Uplink
    \\r\\n
    Downlink
    \\r\\n
    Pause
    \\r\\n
    Multiple Measurements within Room (generate Average Score)
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n * Note: Hover over a plotted JPG point to display the timestamp and MOS scores.

    Tap on uplink/downlink in the displayed test results to play a PCM file.

    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Image File is1 \\r\\n \\\"{{imageFileName}}\\\"\\r\\n \\\"{{SelectedImageFile_RemoteSystem}}\\\"\\r\\n
    \\r\\n RTS File is \\r\\n \\\"{{rtsFileName}}\\\"\\r\\n \\\"{{SelectedRTSFile_RemoteSystem}}\\\"\\r\\n
    \\r\\n IVQ File is \\r\\n \\\"{{ivqFileName}}\\\"\\r\\n \\\"{{SelectedIVQFile_RemoteSystem}}\\\"\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Image File is \\r\\n \\\"{{imageFileName}}\\\"\\r\\n \\\"{{SelectedImageFile_RemoteSystem}}\\\"\\r\\n
    \\r\\n RTS File is \\r\\n \\\"{{rtsFileName}}\\\"\\r\\n \\\"{{SelectedRTSFile_RemoteSystem}}\\\"\\r\\n
    \\r\\n IVQ File is \\r\\n \\\"{{ivqFileName}}\\\"\\r\\n \\\"{{SelectedIVQFile_RemoteSystem}}\\\"\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n

    Here are some links to help you start:

    \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \"\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{actionsMessage}} \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\\"Filters\\\"\\r\\n \\\"Filters\\\" {{modifyFiltersMessage}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\\"Clear\\r\\n \\\"Clear {{clearFiltersMessage}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n Plot Regions under config \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n {{openOrCloseReg == false ? \\\"arrow_drop_down\\\" : \\\"arrow_drop_up\\\"}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n   \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n Help\\r\\n \\r\\n \\r\\n \\r\\n Google Map Help\\r\\n Google Map Not Visible\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n Display options\\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n Pin Legends\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    Display Options
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n Use Predefined Config \\r\\n ON\\r\\n OFF\\r\\n
    \\r\\n
    \\r\\n
     
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n
    • \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n {{openOrClose == false ? \\\"arrow_drop_down\\\" : \\\"arrow_drop_up\\\"}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n   \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n ON\\r\\n OFF\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n Direct Path\\r\\n Follow Roads\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    Refine your search
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n arrow_right\\r\\n arrow_drop_down\\r\\n
    \\r\\n Types\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n
    • \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n arrow_right\\r\\n arrow_drop_down\\r\\n
    \\r\\n Results\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n
    • \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    List of Results
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n arrow_right\\r\\n arrow_drop_down\\r\\n
    \\r\\n Analysis \\r\\n ON\\r\\n OFF\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n
    • \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n arrow_right\\r\\n arrow_drop_down\\r\\n
    \\r\\n Net Test \\r\\n ON\\r\\n OFF\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n
    • \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n arrow_right\\r\\n arrow_drop_down\\r\\n
    \\r\\n Mobile Info \\r\\n ON\\r\\n OFF\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n
    • \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n arrow_right\\r\\n arrow_drop_down\\r\\n
    \\r\\n Error Events \\r\\n ON\\r\\n OFF\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n \\r\\n \\r\\n \\r\\n
    • \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    Default Pin Legends
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"VQUADUP\\\" = VQUAD UP
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"SCRIPTRUNNING\\\" = SCRIPT RUNNING
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"VQUADDOWN\\\" = VQUAD DOWN
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"VQUADOUTOFSERVICE\\\" = VQUAD OUT OF SERVICE
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"vMobileUP\\\" = vMobile UP
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"vMobileSCRIPTRUNNING\\\" = vMobile SCRIPT RUNNING
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"vMobileDOWN\\\" = vMobile DOWN
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"vMobileOUTOFSERVICE\\\" = vMobile OUT OF SERVICE
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"IDLE\\\" = PHONE IDLE
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"TEST = TEST IN PROGRESS
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"SUSPENDED\\\" = PHONE SUSPENDED
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"NOTCONNECTED\\\" = NOT CONNECTED
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"VQT\\\" = VQT - PESQ AND/OR POLQA
    \\r\\n
    No.of Pins :  PESQ =
    \\r\\n
    POLQA =
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\\"POLQA\\\" = POLQA ( NO AUDIO )
    \\r\\n
    No.of Pins :  
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\\"Audio = Call Connect AND/OR Audio and Delay (E stands for Error Events)
    No.of Pins :   ,
    ERROR
    ,
    ERROR
    ,
    ERROR
    ,
    ERROR
    ,
    ERROR
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\\"EMU\\\" = EMU
    \\r\\n
    No.of Pins :
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\\"FAX\\\" = FAX (E stands for Error Events)
    \\r\\n
    No.of Pins : FAX = , ERROR =
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\\"VBA\\\" = VBA
    \\r\\n
    No.of Pins :
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\\"VAC\\\" = VAC
    \\r\\n
    No.of Pins :  VAC = , FAIL =
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\\"NetTest\\\" = NetTest
    No.of Pins :   ,
    FAIL
    ,
    FAIL
    ,
    FAIL
    ,
    FAIL
    ,
    FAIL
    ,
    FAIL
    ,
    FAIL
    ,
    FAIL
    ,
    FAIL
    -------------------------------------------------------
    {{totalNetTestPassCount}} ,
    FAIL
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\\"Connection = Connection Drop AND/OR Failures (F)
    \\r\\n
    No.of Pins : Connection Drop =
    \\r\\n
    Failures Overall =
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\\"Mobile = Mobile Information
    No.of Pins :   ,
    FAIL
    ,
    FAIL
    ,
    FAIL
    -------------------------------------------------------
    ,
    FAIL
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    Pin Legends (Double-Click on PASS Icon below to set Thresholds)
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{legend.iconText}}\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n {{legend.iconText}}\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{legend.iconText}}\\r\\n \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n = {{legend.legendName}} {{legend.thresholdType}} {{legend.pinType}}
    \\r\\n
    \\r\\n
    No.of Pins : {{legend.noOfRows}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
     
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\"","module.exports = \"\\r\\n\"","module.exports = \"\\r\\n\\r\\n \\r\\n\\r\\n\"","module.exports = \"\\r\\n\\r\\n\"","module.exports = \"\\r\\n\"","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\"","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\"","module.exports = \"\\r\\n\"","module.exports = \"\\r\\n\"","module.exports = \"\\r\\n\\r\\n\"","module.exports = \"\\r\\n\"","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n {{title}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n {{title}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \"

    api-recall-button works!

    \\n\"","module.exports = \"
    \\r\\n
     
    \\r\\n
    \\r\\n \\r\\n   \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{eachRange.key | dateAndTimeRange}}\\r\\n \\r\\n  \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
     
    \\r\\n
    \\r\\n   \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{timestamp.viewValue}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
     
    \\r\\n
    \\r\\n   \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{opt.text}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
     
    \\r\\n
    \\r\\n \\r\\n   \\r\\n
    \\r\\n
     
    \\r\\n
    \\r\\n\"","module.exports = \"

    \\r\\n {{title}}\\r\\n

    \\r\\n\\r\\n
    \\r\\n

    {{message}}

    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\"","module.exports = \"
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n \\r\\n
    • \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n {{this.locale.monthNames[calendarVariables?.left?.calendar[1][1].month()]}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ calendarVariables?.left?.calendar[1][1].format(\\\" YYYY\\\")}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{this.locale.monthNames[calendarVariables?.left?.calendar[1][1].month()]}} {{ calendarVariables?.left?.calendar[1][1].format(\\\" YYYY\\\")}}\\r\\n \\r\\n
    \\r\\n
    {{this.locale.weekLabel}}{{dayofweek}}
    \\r\\n {{calendarVariables.left.calendar[row][0].week()}}\\r\\n \\r\\n {{calendarVariables.left.calendar[row][0].isoWeek()}}\\r\\n \\r\\n {{calendarVariables.left.calendar[row][col].date()}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n {{this.locale.monthNames[calendarVariables?.right?.calendar[1][1].month()]}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n {{ calendarVariables?.right?.calendar[1][1].format(\\\" YYYY\\\")}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{this.locale.monthNames[calendarVariables?.right?.calendar[1][1].month()]}} {{ calendarVariables?.right?.calendar[1][1].format(\\\" YYYY\\\")}}\\r\\n \\r\\n
    \\r\\n
    {{this.locale.weekLabel}}{{dayofweek}}
    \\r\\n {{calendarVariables.right.calendar[row][0].week()}}\\r\\n \\r\\n {{calendarVariables.right.calendar[row][0].isoWeek()}}\\r\\n \\r\\n {{calendarVariables.right.calendar[row][col].date()}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n\"","module.exports = \"
    \\r\\n

    \\r\\n Welcome to {{ title }}\\r\\n

    \\r\\n
    \\r\\n

    Click below link to get employee data

    \\r\\n
    \\r\\n

    \\r\\n Using Link
    \\r\\n Download Employee Data\\r\\n

    \\r\\n\\r\\n

    Using Button

    \\r\\n \\r\\n
    \\r\\n\"","module.exports = \"\\r\\n
    \\r\\n
    \\r\\n

    Explore Options

    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    Filtering Results Help
    \\r\\n
      \\r\\n
    • \\r\\n The filtering results feature will refine a dataset according to particular criteria, enabling users to accurately view the desired outcomes.\\r\\n This feature comes in two types:\\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n   Main Screen Filter Results\\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n This option is available on the WebViewer's main screen, allowing users to filter results by Date and Time.
      \\r\\n Users can select a time period directly or click on \\\"Standard\\\" to set a Custom Time Period.
      \\r\\n Additionally, filtering by Event ID is possible using the VQuad/vMobile Device ID or Call ID (as configured within the script).
      \\r\\n Users must click \\\"Apply\\\" to activate the filter.\\r\\n
      \\r\\n

      \\r\\n\\r\\n
      \\r\\n
      \\r\\n \\\"alternate\\r\\n
      Modify Result
      \\r\\n

      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n   Load Filter\\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n This allows users to create and save filters for frequent use, eliminating the need to repeatedly set Date and Time or Event ID filters.
      \\r\\n Instead, users can select their preset filter from the \\\"Load Filter\\\" dropdown on the main screen and click \\\"ON\\\" to activate it.
      \\r\\n A default filter named \\\"_All_DriveTest\\\" is provided by GL for a quick start, designed to enhance user experience.
      \\r\\n Filters can be created or modified via \\\"Actions\\\" -> \\\"Modify filters.\\\"\\r\\n
      \\r\\n

      \\r\\n
      \\r\\n
      \\r\\n \\\"alternate\\r\\n
      Modify Result
      \\r\\n


      \\r\\n
      \\r\\n _All_DriveTest Filter: This default filter, provided upon installing the WebViewer, is designed to identify Call IDs labeled \\\"POLQATEST\\\" from VQuad/vMobile.
      \\r\\n When this filter is applied, it selects all matching Call IDs, defaulting to the main screen filter settings for date and time, as these specifics are not included in the _All_DriveTest Load Filter\\r\\n
      \\r\\n
      \\r\\n \\\"alternate\\r\\n
      custom report result
      \\r\\n

      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \\r\\n
    • \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    Custom Reports Help
    \\r\\n
      \\r\\n
    • \\r\\n The Custom Report feature empowers users to create personalized reports that cater to their specific requirements.\\r\\n
    • \\r\\n
    • By utilizing this feature, users can handpick the data to be included, select columns, and customize graphical options within Results, Call Events, and Statistics and Status sections.
    • \\r\\n
    • With this level of customization, users can generate reports that precisely reflect their needs and preferences.
    • \\r\\n
    • \\r\\n This functionality offers users flexibility and control, enabling them to tailor reports to best suit their requirements.\\r\\n\\r\\n From WebViewer main screen select Reports -> Custom Reports\\r\\n
    • \\r\\n
    • \\r\\n There are three methods of filtering to generate the custom reports as :\\r\\n
      \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n   Aggregate Based Results\\r\\n \\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n Aggregate-based results involve analyzing events by grouping and summarizing it based on certain criteria.
      \\r\\n This method calculates summary statistics, such as totals, averages, counts, percentages, or stand deviation for each event within the database.
      \\r\\n Aggregate-based results are useful for gaining insights into overall results, or comparisons across different segments of tests.
      \\r\\n Below mentioned default filters are provided by GL for a quick start, designed to enhance user experience.\\r\\n
      \\r\\n
        \\r\\n
      • \\r\\n _TCP_DriveTest\\r\\n
      • \\r\\n
      • \\r\\n _VideoQualityTest\\r\\n
      • \\r\\n
      • \\r\\n _VoiceQualityTest
        \\r\\n\\r\\n
        \\r\\n
        \\r\\n \\r\\n _VoiceQualityTest:\\r\\n This default Aggregate Based Report, provided upon installing the WebViewer, is designed to display all Call IDs as per the filter applied, it shows the number of Place call count, call connected count, call failed count, call Dropped count,call Pass count, Call Success Percentage, Total POLQA count, POLQA Average, POLQA Min, POLQA Max, POLQA N/A Count, POLQA Pass count>2.9 along with Bar graph and Line graph. as shown below.
        \\r\\n Also user can click on Edit option to edit or view or create the Aggregate Based Reports.\\r\\n\\r\\n
        \\r\\n \\\"alternate\\r\\n
        custom report default selection
        \\r\\n


        \\r\\n

        Selecting the Aggregate reports from the drop-down will display the results as shown in the figure below.

        \\r\\n
        \\r\\n \\\"alternate\\r\\n
        custom report result
        \\r\\n

        \\r\\n\\r\\n
        \\r\\n
      • \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n   Timestamp Based Results\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n Timestamp-based results involves events arranged according to specific time intervals.
      \\r\\n This approach involves using timestamps associated with each event entry to arrange and analyze the information chronologically.
      \\r\\n Timestamp-based results allow users to observe changes, trends, or patterns over time, making them particularly valuable for tracking temporal variations and understanding how data evolves over different time periods.
      \\r\\n Below mentioned default filters are provided by GL for a quick start, designed to enhance user experience.\\r\\n
      \\r\\n
        \\r\\n
      • _VoiceQualityTest
      • \\r\\n
      • _DataTest
      • \\r\\n
      • \\r\\n _VideoTest\\r\\n

        \\r\\n\\r\\n
        \\r\\n
        \\r\\n \\r\\n _VideoTest:\\r\\n This default Timestamp Based Report, provided upon installing the WebViewer, is designed to display all events as per the filter applied,it shows the VQuad/vMobile Timestamp,Call Timestamp, Call ID, Device ID, Latitude, Longitude, EPSNR, Signal Level , Noise Level, Audio/Video Relative MOS, Video Absolute MOS, Audio Relative MOS, Video Frame Rate, Jitter.
        \\r\\n Below mentioned default filters are provided by GL for a quick start, designed to enhance user experience.\\r\\n
        \\r\\n \\\"alternate\\r\\n
        custom report default selection
        \\r\\n


        \\r\\n

        Selecting the Timestamp based reports from the drop-down will display the results as shown in the figure below.

        \\r\\n
        \\r\\n \\\"alternate\\r\\n
        custom report result
        \\r\\n

        \\r\\n\\r\\n
        \\r\\n
      • \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n   Group Based Results\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n Group-based results involve organizing and analyzing events by grouping Aggregate Based and Timestamp Based Results.
      \\r\\n Group-based results are beneficial for identifying patterns, trends, or differences among distinct tests within a database, providing valuable insights into the underlying structure or behavior of the tests.
      \\r\\n Below mentioned default filters are provided by GL for a quick start, designed to enhance user experience.\\r\\n
      \\r\\n
        \\r\\n
      • _VoiceQuality
      • \\r\\n
      • _DataQuality
      • \\r\\n
      • \\r\\n _VideoQuality\\r\\n

        \\r\\n\\r\\n
        \\r\\n
        \\r\\n \\r\\n _VideoTest:\\r\\n This default Group-Based Report, included with the installation of WebViewer, is intended to showcase additional Aggregate-Based or Timestamp-Based Results based on user preferences.
        \\r\\n In this context, the Aggregate-Based report within the _VideoQuality Result is selected, featuring columns displaying Aggregate-Based results along with Bar and Line graphs for enhanced visualization.\\r\\n
        \\r\\n Below mentioned default filters are provided by GL for a quick start, designed to enhance user experience.\\r\\n
        \\r\\n \\\"alternate\\r\\n
        custom report default selection
        \\r\\n


        \\r\\n

        Selecting the Group based reports from the drop-down will display the results as shown in the figure below.

        \\r\\n
        \\r\\n \\\"alternate\\r\\n
        custom report result
        \\r\\n

        \\r\\n\\r\\n
        \\r\\n
      • \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
    • \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    Google Maps Help
    \\r\\n
      \\r\\n
    • GL offers Google Maps features within the WebViewer, enabling the visualization of test results, nodes, and device locations using GPS coordinates.
    • \\r\\n
    • This includes Voice Quality, Data-Tests Pass, failed results, and error groupings, with real-time plotting capabilities during drive testing.
    • \\r\\n
    • From the main screen of the WebViewer, navigate to Reports -> Google Maps. Update the filtering as instructed previously.
    • \\r\\n
    • Under Display Options, select \\\"Use Predefined Config\\\" and ensure it is turned ON.
    • \\r\\n
    • \\r\\n In the Define results to display dropdown menu, GL provides default Configuration names to enhance user experience for quick start. Default Configuartions are:\\r\\n\\r\\n
      \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n   _Audio/Delay Analysis\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n This default Configuration, provided upon installing the WebViewer, is designed to display Audio and Delay related plottings on the Google maps for selected filter.
      \\r\\n Also user can click on Edit option to edit or view or create the Configuration.\\r\\n
      \\r\\n

      \\r\\n\\r\\n
      \\r\\n
      \\r\\n

      Selecting the desired Default Google Maps Config from the drop-down will display the results as shown in the figure below.

      \\r\\n
      \\r\\n \\\"alternate\\r\\n
      _Audio/Delay Analysis
      \\r\\n

      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n   _Call Events\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n This default Configuration, provided upon installing the WebViewer, is designed to display Call events like Call Connected, Call Disconnecetd, Call failed, Call Dropeed related plottings on the Google maps for selected filter.
      \\r\\n Also user can click on Edit option to edit or view or create the Configuration.\\r\\n
      \\r\\n

      \\r\\n\\r\\n
      \\r\\n
      \\r\\n

      Selecting the desired Default Google Maps Config from the drop-down will display the results as shown in the figure below.

      \\r\\n
      \\r\\n \\\"alternate\\r\\n
      _Call Events
      \\r\\n

      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n   _Data Testing\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n This default Configuration, provided upon installing the WebViewer, is designed to display DataTesting related plottings on the Google maps for selected filter.
      \\r\\n Also user can click on Edit option to edit or view or create the Configuration.\\r\\n
      \\r\\n

      \\r\\n\\r\\n
      \\r\\n
      \\r\\n

      Selecting the desired Default Google Maps Config from the drop-down will display the results as shown in the figure below.

      \\r\\n
      \\r\\n \\\"alternate\\r\\n
      _Data Testing
      \\r\\n

      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n   _GL VQT Testing\\r\\n \\r\\n \\r\\n
      \\r\\n
      \\r\\n This default Configuration, provided upon installing the WebViewer, is designed to display POLQA MOS pass, POLQA MOS fail related plottings on the Google maps for selected filter.
      \\r\\n Also user can click on Edit option to edit or view or create the Configuration.\\r\\n
      \\r\\n

      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n

      Selecting the desired Default Google Maps Config from the drop-down will display the results as shown in the figure below.

      \\r\\n
      \\r\\n \\\"alternate\\r\\n
      _GL VQT Testing
      \\r\\n

      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n
      \\r\\n\\r\\n
    • \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    Report Scheduling Help
    \\r\\n
      \\r\\n
    • Report scheduling involves setting up WebViewer to automatically generate and distribute Custom reports (PDF,EXCEL,WORD,TXT) at predefined times or intervals through Email, SMS or save on WebViewer installed PC directory.
    • \\r\\n
    • This functionality allows users to streamline their Custom reporting processes by automating repetitive tasks, ensuring that reports are generated and delivered consistently and promptly without manual intervention.
    • \\r\\n
    • By scheduling reports, users can save time, maintain regular reporting cycles, and ensure that they receive up-to-date information in a timely manner.
    • \\r\\n
    • To edit or create new report schedules, navigate to admin/help -> WebViewer Config -> Custom Configuration -> Scheduling Reports Configuration.
    • \\r\\n
    • Use the Default Custom Report to create a schedule based on time filters, specifying whether it should occur once, multiple times, or at a specific date and time.
    • \\r\\n
    • User can choose to receive the report via email, SMS, or save it locally in PDF, Excel, Word, or TXT format.
    • \\r\\n
    • \\r\\n Follow the steps below to create a basic report scheduling:
      \\r\\n
      \\r\\n

      It includes PESQ score greater than 3 and POLQA MOS greater than 3 along with Emodel , Active Speech Ratio, Noise Level Gain and SNR Results Plotted.

      \\r\\n

      \\r\\n\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n Set up the Scheduler Config, as demonstrated in the image provided.\\r\\n \\r\\n
      \\r\\n
      \\r\\n \\\"alternate\\r\\n
      Create Scheduling Report
      \\r\\n


      \\r\\n
      \\r\\n \\r\\n Create a schedule using time filters, indicating if it should happen once, multiple times, or at a specific date and time, as illustrated in the image below.\\r\\n \\r\\n
      \\r\\n
      \\r\\n \\\"alternate\\r\\n
      Types of Scheduling a Report
      \\r\\n


      \\r\\n
      Choose to receive the report via email, SMS, or save it locally in PDF, Excel, Word, or TXT format, and then save the scheduled report accordingly, depicted in the image below.
      \\r\\n
      \\r\\n \\\"alternate\\r\\n
      Scheduler Export MEthods
      \\r\\n


      \\r\\n
      \\r\\n
      \\r\\n\\r\\n\\r\\n
    • \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n\"","module.exports = \"\\r\\n
    \\r\\n
    \\r\\n Load Filters: \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{openOrCloseFilter == false ? \\\"arrow_drop_down\\\" : \\\"arrow_drop_up\\\"}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
     
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
     
    \\r\\n\\r\\n
    \\r\\n
     
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n Live Updates: \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n 5 sec\\r\\n 10 sec\\r\\n 30 sec\\r\\n 60 sec\\r\\n \\r\\n \\r\\n
    \\r\\n
     
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n\"","module.exports = \"\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n GL WebViewer   Version 6.4.2\\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n Refresh\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
     
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n Note : For the best experience, press Ctrl + F5 after installation / new version updates to refresh the screen. \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    Loading
    \\r\\n
    \\r\\n\"","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    ...Loading...
    \\r\\n
    \\r\\n\"","module.exports = \"\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n done with fun - @uchardon ©2018\\r\\n
    \\r\\n\\r\\n\"","module.exports = \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \"\\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n {{RsltTypeSwitch === true ? netTests[i].name : mobileInfos[i].name}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    At least one result must be selected
    \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \"
    0\\\">Columns filtered with conditions
    \\r\\n
    0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{field.column}}{{field.operator}}{{field.value}}{{field.valueTo}}
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    0\\\" style=\\\"height:8px;\\\"> 
    \\r\\n\"","module.exports = \"\\r\\n  {{title}} {{dates}} ({{rangeInfo}})\\r\\n
    \\r\\n\\r\\n\"","module.exports = \"

    upload-file works!

    \\n\"","module.exports = \"\\n\"","module.exports = \"\\r\\n
    \\r\\n \\r\\n {{UserName}} / Help\\r\\n
    \\r\\n \\r\\n \\\"Actions\\\" WebViewer Config \\r\\n Explore Options\\r\\n \\r\\n WebViewer Help\\r\\n WebViewer Help\\r\\n User Privileges \\r\\n \\r\\n Change Password\\r\\n \\r\\n Logout\\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    {{eachItem.HeaderName}}
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\"","module.exports = \"

    {{screenTitle}}

    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ column | colSpecialChars }}\\r\\n \\r\\n Search\\r\\n \\r\\n \\r\\n \\r\\n {{ row[column] }}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"

    ngx-dt works!

    \\n\"","module.exports = \"
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{actionsMessage}} \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\\"Filters\\\"\\r\\n \\\"Filters\\\" {{modifyFiltersMessage}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\\"Clear\\r\\n \\\"Clear {{clearFiltersMessage}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    0\\\">\\r\\n
    RTD Range (ms)
    =
    {{voiceQualityConfigList[0].Excellent}}---  
    Excellent
      --- {{voiceQualityConfigList[0].ExcelToGood}}---  
    Good
      --- {{voiceQualityConfigList[0].GoodToFair}}---  
    Fair
      --- {{voiceQualityConfigList[0].FairToPoor}}---  
    Poor
      --- {{voiceQualityConfigList[0].Poor}}
    \\r\\n
    \\r\\n
    OWD Range (ms)
    =
    {{voiceQualityConfigList[1].Excellent}}---  
    Excellent
      --- {{voiceQualityConfigList[1].ExcelToGood}}---  
    Good
      --- {{voiceQualityConfigList[1].GoodToFair}}---  
    Fair
      --- {{voiceQualityConfigList[1].FairToPoor}}---  
    Poor
      --- {{voiceQualityConfigList[1].Poor}}
    \\r\\n
    \\r\\n
    PDD Range (ms)
    =
    {{voiceQualityConfigList[2].Excellent}}---  
    Excellent
      --- {{voiceQualityConfigList[2].ExcelToGood}}---  
    Good
      --- {{voiceQualityConfigList[2].GoodToFair}}---  
    Fair
      --- {{voiceQualityConfigList[2].FairToPoor}}---  
    Poor
      --- {{voiceQualityConfigList[2].Poor}}
    \\r\\n
    \\r\\n
    SNR Range (dBm)
    =
    {{voiceQualityConfigList[3].Excellent}}---  
    Excellent
      --- {{voiceQualityConfigList[3].ExcelToGood}}---  
    Good
      --- {{voiceQualityConfigList[3].GoodToFair}}---  
    Fair
      --- {{voiceQualityConfigList[3].FairToPoor}}---  
    Poor
      --- {{voiceQualityConfigList[3].Poor}}
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
      Audio-Delay
    \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n {{ expandedElement ===column && expandedElement !==null ? 'keyboard_arrow_down' : 'keyboard_arrow_up' }}\\r\\n \\r\\n\\r\\n Call ID \\r\\n \\r\\n {{column.VQuad_Location}}\\r\\n \\r\\n Average Of RTD (ms) \\r\\n {{column.AVGOFRTD}}\\r\\n MAX Of RTD (ms) \\r\\n {{column.MAXOFRTD}}\\r\\n MIN Of RTD (ms) \\r\\n {{column.MINOFRTD}}\\r\\n Average Of PDD (ms) \\r\\n {{column.AVGOFPDD}}\\r\\n MAX Of PDD (ms) \\r\\n {{column.MAXOFPDD}}\\r\\n MIN Of PDD (ms) \\r\\n {{column.MINOFPDD}}\\r\\n Average Of OWD (ms)\\r\\n {{column.AVGOFOWD}}\\r\\n MAX Of OWD (ms) \\r\\n {{column.MAXOFOWD}}\\r\\n MIN Of OWD (ms) \\r\\n {{column.MINOFOWD}}\\r\\n Average Of SNR (dB) \\r\\n {{column.AVGOFSWR}}\\r\\n Max Of SNR (dB) \\r\\n {{column.MAXOFSWR}}\\r\\n Min Of SNR (dB) \\r\\n {{column.MINOFSWR}}\\r\\n Total Record \\r\\n {{column.TOTALRECORD}}\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
    Device ID \\r\\n \\r\\n {{elem.VQuad_PhoneID}}\\r\\n \\r\\n Average Of RTD (ms) {{elem.AVGOFRTD}} MAX Of RTD (ms) \\r\\n {{elem.MAXOFRTD}}\\r\\n MIN Of RTD (ms) {{elem.MINOFRTD}} Average Of PDD (ms) {{elem.AVGOFPDD}} MAX Of PDD (ms) {{elem.MAXOFPDD}} MIN Of PDD (ms) {{elem.MINOFPDD}} Average Of OWD (ms) {{elem.AVGOFOWD}} MAX Of OWD (ms) {{elem.MAXOFOWD}} MIN Of OWD (ms) {{elem.MINOFOWD}} Average Of SNR (dB) {{elem.AVGOFSWR}} Max Of SNR (dB) {{elem.MAXOFSWR}} Min Of SNR (dB) {{elem.MINOFSWR}} Total Record {{elem.TOTALRECORD}}
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n\"","module.exports = \"\\r\\n\\r\\n

    command-center works!

    \\r\\n\"","module.exports = \"
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n

    \\r\\n
    \\r\\n

    check_circle

     - Transferring Files (ON)
     
    \\r\\n
     - Not Transferring Files (OFF)
     
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
    PC Name \\r\\n {{column.NodeIP_Abs}}\\r\\n CentalDB IP Addresses \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n {{GetCentralIPLabel(eachCentralIP.key)}}{{eachCentralIP.value}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    IP Address \\r\\n {{column.NodeIPAddr_Abs}}\\r\\n Remote Path \\r\\n \\r\\n {{column.RemotePath_Abs}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n \\r\\n Delete Type\\r\\n \\r\\n {{column.DelType_Abs}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Not Delete\\r\\n Delete\\r\\n \\r\\n \\r\\n \\r\\n File Type\\r\\n \\r\\n {{GetFileType(column.FileType_Abs)}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n pcm\\r\\n wav\\r\\n All File\\r\\n \\r\\n \\r\\n \\r\\n File Transfer Status\\r\\n \\r\\n \\r\\n check_circle\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Click below Icon to change status
    \\r\\n check_circle\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    Actions \\r\\n \\r\\n \\r\\n \\r\\n save\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n\"","module.exports = \"
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n

    \\r\\n
    \\r\\n
     - Disconnected
     
    \\r\\n
     - Suspended
     
    \\r\\n
     - Idle
     
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Phone ID \\r\\n {{column.PhoneID_Abs}}\\r\\n Device Name \\r\\n {{column.DeviceName_Abs}}\\r\\n Phone Number \\r\\n {{column.PhoneNumber_Abs}}\\r\\n Device Model \\r\\n {{column.DeviceModel_Abs}}\\r\\n\\r\\n Latitude \\r\\n {{column.GPS_Lat_Abs}}\\r\\n\\r\\n Longitutde \\r\\n {{column.GPS_Long_Abs}}\\r\\n Last Active \\r\\n {{column.NodeTimestamp_Abs}}\\r\\n Test Status\\r\\n {{column.TestStatusID_Abs}}\\r\\n Battery Level (%) \\r\\n {{column.Battery_Level_Abs}}\\r\\n RSSI \\r\\n {{column.RSSI_Abs}}\\r\\n Mode \\r\\n {{column.Mode_Abs}}\\r\\n \\r\\n \\r\\n\\r\\n Select All\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\"","module.exports = \"
    Network Status
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n

    \\r\\n
    \\r\\n

    check_circle

     - Node Connected
     
    \\r\\n

    check_circle

     - Node Connected and Running Scripts
     
    \\r\\n
     - Node Disconnected
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n {{ expandedElement ===column ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}\\r\\n \\r\\n ID \\r\\n {{column.ID_Abs}}\\r\\n Actions \\r\\n VMobile Name \\r\\n \\r\\n \\r\\n

    check_circle

    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{column.NodeIP_Abs}}\\r\\n
    Version \\r\\n {{column.NodeVersion_Abs}}\\r\\n Latitude \\r\\n \\r\\n {{column.GPS_Lat_Abs}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n \\r\\n \\r\\n Longitude \\r\\n \\r\\n {{column.GPS_Long_Abs}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n \\r\\n Device Type \\r\\n {{column.DeviceType_Abs}}\\r\\n Console IP \\r\\n {{column.ConsoleIP_Abs}}\\r\\n Listener IP \\r\\n {{column.ListenerIP_Abs}}\\r\\n Last Active \\r\\n {{column.DBTimestamp_Abs}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    vMobile Device Script Running Status
    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    Device Name \\r\\n 0\\\">\\r\\n {{elem.DeviceName_Abs}} ({{elem.BT_Connection_Abs}})\\r\\n \\r\\n \\r\\n {{elem.DeviceName_Abs}}\\r\\n \\r\\n Script Name \\r\\n \\r\\n {{elem.ScriptName_Abs}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{currScriptName}}\\r\\n \\r\\n \\r\\n refresh\\r\\n \\r\\n Call Status {{elem.Call_Status_Abs | convertEnumToString}} Start Variables \\r\\n \\r\\n Start/Stop Script\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Script Status \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n check_circle\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"
    \\r\\n
    \\r\\n

    Global Device & Start Variables

    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    Note : Either vMobile node is not running or the Script is not stopped, to edit below variables.
    \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n {{startVar.key}}\\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\"","module.exports = \"
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n

    \\r\\n
    \\r\\n
    check_circle
     - Auto Configuration Running
     
    \\r\\n
     - Auto Configuration Idle
     
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
    PC Name \\r\\n {{column.NodeIP_Abs}}\\r\\n CentalDB IP Addresses \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n {{GetCentralIPLabel(eachCentralIP.key)}}\\r\\n {{eachCentralIP.value}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    Version \\r\\n {{column.NodeVersion_Abs}}\\r\\n Last Active \\r\\n {{column.NodeTimestamp_Abs}}\\r\\n Test Name \\r\\n {{column.TestName_Abs}}\\r\\n VQT Monitor Status\\r\\n\\r\\n \\r\\n \\r\\n check_circle\\r\\n \\r\\n\\r\\n \\r\\n save\\r\\n \\r\\n \\r\\n Actions \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\"","module.exports = \"
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n

    \\r\\n
    \\r\\n

    check_circle

     - Node Connected
     
    \\r\\n

    check_circle

     - Node Connected and Running Scripts
     
    \\r\\n
     - Node Disconnected
     
    \\r\\n
     - Node Out of service
     
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n {{ expandedElement ===column ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}\\r\\n \\r\\n ID \\r\\n {{column.ID_Abs}}\\r\\n PC Name \\r\\n \\r\\n \\r\\n

    check_circle

    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{column.NodeIP_Abs}}\\r\\n
    Version \\r\\n {{column.NodeVersion_Abs}}\\r\\n VQuad Name \\r\\n {{column.NodeAlias_Abs}}\\r\\n \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n \\r\\n Latitude \\r\\n \\r\\n {{column.GPS_Lat_Abs}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n \\r\\n \\r\\n Longitude \\r\\n \\r\\n {{column.GPS_Long_Abs}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n \\r\\n Devices Count \\r\\n {{column.DevicesCount_Abs}}\\r\\n IP Address\\r\\n \\r\\n
    \\r\\n
    \\r\\n {{SetIPType(column.LocalIPType_Abs)}}\\r\\n
    \\r\\n
    \\r\\n {{column.NodeIPAddr_Abs}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n Auto Get Local IP\\r\\n Get Local IP from ..\\\\Profiles\\\\LocalIP.ini\\r\\n Use this as Local IP\\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n
    \\r\\n
    Central IP Addresses \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    {{GetCentralIPLabel(eachCentralIP.key)}}
    \\r\\n
    {{eachCentralIP.value}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    Location \\r\\n \\r\\n {{column.NodeLocation_Abs}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Fixed\\r\\n Mobile\\r\\n \\r\\n \\r\\n \\r\\n Dual UTA \\r\\n \\r\\n \\r\\n Last Active \\r\\n \\r\\n \\r\\n {{column.DBTimestamp_Abs}}\\r\\n Use BT Name \\r\\n {{column.ChkBTName_Abs}}\\r\\n \\r\\n \\r\\n \\r\\n ON\\r\\n OFF\\r\\n \\r\\n \\r\\n \\r\\n Grab Mac \\r\\n {{column.ChkMAC_Abs}}\\r\\n \\r\\n \\r\\n \\r\\n ON\\r\\n OFF\\r\\n \\r\\n \\r\\n \\r\\n Actions \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n save\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    VQuad Device Script Running Status
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    Device Type {{elem.DeviceType_Abs}} Device Name {{elem.DeviceName_Abs}} Script Name \\r\\n \\r\\n {{elem.ScriptName_Abs}}\\r\\n {{elem.Script_Webviewer_Abs}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Profiles\\r\\n User Specified\\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{currScriptName}}\\r\\n \\r\\n \\r\\n refresh\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n
    Call Status {{elem.Call_Status_Abs | convertEnumToString}} Call Type \\r\\n \\r\\n {{elem.Call_Type_Abs}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n \\r\\n Global Device & Start Variables \\r\\n \\r\\n Start/Stop Script\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Script Status \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n check_circle\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Actions \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n save\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\"","module.exports = \"
    \\r\\n
    \\r\\n

    Bluetooth / FXO

    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    Note : Cannot edit, VQuad Node is not running.
    \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n BlueTooth Name\\r\\n \\r\\n BlueTooth Number\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    No Record Found
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n FXO Number\\r\\n
    \\r\\n \\r\\n
    No Record Found
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n Saved Successfully!\\r\\n
    \\r\\n\"","module.exports = \"
    \\r\\n
    \\r\\n

    Global Device & Start Variables

    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    Note : Either VQuad node is not running or the Script is not stopped, to edit below variables.
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n {{global.key}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n {{startVar.key}}\\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\"","module.exports = \"
    Scheduler Status
    \\r\\n
    \\r\\n \\r\\n \\r\\n

    \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n {{ expandedElement ===column ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}\\r\\n \\r\\n ID \\r\\n {{column.ID_Abs}}\\r\\n Name \\r\\n
    \\r\\n \\r\\n
    \\r\\n check\\r\\n check_circle\\r\\n \\r\\n \\r\\n \\r\\n pause_circle_filled\\r\\n
    \\r\\n {{column.ReportName_Abs}}\\r\\n
    \\r\\n
    Description \\r\\n {{column.Description_Abs}}\\r\\n Created On \\r\\n {{column.ClientTimeStamp_Abs}}\\r\\n Occurrence Pattern \\r\\n {{column.OccurrencePattern_Abs}}\\r\\n \\r\\n Next/Final Execution Date\\r\\n
    (Central DB Timezone)\\r\\n
    \\r\\n {{column.LatestExecDate_Abs}}\\r\\n No of Executions
    happened
    \\r\\n {{column.ExecsCount_Abs}}\\r\\n Actions \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    Scheduler Email / SMS contacts
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    Contact Name {{elem.ContactName_Abs}} Country Code {{elem.Country_Code_Abs}} SMS Number {{elem.SMS_Number_Abs}} EMail Address {{elem.EMail_Address_Abs}}
    \\r\\n\\r\\n
    No Record Found
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\"","module.exports = \"
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{actionsMessage}} \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\\"Filters\\\"\\r\\n \\\"Filters\\\" {{modifyFiltersMessage}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\\"Clear\\r\\n \\\"Clear {{clearFiltersMessage}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    POLQA v3 MOS Range
    =
    {{voiceQualityConfigList[1].Excellent}}---  
    Excellent
      --- {{voiceQualityConfigList[1].ExcelToGood}}---  
    Good
      --- {{voiceQualityConfigList[1].GoodToFair}}---  
    Fair
      --- {{voiceQualityConfigList[1].FairToPoor}}---  
    Poor
      --- {{voiceQualityConfigList[1].Poor}}
    \\r\\n
    \\r\\n
    POLQA MOS Range
    =
    {{voiceQualityConfigList[2].Excellent}}---  
    Excellent
      --- {{voiceQualityConfigList[2].ExcelToGood}}---  
    Good
      --- {{voiceQualityConfigList[2].GoodToFair}}---  
    Fair
      --- {{voiceQualityConfigList[2].FairToPoor}}---  
    Poor
      --- {{voiceQualityConfigList[2].Poor}}
    \\r\\n
    \\r\\n
    PESQ Range
    =
    {{voiceQualityConfigList[0].Excellent}}---  
    Excellent
      --- {{voiceQualityConfigList[0].ExcelToGood}}---  
    Good
      --- {{voiceQualityConfigList[0].GoodToFair}}---  
    Fair
      --- {{voiceQualityConfigList[0].FairToPoor}}---  
    Poor
      --- {{voiceQualityConfigList[0].Poor}}
    \\r\\n
    \\r\\n
    VBA Range
    =
    {{voiceQualityConfigList[3].Excellent}}---  
    Excellent
      --- {{voiceQualityConfigList[3].ExcelToGood}}---  
    Good
      --- {{voiceQualityConfigList[3].GoodToFair}}---  
    Fair
      --- {{voiceQualityConfigList[3].FairToPoor}}---  
    Poor
      --- {{voiceQualityConfigList[3].Poor}}
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
      VQT POLQA
    \\r\\n
    \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n {{ expandedElementPolqa !==column && expandedElementPolqa !==null ? 'keyboard_arrow_down' : 'keyboard_arrow_up' }}\\r\\n \\r\\n\\r\\n Call ID\\r\\n \\r\\n {{column.VQuad_Location}}\\r\\n \\r\\n Average Of POLQA v3 MOS\\r\\n {{column.AVGOfPOLQA_v3}}\\r\\n MAX Of POLQA v3 MOS\\r\\n {{column.MAXOfPOLQA_v3}}\\r\\n MIN Of POLQA v3 MOS\\r\\n {{column.MINOfPOLQA_v3}}\\r\\n Average Of POLQA MOS\\r\\n {{column.AVGOfPOLQA_Score}}\\r\\n MAX Of POLQA MOS \\r\\n {{column.MAXOfPOLQA_Score}}\\r\\n MIN Of POLQA MOS\\r\\n {{column.MINOfPOLQA_Score}}\\r\\n Average Of EModel (R-factor)\\r\\n {{column.AVGOfEModel_Polqa}}\\r\\n MAX Of EModel (R-factor)\\r\\n {{column.MAXOfEModel_Polqa}}\\r\\n MIN Of EModel (R-factor)\\r\\n {{column.MINOfEModel_Polqa}}\\r\\n Average Of Speech Level Gain (dB)\\r\\n {{column.AVGOfSpeech_Level_Diff}}\\r\\n MAX Of Speech Level Gain (dB)\\r\\n {{column.MAXOfSpeech_Level_Diff}}\\r\\n MIN Of Speech Level Gain (dB) \\r\\n {{column.MINOfSpeech_Level_Diff}}\\r\\n Average Of Noise Level Gain (dB) \\r\\n {{column.AVGOfSNR_Diff}}\\r\\n MAX Of Noise Level Gain (dB) \\r\\n {{column.MAXOfSNR_Diff}}\\r\\n \\r\\n MIN Of Noise Level Gain (dB)\\r\\n \\r\\n {{column.MINOfSNR_Diff}}\\r\\n \\r\\n Average Of Jitter (ms)\\r\\n \\r\\n {{column.AVGOfJitter_Ave}}\\r\\n \\r\\n MAX Of Max Pos Jitter (ms)\\r\\n \\r\\n {{column.MAXOfJitter_Max}}\\r\\n MIN Of Max Neg Jitter (ms) \\r\\n {{column.MINOfJitter_Min}}\\r\\n \\r\\n Average Of Active Speech Ratio - Ref(%)\\r\\n \\r\\n {{column.AVGOfASR_Ref}}\\r\\n \\r\\n Average Of Active Speech Ratio - Deg(%)\\r\\n \\r\\n {{column.AVGOfASR_Deg}}\\r\\n \\r\\n Average Of Number of Utterance\\r\\n \\r\\n {{column.AVGOfNumber_of_Utterance}}\\r\\n Total Record \\r\\n {{column.TotalRecord}}\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
    Device ID \\r\\n \\r\\n {{elem.VQuad_PhoneID}}\\r\\n \\r\\n Average Of POLQA v3 MOS {{elem.AVGOfPOLQA_v3}} MAX Of POLQA v3 MOS \\r\\n {{elem.MAXOfPOLQA_v3}}\\r\\n MIN Of POLQA v3 MOS {{elem.MINOfPOLQA_v3}} Average Of POLQA MOS {{elem.AVGOfPOLQA_Score}} MAX Of POLQA MOS {{elem.MAXOfPOLQA_Score}} MIN Of POLQA MOS {{elem.MINOfPOLQA_Score}} Average Of EModel (R-factor) {{elem.AVGOfEModel_Polqa}} MAX Of EModel (R-factor) {{elem.MAXOfEModel_Polqa}} MIN Of EModel (R-factor) {{elem.MINOfEModel_Polqa}} Average Of Speech Level Gain (dB) {{elem.AVGOfSpeech_Level_Diff}} MAX Of Speech Level Gain (dB) {{elem.MAXOfSpeech_Level_Diff}} MIN Of Speech Level Gain (dB) {{elem.MINOfSpeech_Level_Diff}} Average Of Noise Level Gain (dB) {{elem.AVGOfSNR_Diff}} MAX Of Noise Level Gain (dB) {{elem.MAXOfSNR_Diff}} MIN Of Noise Level Gain (dB) {{elem.MINOfSNR_Diff}} Average Of Jitter (ms) {{elem.AVGOfJitter_Ave}} MAX Of Max Pos Jitter (ms) {{elem.MAXOfJitter_Max}} MIN Of Max Neg Jitter (ms) {{elem.MINOfJitter_Min}} Average Of Active Speech Ratio - Ref(%) {{elem.AVGOfASR_Ref}} Average Of Active Speech Ratio - Deg(% {{elem.AVGOfASR_Deg}} Average Of Number of Utterance {{elem.AVGOfNumber_of_Utterance}} Total Record {{elem.TotalRecord}}
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
      VQT PESQ
    \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n {{ expandedElement ===column && expandedElement !==null ? 'keyboard_arrow_down' : 'keyboard_arrow_up' }}\\r\\n \\r\\n\\r\\n VQuad Call ID\\r\\n \\r\\n {{column.VQuad_Location}}\\r\\n \\r\\n Average of PESQ LQ \\r\\n {{column.AVGOfPESQ_LQ}}\\r\\n MAX Of PESQ LQ \\r\\n {{column.MAXOfPESQ_LQ}}\\r\\n MIN Of PESQ LQ \\r\\n {{column.MINOfPESQ_LQ}}\\r\\n Average of PESQ LQO\\r\\n {{column.AVGOfPESQ_MOS}}\\r\\n MAX Of PESQ LQO \\r\\n {{column.MAXOfPESQ_MOS}}\\r\\n MIN Of PESQ LQO \\r\\n {{column.MINOfPESQ_MOS}}\\r\\n Average of PESQ WB\\r\\n {{column.AVGOfPESQ_WB}}\\r\\n MAX Of PESQ WB\\r\\n {{column.MAXOfPESQ_WB}}\\r\\n MIN Of PESQ WB\\r\\n {{column.MINOfPESQ_WB}}\\r\\n Average of PESQ \\r\\n {{column.AVGOfPESQ_Score}}\\r\\n MAX Of PESQ \\r\\n {{column.MAXOfPESQ_Score}}\\r\\n MIN Of PESQ \\r\\n {{column.MINOfPESQ_Score}}\\r\\n Average of PESQ Average Offset (ms) \\r\\n {{column.AVGOfPESQ_Average_offset}}\\r\\n Average Of PESQ MAX Offset (ms) \\r\\n {{column.AVGOfPESQ_Max_Offset}}\\r\\n \\r\\n Average Of PESQ MIN Offset (ms)\\r\\n \\r\\n {{column.AVGOfPESQ_Min_Offset}}\\r\\n \\r\\n Average of PESQ Standard Deviation Offset (ms)\\r\\n \\r\\n {{column.AVGOfPESQ_Std_Deviation_Offset}}\\r\\n \\r\\n Average of Jitter (ms)\\r\\n \\r\\n {{column.AVGOfAverage_Jitter}}\\r\\n Average of Number All Clipping \\r\\n {{column.AVGOfNumber_All_clipping}}\\r\\n \\r\\n Average of Proportion All Clipping (%)\\r\\n \\r\\n {{column.AVGOfProportion_All_clipping}}\\r\\n \\r\\n Average of Duration ALL Clipping (s)\\r\\n \\r\\n {{column.AVGOfDuration_ALL_Clipping}}\\r\\n \\r\\n Average of Mean Duration ALL Clipping (s)\\r\\n \\r\\n {{column.AVGOfMean_Duration_ALL_Clipping}}\\r\\n \\r\\n Average of Duration Hangover (s)\\r\\n \\r\\n {{column.AVGOfduration_hangover}}\\r\\n Average of Number Of Hangover \\r\\n {{column.AVGOfNumber_of_hangover}}\\r\\n Total Record \\r\\n {{column.TotalRecord}}\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
    VQuad Device ID \\r\\n \\r\\n {{elem.VQuad_PhoneID}}\\r\\n \\r\\n Average of PESQ LQ {{elem.AVGOfPESQ_LQ}} MAX Of PESQ LQ \\r\\n {{elem.MAXOfPESQ_LQ}}\\r\\n MIN Of PESQ LQ {{elem.MINOfPESQ_LQ}} Average of PESQ LQO {{elem.AVGOfPESQ_MOS}} MAX Of PESQ LQO {{elem.MAXOfPESQ_MOS}} MIN Of PESQ LQO {{elem.MINOfPESQ_MOS}} Average of PESQ WB {{elem.AVGOfPESQ_WB}} MAX Of PESQ WB {{elem.MAXOfPESQ_WB}} MIN Of PESQ WB {{elem.MINOfPESQ_WB}} Average of PESQ {{elem.AVGOfPESQ_Score}} MAX Of PESQ {{elem.MAXOfPESQ_Score}} MIN Of PESQ {{elem.MINOfPESQ_Score}} Average of PESQ Average Offset (ms) {{elem.AVGOfPESQ_Average_offset}} Average of PESQ MAX Offset (ms) {{elem.AVGOfPESQ_Max_Offset}} Average of PESQ MIN Offset (ms) {{elem.AVGOfPESQ_Min_Offset}} Average of PESQ Standard Deviation Offset (ms) {{elem.AVGOfPESQ_Std_Deviation_Offset}} Average of Jitter (ms) {{elem.AVGOfAverage_Jitter}} Average of Number All Clipping {{elem.AVGOfNumber_All_clipping}} Average of Proportion All Clipping (%) {{elem.AVGOfProportion_All_clipping}} Average of Duration ALL Clipping (s) {{elem.AVGOfDuration_ALL_Clipping}} Average of Mean Duration ALL Clipping (s) {{elem.AVGOfMean_Duration_ALL_Clipping}} Average of Duration Hangover (s) {{elem.AVGOfduration_hangover}} Average of Number Of Hangover {{elem.AVGOfNumber_of_hangover}} Total Record {{elem.TotalRecord}}
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
      VBA (E-Model)
    \\r\\n
    \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n {{ expandedElementVBA !==column && expandedElementVBA !==null ? 'keyboard_arrow_down' : 'keyboard_arrow_up' }}\\r\\n \\r\\n\\r\\n VQuad Call ID\\r\\n \\r\\n {{column.VQuad_Location}}\\r\\n \\r\\n Average Of MOS CQ \\r\\n {{column.AVGOfMOS_CQ}}\\r\\n Max Of MOS CQ \\r\\n {{column.MAXOfMOS_CQ}}\\r\\n Min Of MOS CQ \\r\\n {{column.MINOfMOS_CQ}}\\r\\n Average Of ITU-T G.107 R-Factor \\r\\n {{column.AVGOfRFactor}}\\r\\n Max Of ITU-T G.107 R-Factor \\r\\n {{column.MAXOfRFactor}}\\r\\n Min Of ITU-T G.107 R-Factor \\r\\n {{column.MINOfRFactor}}\\r\\n Total Record \\r\\n {{column.TotalRecord}}\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    VQuad Device ID \\r\\n \\r\\n {{elem.VQuad_PhoneID}}\\r\\n \\r\\n Average Of MOS CQ {{elem.AVGOfMOS_CQ}} Max Of MOS CQ \\r\\n {{elem.MAXOfMOS_CQ}}\\r\\n Min Of MOS CQ {{elem.MINOfMOS_CQ}} Average Of ITU-T G.107 R-Factor {{elem.AVGOfRFactor}} Max Of ITU-T G.107 R-Factor {{elem.MAXOfRFactor}} Min Of ITU-T G.107 R-Factor {{elem.MINOfRFactor}} Total Record {{elem.TotalRecord}}
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n\"","module.exports = \"

    welcome works!

    \\n\"","import { NgModule } from '@angular/core';\r\nimport { Routes, PreloadAllModules, RouterModule } from '@angular/router';\r\n\r\n//import { BasicComponent } from './shared/basic/basic.component'\r\nimport { PesqComponent } from './results/pesq/pesq.component';\r\nimport { PolqaComponent } from './results/polqa/polqa.component';\r\nimport { CallEventsComponent } from './results/call-events/call-events.component';\r\nimport { VbaComponent } from './results/vba/vba.component';\r\nimport { FaxComponent } from './results/fax/fax.component';\r\nimport { AudioDelayComponent } from './results/audio-delay/audio-delay.component';\r\n\r\n//import { HeaderDemoComponent } from './shared/header-demo/header-demo.component'\r\nimport { VacComponent } from './results/vac/vac.component';\r\nimport { EmuComponent } from './results/emu/emu.component';\r\nimport { NettestrsltsComponent } from './results/nettestrslts/nettestrslts.component';\r\nimport { MobinforsltsComponent } from './results/mobinforslts/mobinforslts.component';\r\n\r\nimport { AnalysisComponent } from './graphics/analysis/analysis.component';\r\nimport { CallProcessComponent } from './graphics/call-process/call-process.component';\r\nimport { NettestComponent } from './graphics/nettest/nettest.component';\r\n\r\nimport { NetworkStatusComponent } from './statistics/network-status/network-status.component';\r\nimport { VQUADComponent } from './statistics/network-status/vquad/vquad.component';\r\nimport { VquadbtfxoComponent } from './statistics/network-status/vquadbtfxo/vquadbtfxo.component';\r\nimport { VquadscrparamsComponent } from './statistics/network-status/vquadscrparams/vquadscrparams.component';\r\nimport { FileMonitorComponent } from './statistics/network-status/file-monitor/file-monitor.component';\r\nimport { VQTComponent } from './statistics/network-status/vqt/vqt.component';\r\nimport { MobileComponent } from './statistics/network-status/mobile/mobile.component';\r\nimport { CommandCenterComponent } from './statistics/network-status/command-center/command-center.component';\r\n\r\nimport { CustomReportComponent } from './output-results/custom-report/custom-report.component';\r\nimport { GoogleMapComponent } from './output-results/google-map/google-map.component';\r\nimport { CustomGmapsMainComponent } from './output-results/custom-gmaps-main/custom-gmaps-main.component';\r\n\r\nimport { WebviewerconfigComponent } from './configuration/webviewerconfig/webviewerconfig.component';\r\n\r\nimport { FiltersComponent } from './filters/filters.component';\r\n\r\nimport { UrlReloadButtonComponent } from './shared/components/url-reload-button/url-reload-button.component';\r\n\r\nimport { SchedulerStatusComponent } from './statistics/scheduler-status/scheduler-status.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { LicenceCheckComponent } from './login/licence-check/licence-check.component';\r\nimport { LoginConfigComponent } from './login/login-config/login-config.component';\r\nimport { LogoutComponent } from './login/logout/logout.component';\r\n\r\nimport { AudioAndDelayStatisticsPieChartComponent } from './statistics/audio-and-delay-statistics-pie-chart/audio-and-delay-statistics-pie-chart.component';\r\nimport { VoiceQualityStatisticsPieChartComponent } from './statistics/voice-quality-statistics-pie-chart/voice-quality-statistics-pie-chart.component';\r\nimport { LeafletGMapComponent } from './output-results/leaflet-gmap/leaflet-gmap.component';\r\nimport { TestJSGoogleMapComponent } from './output-results/test-jsgoogle-map/test-jsgoogle-map.component';\r\nimport { VMobileComponent } from './statistics/network-status/v-mobile/v-mobile.component';\r\nimport { ITSViewerComponent } from './output-results/itsviewer/itsviewer.component';\r\nimport { ForgotPasswordComponent } from './login/forgot-password/forgot-password.component';\r\nimport { ExploreOptionsComponent } from './shared/components/explore-options/explore-options.component';\r\nimport { AdvancedMarkersComponent } from './output-results/advanced-markers/advanced-markers.component';\r\n\r\nconst routes: Routes = [\r\n { path: 'login', component: LoginComponent },\r\n { path: 'login/LicenseCheck', component: LicenceCheckComponent },\r\n { path: 'login/Config', component: LoginConfigComponent },\r\n { path: 'logout', component: LogoutComponent },\r\n { path: 'forgotpassword', component: ForgotPasswordComponent },\r\n\r\n { path: 'dashboard/pesq', component: PesqComponent },\r\n { path: 'dashboard/polqa', component: PolqaComponent },\r\n { path: 'dashboard/call-events', component: CallEventsComponent },\r\n { path: 'dashboard/vba', component: VbaComponent },\r\n { path: 'dashboard/vac', component: VacComponent },\r\n { path: 'dashboard/fax', component: FaxComponent },\r\n { path: 'dashboard/audio-delay', component: AudioDelayComponent },\r\n\r\n { path: 'dashboard/nettest', component: NettestrsltsComponent },\r\n { path: 'dashboard/mobileinfo', component: MobinforsltsComponent },\r\n { path: 'dashboard/vac', component: VacComponent },\r\n { path: 'dashboard/emu', component: EmuComponent },\r\n\r\n { path: 'filters/:filter-name', component: FiltersComponent, outlet: 'filterPopup' },\r\n { path: 'login/Config', component: LoginConfigComponent, outlet: 'popupOutlet' },\r\n { path: 'help/exploreOptions', component: ExploreOptionsComponent, outlet: 'popupExploreOptions' },\r\n\r\n { path: 'graphics/call-process', component: CallProcessComponent },\r\n { path: 'graphics/analysis', component: AnalysisComponent },\r\n { path: 'graphics/nettest-graphs', component: NettestComponent },\r\n\r\n { path: 'statistics/AudioDelayStatsPieChart', component: AudioAndDelayStatisticsPieChartComponent },\r\n { path: 'statistics/VoiceQualityStatsPieChart', component: VoiceQualityStatisticsPieChartComponent },\r\n { path: 'statistics/nsvquad', component: VQUADComponent },\r\n { path: 'statistics/nsvmobile', component: VMobileComponent },\r\n { path: 'statistics/nsvqt', component: VQTComponent },\r\n { path: 'statistics/nsmobile', component: MobileComponent },\r\n { path: 'statistics/nsfilemonitor', component: FileMonitorComponent },\r\n { path: 'statistics/nscommandcenter', component: CommandCenterComponent },\r\n { path: 'statistics/scheduler', component: SchedulerStatusComponent },\r\n\r\n { path: 'outputresult/CustomReport', component: CustomReportComponent },\r\n //{ path: 'outputresult/GoogleMap', component: GoogleMapComponent },\r\n { path: 'outputresult/LeafletMap', component: LeafletGMapComponent },\r\n { path: 'outputresult/CustomGMapMain', component: CustomGmapsMainComponent },\r\n //{ path: 'outputresult/TestJSGMapComponent', component: TestJSGoogleMapComponent },\r\n { path: 'outputresult/GoogleMap', component: TestJSGoogleMapComponent },\r\n { path: 'outputresult/AdvGoogleMap', component: AdvancedMarkersComponent },\r\n { path: 'outputresult/ITSViewer', component: ITSViewerComponent },\r\n \r\n\r\n //{ path: 'configuration/webviewerconfig', component: WebviewerconfigComponent },\r\n\r\n //{ path: 'refresh', component: UrlReloadButtonComponent },\r\n\r\n { path: 'configuration', loadChildren: () => import('./configuration/webviewerconfig/webviewerconfig.module').then(m => m.WebviewerconfigModule), outlet: 'configPopup' },\r\n\r\n { path: '**', redirectTo: 'dashboard/pesq', pathMatch: 'full' },//path: ''\r\n];\r\n\r\n@NgModule({\r\n //https://medium.com/angular-in-depth/refresh-current-route-in-angular-512a19d58f6e\r\n //https://www.youtube.com/watch?v=LEI9yrTIrCM\r\n imports: [RouterModule.forRoot(routes, {onSameUrlNavigation: 'reload'})],//RouterModule.forRoot(ROUTES, { useHash: true, preloadingStrategy: PreloadAllModules }),\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","module.exports = \"/*mat-sidenav-container, mat-sidenav-content, mat-sidenav {\\n height: 100%;\\n}\\n\\nmat-sidenav {\\n width: 250px;\\n}\\n\\na {\\n text-decoration: none;\\n color: white;\\n}\\n\\na:hover,\\na:active {\\n color: lightgray;\\n}\\n\\n.navigation-items {\\n list-style: none;\\n padding: 0;\\n margin: 0;\\n cursor: pointer;\\n}\\n\\n.icon {\\n display: inline-block;\\n height: 30px;\\n margin: 0 auto;\\n padding-right: 5px;\\n text-align: center;\\n vertical-align: middle;\\n width: 15%;\\n}\\n\\n.label {\\n display: inline-block;\\n line-height: 30px;\\n margin: 0;\\n width: 85%;\\n}*/\\n.menu-bg {\\n background-color: #808080;\\n padding: 5px 0 5px 20px;\\n}\\n.mat-menu-item {\\n width: 150px;\\n text-overflow: unset;\\n font-size: 12px;\\n}\\n.menuHeader {\\n color: white;\\n background-color: #E0E1E6;\\n}\\n.HeaderBg {\\n width: 14%;\\n height: 36px;\\n padding: 0 0 0 0;\\n background: #EAEAEC;\\n /*padding-bottom: 2px;\\n vertical-align: top;*/\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=\\\"#9FA7B1\\\", endColorstr=\\\"#F2F4F5\\\");\\n /* for IE */\\n background: linear-gradient(#9FA7B1, #F2F4F5);\\n font-size: 12px;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n}\\n.app-active {\\n background: #2196F3;\\n /*filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7AC1E2', endColorstr='#162F9E');\\n background: -webkit-gradient(linear, 0 0, 0 bottom, from(#7AC1E2), to(#162F9E));\\n background: -webkit-linear-gradient(#7AC1E2, #162F9E);\\n background: -moz-linear-gradient(#7AC1E2, #162F9E);\\n background: -ms-linear-gradient(#7AC1E2, #162F9E);\\n background: -o-linear-gradient(#7AC1E2, #162F9E);\\n background: linear-gradient(#7AC1E2, #162F9E);*/\\n color: white;\\n}\\n.appItems-active {\\n background-color: #2196F3;\\n color: white;\\n}\\n.appItems-active:hover {\\n color: black;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvRDpcXFNyY3dlYlxcVlMyMDE3IFByb2plY3RzXFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3L3NyY1xcYXBwXFxhcHAuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUFBO0FBMENBO0VBQ0UseUJBQUE7RUFDQSx1QkFBQTtBQ0FGO0FERUE7RUFDRSxZQUFBO0VBQ0Esb0JBQUE7RUFDQSxlQUFBO0FDQ0Y7QURFQTtFQUNFLFlBQUE7RUFDQSx5QkFBQTtBQ0NGO0FEQ0E7RUFDRSxVQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQTt1QkFBQTtFQUVBLGtHQUFBO0VBQW9HLFdBQUE7RUFNcEcsNkNBQUE7RUFDQSxlQUFBO0VBQ0Esa0RBQUE7QUNHRjtBREFBO0VBQ0UsbUJBQUE7RUFDQTs7Ozs7O2lEQUFBO0VBT0EsWUFBQTtBQ0dGO0FEREE7RUFDRSx5QkFBQTtFQUNBLFlBQUE7QUNJRjtBREZBO0VBQ0UsWUFBQTtBQ0tGIiwiZmlsZSI6InNyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyptYXQtc2lkZW5hdi1jb250YWluZXIsIG1hdC1zaWRlbmF2LWNvbnRlbnQsIG1hdC1zaWRlbmF2IHtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbm1hdC1zaWRlbmF2IHtcclxuICB3aWR0aDogMjUwcHg7XHJcbn1cclxuXHJcbmEge1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBjb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbmE6aG92ZXIsXHJcbmE6YWN0aXZlIHtcclxuICBjb2xvcjogbGlnaHRncmF5O1xyXG59XHJcblxyXG4ubmF2aWdhdGlvbi1pdGVtcyB7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG1hcmdpbjogMDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5pY29uIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgaGVpZ2h0OiAzMHB4O1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICB3aWR0aDogMTUlO1xyXG59XHJcblxyXG4ubGFiZWwge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBsaW5lLWhlaWdodDogMzBweDtcclxuICBtYXJnaW46IDA7XHJcbiAgd2lkdGg6IDg1JTtcclxufSovXHJcblxyXG4ubWVudS1iZyB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgwODA4MDtcclxuICBwYWRkaW5nOiA1cHggMCA1cHggMjBweDtcclxufVxyXG4ubWF0LW1lbnUtaXRlbSB7XHJcbiAgd2lkdGg6IDE1MHB4O1xyXG4gIHRleHQtb3ZlcmZsb3c6IHVuc2V0O1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxufVxyXG5cclxuLm1lbnVIZWFkZXJ7XHJcbiAgY29sb3I6d2hpdGU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjojRTBFMUU2O1xyXG59XHJcbi5IZWFkZXJCZyB7XHJcbiAgd2lkdGg6IDE0JTtcclxuICBoZWlnaHQ6IDM2cHg7XHJcbiAgcGFkZGluZzogMCAwIDAgMDtcclxuICBiYWNrZ3JvdW5kOiAjRUFFQUVDO1xyXG4gIC8qcGFkZGluZy1ib3R0b206IDJweDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyovXHJcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzlGQTdCMScsIGVuZENvbG9yc3RyPScjRjJGNEY1Jyk7IC8qIGZvciBJRSAqL1xyXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDAgYm90dG9tLCBmcm9tKCM5RkE3QjEpLCB0bygjRjJGNEY1KSk7XHJcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoIzlGQTdCMSwgI0YyRjRGNSk7XHJcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoIzlGQTdCMSwgI0YyRjRGNSk7XHJcbiAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudCgjOUZBN0IxLCAjRjJGNEY1KTtcclxuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoIzlGQTdCMSwgI0YyRjRGNSk7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCM5RkE3QjEsICNGMkY0RjUpO1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxufVxyXG5cclxuLmFwcC1hY3RpdmUge1xyXG4gIGJhY2tncm91bmQ6ICMyMTk2RjM7XHJcbiAgLypmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjN0FDMUUyJywgZW5kQ29sb3JzdHI9JyMxNjJGOUUnKTtcclxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIGJvdHRvbSwgZnJvbSgjN0FDMUUyKSwgdG8oIzE2MkY5RSkpO1xyXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCM3QUMxRTIsICMxNjJGOUUpO1xyXG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KCM3QUMxRTIsICMxNjJGOUUpO1xyXG4gIGJhY2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQoIzdBQzFFMiwgIzE2MkY5RSk7XHJcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KCM3QUMxRTIsICMxNjJGOUUpO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjN0FDMUUyLCAjMTYyRjlFKTsqL1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxufVxyXG4uYXBwSXRlbXMtYWN0aXZlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxufVxyXG4uYXBwSXRlbXMtYWN0aXZlOmhvdmVye1xyXG4gIGNvbG9yOiBibGFjaztcclxufVxyXG4iLCIvKm1hdC1zaWRlbmF2LWNvbnRhaW5lciwgbWF0LXNpZGVuYXYtY29udGVudCwgbWF0LXNpZGVuYXYge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbm1hdC1zaWRlbmF2IHtcbiAgd2lkdGg6IDI1MHB4O1xufVxuXG5hIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbmE6aG92ZXIsXG5hOmFjdGl2ZSB7XG4gIGNvbG9yOiBsaWdodGdyYXk7XG59XG5cbi5uYXZpZ2F0aW9uLWl0ZW1zIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDMwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDE1JTtcbn1cblxuLmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogODUlO1xufSovXG4ubWVudS1iZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4MDgwODA7XG4gIHBhZGRpbmc6IDVweCAwIDVweCAyMHB4O1xufVxuXG4ubWF0LW1lbnUtaXRlbSB7XG4gIHdpZHRoOiAxNTBweDtcbiAgdGV4dC1vdmVyZmxvdzogdW5zZXQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm1lbnVIZWFkZXIge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMEUxRTY7XG59XG5cbi5IZWFkZXJCZyB7XG4gIHdpZHRoOiAxNCU7XG4gIGhlaWdodDogMzZweDtcbiAgcGFkZGluZzogMCAwIDAgMDtcbiAgYmFja2dyb3VuZDogI0VBRUFFQztcbiAgLypwYWRkaW5nLWJvdHRvbTogMnB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyovXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9XCIjOUZBN0IxXCIsIGVuZENvbG9yc3RyPVwiI0YyRjRGNVwiKTtcbiAgLyogZm9yIElFICovXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDAgYm90dG9tLCBmcm9tKCM5RkE3QjEpLCB0bygjRjJGNEY1KSk7XG4gIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCM5RkE3QjEsICNGMkY0RjUpO1xuICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgjOUZBN0IxLCAjRjJGNEY1KTtcbiAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudCgjOUZBN0IxLCAjRjJGNEY1KTtcbiAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KCM5RkE3QjEsICNGMkY0RjUpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoIzlGQTdCMSwgI0YyRjRGNSk7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG59XG5cbi5hcHAtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogIzIxOTZGMztcbiAgLypmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjN0FDMUUyJywgZW5kQ29sb3JzdHI9JyMxNjJGOUUnKTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMCBib3R0b20sIGZyb20oIzdBQzFFMiksIHRvKCMxNjJGOUUpKTtcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoIzdBQzFFMiwgIzE2MkY5RSk7XG4gIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KCM3QUMxRTIsICMxNjJGOUUpO1xuICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KCM3QUMxRTIsICMxNjJGOUUpO1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoIzdBQzFFMiwgIzE2MkY5RSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjN0FDMUUyLCAjMTYyRjlFKTsqL1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5hcHBJdGVtcy1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5hcHBJdGVtcy1hY3RpdmU6aG92ZXIge1xuICBjb2xvcjogYmxhY2s7XG59Il19 */\"","import { Component, HostBinding, isDevMode, enableProdMode, ViewChild } from '@angular/core';\r\nimport { OverlayContainer } from '@angular/cdk/overlay';\r\nimport { environment } from 'src/environments/environment';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\n\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\n//https://stackblitz.com/edit/angular-material-theme-secrets?embed=1&file=src%2Ftheme.scss&source=post_page---------------------------\r\n//https://www.techiediaries.com/angular-material-navigation-toolbar-sidenav/\r\n\r\nimport { CommonFilterService } from './shared/services/common-filter/common-filter.service';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { SystemSettingsService } from './shared/services/system-settings/system-settings.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent {\r\n title: string;\r\n staticScreen = true;\r\n refreshClicked = false;\r\n\r\n isLogin: boolean = true;\r\n isVQT: boolean = false;\r\n isPolqa: boolean = false;\r\n isVBA: boolean = false;\r\n isNetTest: boolean = false;\r\n isVac: boolean = false;\r\n isEmu: boolean = false;\r\n isFax: boolean = false;\r\n isAudioandDelay: boolean = false;\r\n isCallEvents: boolean = false;\r\n isCallEventsStats: boolean = false;\r\n isAudioandDelayStats: boolean = false;\r\n isVoiceQualityStats: boolean = false;\r\n isSchedulerStatus: boolean = false;\r\n isNetworkStatus: boolean = false;\r\n isFilters: boolean = false;\r\n statusScreens: boolean = false;\r\n isGraphics: boolean = false;\r\n isCallProcessGraphics: boolean = false;\r\n isAnalysisGraphics: boolean = false;\r\n isNetTestGraphics: boolean = false;\r\n isOutputResults: boolean = false;\r\n isCustomReports: boolean = false;\r\n isGoogleMaps: boolean = false;\r\n isConsoleView: boolean = false;\r\n isConfiguration: boolean = false;\r\n isRemoteOperations: boolean = false;\r\n isWebviewerConfig: boolean = false;\r\n showHelp: boolean = false;\r\n\r\n currentTheme = '';\r\n @HostBinding('class') componentCssClass;\r\n\r\n //@ViewChild(LoginComponent, { static: true }) loginChild: LoginComponent;\r\n baseUrl: string;\r\n url: string;\r\n\r\n routerGrp = \"Results\";\r\n routerGrpItem = \"PESQ\";\r\n\r\n constructor(private http: HttpClient, public overlayContainer: OverlayContainer, public _router: Router, public _location: Location,\r\n private commonFilterService: CommonFilterService, private logservice: SystemSettingsService, private routeActive: ActivatedRoute) {\r\n\r\n ///// this.checkInternetConnection();\r\n //alert('appcomp');\r\n this.onSetTheme('defaultMat');\r\n\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n //this.logservice.appPageRef.subscribe(res => { console.log(res + '0'); this.RestrictScreenAfterLogin(res); });\r\n\r\n console.log(environment.urlAddress);\r\n console.log(environment.production);\r\n\r\n\r\n if (isDevMode()) {\r\n console.log('👋 Development!');\r\n } else {\r\n //https://www.grapecity.com/blogs/14-ways-to-speed-up-your-angular-app\r\n enableProdMode();\r\n console.log('💪 Production!');\r\n }\r\n //https://stackoverflow.com/a/68525726\r\n //SET NODE_OPTIONS=--max_old_space_size=8096\r\n //https://stackoverflow.com/questions/62288814/cache-busting-is-not-working-sometimes-after-production-build-in-angular-7\r\n //https://stackoverflow.com/questions/53230823/fatal-error-ineffective-mark-compacts-near-heap-limit-allocation-failed-javas\r\n //ng build --prod --aot --output-hashing=all\r\n //\"ts-overlapping-marker-spiderfier\": \"^1.0.2\",\r\n //\"agm-oms\": \"^1.0.0-beta.5\",\r\n\r\n //Install-Package Ubiety.Dns.Core -Version 2.2.1 - Webviewer_API projs\r\n\r\n //https://medium.com/@Codeible/adding-loading-and-using-javascript-in-angular-3281ea4b056b\r\n //https://stackoverflow.com/questions/41376263/angular-2-referencing-external-js-file-in-index-html\r\n\r\n //https://stackoverflow.com/questions/50113794/angular-how-to-dynamically-change-the-content-in-the-index-html-file-when-runn\r\n //https://www.freecodecamp.org/news/private-api-keys/\r\n //https://www.dhiwise.com/post/how-to-hide-javascript-source-code\r\n //https://stackoverflow.com/questions/64365318/how-can-i-set-my-google-maps-key-in-index-html-dynamically-in-angular-2\r\n }\r\n //https://www.youtube.com/watch?v=m5OzOczDmhU\r\n //https://stackoverflow.com/questions/47813927/how-to-refresh-a-component-in-angular\r\n //https://www.newline.co/@kievsash/mastering-angular-8:-five-things-that-are-good-to-know-to-save-your-time.--6302e8aa\r\n //refresh(): void {\r\n // this._router.navigateByUrl(\"refresh\", { skipLocationChange: true }).then(() => {\r\n // console.log(decodeURI(this._location.path()));\r\n // this._router.navigate([decodeURI(this._location.path())]);\r\n // });\r\n //}\r\n\r\n routeClick(type, subType?) {\r\n this.routerGrp = type;\r\n this.routerGrpItem = subType;\r\n }\r\n\r\n onSetTheme(theme) {\r\n this.currentTheme = theme;\r\n this.overlayContainer.getContainerElement().classList.add(theme);\r\n this.componentCssClass = theme;\r\n }\r\n\r\n //https://medium.com/@sujeeshdl/angular-parent-to-child-and-child-to-parent-communication-from-router-outlet-868b39d1ca89\r\n //currComponentReference: any;\r\n onActivate(componentReference) {\r\n //alert('activate');\r\n\r\n this.isLogin = true;\r\n this.isVQT = false;\r\n this.isPolqa = false;\r\n this.isVBA = false;\r\n this.isNetTest = false;\r\n this.isVac = false;\r\n this.isEmu = false;\r\n this.isFax = false;\r\n this.isAudioandDelay = false;\r\n this.isCallEvents = false;\r\n this.isCallEventsStats = false;\r\n this.isAudioandDelayStats = false;\r\n this.isVoiceQualityStats = false;\r\n this.isSchedulerStatus = false;\r\n this.isNetworkStatus = false;\r\n this.isFilters = false;\r\n this.statusScreens = false;\r\n this.isGraphics = false;\r\n this.isCallProcessGraphics = false;\r\n this.isAnalysisGraphics = false;\r\n this.isNetTestGraphics = false;\r\n this.isOutputResults = false;\r\n this.isCustomReports = false;\r\n this.isGoogleMaps = false;\r\n this.isConsoleView = false;\r\n this.isConfiguration = false;\r\n this.isRemoteOperations = false;\r\n this.isWebviewerConfig = false;\r\n //debugger;\r\n ////to check if request is to reset password from email link clicked\r\n const forgotPasswordKey = this.routeActive.snapshot.queryParamMap.get('fkey');\r\n //console.log(forgotKey);\r\n\r\n\r\n //// to check if user is loggedin or not\r\n //console.log(this.logservice.UserName)\r\n if (this.logservice.UserName == \"\" && this._router.url != \"/forgotpassword\") {\r\n //debugger\r\n //console.log(sessionStorage.getItem('SystemSettings') == null)\r\n //console.log(localStorage.getItem('SystemSettings'))\r\n //console.log(sessionStorage.getItem('Keyword') == null)\r\n //console.log(localStorage.getItem('Keyword'))\r\n //console.log(localStorage.getItem('ConfigScreen') == null)\r\n //console.log('keysetchk')\r\n //console.log(localStorage.getItem('Keyword'))\r\n if (sessionStorage.getItem('SystemSettings') == null && localStorage.getItem('SystemSettings') == null\r\n && sessionStorage.getItem('Keyword') == null && localStorage.getItem('Keyword') == null && forgotPasswordKey == null) {\r\n //console.log('redirect to login app')\r\n if (localStorage.getItem('ConfigScreen') == null)\r\n this._router.navigateByUrl('/login');\r\n \r\n }\r\n else {\r\n //https://www.sohamkamani.com/javascript/localstorage-with-ttl-expiry/\r\n //https://long2know.com/2017/12/angular-user-session-timeout/\r\n //https://www.c-sharpcorner.com/article/how-to-set-and-get-cookies-in-angular-with-example/\r\n //if (sessionStorage.getItem('Keyword') != null || localStorage.getItem('Keyword') != null)\r\n // this.LicenceCheck();\r\n\r\n let logserviceObj;\r\n if (sessionStorage.getItem('SystemSettings') != null) {\r\n logserviceObj = JSON.parse(sessionStorage.getItem('SystemSettings'));\r\n }\r\n else if (localStorage.getItem('SystemSettings') != null) {\r\n logserviceObj = JSON.parse(localStorage.getItem('SystemSettings'));\r\n }\r\n\r\n if (logserviceObj) {\r\n this.logservice.logDetail = logserviceObj.logDetail;\r\n this.logservice.LogType = logserviceObj.LogType;\r\n this.logservice.CompanyLogo = logserviceObj.CompanyLogo;\r\n this.logservice.CompanyRebrand = logserviceObj.CompanyRebrand;\r\n this.logservice.UserName = logserviceObj.UserName;\r\n this.logservice.isLoggedIn = logserviceObj.isLoggedIn;\r\n this.logservice.isCommonLogo = logserviceObj.isCommonLogo;\r\n this.logservice.startupScreen = logserviceObj.startupScreen;\r\n this.logservice.restrictScreens = logserviceObj.restrictScreens;\r\n //console.log(this.logservice)\r\n if (this.logservice.restrictScreens)\r\n this.RestrictScreenAfterLogin(this.logservice.restrictScreens);\r\n }\r\n\r\n //if (sessionStorage.getItem('Keyword') != null) {\r\n // let Keyword = sessionStorage.getItem('Keyword');\r\n // this._router.navigateByUrl('/login?k=' + Keyword);\r\n //}\r\n //else if (localStorage.getItem('Keyword') != null) {\r\n // let Keyword = localStorage.getItem('Keyword');\r\n // this._router.navigateByUrl('/login?k=' + Keyword);\r\n //}\r\n }\r\n }\r\n else {\r\n //console.log(this.logservice)\r\n if (this.logservice.restrictScreens)\r\n this.RestrictScreenAfterLogin(this.logservice.restrictScreens);\r\n\r\n //if (this.logservice.startupScreen.split('|')[2] != \"undefined\" && this.logservice.startupScreen.split('|')[2] != \"\") {\r\n // this.isFilters = true;\r\n //}\r\n //else\r\n // this.isFilters = false;\r\n }\r\n\r\n this.commonFilterService.setIsFilters(this.isFilters);\r\n\r\n //https://stackoverflow.com/questions/48400422/angular4-router-outlet-activate-and-expressionchangedafterithasbeencheckederror\r\n //https://medium.com/better-programming/expressionchangedafterithasbeencheckederror-in-angular-what-why-and-how-to-fix-it-c6bdc0b22787\r\n setTimeout(() => {\r\n if (componentReference) {\r\n this.title = componentReference.title;\r\n this.staticScreen = componentReference.staticScreen;\r\n\r\n\r\n //this.currComponentReference = componentReference;//set to call in refresh/auto-refresh functions down - IMP\r\n //if (this.refreshClicked)\r\n // componentReference.refreshClicked(); //Below will subscribe to the child - check call event comp.ts\r\n\r\n componentReference.childTitleEvent.subscribe((data) => {\r\n // Will receive the data from child here\r\n this.title = data.title;\r\n this.staticScreen = data.staticScreen;\r\n })\r\n this.refreshClicked = !this.refreshClicked;\r\n }\r\n });\r\n\r\n //console.log(this._router.url)\r\n if (this._router.url.indexOf('/dashboard') != -1) {\r\n this.routerGrp = \"Results\";\r\n if (this._router.url.indexOf('/call-events') != -1)\r\n this.routerGrp = \"CallEvents\";\r\n else {\r\n if (this._router.url.indexOf('/pesq') != -1)\r\n this.routerGrpItem = \"PESQ\";\r\n else if (this._router.url.indexOf('/polqa') != -1)\r\n this.routerGrpItem = \"POLQA\";\r\n else if (this._router.url.indexOf('/audio-delay') != -1)\r\n this.routerGrpItem = \"TDM\";\r\n else if (this._router.url.indexOf('/nettest') != -1)\r\n this.routerGrpItem = \"NetTest\";\r\n else if (this._router.url.indexOf('/vac') != -1)\r\n this.routerGrpItem = \"VAC\";\r\n else if (this._router.url.indexOf('/emu') != -1)\r\n this.routerGrpItem = \"EMU\";\r\n else if (this._router.url.indexOf('/fax') != -1)\r\n this.routerGrpItem = \"FAX\";\r\n else if (this._router.url.indexOf('/vba') != -1)\r\n this.routerGrpItem = \"VBA\";\r\n }\r\n }\r\n else if (this._router.url.indexOf('/statistics') != -1) {\r\n this.routerGrp = \"Statistics\";\r\n if (this._router.url.indexOf('/AudioDelayStatsPieChart') != -1)\r\n this.routerGrpItem = \"TDM\";\r\n else if (this._router.url.indexOf('/VoiceQualityStatsPieChart') != -1)\r\n this.routerGrpItem = \"VQT\";\r\n else if (this._router.url.indexOf('/scheduler') != -1)\r\n this.routerGrpItem = \"Scheduler\";\r\n else if (this._router.url.indexOf('/nsvquad') != -1)\r\n this.routerGrpItem = \"NwStatus\";\r\n }\r\n else if (this._router.url.indexOf('/graphics') != -1 || this._router.url.indexOf('/outputresult') != -1) {\r\n this.routerGrp = \"Reports\";\r\n\r\n if (this._router.url.indexOf('/call-process') != -1)\r\n this.routerGrpItem = \"CallProc\";\r\n else if (this._router.url.indexOf('/analysis') != -1)\r\n this.routerGrpItem = \"Analysis\";\r\n else if (this._router.url.indexOf('/nettest-graphs') != -1)\r\n this.routerGrpItem = \"NetTest\";\r\n else if (this._router.url.indexOf('/CustomReport') != -1)\r\n this.routerGrpItem = \"CustomReports\";\r\n else if (this._router.url.indexOf('/GoogleMap') != -1)\r\n this.routerGrpItem = \"GoogleMaps\";\r\n else if (this._router.url.indexOf('/AdvGoogleMap') != -1)\r\n this.routerGrpItem = \"AdvGoogleMaps\";\r\n else if (this._router.url.indexOf('/ConsoleView') != -1)\r\n this.routerGrpItem = \"ConsoleView\";\r\n }\r\n }\r\n\r\n screenTopRef() {\r\n //this.refreshClicked = true;\r\n //this.onActivate(this.currComponentReference);\r\n\r\n //https://stackoverflow.com/questions/40788458/how-to-call-component-method-from-service-angular2\r\n //https://stack247.wordpress.com/2018/05/22/angular-call-child-components-method-in-parent-components-template/\r\n //ViewChild\r\n this.commonFilterService.basicRefresh();\r\n }\r\n\r\n screenTopAutoRef(AutoRefreshInfo) {\r\n this.commonFilterService.basicAutoRefresh(AutoRefreshInfo);\r\n }\r\n\r\n RestrictScreenAfterLogin(screenList) {\r\n //alert(this.logservice.LogType);\r\n //console.log(screenList + '0');\r\n //debugger;\r\n for (let i = 0; i < screenList.split(';').length; i++) {\r\n\r\n switch (screenList.split(';')[i]) {\r\n case \"VQT\":\r\n //if (rsltAll == 0) {\r\n // vp.Enabled = false;\r\n // vp.Visible = false;\r\n // PESQDummy.Visible = true;\r\n //}\r\n this.isVQT = true;\r\n break;\r\n case \"VPOL\":\r\n //if (rsltAll == 0) {\r\n // vpol.Enabled = false;\r\n // vpol.Visible = false;\r\n // POLQADummy.Visible = true;\r\n //}\r\n this.isPolqa = true;\r\n break;\r\n case \"VBA\":\r\n //if (rsltAll == 0) {\r\n // vba.Enabled = false;\r\n // vba.Visible = false;\r\n // VBADummy.Visible = true;\r\n //}\r\n this.isVBA = true;\r\n break;\r\n case \"TDM\":\r\n //if (rsltAll == 0) {\r\n // tdm.Enabled = false;\r\n // tdm.Visible = false;\r\n // TDMDummy.Visible = true;\r\n //}\r\n this.isAudioandDelay = true;\r\n break;\r\n case \"CE\":\r\n //if (rsltAll == 0) {\r\n // ud.Enabled = false;\r\n // ud.Visible = false;\r\n // CEDummy.Visible = true;\r\n //}\r\n\r\n break;\r\n case \"ER\":\r\n //if (rsltAll == 0) {\r\n // emu.Enabled = false;\r\n // emu.Visible = false;\r\n // EMUDummy.Visible = true;\r\n //}\r\n this.isEmu = true;\r\n break;\r\n case \"VR\":\r\n //if (rsltAll == 0) {\r\n // vac.Enabled = false;\r\n // vac.Visible = false;\r\n // VACDummy.Visible = true;\r\n //}\r\n this.isVac = true;\r\n break;\r\n case \"CVS\":\r\n //if (rsltAll == 0) {\r\n // btnConsoleView.Enabled = false;\r\n // btnConsoleView.Visible = false;\r\n // CVSDummy.Visible = true;\r\n //}\r\n this.isConsoleView = true;\r\n break;\r\n case \"NR\":\r\n //if (rsltAll == 0) {\r\n // tcp.Enabled = false;\r\n // tcp.Visible = false;\r\n // TCPDummy.Visible = true;\r\n //}\r\n this.isNetTest = true;\r\n break;\r\n case \"FR\":\r\n //if (rsltAll == 0) {\r\n // fax.Enabled = false;\r\n // fax.Visible = false;\r\n // FAXDummy.Visible = true;\r\n //}\r\n this.isFax = true;\r\n break;\r\n case \"VQUAD\":\r\n //cc.Enabled = false;\r\n this.isCallEvents = true;\r\n break;\r\n case \"AR\":\r\n //pnlAutoRefresh.Enabled = false; ///TBD\r\n break;\r\n case \"CS\":\r\n //STATS_COMPLETEDCALL.Enabled = false;\r\n //STATS_COMPLETEDCALL.Visible = false;\r\n //CSDummy.Visible = true;\r\n break;\r\n case \"NS\":\r\n //STATS_NETWORKSTATUS.Enabled = false;\r\n //STATS_NETWORKSTATUS.Visible = false;\r\n //NSDummy.Visible = true;\r\n this.isNetworkStatus = true;\r\n this.statusScreens = true;\r\n break;\r\n case \"SCH\":\r\n //STATS_SCHEDULERSTATUS.Enabled = false;\r\n //STATS_SCHEDULERSTATUS.Visible = false;\r\n //SCHDummy.Visible = true;\r\n this.isSchedulerStatus = true;\r\n this.statusScreens = true;\r\n break;\r\n case \"SC\":\r\n //sc.Attributes.Clear();\r\n //sc.Attributes.Add(\"style\", \"cursor:text;\");\r\n //sc.Enabled = false;\r\n //filterEnable = 1;\r\n this.isFilters = true;\r\n break;\r\n case \"OR\":\r\n //liOutput.Disabled = true;\r\n //liOutput.Attributes.Add(\"onClick\", \"InvisibleSub('Output');\");\r\n //aOutput.Disabled = true;\r\n //aOutput.Attributes.Add(\"onMouseOver\", \"InvisibleSub('Output');\");\r\n //outputEnable = 1;\r\n this.isOutputResults = true;\r\n break;\r\n case \"GD_CALL\":\r\n //if (gdAll == 0) {\r\n // gd_Call.Enabled = false;\r\n // gd_Call.Visible = false;\r\n // CallDummy.Visible = true;\r\n //}\r\n this.isCallProcessGraphics = true;\r\n break;\r\n case \"GD_ANALYSIS\":\r\n //if (gdAll == 0) {\r\n // gd_Analysis.Enabled = false;\r\n // gd_Analysis.Visible = false;\r\n // AnalysisDummy.Visible = true;\r\n //}\r\n this.isAnalysisGraphics = true;\r\n break;\r\n case \"GD_NETTEST\":\r\n //if (gdAll == 0) {\r\n // gd_NetTest.Enabled = false;\r\n // gd_NetTest.Visible = false;\r\n // NetTestDummy.Visible = true;\r\n //}\r\n this.isNetTestGraphics = true;\r\n break;\r\n case \"RC\"://remote operation\r\n //if (rmtAll == 0) {\r\n // VQuad.Enabled = false;\r\n // VQuad.Visible = false;\r\n // RODummy.Visible = true;\r\n //}\r\n this.isRemoteOperations = true;\r\n break;\r\n case \"VAR\"://vquad auto remote\r\n //if (rmtAll == 0) {\r\n // AutoRemote.Enabled = false;\r\n // AutoRemote.Visible = false;\r\n // VARDummy.Visible = true;\r\n //}\r\n\r\n break;\r\n default:\r\n return;\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n ///to check software licence\r\n LicenceCheck() {\r\n\r\n this.logservice.UserName = \"\";//IMP IMP\r\n //this.url = this.baseUrl + 'ITS/ITSRTSCheck';\r\n //this.GetLicData_Service().subscribe((res: any) => {\r\n\r\n //});\r\n this.url = this.baseUrl + 'Login/LicenseCheck';\r\n\r\n this.GetLicData_Service().subscribe((res: any) => {\r\n //debugger;\r\n let rows: any = res;//JSON.parse(res) as any;\r\n //console.log(rows + 'appLic')\r\n if (rows == \"failed\") {\r\n this.logservice.UserName = \"LicenseCheck\";\r\n this._router.navigateByUrl('login/LicenseCheck');\r\n }\r\n else {\r\n /// get LoginType\r\n this.url = this.baseUrl + 'Login/GetLoginType';\r\n\r\n this.GetData_Service().toPromise().then((res: any) => {\r\n //debugger;\r\n let rows: any = res;//JSON.parse(res) as any;\r\n //console.log('appTyped');\r\n if (rows != \"\" && rows != \"Login failed\") {\r\n this.logservice.LogType = rows;\r\n this.logservice.CompanyLogo = './assets/images/' + this.logservice.LogType + '/' + this.logservice.LogType + '_logo.png';\r\n this.logservice.CompanyRebrand = './assets/images/Rebrand/Rebrand.png';\r\n }\r\n\r\n });\r\n //console.log('loginTypedDone');\r\n }\r\n });\r\n //console.log('licensedDone');\r\n }\r\n\r\n GetLicData_Service() {\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, options);\r\n\r\n }\r\n\r\n GetData_Service() {\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, options);\r\n\r\n }\r\n\r\n checkInternetConnection = async () => {\r\n try {\r\n const response = await fetch('https://chart.googleapis.com/chart?chst=d_map_xpin_letter&chld=pin|E|000000|FFFFFF');\r\n this.showHelp = false;\r\n if (response.ok) {\r\n console.log(\"Internet connection is available.\");\r\n } else {\r\n console.log(\"Internet connection is not available.\");\r\n this.showHelp = true;\r\n }\r\n } catch (error) {\r\n console.log(\"Internet connection is not available.\");\r\n this.showHelp = true;\r\n }\r\n };\r\n\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n//import { ChartsModule } from 'ng2-charts/ng2-charts';\r\nimport { ChartsModule } from 'ng2-charts';\r\nimport { ChartModule } from 'angular2-chartjs';\r\nimport 'hammerjs';\r\nimport 'chartjs-plugin-zoom';\r\n\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { MaterialModule } from './material/material.module';\r\nimport { WelcomeComponent } from './welcome/welcome.component';\r\nimport { DashboardComponent } from './dashboard/dashboard.component';\r\nimport { BasicComponent } from './shared/basic/basic.component';\r\nimport { HeaderDemoComponent } from './shared/header-demo/header-demo.component';\r\n\r\n//import { PageNotFoundComponent } from './not-found.component';\r\nimport { CrudTableModule } from '../../lib/ng-crud-table';\r\nimport { DataTableModule } from '../../lib/ng-data-table';\r\nimport { TreeTableModule } from '../../lib/ng-tree-table';\r\nimport { DtToolbarModule } from '../../lib/dt-toolbar';\r\nimport { ModalModule } from '../../lib/modal';\r\nimport { ModalEditFormModule } from '../../lib/modal-edit-form';\r\nimport { TreeViewModule } from '../../lib/tree-view';\r\nimport { ContextMenuModule } from '../../lib/context-menu';\r\nimport { NotifyModule } from '../../lib/notify';\r\nimport { DateFormatPipe } from './shared/pipes/date-format.pipe';\r\nimport { DropdownSelectModule } from '../../lib/dropdown-select';\r\nimport { SelectListModule } from '../../lib/select-list';\r\nimport { InlineEditModule } from '../../lib/inline-edit';\r\nimport { NgxDtComponent } from './shared/ngx-dt/ngx-dt.component';\r\nimport { MatTableComponent } from './shared/mat-table/mat-table.component';\r\nimport { TabsModule } from '../../lib/tabs';\r\nimport { VertTabColorModule } from '../../lib/vert-tab-color';\r\nimport { FiltersTabsModule } from '../../lib/filters-tabs';\r\nimport { DropdownModule } from '../../lib/dropdown';\r\n\r\n//import { WebviewerconfigModule } from './configuration/webviewerconfig';\r\n\r\n//import { CallEventsService } from './shared/mat-table/services/call-events.service';\r\nimport { DataColsPipe, colSpecialCharsPipe } from './shared/pipes/data-cols.pipe';\r\nimport { CommonFilterService } from './shared/services/common-filter/common-filter.service';\r\n\r\nimport { AnalysisComponent } from './graphics/analysis/analysis.component';\r\nimport { CallProcessComponent } from './graphics/call-process/call-process.component';\r\nimport { NettestComponent } from './graphics/nettest/nettest.component';\r\n\r\nimport { PesqComponent } from './results/pesq/pesq.component';\r\nimport { PolqaComponent } from './results/polqa/polqa.component';\r\nimport { CallEventsComponent } from './results/call-events/call-events.component';\r\nimport { VbaComponent } from './results/vba/vba.component';\r\nimport { VacComponent } from './results/vac/vac.component';\r\nimport { EmuComponent } from './results/emu/emu.component';\r\nimport { FaxComponent } from './results/fax/fax.component';\r\nimport { AudioDelayComponent } from './results/audio-delay/audio-delay.component';\r\nimport { NettestrsltsComponent } from './results/nettestrslts/nettestrslts.component';\r\nimport { MobinforsltsComponent } from './results/mobinforslts/mobinforslts.component';\r\n//https://stackoverflow.com/questions/40219666/global-pipe-in-angular-2\r\n\r\nimport { FiltersComponent } from './filters/filters.component';\r\n\r\nimport { NetworkStatusComponent } from './statistics/network-status/network-status.component';\r\nimport { VQUADComponent } from './statistics/network-status/vquad/vquad.component';\r\nimport { MobileComponent } from './statistics/network-status/mobile/mobile.component';\r\nimport { VQTComponent } from './statistics/network-status/vqt/vqt.component';\r\nimport { FileMonitorComponent } from './statistics/network-status/file-monitor/file-monitor.component';\r\nimport { CommandCenterComponent } from './statistics/network-status/command-center/command-center.component';\r\n//import { TreedatatableComponent } from './shared/treedatatable/treedatatable.component';\r\nimport { VquadbtfxoComponent } from './statistics/network-status/vquadbtfxo/vquadbtfxo.component';\r\nimport { VquadscrparamsComponent } from './statistics/network-status/vquadscrparams/vquadscrparams.component';\r\nimport { ConfirmDialogComponent } from './shared/components/confirm-dialog/confirm-dialog.component';\r\n\r\nimport { ColorPickerModule } from 'ngx-color-picker';\r\n\r\nimport { PdfmakeModule } from 'pdfmake';\r\nimport { CommonFilterComponent } from './shared/components/common-filter/common-filter.component';\r\nimport { TitleComponent } from './shared/components/title/title.component';\r\nimport { DaterangepickerComponent } from './shared/components/daterangepicker/daterangepicker.component';\r\nimport { DaterangepickerDirective } from './shared/components/daterangepicker/daterangepicker.directive';\r\nimport { SynopsisComponent } from './shared/components/synopsis/synopsis.component';\r\nimport { DownloadFileComponent } from './shared/components/download-file/download-file.component';\r\nimport { UploadFileComponent } from './shared/components/upload-file/upload-file.component';\r\nimport { SubResultsSelectionComponent } from './shared/components/sub-results-selection/sub-results-selection.component';\r\nimport { NetworkStatusPipe, DualUTAPipe, DateAndTimeRangePipe } from './shared/pipes/network-status.pipe';\r\nimport { CustomReportComponent } from './output-results/custom-report/custom-report.component';\r\n\r\nimport { UrlReloadButtonComponent } from './shared/components/url-reload-button/url-reload-button.component';\r\nimport { ApiRecallButtonComponent } from './shared/components/api-recall-button/api-recall-button.component';\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\n\r\nimport { TwoDigitDecimaNumberDirective } from './shared/directives/two-digit-decima-number.directive';\r\nimport { NumericDirective } from './shared/directives/numeric.directive';\r\n\r\nimport { LoadFilterComponent } from './shared/components/load-filter/load-filter.component';\r\nimport { UserInfoComponent } from './shared/components/user-info/user-info.component';\r\nimport { ScreenTopHeaderComponent } from './shared/components/screen-top-header/screen-top-header.component';\r\nimport { ScreenSecondHeaderComponent } from './shared/components/screen-second-header/screen-second-header.component';\r\nimport { ThreeSpinComponent } from './shared/components/spinners/three-spin/three-spin.component';\r\nimport { MagnifySpinComponent } from './shared/components/spinners/magnify-spin/magnify-spin.component';\r\nimport { BoldSpinComponent } from './shared/components/spinners/bold-spin/bold-spin.component';\r\nimport { LoadingSpinComponent } from './shared/components/spinners/loading-spin/loading-spin.component';\r\nimport { GoogleMapComponent } from './output-results/google-map/google-map.component';\r\nimport { AgmCoreModule } from '@agm/core';\r\nimport { GooglemaplegendpopupComponent } from './output-results/googlemaplegendpopup/googlemaplegendpopup.component';\r\nimport { AgmDirectionModule } from 'agm-direction';\r\n//import { AgmMarkerSpiderModule } from 'agm-oms';\r\nimport { GooglemapstatuspopupComponent } from './output-results/googlemapstatuspopup/googlemapstatuspopup.component'; \r\nimport { CustomGmapsMainComponent } from './output-results/custom-gmaps-main/custom-gmaps-main.component';\r\nimport { SchedulerStatusComponent } from './statistics/scheduler-status/scheduler-status.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { LicenceCheckComponent } from './login/licence-check/licence-check.component';\r\nimport { LoginConfigComponent } from './login/login-config/login-config.component';\r\nimport { LogoutComponent } from './login/logout/logout.component';\r\n//npm install @google/markerclustererplus @agm/js-marker-clusterer --save\r\n//npm install -S js-marker-clusterer\r\nimport { AgmJsMarkerClustererModule } from '@agm/js-marker-clusterer';\r\n\r\n//import { } from 'googlemaps';\r\n//import { GoogleMapsModule } from '@angular/google-maps'\r\n\r\nimport { AudioAndDelayStatisticsPieChartComponent } from './statistics/audio-and-delay-statistics-pie-chart/audio-and-delay-statistics-pie-chart.component';\r\nimport { VoiceQualityStatisticsPieChartComponent } from './statistics/voice-quality-statistics-pie-chart/voice-quality-statistics-pie-chart.component';\r\n\r\nimport { httpInterceptorProviders } from './http-interceptors';\r\n\r\nimport { CustomreportlinechartComponent } from './output-results/customreportlinechart/customreportlinechart.component';\r\n\r\nimport { MatTableExporterModule } from 'mat-table-exporter';\r\n\r\nimport { DatePipe } from '@angular/common';\r\nimport { LeafletGMapComponent } from './output-results/leaflet-gmap/leaflet-gmap.component';\r\n//import { LeafletModule } from '@asymmetrik/ngx-leaflet';\r\nimport { TestJSGoogleMapComponent } from './output-results/test-jsgoogle-map/test-jsgoogle-map.component';\r\nimport { VMobileComponent } from './statistics/network-status/v-mobile/v-mobile.component';\r\nimport { VMobilescrparamsComponent } from './statistics/network-status/v-mobilescrparams/v-mobilescrparams.component';\r\nimport { ITSViewerComponent } from './output-results/itsviewer/itsviewer.component';\r\nimport { ForgotPasswordComponent } from './login/forgot-password/forgot-password.component';\r\nimport { HighlightPipe } from './shared/pipes/highlight.pipe';\r\nimport { ExploreOptionsComponent } from './shared/components/explore-options/explore-options.component';\r\nimport { ImagePopupModalsComponent } from './shared/components/explore-options/image-popup-modals/image-popup-modals.component';\r\nimport { AdvancedMarkersComponent } from './output-results/advanced-markers/advanced-markers.component';\r\nimport { AudioPlayerPopupComponent } from './output-results/audio-player-popup/audio-player-popup.component';\r\n\r\nimport { NgWaveformModule } from 'ng-waveform';\r\n\r\n\r\nimport { PdfViewerNg2Module } from 'src/app/popups/custom/pdf-viewer-ng2';\r\n//import { PdfViewerNg2Component } from 'src/app/popups/custom/pdf-viewer-ng2/pdf-viewer-ng2.component';\r\n\r\nimport { LeafletModule } from '@asymmetrik/ngx-leaflet';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n WelcomeComponent,\r\n DashboardComponent,\r\n\r\n BasicComponent,\r\n HeaderDemoComponent,\r\n\r\n NgxDtComponent,\r\n MatTableComponent,\r\n\r\n DateFormatPipe,\r\n DataColsPipe,\r\n colSpecialCharsPipe,\r\n\r\n AnalysisComponent,\r\n CallProcessComponent,\r\n NettestComponent,\r\n CommonFilterComponent,\r\n TitleComponent,\r\n \r\n DaterangepickerComponent,\r\n DaterangepickerDirective,\r\n PesqComponent,\r\n PolqaComponent,\r\n CallEventsComponent,\r\n VbaComponent,\r\n VacComponent,\r\n EmuComponent,\r\n FaxComponent,\r\n AudioDelayComponent,\r\n NettestrsltsComponent,\r\n MobinforsltsComponent,\r\n\r\n NetworkStatusComponent,\r\n VQUADComponent,\r\n MobileComponent,\r\n VQTComponent,\r\n FileMonitorComponent,\r\n CommandCenterComponent,\r\n //TreedatatableComponent,\r\n VquadbtfxoComponent,\r\n VquadscrparamsComponent,\r\n ConfirmDialogComponent,\r\n\r\n\r\n SynopsisComponent,\r\n DownloadFileComponent,\r\n UploadFileComponent,\r\n SubResultsSelectionComponent,\r\n FiltersComponent,\r\n NetworkStatusPipe,\r\n DualUTAPipe,\r\n DateAndTimeRangePipe,\r\n CustomReportComponent,\r\n UrlReloadButtonComponent,\r\n ApiRecallButtonComponent,\r\n\r\n TwoDigitDecimaNumberDirective,\r\n NumericDirective,\r\n LoadFilterComponent,\r\n UserInfoComponent,\r\n ScreenTopHeaderComponent,\r\n ScreenSecondHeaderComponent,\r\n ThreeSpinComponent,\r\n MagnifySpinComponent,\r\n BoldSpinComponent,\r\n LoadingSpinComponent,\r\n GoogleMapComponent,\r\n GooglemaplegendpopupComponent,\r\n GooglemapstatuspopupComponent,\r\n\r\n CustomGmapsMainComponent,\r\n SchedulerStatusComponent,\r\n LoginComponent,\r\n LicenceCheckComponent,\r\n LoginConfigComponent,\r\n LogoutComponent,\r\n AudioAndDelayStatisticsPieChartComponent,\r\n VoiceQualityStatisticsPieChartComponent,\r\n\r\n CustomreportlinechartComponent,\r\n\r\n LeafletGMapComponent,\r\n\r\n TestJSGoogleMapComponent,\r\n\r\n VMobileComponent,\r\n\r\n VMobilescrparamsComponent,\r\n\r\n ITSViewerComponent,\r\n\r\n ForgotPasswordComponent,\r\n\r\n HighlightPipe,\r\n ExploreOptionsComponent,\r\n ImagePopupModalsComponent,\r\n AdvancedMarkersComponent,\r\n\r\n AudioPlayerPopupComponent,\r\n\r\n //PdfViewerNg2Component,\r\n ],\r\n exports: [\r\n colSpecialCharsPipe,\r\n NetworkStatusPipe,\r\n DualUTAPipe,\r\n DateAndTimeRangePipe,\r\n HighlightPipe,\r\n ],\r\n imports: [\r\n BrowserModule, \r\n AppRoutingModule,\r\n FlexLayoutModule,\r\n FormsModule,//Mat form field\r\n ReactiveFormsModule,//FormControl\r\n\r\n ChartsModule,\r\n ChartModule,\r\n\r\n BrowserAnimationsModule,\r\n MaterialModule,\r\n\r\n CrudTableModule,\r\n DataTableModule,\r\n TreeTableModule,\r\n DtToolbarModule,\r\n ModalModule,\r\n ModalEditFormModule,\r\n TreeViewModule,\r\n ContextMenuModule,\r\n NotifyModule,\r\n DropdownSelectModule,\r\n SelectListModule,\r\n InlineEditModule,\r\n TabsModule,\r\n VertTabColorModule,\r\n FiltersTabsModule,\r\n DropdownModule,\r\n BsDatepickerModule.forRoot(),\r\n //LeafletModule,\r\n //WebviewerconfigModule,\r\n\r\n //ColorPickerModule,\r\n NgWaveformModule,\r\n\r\n AgmCoreModule.forRoot({\r\n apiKey: 'YOUR_API_KEY',\r\n libraries: ['places', 'geometry'],//'drawing'\r\n }),\r\n AgmDirectionModule,\r\n //AgmMarkerSpiderModule,\r\n AgmJsMarkerClustererModule,\r\n\r\n MatTableExporterModule,\r\n\r\n PdfViewerNg2Module,\r\n\r\n LeafletModule,\r\n ],\r\n //https://stackoverflow.com/questions/69076213/how-to-do-empty-cache-and-hard-reload-from-js-in-angular\r\n providers: [CommonFilterService, httpInterceptorProviders, DatePipe],\r\n bootstrap: [AppComponent],\r\n entryComponents: [\r\n DaterangepickerComponent,\r\n VquadbtfxoComponent,\r\n VquadscrparamsComponent,\r\n VMobilescrparamsComponent,\r\n ConfirmDialogComponent,\r\n GooglemaplegendpopupComponent,\r\n GooglemapstatuspopupComponent,\r\n BasicComponent,\r\n AudioPlayerPopupComponent,\r\n ]\r\n})\r\nexport class AppModule { }\r\n","module.exports = \".container {\\n -ms-flex-align: center;\\n align-items: center;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n -ms-flex-pack: center;\\n justify-content: center;\\n height: 500px;\\n width: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZGFzaGJvYXJkL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9zcmNcXGFwcFxcZGFzaGJvYXJkXFxkYXNoYm9hcmQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2Rhc2hib2FyZC9kYXNoYm9hcmQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxzQkFBQTtNQUFBLG1CQUFBO0VBQ0Esb0JBQUE7RUFBQSxhQUFBO0VBQ0EsMEJBQUE7TUFBQSxzQkFBQTtFQUNBLHFCQUFBO01BQUEsdUJBQUE7RUFDQSxhQUFBO0VBQ0EsV0FBQTtBQ0NGIiwiZmlsZSI6InNyYy9hcHAvZGFzaGJvYXJkL2Rhc2hib2FyZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jb250YWluZXIge1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGhlaWdodDogNTAwcHg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuIiwiLmNvbnRhaW5lciB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IDUwMHB4O1xuICB3aWR0aDogMTAwJTtcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.scss']\n})\nexport class DashboardComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \":host {\\n position: absolute;\\n /*background-color: #e0d7d5;*/\\n top: 1%;\\n left: 1%;\\n right: 1%;\\n z-index: 1002;\\n border: 3px solid black;\\n height: 95%;\\n width: 98%;\\n overflow-y: scroll;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZmlsdGVycy9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvc3JjXFxhcHBcXGZpbHRlcnNcXGZpbHRlcnMuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2ZpbHRlcnMvZmlsdGVycy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGtCQUFBO0VBQ0EsNkJBQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxhQUFBO0VBQ0EsdUJBQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0FDQ0YiLCJmaWxlIjoic3JjL2FwcC9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIC8qYmFja2dyb3VuZC1jb2xvcjogI2UwZDdkNTsqL1xyXG4gIHRvcDogMSU7XHJcbiAgbGVmdDogMSU7XHJcbiAgcmlnaHQ6IDElO1xyXG4gIHotaW5kZXg6IDEwMDI7XHJcbiAgYm9yZGVyOiAzcHggc29saWQgYmxhY2s7XHJcbiAgaGVpZ2h0OiA5NSU7XHJcbiAgd2lkdGg6IDk4JTtcclxuICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbn1cclxuIiwiOmhvc3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8qYmFja2dyb3VuZC1jb2xvcjogI2UwZDdkNTsqL1xuICB0b3A6IDElO1xuICBsZWZ0OiAxJTtcbiAgcmlnaHQ6IDElO1xuICB6LWluZGV4OiAxMDAyO1xuICBib3JkZXI6IDNweCBzb2xpZCBibGFjaztcbiAgaGVpZ2h0OiA5NSU7XG4gIHdpZHRoOiA5OCU7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn0iXX0= */\"","import { Component, OnInit, Output, EventEmitter, HostBinding } from '@angular/core';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { SelectItem } from '../../../lib/common';\r\nimport { ROUND_ANTICLOCK_ANIMATION } from '../shared/animations/round-anticlock.animation';\r\nimport { ON_OFF_ANIMATION } from '../shared/animations/on-off.animation';\r\nimport { FLY_IN_OUT_ANIMATION } from '../shared/animations/fly-in-out.animation';\r\nimport { SLIDE_IN } from '../shared/animations/slide-in.animation';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\n\r\n@Component({\r\n selector: 'app-filters',\r\n templateUrl: './filters.component.html',\r\n styleUrls: ['./filters.component.scss'],\r\n animations: [\r\n FLY_IN_OUT_ANIMATION \r\n ]\r\n})\r\nexport class FiltersComponent implements OnInit {\r\n //@HostBinding('@roundAntiClockTrigger') roundAntiClockTrigger = 'in';\r\n @HostBinding('@flyInOutTrigger') flyInOutTrigger = 'in';\r\n rsltType: string = \"filters\";\r\n\r\n title: string = \"Filters\";\r\n staticScreen = true;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n myFilterName = 'null';\r\n basicFilterRefresh = false;\r\n constructor(private router: Router, private routeAct: ActivatedRoute, private commonFilterService: CommonFilterService) {\r\n this.routeAct.params.subscribe((params: Params) => this.myFilterName = params['filter-name']);\r\n this.commonFilterService.componentFilterMethodSavedCalled$.subscribe(res => {\r\n this.basicFilterRefresh = true;\r\n });\r\n }\r\n\r\n disableClose = true;\r\n ngOnInit() {\r\n this.parentEvent();\r\n setTimeout(() => { this.disableClose = false; }, 1200);\r\n }\r\n\r\n close() {\r\n if (this.basicFilterRefresh == true) {\r\n this.commonFilterService.basicFilterRefresh(2);//For refreshing main screen after modify filters closed\r\n }\r\n //this.commonFilterService.basicCRRefresh();//NOT NEEDED AS Refresh already is taking care\r\n this.router.navigate([{ outlets: { filterPopup: null, configPopup: null } }]);\r\n }\r\n\r\n parentEvent() {\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n\r\n tabs: SelectItem[] = [\r\n { id: 1, name: 'By Results Parameters' },\r\n { id: 2, name: 'Add Extra Parameters' },\r\n ];\r\n\r\n onSelectTab(event) {\r\n //console.log(event);\r\n }\r\n}\r\n","module.exports = \".dash-point-graph-holder {\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n -ms-user-select: none;\\n max-width: 620px;\\n max-height: 420px;\\n margin: 10px 5px;\\n background-color: white;\\n}\\n\\n.dash-bar-graph-holder {\\n margin: 10px 5px;\\n background-color: white;\\n}\\n\\n.spinner_overlay {\\n position: fixed;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #fff;\\n opacity: 0.5;\\n z-index: 1000;\\n}\\n\\n.spinner {\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n height: 60px;\\n width: 60px;\\n margin: 0px auto;\\n -webkit-animation: rotation 0.6s infinite linear;\\n animation: rotation 0.6s infinite linear;\\n border-left: 6px solid rgba(0, 174, 239, 0.15);\\n border-right: 6px solid rgba(0, 174, 239, 0.15);\\n border-bottom: 6px solid rgba(0, 174, 239, 0.15);\\n border-top: 6px solid rgba(0, 174, 239, 0.8);\\n border-radius: 100%;\\n}\\n\\n@-webkit-keyframes rotation {\\n from {\\n -webkit-transform: rotate(0deg);\\n }\\n to {\\n -webkit-transform: rotate(359deg);\\n }\\n}\\n\\n@keyframes rotation {\\n from {\\n transform: rotate(0deg);\\n }\\n to {\\n transform: rotate(359deg);\\n }\\n}\\n\\n#chartjs-tooltip {\\n position: absolute;\\n}\\n\\n.dt-toolbar-row-AG {\\n display: -ms-flexbox;\\n display: flex;\\n /*margin-right: -5px;\\n margin-left: -5px;\\n margin-bottom: 1rem;*/\\n}\\n\\n.dt-toolbar-col-AG {\\n padding-right: 5px;\\n padding-left: 5px;\\n position: relative;\\n}\\n\\n.dt-toolbar-col-AG .dt-context-menu {\\n width: 170px;\\n display: none;\\n}\\n\\n.dt-toolbar-col-AG.open .dt-context-menu {\\n display: block;\\n}\\n\\n.dt-toolbar-col-AG .dt-list-menu-item.disabled,\\n.dt-toolbar-col-AG .dt-list-menu-item.disabled:hover {\\n color: silver;\\n background-color: transparent;\\n border: 0;\\n box-shadow: 0 0 0;\\n cursor: default;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZ3JhcGhpY3MvYW5hbHlzaXMvRDpcXFNyY3dlYlxcVlMyMDE3IFByb2plY3RzXFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3L3NyY1xcYXBwXFxncmFwaGljc1xcYW5hbHlzaXNcXGFuYWx5c2lzLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9ncmFwaGljcy9hbmFseXNpcy9hbmFseXNpcy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHNCQUFBO0VBQ0EseUJBQUE7RUFDQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLHVCQUFBO0FDQ0Y7O0FERUE7RUFDRSxnQkFBQTtFQUNBLHVCQUFBO0FDQ0Y7O0FER0E7RUFDRSxlQUFBO0VBQ0EsT0FBQTtFQUNBLE1BQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLHNCQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7QUNBRjs7QURHQTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsZ0RBQUE7RUFHQSx3Q0FBQTtFQUNBLDhDQUFBO0VBQ0EsK0NBQUE7RUFDQSxnREFBQTtFQUNBLDRDQUFBO0VBQ0EsbUJBQUE7QUNBRjs7QURHQTtFQUNFO0lBQ0UsK0JBQUE7RUNBRjtFREdBO0lBQ0UsaUNBQUE7RUNERjtBQUNGOztBRHdCQTtFQUNFO0lBQ0UsdUJBQUE7RUNORjtFRFNBO0lBQ0UseUJBQUE7RUNQRjtBQUNGOztBRFdBO0VBQ0Usa0JBQUE7QUNURjs7QURhQTtFQUNFLG9CQUFBO0VBQUEsYUFBQTtFQUNBOzt5QkFBQTtBQ1JGOztBRGFBO0VBQ0Usa0JBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0FDVkY7O0FEYUE7RUFDRSxZQUFBO0VBQ0EsYUFBQTtBQ1ZGOztBRGFBO0VBQ0UsY0FBQTtBQ1ZGOztBRGFBOztFQUVFLGFBQUE7RUFDQSw2QkFBQTtFQUNBLFNBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7QUNWRiIsImZpbGUiOiJzcmMvYXBwL2dyYXBoaWNzL2FuYWx5c2lzL2FuYWx5c2lzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmRhc2gtcG9pbnQtZ3JhcGgtaG9sZGVyIHtcclxuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gIG1heC13aWR0aDogNjIwcHg7XHJcbiAgbWF4LWhlaWdodDogNDIwcHg7XHJcbiAgbWFyZ2luOiAxMHB4IDVweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLmRhc2gtYmFyLWdyYXBoLWhvbGRlciB7XHJcbiAgbWFyZ2luOiAxMHB4IDVweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuXHJcbi5zcGlubmVyX292ZXJsYXkge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBsZWZ0OiAwO1xyXG4gIHRvcDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBvcGFjaXR5OiAwLjU7XHJcbiAgei1pbmRleDogMTAwMDtcclxufVxyXG5cclxuLnNwaW5uZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiA1MCU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgaGVpZ2h0OiA2MHB4O1xyXG4gIHdpZHRoOiA2MHB4O1xyXG4gIG1hcmdpbjogMHB4IGF1dG87XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0aW9uIC42cyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgLW1vei1hbmltYXRpb246IHJvdGF0aW9uIC42cyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgLW8tYW5pbWF0aW9uOiByb3RhdGlvbiAuNnMgaW5maW5pdGUgbGluZWFyO1xyXG4gIGFuaW1hdGlvbjogcm90YXRpb24gLjZzIGluZmluaXRlIGxpbmVhcjtcclxuICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHJnYmEoMCwxNzQsMjM5LC4xNSk7XHJcbiAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgcmdiYSgwLDE3NCwyMzksLjE1KTtcclxuICBib3JkZXItYm90dG9tOiA2cHggc29saWQgcmdiYSgwLDE3NCwyMzksLjE1KTtcclxuICBib3JkZXItdG9wOiA2cHggc29saWQgcmdiYSgwLDE3NCwyMzksLjgpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGlvbiB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gIH1cclxuXHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xyXG4gIH1cclxufVxyXG5cclxuQC1tb3ota2V5ZnJhbWVzIHJvdGF0aW9uIHtcclxuICBmcm9tIHtcclxuICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgfVxyXG5cclxuICB0byB7XHJcbiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XHJcbiAgfVxyXG59XHJcblxyXG5ALW8ta2V5ZnJhbWVzIHJvdGF0aW9uIHtcclxuICBmcm9tIHtcclxuICAgIC1vLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gIH1cclxuXHJcbiAgdG8ge1xyXG4gICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgcm90YXRpb24ge1xyXG4gIGZyb20ge1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgfVxyXG5cclxuICB0byB7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbiNjaGFydGpzLXRvb2x0aXAge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxufVxyXG5cclxuXHJcbi5kdC10b29sYmFyLXJvdy1BRyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICAvKm1hcmdpbi1yaWdodDogLTVweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsqL1xyXG59XHJcblxyXG4uZHQtdG9vbGJhci1jb2wtQUcge1xyXG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5kdC10b29sYmFyLWNvbC1BRyAuZHQtY29udGV4dC1tZW51IHtcclxuICB3aWR0aDogMTcwcHg7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLmR0LXRvb2xiYXItY29sLUFHLm9wZW4gLmR0LWNvbnRleHQtbWVudSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5kdC10b29sYmFyLWNvbC1BRyAuZHQtbGlzdC1tZW51LWl0ZW0uZGlzYWJsZWQsXHJcbi5kdC10b29sYmFyLWNvbC1BRyAuZHQtbGlzdC1tZW51LWl0ZW0uZGlzYWJsZWQ6aG92ZXIge1xyXG4gIGNvbG9yOiBzaWx2ZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAwO1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxufVxyXG4iLCIuZGFzaC1wb2ludC1ncmFwaC1ob2xkZXIge1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIG1heC13aWR0aDogNjIwcHg7XG4gIG1heC1oZWlnaHQ6IDQyMHB4O1xuICBtYXJnaW46IDEwcHggNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cblxuLmRhc2gtYmFyLWdyYXBoLWhvbGRlciB7XG4gIG1hcmdpbjogMTBweCA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuXG4uc3Bpbm5lcl9vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIG9wYWNpdHk6IDAuNTtcbiAgei1pbmRleDogMTAwMDtcbn1cblxuLnNwaW5uZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIGhlaWdodDogNjBweDtcbiAgd2lkdGg6IDYwcHg7XG4gIG1hcmdpbjogMHB4IGF1dG87XG4gIC13ZWJraXQtYW5pbWF0aW9uOiByb3RhdGlvbiAwLjZzIGluZmluaXRlIGxpbmVhcjtcbiAgLW1vei1hbmltYXRpb246IHJvdGF0aW9uIDAuNnMgaW5maW5pdGUgbGluZWFyO1xuICAtby1hbmltYXRpb246IHJvdGF0aW9uIDAuNnMgaW5maW5pdGUgbGluZWFyO1xuICBhbmltYXRpb246IHJvdGF0aW9uIDAuNnMgaW5maW5pdGUgbGluZWFyO1xuICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHJnYmEoMCwgMTc0LCAyMzksIDAuMTUpO1xuICBib3JkZXItcmlnaHQ6IDZweCBzb2xpZCByZ2JhKDAsIDE3NCwgMjM5LCAwLjE1KTtcbiAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkIHJnYmEoMCwgMTc0LCAyMzksIDAuMTUpO1xuICBib3JkZXItdG9wOiA2cHggc29saWQgcmdiYSgwLCAxNzQsIDIzOSwgMC44KTtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0aW9uIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICB9XG59XG5ALW1vei1rZXlmcmFtZXMgcm90YXRpb24ge1xuICBmcm9tIHtcbiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gIH1cbn1cbkAtby1rZXlmcmFtZXMgcm90YXRpb24ge1xuICBmcm9tIHtcbiAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyByb3RhdGlvbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICB9XG59XG4jY2hhcnRqcy10b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uZHQtdG9vbGJhci1yb3ctQUcge1xuICBkaXNwbGF5OiBmbGV4O1xuICAvKm1hcmdpbi1yaWdodDogLTVweDtcbiAgICBtYXJnaW4tbGVmdDogLTVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyovXG59XG5cbi5kdC10b29sYmFyLWNvbC1BRyB7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmR0LXRvb2xiYXItY29sLUFHIC5kdC1jb250ZXh0LW1lbnUge1xuICB3aWR0aDogMTcwcHg7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kdC10b29sYmFyLWNvbC1BRy5vcGVuIC5kdC1jb250ZXh0LW1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmR0LXRvb2xiYXItY29sLUFHIC5kdC1saXN0LW1lbnUtaXRlbS5kaXNhYmxlZCxcbi5kdC10b29sYmFyLWNvbC1BRyAuZHQtbGlzdC1tZW51LWl0ZW0uZGlzYWJsZWQ6aG92ZXIge1xuICBjb2xvcjogc2lsdmVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBib3gtc2hhZG93OiAwIDAgMDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufSJdfQ== */\"","import { Component, OnInit, ChangeDetectorRef, EventEmitter, Output, OnDestroy} from '@angular/core';\r\nimport { Chart } from 'chart.js';\r\nimport { AnalysisService } from '../../shared/services/graphics/analysis.service';\r\nimport { VqtPoint, AudioDelayPoint, FaxBar } from '../../shared/models/graphics/analysis';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { rsltTypeInTitle, rsltTypeInAPICall } from 'src/app/shared/functions/title';\r\n//import { DataManager, CdtSettings, Column } from 'lib/ng-crud-table';\r\n//import { getColumnsHeaders } from 'src/app/shared/columns';\r\nimport { DemoService } from 'src/app/shared/demo.service';\r\nimport { MatDialogConfig, MatDialog } from '@angular/material';\r\nimport { BasicComponent } from 'src/app/shared/basic/basic.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-analysis',\r\n templateUrl: './analysis.component.html',\r\n styleUrls: ['./analysis.component.scss',\r\n '../../../../lib/dt-toolbar/dt-toolbar.component.css',\r\n '../../../../lib/styles/icons.css',\r\n '../../../../lib/styles/context-menu.css',\r\n '../../../../lib/styles/list-menu.css'],\r\n providers: [AnalysisService]\r\n})\r\nexport class AnalysisComponent implements OnInit, OnDestroy {\r\n clearAllFiltersAction: boolean = true;\r\n actionsMessage: string = 'Actions';\r\n modifyFiltersMessage: string = 'Modify filters';\r\n clearFiltersMessage: string = 'Clear all filters';\r\n isFilters: boolean = true;\r\n hasFilters: boolean;\r\n\r\n rsltType: string = \"analysis\";\r\n\r\n rsltTypeTS = '-1';\r\n TSSelected: number;\r\n\r\n AutoRefreshInfo: any;\r\n\r\n title: string = \"Analysis Graphics\";\r\n staticScreen = false;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n isLoading = true;\r\n\r\n interval;\r\n\r\n private subscriptions: Subscription[] = [];\r\n filterEventIDSelected = false;\r\n delColSelected = false;\r\n columnName = \"VQuad_Timestamp\";\r\n TimestampType = 1;\r\n constructor(private _Activatedroute: ActivatedRoute, private _router: Router, private analysisService: AnalysisService, private service: DemoService, private commonFilterService: CommonFilterService,\r\n private dialog: MatDialog, private cdr: ChangeDetectorRef) {\r\n _Activatedroute.params.subscribe(val => {\r\n this.rsltType = _Activatedroute.snapshot.url[1].path;\r\n\r\n this.parentEvent();\r\n });\r\n this.commonFilterService.setNonFiltersScreen(this.staticScreen);\r\n\r\n this.commonFilterService.TSType.subscribe(res => {//TsType\r\n this.TimestampType = res;\r\n if (this.TimestampType >= 2)//\r\n this.TimestampType = 1;//Change VQT to VQuad Timestamp if screen doesn't belongs to VQT types nd send as TSTYpe in filtering - IMP\r\n this.columnName = \"VQuad_Timestamp\";\r\n if (this.TimestampType == 2) {\r\n this.columnName = \"VQT_Timestamp\";\r\n }\r\n else if (this.TimestampType == 0) {\r\n this.columnName = \"Call_Timestamp\";\r\n }\r\n });\r\n\r\n const _broadSublisten = this.commonFilterService.listen.subscribe(res => {\r\n //console.log('listen')\r\n if (res === 'onlyAnalGrphInit' && !this.filterEventIDSelected)\r\n this.createAllBarGraphs('');\r\n if (this.filterEventIDSelected)\r\n this.filterEventIDSelected = false;\r\n });\r\n this.subscriptions.push(_broadSublisten);\r\n\r\n this.commonFilterService.isFilters$.subscribe(res => {\r\n this.isFilters = res;\r\n });\r\n\r\n //Do Refresh\r\n const _broadSubRefresh = this.commonFilterService.componentMethodCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.createAllBarGraphs('');\r\n }\r\n );\r\n this.subscriptions.push(_broadSubRefresh);\r\n\r\n const _broadSubDeleteFilter = this.commonFilterService.DeleteFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n if (res !== '') {//IMP IMP\r\n this.createAllBarGraphs(res);\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubDeleteFilter);\r\n\r\n const _broadSubAllGeneralFilter = this.commonFilterService.AllGeneralFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log('AllGeneralFilter')\r\n this.AllGeneralFilter = res;\r\n if (!this.delColSelected && !this.clearAllFiltersBool && this.AllGeneralFilter.length > 0)\r\n this.createAllBarGraphs('');\r\n\r\n //reset here\r\n if (this.delColSelected)\r\n this.delColSelected = false;\r\n if (this.clearAllFiltersBool)\r\n this.clearAllFiltersBool = false;\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAllGeneralFilter);\r\n\r\n //const _broadSubGeneralDFFilter = this.commonFilterService.GeneralFilterDF.subscribe(res => {\r\n // //console.log('GeneralDFFilter')\r\n // this.filters = res;\r\n //});\r\n //this.subscriptions.push(_broadSubGeneralDFFilter);\r\n const _broadSubGeneralFilter = this.commonFilterService.GeneralFilter.subscribe(res => {\r\n //console.log('GeneralFilter')\r\n this.filters = res;\r\n });\r\n this.subscriptions.push(_broadSubGeneralFilter);\r\n\r\n const _broadSubEventIDFilter = this.commonFilterService.GeneralEventIDFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log('filtersWithEventID')\r\n //this.filterEventIDSelected = true;\r\n this.filtersWithEventID = res;\r\n //if (!this.delColSelected && !this.clearAllFiltersBool && (typeof this.filtersWithEventID == 'object' && Object.keys(this.filtersWithEventID).length > 0))\r\n // this.createAllBarGraphs('');\r\n }\r\n );\r\n this.subscriptions.push(_broadSubEventIDFilter);\r\n\r\n //Do Auto-refresh - start/stop\r\n const _broadSubAutoRefresh = this.commonFilterService.componentMethodWithArgCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.AutoRefreshInfo = res;\r\n //console.log(this.AutoRefreshInfo);\r\n\r\n if (this.AutoRefreshInfo.AutoRefStop) {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n }\r\n }\r\n else {\r\n this.interval = setInterval(() => {\r\n //console.log(this.AutoRefreshInfo.AutoRefStop);\r\n this.createAllBarGraphs('');\r\n }, this.AutoRefreshInfo.AutoRefSelected);\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAutoRefresh);\r\n\r\n }\r\n parentEvent() {\r\n this.title = rsltTypeInTitle(this.rsltType);\r\n this.childTitleEvent.emit(this.title);\r\n }\r\n ngOnInit() {\r\n //this.hasFilters = this.table.dataFilter.hasFilters();\r\n if (this.lineGraph1 != null)\r\n this.lineGraph1.destroy();\r\n if (this.lineGraph2 != null)\r\n this.lineGraph2.destroy();\r\n if (this.barGraph3 != null)\r\n this.barGraph3.destroy();\r\n //this.createAllBarGraphs();\r\n\r\n this.cdr.detectChanges();\r\n }\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n parentRef(TSSelected) {\r\n this.TSSelected = parseInt(TSSelected);\r\n //this.setRsltType();\r\n }\r\n parentEventID() {\r\n this.createAllBarGraphs('');\r\n }\r\n parentAutoRef(AutoRefreshInfo) {\r\n this.TSSelected = parseInt(AutoRefreshInfo.TSSelected);\r\n this.AutoRefreshInfo = AutoRefreshInfo;\r\n }\r\n\r\n modifyFilter() {\r\n //this._router.navigate([{ outlets: { filterPopup: ['filters'], configPopup: null } }]);\r\n let selectedMainFilterCrieriaName = 'null';\r\n this.commonFilterService.mainFilter_CriteriaName.subscribe(res => selectedMainFilterCrieriaName = res);\r\n this._router.navigate([{ outlets: { filterPopup: ['filters', selectedMainFilterCrieriaName], configPopup: null } }]);\r\n\r\n /////// when calling modify search set mainfilter to initial values\r\n //this.commonFilterService.SetMainFilter(0);// set selected mainfilter id\r\n //this.commonFilterService.setMFCustDT(\"\");\r\n //this.commonFilterService.setMFTZON(0);\r\n ////this.commonFilterService.basicRefresh();\r\n }\r\n\r\n clearAllFiltersBool = false;\r\n clearAllFilters() {\r\n \r\n this.createAllBarGraphs('clearAllFilters');\r\n //this.table.sorter.sortMeta = [];\r\n //this.table.events.onSort();//IMP- to reset sorting sel cols to none\r\n\r\n //if (this.table.dataFilter.hasFilters()) {\r\n // this.table.dataFilter.clear();\r\n // //console.log(this.table.dataFilter.hasFilters())\r\n // this.table.events.onFilter();\r\n // //this.table.events.onFilterClear();\r\n // this.clearFilters.emit();\r\n //}\r\n }\r\n\r\n //https://stackoverflow.com/questions/56715475/add-ng2-charts-to-angular-7-application\r\n\r\n //https://www.js-tutorials.com/angularjs-tutorial/angular-6-chart-tutorial-using-chart-js/\r\n //https://dev.to/wiaio/implementing-a-chartjs-line-chart-in-your-angular-application-19d7\r\n //https://www.c-sharpcorner.com/article/create-charts-in-angular-7-application-using-chart-js2/\r\n lineGraph1 = null;\r\n lineGraph2 = null;\r\n barGraph3 = null;\r\n AllGeneralFilter = [];\r\n genArrDel = [];\r\n filtersWithEventID = {};\r\n filters = {};\r\n vqtPoint: VqtPoint[]= [];\r\n audioDelayPoint: AudioDelayPoint[] = [];\r\n //@ViewChild('modalCrudToggler', { static: false }) modalCrudToggler: CrudTableComponent;\r\n createAllBarGraphs(delFilterColName) {\r\n debugger;\r\n if (delFilterColName == 'VQuad_CallID') {\r\n this.filtersWithEventID = {};\r\n for (const key in this.filters) {\r\n if (key == 'VQuad_CallID')\r\n delete this.filters[key];\r\n }\r\n }\r\n else if (delFilterColName == 'clearAllFilters') {\r\n this.filtersWithEventID = {};\r\n for (const key in this.filters) {\r\n if (key !== this.columnName)\r\n delete this.filters[key];\r\n }\r\n }\r\n this.isLoading = true;\r\n\r\n this.vqtPoint = [];\r\n let vqtHead = \"VQT RESULTS\";\r\n this.audioDelayPoint = [];\r\n let audioDelayHead = \"AUDIO DELAY ANALYSIS\";\r\n\r\n let faxBar: FaxBar[];\r\n let faxHead = \"FAX EVENTS\";\r\n this.analysisService.getAnalysisList(delFilterColName, this.AllGeneralFilter, this.filtersWithEventID, this.filters, this.TimestampType, this.columnName).then(responseList => {\r\n //https://stackoverflow.com/a/30468773\r\n //https://stackoverflow.com/questions/40056555/destroy-chart-js-bar-graph-to-redraw-other-graph-in-same-canvas\r\n //https://stackoverflow.com/questions/24785713/chart-js-load-totally-new-data\r\n if (this.lineGraph1 != null)\r\n this.lineGraph1.destroy();\r\n if (this.lineGraph2 != null)\r\n this.lineGraph2.destroy();\r\n if (this.barGraph3 != null)\r\n this.barGraph3.destroy();\r\n // this.cdr.detectChanges();\r\n\r\n let dateUnit = responseList[0][1];\r\n for (var y = 1; y < 3; y++) {\r\n if (y == 1) {\r\n this.vqtPoint = responseList[y];\r\n //console.log(this.vqtPoint)\r\n if (this.vqtPoint[0].VQuadNewTS != undefined) {\r\n if (this.vqtPoint[0].VQuadNewTS.trim().length != 0) {\r\n //https://stackoverflow.com/a/73949568\r\n //let tsNew = this.vqtPoint.map(s => ({ x: new Date(s.VQuadNewTSOrig), y: s.POLQA_Score }));\r\n //console.log(this.vqtPoint[0].VQuadNewTS.trim())\r\n\r\n //let dateFormatChk = this.vqtPoint[0].VQuadNewTS.trim().split(' ');\r\n //let dateFormat = \"MM/DD/YYYY HH:mm:ss\";//default\r\n \r\n //if (dateFormatChk.length == 1) {//month or year or days\r\n\r\n // if (dateFormatChk[0].split('/').length == 3) {\r\n // dateFormat = \"MM/DD/YYYY\";\r\n // dateUnit = 'day';\r\n // }\r\n // else if (dateFormatChk[0].split('/').length == 2) {\r\n // dateFormat = \"MM/YYYY\";\r\n // dateUnit = 'month';\r\n // }\r\n // else {\r\n // dateFormat = \"YYYY\";\r\n // dateUnit = 'year';\r\n // }\r\n //}\r\n //else if (dateFormatChk.length == 2) {\r\n // if (dateFormatChk[1].split(':').length == 2) {\r\n // dateFormat = \"MM/DD/YYYY HH:mm\";\r\n // dateUnit = 'minute';\r\n // }\r\n // else {\r\n // dateFormat = \"MM/DD/YYYY HH\";\r\n // dateUnit = 'hour';\r\n // }\r\n //}\r\n //console.log(dateUnit)\r\n let pesqData = this.vqtPoint.map(x => x.PESQ_Score).filter(x => x != 0);\r\n let pesqLqData = this.vqtPoint.map(x => x.PESQ_LQ).filter(x => x != 0);\r\n let pesqLqoData = this.vqtPoint.map(x => x.PESQ_MOS).filter(x => x != 0);\r\n let pesqWbData = this.vqtPoint.map(x => x.PESQ_WB).filter(x => x != 0);\r\n let polqaScoreData = this.vqtPoint.map(x => x.POLQA_Score).filter(x => x != 0);\r\n let polqaV3Data = this.vqtPoint.map(x => x.POLQA_v3).filter(x => x != 0);\r\n //http://tobiasahlin.com/blog/chartjs-charts-to-get-you-started/\r\n //https://www.chartjs.org/docs/latest/charts/scatter.html#scatter-chart\r\n\r\n ////https://stackoverflow.com/questions/54536014/is-it-possible-to-merge-duplicate-labels-and-their-datas-into-one-column-in-ch\r\n ////https://stackoverflow.com/questions/68282921/how-to-group-duplicate-labels-in-order-to-create-a-label-without-duplicates-in-c\r\n //const dataReduced = this.vqtPoint.reduce(\r\n // (a, b) => {\r\n // const i = a.months.findIndex(x => x === b.VQuadNewTS);\r\n\r\n // if (i === -1) {\r\n // a.months.push(b.VQuadNewTS);\r\n // }\r\n // else {\r\n // a.months.push(\"\");\r\n // }\r\n // a.products.push(b.POLQA_Score);\r\n\r\n // return a;\r\n // },\r\n // { months: [], products: [] }\r\n //);\r\n\r\n //console.log(dataReduced.months);\r\n //console.log(dataReduced.products);\r\n\r\n //https://stackoverflow.com/questions/41280857/chart-js-failed-to-create-chart-cant-acquire-context-from-the-given-item\r\n //https://stackoverflow.com/questions/58218597/property-getcontext-does-not-exist-on-type-htmlelement\r\n this.lineGraph1 = new Chart((document.getElementById(\"line-chart\" + y)).getContext(\"2d\"), {\r\n type: 'line',\r\n data: {\r\n labels: this.vqtPoint.map(x => new Date(x.VQuadNewTSOrig)),//dataReduced.months,\r\n datasets: [{\r\n data: pesqData,\r\n label: \"PESQ\",\r\n borderColor: \"#3e95cd\",\r\n fill: false,\r\n showLine: false//https://www.chartjs.org/docs/latest/charts/line.html\r\n }, {\r\n data: pesqLqData,\r\n label: \"PESQ LQ\",\r\n borderColor: \"#8e5ea2\",\r\n fill: false,\r\n showLine: false\r\n }, {\r\n data: pesqLqoData,\r\n label: \"PESQ LQO\",\r\n borderColor: \"#3cba9f\",\r\n fill: false,\r\n showLine: false\r\n }, {\r\n data: pesqWbData,\r\n label: \"PESQ WB\",\r\n borderColor: \"#e8c3b9\",\r\n fill: false,\r\n showLine: false\r\n }, {\r\n data: polqaScoreData,//dataReduced.products,\r\n label: \"POLQA MOS\",\r\n borderColor: \"#c45850\",\r\n fill: false,\r\n showLine: false\r\n }, {\r\n data: polqaV3Data,\r\n label: \"POLQA v3\",\r\n borderColor: \"rgba(255,221,50,1)\",\r\n fill: false,\r\n showLine: false\r\n }\r\n ]\r\n },\r\n options: {\r\n ////https://stackoverflow.com/questions/44826806/angular-chart-js-onclick-is-not-working-how-to-get-all-elements-of-a-bar-when\r\n //onClick: function (e) {\r\n // var element = this.getElementAtEvent(e);\r\n // if (element.length) {\r\n // console.log(element);\r\n // this.setRsltType('polqa', this.vqtPoint[element[0]._index].ID);\r\n\r\n // this.OpenBasicDialog(this.vqtPoint[element[0]._index].ID);\r\n // }\r\n //},\r\n responsive: true,\r\n ////https://stackoverflow.com/a/42356473\r\n //events: [\"click\"],\r\n ////https://codepen.io/k3no/pen/OReEKx?editors=0010\r\n ////https://www.chartjs.org/docs/latest/samples/tooltip/html.html\r\n ////https://jsfiddle.net/Lx6ahtb9/\r\n //tooltips: {\r\n // enabled: false,\r\n\r\n // tooltipTitleFontSize: 0,\r\n // titleFontSize: 0,\r\n // titleFontColor: 'black',\r\n // title: false,\r\n\r\n // backgroundColor: 'rgba(255,255,255,0)',\r\n // displayColors: false,\r\n // //callbacks: {\r\n // // label: function (tooltipItems, data) {\r\n // // return tooltipItems.yLabel + '%';\r\n // // }\r\n // //},\r\n // borderWidth: 2,\r\n // borderColor: 'black',\r\n\r\n // bodyFontSize: 20,\r\n // bodyFontFamily: 'Helvetica Neue',\r\n // bodyFontColor: 'black',\r\n\r\n // titleMarginBottom: 0,\r\n // custom: function (tooltipModel) {\r\n\r\n // // Tooltip Element\r\n // var tooltipEl = document.getElementById('chartjs-tooltip');\r\n\r\n // // Create element on first render\r\n // if (!tooltipEl) {\r\n // tooltipEl = document.createElement('div');\r\n // tooltipEl.id = 'chartjs-tooltip';\r\n // tooltipEl.innerHTML = \"
    \";\r\n // document.body.appendChild(tooltipEl);\r\n // }\r\n\r\n // // Hide if no tooltip\r\n // if (tooltipModel.opacity === 0) {\r\n // tooltipEl.style.opacity = '1';\r\n // return;\r\n // }\r\n\r\n // tooltipModel.opacity = 1;\r\n\r\n // // Set caret Position\r\n // tooltipEl.classList.remove('above', 'below', 'no-transform');\r\n // if (tooltipModel.yAlign) {\r\n // tooltipEl.classList.add(tooltipModel.yAlign);\r\n // } else {\r\n // tooltipEl.classList.add('no-transform');\r\n // }\r\n\r\n // function getBody(bodyItem) {\r\n // return bodyItem.lines;\r\n // }\r\n\r\n // // Set Text\r\n // if (tooltipModel.body) {\r\n // var titleLines = tooltipModel.title || [];\r\n // var bodyLines = tooltipModel.body.map(getBody);\r\n\r\n // var innerHtml = '
    ';\r\n\r\n // titleLines.forEach(function (title) {\r\n // //innerHtml += '' + title + '';\r\n // });\r\n // innerHtml += '
    ';\r\n // bodyLines.forEach(function (body, i) {\r\n // var colors = tooltipModel.labelColors[i];\r\n // var style = 'background:' + colors.backgroundColor;\r\n // style += '; border-color:' + colors.borderColor;\r\n // style += '; border-width: 2px';\r\n // var span = '';\r\n // innerHtml += '
    ' + span + body + '
    ';\r\n // });\r\n // innerHtml += '
    ';\r\n\r\n // var tableRoot = tooltipEl;\r\n // tableRoot.innerHTML = innerHtml;\r\n // }\r\n\r\n // // `this` will be the overall tooltip\r\n // var position = this._chart.canvas.getBoundingClientRect();\r\n\r\n // // Display, position, and set styles for font\r\n // tooltipEl.style.opacity = '1';\r\n // tooltipEl.style.left = position.left + tooltipModel.caretX + 'px';\r\n\r\n // tooltipEl.style.top = position.top + tooltipModel.caretY + 'px';\r\n // tooltipEl.style.fontFamily = tooltipModel._fontFamily;\r\n // tooltipEl.style.fontSize = tooltipModel.fontSize;\r\n // tooltipEl.style.fontStyle = tooltipModel._fontStyle;\r\n // tooltipEl.style.padding = tooltipModel.yPadding + 'px ' + tooltipModel.xPadding + 'px';\r\n\r\n\r\n // }\r\n // //bodyFontSize: 20\r\n //},\r\n tooltips: {\r\n enabled: true,\r\n //callbacks: {\r\n // //https://stackoverflow.com/questions/42294179/remove-the-label-and-show-only-value-in-tooltips-of-a-bar-chart\r\n // title: function (tooltipItems, data) {\r\n // return '';\r\n // },\r\n // label: function (tooltipItems, data) {\r\n // //console.log(tooltipItems)\r\n // //console.log(data)\r\n // return 'Click to view details';\r\n // }\r\n //},\r\n\r\n //custom: function (tooltipModel) {\r\n // console.log(tooltipModel)\r\n // var bodyLines = tooltipModel.body.map(getBody);\r\n //},\r\n },\r\n title: {\r\n display: true,\r\n text: vqtHead\r\n },\r\n scales: {\r\n //https://stackoverflow.com/questions/65450854/adjusting-x-axis-labels-for-dates-chartjs\r\n xAxes: [{\r\n ////https://stackoverflow.com/questions/68702009/how-to-set-the-xaxes-min-and-max-values-of-time-cartesian-chart-in-chart-js\r\n //min: new Date(responseList[0][2]),\r\n //max: new Date(responseList[0][3]),\r\n type: 'time',\r\n //display: true,\r\n //scaleLabel: {\r\n // display: true,\r\n // labelString: 'Date'\r\n //},\r\n time: {\r\n //https://stackoverflow.com/questions/39535155/chart-js-timescale-set-min-and-max-on-xaxes\r\n min: new Date(responseList[0][2]),\r\n max: new Date(responseList[0][3]),\r\n //parser: 'YYYY-MM-DD HH:mm:ss',\r\n unit: dateUnit,//https://www.chartjs.org/docs/latest/axes/cartesian/time.html#time-units\r\n //autoSkip: true,\r\n tooltipFormat: \"MM/DD/YYYY HH:mm:ss\",//https://stackoverflow.com/questions/61474243/change-date-format-in-tooltip-of-chart-js\r\n displayFormats: {\r\n second: \"MM/DD/YYYY HH:mm:ss\",\r\n minute: \"MM/DD/YYYY HH:mm\", \r\n hour: \"MM/DD/YYYY HH:00\",\r\n day: \"MM/DD/YYYY\",\r\n month: \"MM/YYYY\",\r\n year: \"YYYY\"\r\n }\r\n },\r\n ticks: {\r\n ////major: {\r\n //// fontStyle: 'bold',\r\n //// fontColor: '#FF0000'\r\n ////}\r\n\r\n //https://stackoverflow.com/questions/35022830/chart-js-change-label-orientation-on-x-axis-for-line-charts\r\n //autoSkip: false,\r\n maxRotation: 45,\r\n minRotation: 45,\r\n ////https://stackoverflow.com/questions/22064577/limit-labels-number-on-chart-js-line-chart\r\n //maxTicksLimit: 15\r\n }\r\n }],\r\n\r\n yAxes: [{\r\n ticks: {\r\n beginAtZero: true,\r\n //https://stackoverflow.com/questions/68992642/setting-up-min-and-max-in-chartjs-did-not-work\r\n //min: 0,\r\n //stepSize: 20\r\n }\r\n }]\r\n },\r\n //https://codepen.io/anon/pen/PGabEK\r\n //https://github.com/valor-software/ng2-charts/issues/837\r\n //https://github.com/chartjs/chartjs-plugin-zoom/blob/1cf272f43cef1545f63c927c15e54fcc41673177/samples/pan-bar.html\r\n // Container for pan options \r\n pan: {\r\n // Boolean to enable panning\r\n enabled: false,\r\n\r\n // Panning directions. Remove the appropriate direction to disable \r\n // Eg. 'y' would only allow panning in the y direction\r\n mode: 'xy'\r\n },\r\n\r\n // Container for zoom options\r\n zoom: {\r\n // Boolean to enable zooming\r\n enabled: false,\r\n\r\n // Zooming directions. Remove the appropriate direction to disable \r\n // Eg. 'y' would only allow zooming in the y direction\r\n mode: 'xy',\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n this.audioDelayPoint = responseList[y];\r\n if (this.audioDelayPoint[0].VQuadNewTS != undefined) {\r\n if (this.audioDelayPoint[0].VQuadNewTS.trim().length != 0) {\r\n let rtdData = this.audioDelayPoint.map(x => x.RTD);\r\n let owdData = this.audioDelayPoint.map(x => x.OWD);\r\n let pddData = this.audioDelayPoint.map(x => x.PDD);\r\n let snrData = this.audioDelayPoint.map(x => x.SNR);\r\n this.lineGraph2 = new Chart((document.getElementById(\"line-chart\" + y)).getContext(\"2d\"), {\r\n type: 'line',\r\n data: {\r\n labels: this.audioDelayPoint.map(x => new Date(x.VQuadNewTSOrig)),\r\n datasets: [{\r\n data: rtdData,\r\n label: \"RTD\",\r\n borderColor: \"#3e95cd\",\r\n fill: false,\r\n showLine: false\r\n }, {\r\n data: owdData,\r\n label: \"OWD\",\r\n borderColor: \"#8e5ea2\",\r\n fill: false,\r\n showLine: false\r\n }, {\r\n data: pddData,\r\n label: \"PDD\",\r\n borderColor: \"#3cba9f\",\r\n fill: false,\r\n showLine: false\r\n }, {\r\n data: snrData,\r\n label: \"SNR\",\r\n borderColor: \"#e8c3b9\",\r\n fill: false,\r\n showLine: false\r\n }\r\n ]\r\n },\r\n options: {\r\n responsive: true,\r\n tooltips: {\r\n enabled: true,\r\n //callbacks: {\r\n // title: function (tooltipItems, data) {\r\n // return '';\r\n // },\r\n // label: function (tooltipItems, data) {\r\n // return 'Click to view details';\r\n // }\r\n //},\r\n },\r\n title: {\r\n display: true,\r\n text: audioDelayHead\r\n },\r\n scales: {\r\n xAxes: [{\r\n type: 'time',\r\n //display: true,\r\n //scaleLabel: {\r\n // display: true,\r\n // labelString: 'Date'\r\n //},\r\n time: {\r\n min: new Date(responseList[0][2]),\r\n max: new Date(responseList[0][3]),\r\n //parser: 'YYYY-MM-DD HH:mm:ss',\r\n unit: dateUnit,//https://www.chartjs.org/docs/latest/axes/cartesian/time.html#time-units\r\n //autoSkip: true,\r\n tooltipFormat: \"MM/DD/YYYY HH:mm:ss\",//https://stackoverflow.com/questions/61474243/change-date-format-in-tooltip-of-chart-js\r\n displayFormats: {\r\n second: \"MM/DD/YYYY HH:mm:ss\",\r\n minute: \"MM/DD/YYYY HH:mm\",\r\n hour: \"MM/DD/YYYY HH:00\",\r\n day: \"MM/DD/YYYY\",\r\n month: \"MM/YYYY\",\r\n year: \"YYYY\"\r\n }\r\n },\r\n ticks: {\r\n ////major: {\r\n //// fontStyle: 'bold',\r\n //// fontColor: '#FF0000'\r\n ////}\r\n //autoSkip: false,\r\n maxRotation: 45,\r\n minRotation: 45\r\n }\r\n }],\r\n yAxes: [{\r\n ticks: {\r\n beginAtZero: true\r\n }\r\n }]\r\n },\r\n // Container for pan options\r\n pan: {\r\n // Boolean to enable panning\r\n enabled: false,\r\n\r\n // Panning directions. Remove the appropriate direction to disable \r\n // Eg. 'y' would only allow panning in the y direction\r\n mode: 'xy'\r\n },\r\n\r\n // Container for zoom options\r\n zoom: {\r\n // Boolean to enable zooming\r\n enabled: false,\r\n\r\n // Zooming directions. Remove the appropriate direction to disable \r\n // Eg. 'y' would only allow zooming in the y direction\r\n mode: 'xy',\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n \r\n for (var x = 3; x < 4; x++) {\r\n faxBar = responseList[x];\r\n if (faxBar[0].VQuadNewTS != undefined) {\r\n if (faxBar[0].VQuadNewTS.trim().length != 0) {\r\n //this.barGraph3 = new Chart('dash-bar-graph' + x, {\r\n this.barGraph3 = new Chart('dash-bar-graph31', {\r\n type: 'bar',\r\n data: {\r\n labels: faxBar.map(x => x.VQuadNewTS),\r\n datasets: [\r\n {\r\n backgroundColor: 'darkgreen', //'rgba(92, 107, 192, .7)',\r\n borderColor: 'darkgreen', //'rgba(92, 107, 192, .7)',\r\n data: faxBar.map(x => x.SENDFAXPASSED),\r\n label: 'SEND SUCCESS',\r\n fill: 'false'\r\n },\r\n {\r\n backgroundColor: 'red', //'rgba(66, 165, 245, .7)',\r\n borderColor: 'red', //'rgba(69, 39, 160, .7)',\r\n data: faxBar.map(x => x.SENDFAXFAILED),\r\n label: 'SEND FAILURE',\r\n fill: 'false'\r\n },\r\n {\r\n backgroundColor:'blue', //'rgba(38, 166, 154, .7)',\r\n borderColor: 'blue', //'rgba(69, 39, 160, .7)',\r\n data: faxBar.map(x => x.RECEFAXPASSED),\r\n label: 'RECEIVE SUCCESS',\r\n fill: 'false'\r\n },\r\n {\r\n backgroundColor:'black',// 'rgba(102, 187, 106, .7)',\r\n borderColor: 'black',//'rgba(255, 99, 132)',\r\n data: faxBar.map(x => x.RECEFAXFAILED),\r\n label: 'RECEIVE FAILURE',\r\n fill: 'false'\r\n }\r\n ]\r\n },\r\n options: {\r\n responsive: true,\r\n legend: {\r\n display: true\r\n },\r\n elements: {\r\n line: {\r\n tension: 0.000001\r\n }\r\n },\r\n maintainAspectRatio: false,\r\n plugins: {\r\n filler: {\r\n propagate: false\r\n }\r\n },\r\n title: {\r\n display: true,\r\n text: faxHead\r\n },\r\n scales: {\r\n yAxes: [{\r\n ticks: {\r\n beginAtZero: true,\r\n }\r\n }]\r\n }\r\n }\r\n });\r\n //this.barGraph3.render();\r\n //this.cdr.detectChanges();\r\n }\r\n }\r\n }\r\n\r\n this.hasFilters = responseList[4] <= 0 ? false : true;\r\n }).catch(error => {\r\n this.isLoading = false;\r\n }\r\n ).finally(() => {\r\n this.isLoading = false;\r\n });\r\n //https://lucymarmitchell.medium.com/using-then-catch-finally-to-handle-errors-in-javascript-promises-6de92bce3afc\r\n\r\n if (delFilterColName != '' && delFilterColName != 'clearAllFilters') {\r\n this.delColSelected = true;\r\n\r\n this.commonFilterService.setDeleteFilterData('');//reset if delete\r\n\r\n if (delFilterColName == 'VQuad_CallID') {\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n }\r\n\r\n this.genArrDel = this.AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"] != delFilterColName;\r\n });\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n else if (delFilterColName == 'clearAllFilters') {\r\n debugger;\r\n this.clearAllFiltersBool = true;\r\n\r\n this.commonFilterService.setClearAllFiltersData();//reset if delete\r\n this.commonFilterService.setGeneralFilterData(this.filters);\r\n this.commonFilterService.setGeneralFilterDFData(this.filters);//mainly used in main screen\r\n\r\n this.filtersWithEventID = {};\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n\r\n this.genArrDel = [];\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n //this.cdr.detectChanges();\r\n }\r\n\r\n //columns: Column[];\r\n //dataManager: DataManager;\r\n //settings: CdtSettings = new CdtSettings({\r\n // crud: false,//create button toggle used to create dynamic row from columns set - IMP\r\n // //bodyHeight: 380,\r\n // exportAction: false,\r\n // globalFilter: false,\r\n // clickRows: true,\r\n // columnToggleAction: false,\r\n // clearAllFiltersAction: false,\r\n // unshiftExpandIcon: false,//Toggle frst dynamic column haing icon to show details view, update, etc as menu items - IMP\r\n //});\r\n\r\n //setRsltType(rsltType, requestID) {\r\n\r\n // //https://stackoverflow.com/questions/208105/how-do-i-remove-a-property-from-a-javascript-object - Not needed\r\n // //https://love2dev.com/blog/javascript-remove-from-array/ - Not Needed\r\n // //https://www.freecodecamp.org/news/manipulating-arrays-in-javascript/ - Not Needed\r\n // let TSTypesHidden = \"\";\r\n\r\n // switch (rsltType) {\r\n // case \"pesq\":\r\n // this.rsltTypeTS = '-1';\r\n // if (this.TSSelected == 2)//for vqt TS selection in common filter\r\n // TSTypesHidden = \"VQuad_Timestamp\";\r\n // else//for either call or vquad TS selection in common filter\r\n // TSTypesHidden = \"VQT_TimeStamp\";\r\n // break;\r\n // case \"polqa\":\r\n // this.rsltTypeTS = '-1';\r\n // if (this.TSSelected == 2)//for vqt TS selection in common filter\r\n // TSTypesHidden = \"VQuad_Timestamp\";\r\n // else//for either call or vquad TS selection in common filter\r\n // TSTypesHidden = \"VQT_Timestamp\";\r\n // break;\r\n // default:\r\n // this.rsltTypeTS = '2';\r\n // break;\r\n // }\r\n // let selectedSubResults = null;\r\n // this.columns = getColumnsHeaders(rsltType, selectedSubResults);\r\n\r\n\r\n // //For Call Timestamp grouping, remove column from main table and show it in each header with count - IMP\r\n // //For other TS Selection can also be used to hide the other TS column\r\n // if (TSTypesHidden !== \"\")\r\n // this.columns.find(x => x.name === TSTypesHidden).tableHidden = true;\r\n\r\n // if (this.TSSelected == 0)//for call TS selection in common filter\r\n // {\r\n // this.columns.find(x => x.name === 'Call_Timestamp').tableHidden = true;\r\n // //For Call Timestamp grouping Enabling dynamically - VERY IMP\r\n // //https://github.com/mazdik/ng-mazdik/blob/master/src/app/demo/row-group-demo.component.ts\r\n // this.settings.groupRowsBy = ['Call_Timestamp'];\r\n // this.settings.groupRowsByTitles = ['Call Timestamp'];\r\n // this.settings.rowHeightProp = '$$height';\r\n // }\r\n // else {//reset to vquad/vqt timestamp filter\r\n // this.columns.find(x => x.name === 'Call_Timestamp').tableHidden = false;\r\n // //For Call Timestamp grouping Enabling dynamically - VERY IMP\r\n // //https://github.com/mazdik/ng-mazdik/blob/master/src/app/demo/row-group-demo.component.ts\r\n // this.settings.groupRowsBy = [];\r\n // this.settings.groupRowsByTitles = [];\r\n // this.settings.rowHeightProp = '';\r\n\r\n // }\r\n // //console.log(this.columns)\r\n\r\n // //this.columns.forEach((x, i) => (i > 0) ? x.editable = true : x.editable = false);//IMP-edit each cell\r\n\r\n // //this.columns[4].filterValues = this.filterValuesFunc;\r\n // this.dataManager = new DataManager(this.columns, this.settings, this.service, null, rsltTypeInAPICall(rsltType), rsltType,\r\n // '', 0, requestID);\r\n // this.dataManager.pager.perPage = 20;\r\n // //console.log(this.dataManager)\r\n //}\r\n\r\n\r\n\r\n //successMsgBasic: boolean = false;\r\n OpenBasicDialog(requestID, rsltType) {\r\n\r\n const dailogConfig = new MatDialogConfig();\r\n //dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n //dailogConfig.width = \"40%\";\r\n dailogConfig.data = { popupOrNot: true, requestID: requestID, rsltType: rsltType, TSSelected: this.TSSelected };\r\n\r\n this.dialog.open(BasicComponent, dailogConfig);\r\n\r\n //dialogRef.afterClosed().subscribe(\r\n // data => { this.successMsgBasic = data; }\r\n //);\r\n }\r\n\r\n //https://stackoverflow.com/questions/50607215/angular-5-chart-js-onclick-returning-empty-array\r\n showVQTData(evt: any) {\r\n if (this.lineGraph1 == null)\r\n return false;\r\n var data = this.lineGraph1.getElementsAtEvent(evt);\r\n //console.log(data)\r\n if (data.length == 0)\r\n return false;\r\n\r\n //https://jsfiddle.net/w6oxwwte/\r\n var dsindex = this.lineGraph1.getDatasetAtEvent(evt)[0]._datasetIndex;\r\n let rsltType = 'pesq';\r\n //console.log(this.vqtPoint[data[0]._index].ID)\r\n //console.log(this.lineGraph1.data.datasets[dsindex].data)\r\n //https://github.com/chartjs/Chart.js/issues/2953#issuecomment-510167034\r\n if (this.lineGraph1.data.datasets[dsindex].label.indexOf('POLQA') != -1)\r\n rsltType = 'polqa';\r\n //this.OpenBasicDialog(this.vqtPoint[data[0]._index + 1].ID, rsltType);\r\n this.OpenBasicDialog(this.vqtPoint[data[0]._index].ID, rsltType);\r\n }\r\n\r\n showADMData(evt: any) {\r\n if (this.lineGraph2 == null)\r\n return false;\r\n var data = this.lineGraph2.getElementsAtEvent(evt);\r\n if (data.length == 0)\r\n return false;\r\n //console.log(this.audioDelayPoint[data[0]._index])\r\n //var dsindex = this.lineGraph2.getDatasetAtEvent(evt)[0]._datasetIndex;\r\n //console.log(this.lineGraph2.data.datasets[dsindex])\r\n let rsltType = 'audio-delay';\r\n this.OpenBasicDialog(this.audioDelayPoint[data[0]._index].ID, rsltType);\r\n }\r\n}\r\n","module.exports = \".dash-bar-graph-holder {\\n margin: 10px 5px;\\n background-color: white;\\n}\\n\\n.nav-item {\\n transition: all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);\\n cursor: default;\\n}\\n\\n.nav-item:hover {\\n -ms-transform: translate(0, -8px);\\n transform: translate(0, -8px);\\n box-shadow: 0 20px 20px rgba(0, 0, 0, 0.16);\\n}\\n\\n.dt-toolbar-row-CG {\\n display: -ms-flexbox;\\n display: flex;\\n /*margin-right: -5px;\\n margin-left: -5px;\\n margin-bottom: 1rem;*/\\n}\\n\\n.dt-toolbar-col-CG {\\n padding-right: 5px;\\n padding-left: 5px;\\n position: relative;\\n}\\n\\n.dt-toolbar-col-CG .dt-context-menu {\\n width: 170px;\\n display: none;\\n}\\n\\n.dt-toolbar-col-CG.open .dt-context-menu {\\n display: block;\\n}\\n\\n.dt-toolbar-col-CG .dt-list-menu-item.disabled,\\n.dt-toolbar-col-CG .dt-list-menu-item.disabled:hover {\\n color: silver;\\n background-color: transparent;\\n border: 0;\\n box-shadow: 0 0 0;\\n cursor: default;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZ3JhcGhpY3MvY2FsbC1wcm9jZXNzL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9zcmNcXGFwcFxcZ3JhcGhpY3NcXGNhbGwtcHJvY2Vzc1xcY2FsbC1wcm9jZXNzLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9ncmFwaGljcy9jYWxsLXByb2Nlc3MvY2FsbC1wcm9jZXNzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsZ0JBQUE7RUFDQSx1QkFBQTtBQ0NGOztBREVBO0VBQ0UsdURBQUE7RUFDQSxlQUFBO0FDQ0Y7O0FEQ0U7RUFDRSxpQ0FBQTtNQUFBLDZCQUFBO0VBQ0EsMkNBQUE7QUNDSjs7QURJQTtFQUNFLG9CQUFBO0VBQUEsYUFBQTtFQUNBOzt5QkFBQTtBQ0NGOztBRElBO0VBQ0Usa0JBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0FDREY7O0FESUE7RUFDRSxZQUFBO0VBQ0EsYUFBQTtBQ0RGOztBRElBO0VBQ0UsY0FBQTtBQ0RGOztBRElBOztFQUVFLGFBQUE7RUFDQSw2QkFBQTtFQUNBLFNBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7QUNERiIsImZpbGUiOiJzcmMvYXBwL2dyYXBoaWNzL2NhbGwtcHJvY2Vzcy9jYWxsLXByb2Nlc3MuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZGFzaC1iYXItZ3JhcGgtaG9sZGVyIHtcbiAgbWFyZ2luOiAxMHB4IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbi5uYXYtaXRlbSB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjZzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7XG4gIGN1cnNvcjogZGVmYXVsdDtcblxuICAmOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtOHB4KTtcbiAgICBib3gtc2hhZG93OiAwIDIwcHggMjBweCByZ2JhKDAsIDAsIDAsIC4xNilcbiAgfVxufVxuXG5cbi5kdC10b29sYmFyLXJvdy1DRyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qbWFyZ2luLXJpZ2h0OiAtNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07Ki9cbn1cblxuLmR0LXRvb2xiYXItY29sLUNHIHtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZHQtdG9vbGJhci1jb2wtQ0cgLmR0LWNvbnRleHQtbWVudSB7XG4gIHdpZHRoOiAxNzBweDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmR0LXRvb2xiYXItY29sLUNHLm9wZW4gLmR0LWNvbnRleHQtbWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZHQtdG9vbGJhci1jb2wtQ0cgLmR0LWxpc3QtbWVudS1pdGVtLmRpc2FibGVkLFxuLmR0LXRvb2xiYXItY29sLUNHIC5kdC1saXN0LW1lbnUtaXRlbS5kaXNhYmxlZDpob3ZlciB7XG4gIGNvbG9yOiBzaWx2ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGJveC1zaGFkb3c6IDAgMCAwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4iLCIuZGFzaC1iYXItZ3JhcGgtaG9sZGVyIHtcbiAgbWFyZ2luOiAxMHB4IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbi5uYXYtaXRlbSB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjZzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5uYXYtaXRlbTpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC04cHgpO1xuICBib3gtc2hhZG93OiAwIDIwcHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMTYpO1xufVxuXG4uZHQtdG9vbGJhci1yb3ctQ0cge1xuICBkaXNwbGF5OiBmbGV4O1xuICAvKm1hcmdpbi1yaWdodDogLTVweDtcbiAgICBtYXJnaW4tbGVmdDogLTVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyovXG59XG5cbi5kdC10b29sYmFyLWNvbC1DRyB7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmR0LXRvb2xiYXItY29sLUNHIC5kdC1jb250ZXh0LW1lbnUge1xuICB3aWR0aDogMTcwcHg7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kdC10b29sYmFyLWNvbC1DRy5vcGVuIC5kdC1jb250ZXh0LW1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmR0LXRvb2xiYXItY29sLUNHIC5kdC1saXN0LW1lbnUtaXRlbS5kaXNhYmxlZCxcbi5kdC10b29sYmFyLWNvbC1DRyAuZHQtbGlzdC1tZW51LWl0ZW0uZGlzYWJsZWQ6aG92ZXIge1xuICBjb2xvcjogc2lsdmVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBib3gtc2hhZG93OiAwIDAgMDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufSJdfQ== */\"","import { Component, OnInit, ChangeDetectorRef, Output, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { Chart } from 'chart.js';\r\nimport { CallProcessService } from '../../shared/services/graphics/call-process.service';\r\nimport { CallProcess, CallProcessDur, CallProcessError } from '../../shared/models/graphics/call-process';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { rsltTypeInTitle } from 'src/app/shared/functions/title';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-call-process',\r\n templateUrl: './call-process.component.html',\r\n styleUrls: ['./call-process.component.scss', '../analysis/analysis.component.scss',\r\n '../../../../lib/dt-toolbar/dt-toolbar.component.css',\r\n '../../../../lib/styles/icons.css',\r\n '../../../../lib/styles/context-menu.css',\r\n '../../../../lib/styles/list-menu.css'],\r\n providers: [CallProcessService]\r\n})\r\nexport class CallProcessComponent implements OnInit, OnDestroy {\r\n clearAllFiltersAction: boolean = true;\r\n actionsMessage: string = 'Actions';\r\n modifyFiltersMessage: string = 'Modify filters';\r\n clearFiltersMessage: string = 'Clear all filters';\r\n isFilters: boolean = true;\r\n hasFilters: boolean;\r\n\r\n rsltType: string = \"nettest\";\r\n\r\n rsltTypeTS = '-1';\r\n TSSelected: number;\r\n\r\n AutoRefreshInfo: any;\r\n\r\n title: string = \"NetTest Graphics\";\r\n staticScreen = false;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n isLoading = true;\r\n\r\n //https://medium.com/codingthesmartway-com-blog/angular-chart-js-with-ng2-charts-e21c8262777f\r\n public barChartOptions = {\r\n scaleShowVerticalLines: false,\r\n responsive: true\r\n };\r\n public barChartType = 'bar';\r\n public barChartLegend = true;\r\n\r\n public barChartLabels = [\"01-22-2019\", \"01-21-2019\", \"01-23-2019\", \"01-24-2019\"];//X-Axis\r\n public barChartData = [//Y-axis\r\n { data: [10, 58, 17, 7], label: 'SUCCESS' },\r\n { data: [0, 2, 0, 2], label: 'FAILED' }//,\r\n //{ data: [12, 34, 20, 9, 49, 15, 45], label: 'Series C' }\r\n ];\r\n\r\n public barChartLabels1: string[];\r\n //https://stackoverflow.com/questions/39407618/angular-2-declaring-an-array-of-objects\r\n public barChartData1: Array<{ data: number[], label: string }> = [\r\n { data: [0], label: 'SUCCESS' },\r\n { data: [0], label: 'FAILURE' }\r\n ];\r\n public barChartLabels2: string[];\r\n public barChartData2: Array<{ data: number[], label: string }> = [\r\n { data: [0], label: 'SUCCESS' },\r\n { data: [0], label: 'FAILURE' }\r\n ];\r\n public barChartLabels3: string[];\r\n public barChartData3: Array<{ data: number[], label: string }> = [\r\n { data: [0], label: '0-30Sec' },\r\n { data: [0], label: '30Sec-2Min' },\r\n { data: [0], label: '2-10Min' },\r\n { data: [0], label: '10-30Min' },\r\n { data: [0], label: 'More than 30Min' }\r\n ];\r\n public barChartLabels4: string[];\r\n public barChartData4: Array<{ data: number[], label: string }> = [\r\n { data: [0], label: '0-30Sec' },\r\n { data: [0], label: '30Sec-2Min' },\r\n { data: [0], label: '2-10Min' },\r\n { data: [0], label: '10-30Min' },\r\n { data: [0], label: 'More than 30Min' }\r\n ];\r\n public barChartLabels5: string[];\r\n public barChartData5: Array<{ data: number[], label: string }> = [\r\n { data: [0], label: 'ERRORS' }\r\n ];\r\n\r\n interval;\r\n private subscriptions: Subscription[] = [];\r\n filterEventIDSelected = false;\r\n delColSelected = false;\r\n columnName = \"VQuad_Timestamp\";\r\n TimestampType = 1;\r\n constructor(private _Activatedroute: ActivatedRoute, private _router: Router, private callProcessService: CallProcessService, private commonFilterService: CommonFilterService, private cdr: ChangeDetectorRef) {\r\n _Activatedroute.params.subscribe(val => {\r\n this.rsltType = _Activatedroute.snapshot.url[1].path;\r\n\r\n this.setRsltType();\r\n }); \r\n this.commonFilterService.setNonFiltersScreen(this.staticScreen);\r\n\r\n this.commonFilterService.TSType.subscribe(res => {//TsType\r\n this.TimestampType = res;\r\n if (this.TimestampType >= 2)//\r\n this.TimestampType = 1;//Change VQT to VQuad Timestamp if screen doesn't belongs to VQT types nd send as TSTYpe in filtering - IMP\r\n this.columnName = \"VQuad_Timestamp\";\r\n if (this.TimestampType == 2) {\r\n this.columnName = \"VQT_Timestamp\";\r\n }\r\n else if (this.TimestampType == 0) {\r\n this.columnName = \"Call_Timestamp\";\r\n }\r\n });\r\n\r\n const _broadSublisten = this.commonFilterService.listen.subscribe(res => {\r\n //console.log('listen')\r\n if (res === 'onlyCallGrphInit' && !this.filterEventIDSelected)\r\n this.createAllBarGraphs('');\r\n\r\n if (this.filterEventIDSelected)\r\n this.filterEventIDSelected = false;\r\n });\r\n this.subscriptions.push(_broadSublisten);\r\n\r\n this.commonFilterService.isFilters$.subscribe(res => {\r\n this.isFilters = res;\r\n });\r\n //Do Refresh\r\n const _broadSubRefresh = this.commonFilterService.componentMethodCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log('refresh')\r\n this.createAllBarGraphs('');\r\n }\r\n );\r\n this.subscriptions.push(_broadSubRefresh);\r\n\r\n const _broadSubDeleteFilter = this.commonFilterService.DeleteFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log(res)\r\n //console.log('del')\r\n if (res !== '') { //IMP IMP\r\n this.createAllBarGraphs(res);\r\n }\r\n });\r\n this.subscriptions.push(_broadSubDeleteFilter);\r\n\r\n const _broadSubAllGeneralFilter = this.commonFilterService.AllGeneralFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log(res)\r\n //console.log('AllGeneralFilter')\r\n this.AllGeneralFilter = res;\r\n if (!this.delColSelected && !this.clearAllFiltersBool && this.AllGeneralFilter.length > 0)\r\n this.createAllBarGraphs('');\r\n\r\n //reset here\r\n if (this.delColSelected)\r\n this.delColSelected = false;\r\n if (this.clearAllFiltersBool)\r\n this.clearAllFiltersBool = false;\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAllGeneralFilter);\r\n\r\n //const _broadSubGeneralDFFilter = this.commonFilterService.GeneralFilterDF.subscribe(res => {\r\n // //console.log('GeneralDFFilter')\r\n // this.filters = res;\r\n //});\r\n //this.subscriptions.push(_broadSubGeneralDFFilter);\r\n const _broadSubGeneralFilter = this.commonFilterService.GeneralFilter.subscribe(res => {\r\n //console.log('GeneralFilter')\r\n //console.log(res)\r\n this.filters = res;\r\n });\r\n this.subscriptions.push(_broadSubGeneralFilter);\r\n\r\n const _broadSubEventIDFilter = this.commonFilterService.GeneralEventIDFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log(res)\r\n //console.log('filtersWithEventID')\r\n //this.filterEventIDSelected = true;\r\n this.filtersWithEventID = res;\r\n //if (!this.delColSelected && !this.clearAllFiltersBool && (typeof this.filtersWithEventID == 'object' && Object.keys(this.filtersWithEventID).length > 0))\r\n // this.createAllBarGraphs('');\r\n });\r\n this.subscriptions.push(_broadSubEventIDFilter);\r\n\r\n //Do Auto-refresh - start/stop\r\n const _broadSubAutoRefresh = this.commonFilterService.componentMethodWithArgCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.AutoRefreshInfo = res;\r\n //console.log(this.AutoRefreshInfo);\r\n\r\n if (this.AutoRefreshInfo.AutoRefStop) {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n }\r\n }\r\n else {\r\n this.interval = setInterval(() => {\r\n //console.log(this.AutoRefreshInfo.AutoRefStop);\r\n this.createAllBarGraphs('');\r\n }, this.AutoRefreshInfo.AutoRefSelected);\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAutoRefresh);\r\n }\r\n\r\n setRsltType() {\r\n this.title = rsltTypeInTitle(this.rsltType);\r\n this.childTitleEvent.emit(this.title);\r\n }\r\n\r\n resetBarGraphs(barType) {\r\n switch (barType) {\r\n case 1:\r\n this.barChartData1 = [\r\n { data: [0], label: \"SUCCESS\" },\r\n { data: [0], label: \"FAILURE\" }\r\n ];\r\n break;\r\n case 2:\r\n this.barChartData2 = [\r\n { data: [0], label: \"SUCCESS\" },\r\n { data: [0], label: \"FAILURE\" }\r\n ];\r\n break;\r\n case 3:\r\n this.barChartData3 = [\r\n { data: [0], label: \"0-30Sec\" },\r\n { data: [0], label: \"30Sec-2Min\" },\r\n { data: [0], label: \"2-10Min\" },\r\n { data: [0], label: \"10-30Min\" },\r\n { data: [0], label: \"More than 30Min\" }\r\n ];\r\n break;\r\n case 4:\r\n this.barChartData4 = [\r\n { data: [0], label: \"0-30Sec\" },\r\n { data: [0], label: \"30Sec-2Min\" },\r\n { data: [0], label: \"2-10Min\" },\r\n { data: [0], label: \"10-30Min\" },\r\n { data: [0], label: \"More than 30Min\" }\r\n ];\r\n break;\r\n case 5:\r\n this.barChartData5 = [\r\n { data: [0], label: \"ERRORS\" }\r\n ];\r\n break;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n //this.hasFilters = this.table.dataFilter.hasFilters();\r\n if (this.barGraph1 != null)\r\n this.barGraph1.destroy();\r\n if (this.barGraph2 != null)\r\n this.barGraph2.destroy();\r\n if (this.barGraph3 != null)\r\n this.barGraph3.destroy();\r\n if (this.barGraph4 != null)\r\n this.barGraph4.destroy();\r\n if (this.barGraph5 != null)\r\n this.barGraph5.destroy();\r\n //this.createAllBarGraphs();\r\n //setTimeout(() => {\r\n // this.createAllBarGraphs();\r\n //}, 500)\r\n this.cdr.detectChanges();\r\n }\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n parentRef(TSSelected) {\r\n this.TSSelected = parseInt(TSSelected);\r\n //this.setRsltType();\r\n }\r\n parentEventID() {\r\n this.createAllBarGraphs('');\r\n }\r\n parentAutoRef(AutoRefreshInfo) {\r\n this.TSSelected = parseInt(AutoRefreshInfo.TSSelected);\r\n this.AutoRefreshInfo = AutoRefreshInfo;\r\n }\r\n\r\n modifyFilter() {\r\n //this._router.navigate([{ outlets: { filterPopup: ['filters'], configPopup: null } }]);\r\n let selectedMainFilterCrieriaName = 'null';\r\n this.commonFilterService.mainFilter_CriteriaName.subscribe(res => selectedMainFilterCrieriaName = res);\r\n this._router.navigate([{ outlets: { filterPopup: ['filters', selectedMainFilterCrieriaName], configPopup: null } }]);\r\n\r\n /////// when calling modify search set mainfilter to initial values\r\n //this.commonFilterService.SetMainFilter(0);// set selected mainfilter id\r\n //this.commonFilterService.setMFCustDT(\"\");\r\n //this.commonFilterService.setMFTZON(0);\r\n ////this.commonFilterService.basicRefresh();\r\n }\r\n\r\n clearAllFiltersBool = false;\r\n clearAllFilters() {\r\n debugger;\r\n //console.log('clearAllFilters')\r\n this.createAllBarGraphs('clearAllFilters');\r\n //this.table.sorter.sortMeta = [];\r\n //this.table.events.onSort();//IMP- to reset sorting sel cols to none\r\n\r\n //if (this.table.dataFilter.hasFilters()) {\r\n // this.table.dataFilter.clear();\r\n // //console.log(this.table.dataFilter.hasFilters())\r\n // this.table.events.onFilter();\r\n // //this.table.events.onFilterClear();\r\n // this.clearFilters.emit();\r\n //}\r\n }\r\n\r\n createBarGraph() {\r\n new Chart((document.getElementById('dash-bar-graph')).getContext(\"2d\"), {\r\n type: 'bar',\r\n data: {\r\n labels: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\"],\r\n datasets: [\r\n {\r\n backgroundColor: 'rgba(92, 107, 192, .7)',\r\n borderColor: 'rgba(92, 107, 192, .7)',\r\n data: [70, 88, 77, 93, 82, 100, 70, 67, 78, 99],\r\n label: 'Dataset',\r\n fill: 'false'\r\n },\r\n {\r\n backgroundColor: 'rgba(66, 165, 245, .7)',\r\n borderColor: 'rgba(69, 39, 160, .7)',\r\n data: [80, 88, 67, 95, 76, 60, 67, 95, 95, 66],\r\n label: 'Dataset',\r\n fill: 'false'\r\n },\r\n {\r\n backgroundColor: 'rgba(38, 166, 154, .7)',\r\n borderColor: 'rgba(69, 39, 160, .7)',\r\n data: [60, 88, 70, 67, 27, 83, 78, 88, 95, 60],\r\n label: 'Dataset',\r\n fill: 'false'\r\n },\r\n {\r\n backgroundColor: 'rgba(102, 187, 106, .7)',\r\n borderColor: 'rgba(255, 99, 132)',\r\n data: [75, 55, 55, 95, 66, 88, 70, 78, 77, 100],\r\n label: 'Dataset',\r\n fill: 'false'\r\n }\r\n ]\r\n },\r\n options: {\r\n legend: {\r\n display: false\r\n },\r\n elements: {\r\n line: {\r\n tension: 0.000001\r\n }\r\n },\r\n maintainAspectRatio: false,\r\n plugins: {\r\n filler: {\r\n propagate: false\r\n }\r\n },\r\n title: {\r\n display: true,\r\n text: 'SALES GRAPH'\r\n },\r\n scales: {\r\n yAxes: [{\r\n ticks: {\r\n beginAtZero: true,\r\n }\r\n }]\r\n }\r\n }\r\n })\r\n }\r\n\r\n myColors = [\r\n {\r\n backgroundColor: 'rgba(103, 58, 183, .1)',\r\n borderColor: 'rgb(103, 58, 183)',\r\n pointBackgroundColor: 'rgb(103, 58, 183)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(103, 58, 183, .8)'\r\n },\r\n // ...colors for additional data sets\r\n ];\r\n\r\n //chartData = [];\r\n //chartLabels = [];\r\n refreshFunc() {\r\n //console.log(this.TSBetween + \" ngOnInit\");\r\n\r\n //this.barChartData1 = [];\r\n //this.barChartData2 = [];\r\n //this.barChartData3 = [];\r\n //this.barChartData4 = [];\r\n //this.barChartData5 = [];\r\n\r\n this.callProcessService.getCallProcessesList('', this.AllGeneralFilter, this.filtersWithEventID, this.filters, this.TimestampType, this.columnName).then(responseList => {\r\n let callProcess: CallProcess[] = responseList[0];\r\n if (callProcess[0].VQuadNewTS != undefined) {\r\n if (callProcess[0].VQuadNewTS.trim().length != 0) {\r\n this.barChartData1 = [];\r\n this.barChartLabels1 = [];\r\n //https://www.tutorialspoint.com/typescript/typescript_array_map.htm\r\n //https://stackoverflow.com/questions/43454752/map-multiple-properties-in-array-of-objects-to-the-same-array\r\n //https://stackoverflow.com/questions/38698105/what-is-the-equivalent-method-in-angular-2-of-angular-grep-method\r\n //https://stackoverflow.com/questions/35504310/deep-copy-an-array-in-angular-2-typescript\r\n //https://googlechrome.github.io/samples/object-assign-es6/\r\n //callProcess.forEach((dataset, index) => {\r\n // this.barChartLabels1[index] = callProcess[index].VQuadNewTS;\r\n //});\r\n this.barChartLabels1 = callProcess.map(x => x.VQuadNewTS);\r\n //this.barChartLabels1 = [\"01-25-2019\", \"01-26-2019\", \"01-27-2019\", \"01-28-2019\"];//X-Axis\r\n\r\n this.barChartData1.push({ data: callProcess.map(x => x.SUCCESS), label: \"SUCCESS\" });\r\n this.barChartData1.push({ data: callProcess.map(x => x.FAILED), label: \"FAILED\" });\r\n //this.barChartData1 = [//Y-axis\r\n // { data: [50, 58, 17, 7], label: 'SUCCESS' },\r\n // { data: [0, 2, 0, 2], label: 'FAILED' }//,\r\n // //{ data: [12, 34, 20, 9, 49, 15, 45], label: 'Series C' }\r\n //];\r\n\r\n //this.chartData.forEach((dataset, index) => {\r\n // this.chartData[index] = Object.assign({}, this.barChartData1[index]);\r\n //});\r\n\r\n //this.chartLabels = [...this.barChartLabels1];\r\n }\r\n }\r\n else\r\n this.resetBarGraphs(1);\r\n\r\n callProcess = responseList[1];\r\n if (callProcess[0].VQuadNewTS != undefined) {\r\n if (callProcess[0].VQuadNewTS.trim().length != 0) {\r\n this.barChartData2 = [];\r\n this.barChartLabels2 = callProcess.map(x => x.VQuadNewTS);\r\n this.barChartData2.push({ data: callProcess.map(x => x.SUCCESS), label: \"SUCCESS\" });\r\n this.barChartData2.push({ data: callProcess.map(x => x.FAILED), label: \"FAILED\" });\r\n }\r\n }\r\n else\r\n this.resetBarGraphs(2);\r\n\r\n let callProcessDur: CallProcessDur[] = responseList[2];\r\n if (callProcessDur[0].VQuadNewTS != undefined) {\r\n if (callProcessDur[0].VQuadNewTS.trim().length != 0) {\r\n this.barChartData3 = [];\r\n this.barChartLabels3 = callProcessDur.map(x => x.VQuadNewTS);\r\n this.barChartData3.push({ data: callProcessDur.map(x => x.ThirtySec), label: \"0-30Sec\" });\r\n this.barChartData3.push({ data: callProcessDur.map(x => x.TwoMin), label: \"30Sec-2Min\" });\r\n this.barChartData3.push({ data: callProcessDur.map(x => x.TenMin), label: \"2-10Min\" });\r\n this.barChartData3.push({ data: callProcessDur.map(x => x.ThirtyMin), label: \"10-30Min\" });\r\n this.barChartData3.push({ data: callProcessDur.map(x => x.MoreThirtyMin), label: \"More than 30Min\" });\r\n }\r\n }\r\n else\r\n this.resetBarGraphs(3);\r\n\r\n callProcessDur = responseList[3];\r\n if (callProcessDur[0].VQuadNewTS != undefined) {\r\n if (callProcessDur[0].VQuadNewTS.trim().length != 0) {\r\n this.barChartData4 = [];\r\n this.barChartLabels4 = callProcessDur.map(x => x.VQuadNewTS);\r\n this.barChartData4.push({ data: callProcessDur.map(x => x.ThirtySec), label: \"0-30Sec\" });\r\n this.barChartData4.push({ data: callProcessDur.map(x => x.TwoMin), label: \"30Sec-2Min\" });\r\n this.barChartData4.push({ data: callProcessDur.map(x => x.TenMin), label: \"2-10Min\" });\r\n this.barChartData4.push({ data: callProcessDur.map(x => x.ThirtyMin), label: \"10-30Min\" });\r\n this.barChartData4.push({ data: callProcessDur.map(x => x.MoreThirtyMin), label: \"More than 30Min\" });\r\n }\r\n }\r\n else\r\n this.resetBarGraphs(4);\r\n\r\n let callProcessError: CallProcessError[] = responseList[4];\r\n if (callProcessError[0].VQuadNewTS != undefined) {\r\n if (callProcessError[0].VQuadNewTS.trim().length != 0) {\r\n this.barChartData5 = [];\r\n this.barChartLabels5 = callProcessError.map(x => x.VQuadNewTS);\r\n this.barChartData5.push({ data: callProcessError.map(x => x.ERRORSCOUNT), label: \"ERRORS\" });\r\n }\r\n }\r\n else\r\n this.resetBarGraphs(5);\r\n });\r\n }\r\n\r\n barGraph1 = null;\r\n barGraph2 = null;\r\n barGraph3 = null;\r\n barGraph4 = null;\r\n barGraph5 = null;\r\n AllGeneralFilter = [];\r\n genArrDel = [];\r\n filtersWithEventID = {};\r\n filters = {};\r\n createAllBarGraphs(delFilterColName) {\r\n //console.log(this.AllGeneralFilter)\r\n if (delFilterColName == 'VQuad_CallID') {\r\n this.filtersWithEventID = {};\r\n for (const key in this.filters) {\r\n if (key == 'VQuad_CallID')\r\n delete this.filters[key];\r\n }\r\n }\r\n else if (delFilterColName == 'clearAllFilters') {\r\n this.filtersWithEventID = {};\r\n for (const key in this.filters) {\r\n if (key !== this.columnName)\r\n delete this.filters[key];\r\n }\r\n }\r\n this.isLoading = true;\r\n\r\n let callProcess: CallProcess[];\r\n let callProcessHead = \"PLACING CALLS\";\r\n let callProcessDur: CallProcessDur[];\r\n let callProcessDurHead = \"PLACING CALLS\";\r\n let callProcessErr: CallProcessError[];\r\n this.callProcessService.getCallProcessesList(delFilterColName, this.AllGeneralFilter, this.filtersWithEventID, this.filters, this.TimestampType, this.columnName).then(responseList => {\r\n //console.log(responseList)\r\n //https://github.com/chartjs/Chart.js/issues/3930\r\n //https://stackoverflow.com/questions/42788924/chartjs-bar-chart-showing-old-data-when-hovering\r\n if (this.barGraph1 != null)\r\n this.barGraph1.destroy();\r\n if (this.barGraph2 != null)\r\n this.barGraph2.destroy();\r\n if (this.barGraph3 != null)\r\n this.barGraph3.destroy();\r\n if (this.barGraph4 != null)\r\n this.barGraph4.destroy();\r\n if (this.barGraph5 != null)\r\n this.barGraph5.destroy();\r\n\r\n for (var x = 1; x < 3; x++) {\r\n if (x == 2)\r\n callProcessHead = \"INCOMING CALLS\";\r\n callProcess = responseList[x - 1];\r\n if (callProcess[0].VQuadNewTS != undefined) {\r\n if (callProcess[0].VQuadNewTS.trim().length != 0) {\r\n let currBarGraph = new Chart((document.getElementById('dash-bar-graph' + x)).getContext(\"2d\"), {\r\n type: 'bar',\r\n data: {\r\n labels: callProcess.map(x => x.VQuadNewTS),\r\n datasets: [\r\n {\r\n backgroundColor:'darkgreen', //'rgba(92, 107, 192, .7)',\r\n borderColor: 'darkgreen',//'rgba(92, 107, 192, .7)',\r\n data: callProcess.map(x => x.SUCCESS),\r\n label: 'SUCCESS',\r\n fill: 'false'\r\n },\r\n {\r\n backgroundColor: 'red', //'rgba(66, 165, 245, .7)',\r\n borderColor: 'red',//'rgba(69, 39, 160, .7)',\r\n data: callProcess.map(x => x.FAILED),\r\n label: 'FAILURE',\r\n fill: 'false'\r\n }\r\n ]\r\n },\r\n options: {\r\n responsive: true,\r\n legend: {\r\n display: true\r\n },\r\n elements: {\r\n line: {\r\n tension: 0.000001\r\n }\r\n },\r\n maintainAspectRatio: false,\r\n plugins: {\r\n filler: {\r\n propagate: false\r\n }\r\n },\r\n title: {\r\n display: true,\r\n text: callProcessHead\r\n },\r\n scales: {\r\n yAxes: [{\r\n ticks: {\r\n beginAtZero: true,\r\n }\r\n }]\r\n }\r\n }\r\n })\r\n\r\n if (x == 1)\r\n this.barGraph1 = currBarGraph;\r\n else if (x == 2)\r\n this.barGraph2 = currBarGraph; \r\n }\r\n }\r\n }\r\n\r\n for (var x = 3; x < 5; x++) {\r\n if (x == 4)\r\n callProcessDurHead = \"INCOMING CALLS\";\r\n callProcessDur = responseList[x - 1];\r\n if (callProcessDur[0].VQuadNewTS != undefined) {\r\n if (callProcessDur[0].VQuadNewTS.trim().length != 0) {\r\n let currBarGraph = new Chart((document.getElementById('dash-bar-graph' + x)).getContext(\"2d\"), {\r\n type: 'bar',\r\n data: {\r\n labels: callProcessDur.map(x => x.VQuadNewTS),\r\n datasets: [\r\n {\r\n backgroundColor:'darkgreen', //'rgba(92, 107, 192, .7)',\r\n borderColor:'darkgreen', //'rgba(92, 107, 192, .7)',\r\n data: callProcessDur.map(x => x.ThirtySec),\r\n label: '0-30Sec',\r\n fill: 'false'\r\n },\r\n {\r\n backgroundColor:'indigo', // 'rgba(66, 165, 245, .7)',\r\n borderColor: 'indigo', //'rgba(69, 39, 160, .7)',\r\n data: callProcessDur.map(x => x.TwoMin),\r\n label: '30Sec-2Min',\r\n fill: 'false'\r\n },\r\n {\r\n backgroundColor:'blue', //'rgba(38, 166, 154, .7)',\r\n borderColor: 'blue', //'rgba(69, 39, 160, .7)',\r\n data: callProcessDur.map(x => x.TenMin),\r\n label: '2-10Min',\r\n fill: 'false'\r\n },\r\n {\r\n backgroundColor:'black', //'rgba(102, 187, 106, .7)',\r\n borderColor: 'black',//'rgba(255, 99, 132)',\r\n data: callProcessDur.map(x => x.ThirtyMin),\r\n label: '10-30Min',\r\n fill: 'false'\r\n },\r\n {\r\n backgroundColor:'red', //'rgba(103, 58, 183, .1)',\r\n borderColor:'red', //'rgba(103, 58, 183)',\r\n data: callProcessDur.map(x => x.MoreThirtyMin),\r\n label: 'More than 30Min',\r\n fill: 'false'\r\n }\r\n ]\r\n },\r\n options: {\r\n responsive: true,\r\n legend: {\r\n display: true\r\n },\r\n elements: {\r\n line: {\r\n tension: 0.000001\r\n }\r\n },\r\n maintainAspectRatio: false,\r\n plugins: {\r\n filler: {\r\n propagate: false\r\n }\r\n },\r\n title: {\r\n display: true,\r\n text: callProcessDurHead + ' DURATION'\r\n },\r\n scales: {\r\n yAxes: [{\r\n ticks: {\r\n beginAtZero: true,\r\n }\r\n }]\r\n }\r\n }\r\n })\r\n\r\n if (x == 3)\r\n this.barGraph3 = currBarGraph;\r\n else if (x == 4)\r\n this.barGraph4 = currBarGraph; \r\n }\r\n }\r\n }\r\n\r\n for (var x = 5; x < 6; x++) {\r\n callProcessErr = responseList[x - 1];\r\n if (callProcessErr[0].VQuadNewTS != undefined) {\r\n if (callProcessErr[0].VQuadNewTS.trim().length != 0) {\r\n this.barGraph5 = new Chart((document.getElementById('dash-bar-graph' + x)).getContext(\"2d\"), {\r\n type: 'bar',\r\n data: {\r\n labels: callProcessErr.map(x => x.VQuadNewTS),\r\n datasets: [\r\n {\r\n backgroundColor:'red', //'rgba(92, 107, 192, .7)',\r\n borderColor:'red', // 'rgba(92, 107, 192, .7)',\r\n data: callProcessErr.map(x => x.ERRORSCOUNT),\r\n label: 'ERRORS',\r\n fill: 'false'\r\n }\r\n ]\r\n },\r\n options: {\r\n responsive: true,\r\n legend: {\r\n display: true\r\n },\r\n elements: {\r\n line: {\r\n tension: 0.000001\r\n }\r\n },\r\n maintainAspectRatio: false,\r\n plugins: {\r\n filler: {\r\n propagate: false\r\n }\r\n },\r\n title: {\r\n display: true,\r\n text: 'ERROR EVENTS'\r\n },\r\n scales: {\r\n yAxes: [{\r\n ticks: {\r\n beginAtZero: true,\r\n }\r\n }]\r\n }\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n this.hasFilters = responseList[5] <= 0 ? false : true;\r\n }).catch(error => {\r\n this.isLoading = false;\r\n }\r\n ).finally(() => {\r\n this.isLoading = false;\r\n });\r\n\r\n //if (delFilterColName == 'clearAllFilters') {//!=\r\n // this.commonFilterService.setClearAllFiltersData();//reset if delete\r\n // this.commonFilterService.setGeneralEventIDFilterData({});\r\n //}\r\n if (delFilterColName != '' && delFilterColName != 'clearAllFilters') {\r\n this.delColSelected = true;\r\n\r\n this.commonFilterService.setDeleteFilterData('');//reset if delete\r\n\r\n if (delFilterColName == 'VQuad_CallID') {\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n }\r\n\r\n this.genArrDel = this.AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"] != delFilterColName;\r\n });\r\n //console.log(this.genArrDel)\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n else if (delFilterColName == 'clearAllFilters') {\r\n this.clearAllFiltersBool = true; \r\n\r\n this.commonFilterService.setClearAllFiltersData();//reset if delete\r\n this.commonFilterService.setGeneralFilterData(this.filters);\r\n this.commonFilterService.setGeneralFilterDFData(this.filters);//mainly used in main screen\r\n\r\n this.filtersWithEventID = {};\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n\r\n this.genArrDel = [];\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n //this.cdr.detectChanges();\r\n }\r\n}\r\n","module.exports = \".dash-bar-graph-holder {\\n margin: 10px 5px;\\n background-color: white;\\n}\\n\\n.dt-toolbar-row-NG {\\n display: -ms-flexbox;\\n display: flex;\\n /*margin-right: -5px;\\n margin-left: -5px;\\n margin-bottom: 1rem;*/\\n}\\n\\n.dt-toolbar-col-NG {\\n padding-right: 5px;\\n padding-left: 5px;\\n position: relative;\\n}\\n\\n.dt-toolbar-col-NG .dt-context-menu {\\n width: 170px;\\n display: none;\\n}\\n\\n.dt-toolbar-col-NG.open .dt-context-menu {\\n display: block;\\n}\\n\\n.dt-toolbar-col-NG .dt-list-menu-item.disabled,\\n.dt-toolbar-col-NG .dt-list-menu-item.disabled:hover {\\n color: silver;\\n background-color: transparent;\\n border: 0;\\n box-shadow: 0 0 0;\\n cursor: default;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZ3JhcGhpY3MvbmV0dGVzdC9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvc3JjXFxhcHBcXGdyYXBoaWNzXFxuZXR0ZXN0XFxuZXR0ZXN0LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9ncmFwaGljcy9uZXR0ZXN0L25ldHRlc3QuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxnQkFBQTtFQUNBLHVCQUFBO0FDQ0Y7O0FERUE7RUFDRSxvQkFBQTtFQUFBLGFBQUE7RUFDQTs7eUJBQUE7QUNHRjs7QURFQTtFQUNFLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtBQ0NGOztBREVBO0VBQ0UsWUFBQTtFQUNBLGFBQUE7QUNDRjs7QURFQTtFQUNFLGNBQUE7QUNDRjs7QURFQTs7RUFFRSxhQUFBO0VBQ0EsNkJBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBO0FDQ0YiLCJmaWxlIjoic3JjL2FwcC9ncmFwaGljcy9uZXR0ZXN0L25ldHRlc3QuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZGFzaC1iYXItZ3JhcGgtaG9sZGVyIHtcbiAgbWFyZ2luOiAxMHB4IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbi5kdC10b29sYmFyLXJvdy1ORyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qbWFyZ2luLXJpZ2h0OiAtNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07Ki9cbn1cblxuLmR0LXRvb2xiYXItY29sLU5HIHtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZHQtdG9vbGJhci1jb2wtTkcgLmR0LWNvbnRleHQtbWVudSB7XG4gIHdpZHRoOiAxNzBweDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmR0LXRvb2xiYXItY29sLU5HLm9wZW4gLmR0LWNvbnRleHQtbWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZHQtdG9vbGJhci1jb2wtTkcgLmR0LWxpc3QtbWVudS1pdGVtLmRpc2FibGVkLFxuLmR0LXRvb2xiYXItY29sLU5HIC5kdC1saXN0LW1lbnUtaXRlbS5kaXNhYmxlZDpob3ZlciB7XG4gIGNvbG9yOiBzaWx2ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGJveC1zaGFkb3c6IDAgMCAwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4iLCIuZGFzaC1iYXItZ3JhcGgtaG9sZGVyIHtcbiAgbWFyZ2luOiAxMHB4IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbi5kdC10b29sYmFyLXJvdy1ORyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qbWFyZ2luLXJpZ2h0OiAtNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07Ki9cbn1cblxuLmR0LXRvb2xiYXItY29sLU5HIHtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZHQtdG9vbGJhci1jb2wtTkcgLmR0LWNvbnRleHQtbWVudSB7XG4gIHdpZHRoOiAxNzBweDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmR0LXRvb2xiYXItY29sLU5HLm9wZW4gLmR0LWNvbnRleHQtbWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZHQtdG9vbGJhci1jb2wtTkcgLmR0LWxpc3QtbWVudS1pdGVtLmRpc2FibGVkLFxuLmR0LXRvb2xiYXItY29sLU5HIC5kdC1saXN0LW1lbnUtaXRlbS5kaXNhYmxlZDpob3ZlciB7XG4gIGNvbG9yOiBzaWx2ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGJveC1zaGFkb3c6IDAgMCAwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59Il19 */\"","import { Component, OnInit, ChangeDetectorRef, Output, EventEmitter, OnDestroy} from '@angular/core';\r\nimport { Chart } from 'chart.js';\r\nimport { NettestService } from '../../shared/services/graphics/nettest.service';\r\nimport { NetTest } from '../../shared/models/graphics/nettest';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { rsltTypeInTitle } from 'src/app/shared/functions/title';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-nettest',\r\n templateUrl: './nettest.component.html',\r\n styleUrls: ['./nettest.component.scss', '../analysis/analysis.component.scss',\r\n '../../../../lib/dt-toolbar/dt-toolbar.component.css',\r\n '../../../../lib/styles/icons.css',\r\n '../../../../lib/styles/context-menu.css',\r\n '../../../../lib/styles/list-menu.css'],\r\n providers: [NettestService]\r\n})\r\nexport class NettestComponent implements OnInit, OnDestroy {\r\n clearAllFiltersAction: boolean = true;\r\n actionsMessage: string = 'Actions';\r\n modifyFiltersMessage: string = 'Modify filters';\r\n clearFiltersMessage: string = 'Clear all filters';\r\n isFilters: boolean = true;\r\n hasFilters: boolean;\r\n\r\n rsltType: string = \"nettest\";\r\n\r\n rsltTypeTS = '-1';\r\n TSSelected: number;\r\n\r\n AutoRefreshInfo: any;\r\n\r\n title: string = \"NetTest Graphics\";\r\n staticScreen = false;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n isLoading = true;\r\n\r\n interval;\r\n private subscriptions: Subscription[] = [];\r\n filterEventIDSelected = false;\r\n delColSelected = false;\r\n columnName = \"VQuad_Timestamp\";\r\n TimestampType = 1;\r\n constructor(private _Activatedroute: ActivatedRoute, private _router: Router, private nettestService: NettestService, private commonFilterService: CommonFilterService, private cdr: ChangeDetectorRef) {\r\n _Activatedroute.params.subscribe(val => {\r\n this.rsltType = _Activatedroute.snapshot.url[1].path;\r\n\r\n this.setRsltType();\r\n });\r\n this.commonFilterService.setNonFiltersScreen(this.staticScreen);\r\n\r\n this.commonFilterService.TSType.subscribe(res => {//TsType\r\n this.TimestampType = res;\r\n if (this.TimestampType >= 2)//\r\n this.TimestampType = 1;//Change VQT to VQuad Timestamp if screen doesn't belongs to VQT types nd send as TSTYpe in filtering - IMP\r\n this.columnName = \"VQuad_Timestamp\";\r\n if (this.TimestampType == 2) {\r\n this.columnName = \"VQT_Timestamp\";\r\n }\r\n else if (this.TimestampType == 0) {\r\n this.columnName = \"Call_Timestamp\";\r\n }\r\n });\r\n\r\n const _broadSublisten = this.commonFilterService.listen.subscribe(res => {\r\n if (res === 'onlyNetGrphInit' && !this.filterEventIDSelected)\r\n this.createAllBarGraphs('');\r\n if (this.filterEventIDSelected)\r\n this.filterEventIDSelected = false;\r\n });\r\n this.subscriptions.push(_broadSublisten);\r\n\r\n this.commonFilterService.isFilters$.subscribe(res => {\r\n this.isFilters = res;\r\n });\r\n //Do Refresh\r\n const _broadSubRefresh = this.commonFilterService.componentMethodCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.createAllBarGraphs('');\r\n }\r\n );\r\n this.subscriptions.push(_broadSubRefresh);\r\n\r\n const _broadSubDeleteFilter = this.commonFilterService.DeleteFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n if (res !== '') {//IMP IMP\r\n this.createAllBarGraphs(res); \r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubDeleteFilter);\r\n\r\n const _broadSubAllGeneralFilter = this.commonFilterService.AllGeneralFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log('AllGeneralFilter')\r\n this.AllGeneralFilter = res;\r\n if (!this.delColSelected && !this.clearAllFiltersBool && this.AllGeneralFilter.length > 0)\r\n this.createAllBarGraphs('');\r\n\r\n //reset here\r\n if (this.delColSelected)\r\n this.delColSelected = false;\r\n if (this.clearAllFiltersBool)\r\n this.clearAllFiltersBool = false;\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAllGeneralFilter);\r\n\r\n //const _broadSubGeneralDFFilter = this.commonFilterService.GeneralFilterDF.subscribe(res => {\r\n // //console.log('GeneralDFFilter')\r\n // this.filters = res;\r\n //});\r\n //this.subscriptions.push(_broadSubGeneralDFFilter);\r\n const _broadSubGeneralFilter = this.commonFilterService.GeneralFilter.subscribe(res => {\r\n //console.log('GeneralFilter')\r\n this.filters = res;\r\n });\r\n this.subscriptions.push(_broadSubGeneralFilter);\r\n\r\n const _broadSubEventIDFilter = this.commonFilterService.GeneralEventIDFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log('filtersWithEventID')\r\n //this.filterEventIDSelected = true;\r\n this.filtersWithEventID = res;\r\n //if (!this.delColSelected && !this.clearAllFiltersBool && (typeof this.filtersWithEventID == 'object' && Object.keys(this.filtersWithEventID).length > 0))\r\n // this.createAllBarGraphs('');\r\n }\r\n );\r\n this.subscriptions.push(_broadSubEventIDFilter);\r\n\r\n //Do Auto-refresh - start/stop\r\n const _broadSubAutoRefresh = this.commonFilterService.componentMethodWithArgCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.AutoRefreshInfo = res;\r\n //console.log(this.AutoRefreshInfo);\r\n\r\n if (this.AutoRefreshInfo.AutoRefStop) {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n }\r\n }\r\n else {\r\n this.interval = setInterval(() => {\r\n //console.log(this.AutoRefreshInfo.AutoRefStop);\r\n this.createAllBarGraphs('');\r\n }, this.AutoRefreshInfo.AutoRefSelected);\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAutoRefresh);\r\n \r\n }\r\n\r\n setRsltType() {\r\n this.title = rsltTypeInTitle(this.rsltType);\r\n this.childTitleEvent.emit(this.title);\r\n }\r\n\r\n ngOnInit() {\r\n //this.hasFilters = this.table.dataFilter.hasFilters();\r\n if (this.barGraph1 != null)\r\n this.barGraph1.destroy();\r\n if (this.barGraph2 != null)\r\n this.barGraph2.destroy();\r\n //this.createAllBarGraphs();\r\n this.cdr.detectChanges();\r\n }\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n parentRef(TSSelected) {\r\n this.TSSelected = parseInt(TSSelected);\r\n //this.setRsltType();\r\n }\r\n parentEventID() {\r\n this.createAllBarGraphs('');\r\n }\r\n parentAutoRef(AutoRefreshInfo) {\r\n this.TSSelected = parseInt(AutoRefreshInfo.TSSelected);\r\n this.AutoRefreshInfo = AutoRefreshInfo;\r\n }\r\n\r\n modifyFilter() {\r\n //this._router.navigate([{ outlets: { filterPopup: ['filters'], configPopup: null } }]);\r\n let selectedMainFilterCrieriaName = 'null';\r\n this.commonFilterService.mainFilter_CriteriaName.subscribe(res => selectedMainFilterCrieriaName = res);\r\n this._router.navigate([{ outlets: { filterPopup: ['filters', selectedMainFilterCrieriaName], configPopup: null } }]);\r\n\r\n /////// when calling modify search set mainfilter to initial values\r\n //this.commonFilterService.SetMainFilter(0);// set selected mainfilter id\r\n //this.commonFilterService.setMFCustDT(\"\");\r\n //this.commonFilterService.setMFTZON(0);\r\n ////this.commonFilterService.basicRefresh();\r\n }\r\n\r\n clearAllFiltersBool = false;\r\n clearAllFilters() {\r\n this.createAllBarGraphs('clearAllFilters');\r\n //this.table.sorter.sortMeta = [];\r\n //this.table.events.onSort();//IMP- to reset sorting sel cols to none\r\n\r\n //if (this.table.dataFilter.hasFilters()) {\r\n // this.table.dataFilter.clear();\r\n // //console.log(this.table.dataFilter.hasFilters())\r\n // this.table.events.onFilter();\r\n // //this.table.events.onFilterClear();\r\n // this.clearFilters.emit();\r\n //}\r\n }\r\n\r\n barGraph1 = null;\r\n barGraph2 = null;\r\n AllGeneralFilter = [];\r\n genArrDel = [];\r\n filtersWithEventID = {};\r\n filters = {};\r\n createAllBarGraphs(delFilterColName) {\r\n if (delFilterColName == 'VQuad_CallID') {\r\n this.filtersWithEventID = {};\r\n for (const key in this.filters) {\r\n if (key == 'VQuad_CallID')\r\n delete this.filters[key];\r\n }\r\n }\r\n else if (delFilterColName == 'clearAllFilters') {\r\n this.filtersWithEventID = {};\r\n for (const key in this.filters) {\r\n if (key !== this.columnName)\r\n delete this.filters[key];\r\n }\r\n }\r\n this.isLoading = true;\r\n\r\n let netTest: NetTest[];\r\n let netTestHead = \"SMS SENT/RECIEVED\";\r\n this.nettestService.getNetTestList(delFilterColName, this.AllGeneralFilter, this.filtersWithEventID, this.filters, this.TimestampType, this.columnName).then(responseList => {\r\n //console.log(this.barGraph1)\r\n if (this.barGraph1 != null)\r\n this.barGraph1.destroy();\r\n if (this.barGraph2 != null)\r\n this.barGraph2.destroy();\r\n\r\n for (var x = 1; x < 3; x++) {\r\n if (x == 2)\r\n netTestHead = \"EMAIL SENT/RECIEVED\";\r\n netTest = responseList[x - 1];\r\n\r\n if (netTest[0].VQuadNewTS != undefined) {\r\n if (netTest[0].VQuadNewTS.trim().length != 0) {\r\n //let currBarGraph = new Chart('dash-bar-graph11', {\r\n let currBarGraph = new Chart((document.getElementById('dash-bar-graph1' + x)).getContext(\"2d\"), {\r\n type: 'bar',\r\n data: {\r\n labels: netTest.map(x => x.VQuadNewTS),\r\n datasets: [\r\n {\r\n backgroundColor: 'rgba(92, 107, 192, .7)',\r\n borderColor: 'rgba(92, 107, 192, .7)',\r\n data: netTest.map(x => x.SENDPASSED),\r\n label: 'SENDPASSED',\r\n fill: 'false'\r\n },\r\n {\r\n backgroundColor: 'rgba(66, 165, 245, .7)',\r\n borderColor: 'rgba(69, 39, 160, .7)',\r\n data: netTest.map(x => x.SENDFAILED),\r\n label: 'SENDFAILED',\r\n fill: 'false'\r\n },\r\n {\r\n backgroundColor: 'rgba(38, 166, 154, .7)',\r\n borderColor: 'rgba(69, 39, 160, .7)',\r\n data: netTest.map(x => x.RECEPASSED),\r\n label: 'RECEPASSED',\r\n fill: 'false'\r\n },\r\n {\r\n backgroundColor: 'rgba(102, 187, 106, .7)',\r\n borderColor: 'rgba(255, 99, 132)',\r\n data: netTest.map(x => x.RECEFAILED),\r\n label: 'RECEFAILED',\r\n fill: 'false'\r\n }\r\n ]\r\n },\r\n options: {\r\n responsive: true,\r\n legend: {\r\n display: true\r\n },\r\n elements: {\r\n line: {\r\n tension: 0.000001\r\n }\r\n },\r\n maintainAspectRatio: false,\r\n plugins: {\r\n filler: {\r\n propagate: false\r\n }\r\n },\r\n title: {\r\n display: true,\r\n text: netTestHead\r\n },\r\n scales: {\r\n yAxes: [{\r\n ticks: {\r\n beginAtZero: true,\r\n }\r\n }]\r\n }\r\n }\r\n })\r\n\r\n if (x == 1)\r\n this.barGraph1 = currBarGraph;\r\n else if (x == 2)\r\n this.barGraph2 = currBarGraph; \r\n }\r\n }\r\n }\r\n\r\n this.hasFilters = responseList[2] <= 0 ? false : true;\r\n }).catch(error => {\r\n this.isLoading = false;\r\n }\r\n ).finally(() => {\r\n this.isLoading = false;\r\n });\r\n\r\n if (delFilterColName != '' && delFilterColName != 'clearAllFilters') {\r\n this.delColSelected = true;\r\n\r\n this.commonFilterService.setDeleteFilterData('');//reset if delete\r\n\r\n if (delFilterColName == 'VQuad_CallID') {\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n }\r\n\r\n this.genArrDel = this.AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"] != delFilterColName;\r\n });\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n else if (delFilterColName == 'clearAllFilters') {\r\n this.clearAllFiltersBool = true;\r\n\r\n this.commonFilterService.setClearAllFiltersData();//reset if delete\r\n this.commonFilterService.setGeneralFilterData(this.filters);\r\n this.commonFilterService.setGeneralFilterDFData(this.filters);//mainly used in main screen\r\n\r\n this.filtersWithEventID = {};\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n\r\n this.genArrDel = [];\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n //this.cdr.detectChanges();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ApiInterceptor implements HttpInterceptor {\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n const baseUrl = document.getElementsByTagName('base')[0].href.replace('/Webviewer/', '');\r\n //console.log(baseUrl)\r\n if (req.url.indexOf('localhost:') != -1)\r\n return next.handle(req.clone({ url: req.url }));\r\n else {\r\n const apiReq = req.clone({ url: req.url.replace('http://localhost', baseUrl) });\r\n //console.log(apiReq)\r\n return next.handle(apiReq);\r\n }\r\n }\r\n}\r\n","/* \"Barrel\" of Http Interceptors */\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\n\r\nimport { ApiInterceptor } from './api-interceptor';\r\n\r\n/** Http interceptor providers in outside-in order */\r\nexport const httpInterceptorProviders = [\r\n { provide: HTTP_INTERCEPTORS, useClass: ApiInterceptor, multi: true },\r\n];\r\n","module.exports = \":host {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-pack: center;\\n justify-content: center;\\n margin: 100px 0px;\\n}\\n\\n.mat-form-field {\\n width: 100%;\\n min-width: 300px;\\n}\\n\\nmat-card-title,\\nmat-card-content {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-pack: center;\\n justify-content: center;\\n}\\n\\n.error {\\n padding: 16px;\\n width: 300px;\\n color: white;\\n background-color: red;\\n}\\n\\n.button {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-pack: end;\\n justify-content: flex-end;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbG9naW4vZm9yZ290LXBhc3N3b3JkL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9zcmNcXGFwcFxcbG9naW5cXGZvcmdvdC1wYXNzd29yZFxcZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9sb2dpbi9mb3Jnb3QtcGFzc3dvcmQvZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0EscUJBQUE7TUFBQSx1QkFBQTtFQUNBLGlCQUFBO0FDQ0Y7O0FERUE7RUFDRSxXQUFBO0VBQ0EsZ0JBQUE7QUNDRjs7QURFQTs7RUFFRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSxxQkFBQTtNQUFBLHVCQUFBO0FDQ0Y7O0FERUE7RUFDRSxhQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxxQkFBQTtBQ0NGOztBREVBO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0Esa0JBQUE7TUFBQSx5QkFBQTtBQ0NGIiwiZmlsZSI6InNyYy9hcHAvbG9naW4vZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIjpob3N0IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIG1hcmdpbjogMTAwcHggMHB4O1xyXG59XHJcblxyXG4ubWF0LWZvcm0tZmllbGQge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1pbi13aWR0aDogMzAwcHg7XHJcbn1cclxuXHJcbm1hdC1jYXJkLXRpdGxlLFxyXG5tYXQtY2FyZC1jb250ZW50IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG59XHJcblxyXG4uZXJyb3Ige1xyXG4gIHBhZGRpbmc6IDE2cHg7XHJcbiAgd2lkdGg6IDMwMHB4O1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XHJcbn1cclxuXHJcbi5idXR0b24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxufVxyXG4iLCI6aG9zdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDEwMHB4IDBweDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMzAwcHg7XG59XG5cbm1hdC1jYXJkLXRpdGxlLFxubWF0LWNhcmQtY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uZXJyb3Ige1xuICBwYWRkaW5nOiAxNnB4O1xuICB3aWR0aDogMzAwcHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xufVxuXG4uYnV0dG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn0iXX0= */\"","import { Component, OnInit, Output, EventEmitter, ViewChild, Sanitizer, ElementRef, ChangeDetectorRef, Inject, AfterViewInit } from '@angular/core';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { request } from 'http';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n//import { RequestMetadata, PagedResult } from '../../../../lib/ng-crud-table';\r\nimport { MatTableDataSource, fadeInContent } from '@angular/material';\r\nimport { DataSource } from '@angular/cdk/table';\r\nimport { MatDialog, MatDialogConfig, PageEvent, MatPaginator } from '@angular/material';\r\nimport { Row } from 'lib/ng-data-table';\r\nimport { SelectItem, Keys } from 'lib/common';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as moment from 'moment';\r\nimport { ConfirmDialogComponent } from 'src/app/shared/components/confirm-dialog/confirm-dialog.component';\r\nimport { NgSwitchCase, DOCUMENT } from '@angular/common';\r\nimport { validateBasis } from '@angular/flex-layout';\r\nimport { AppComponent } from 'src/app/app.component';\r\nimport { SystemSettingConfig } from 'src/app/shared/models/SystemSettingConfig';\r\nimport { SystemSettingsService } from 'src/app/shared/services/system-settings/system-settings.service';\r\n\r\n@Component({\r\n selector: 'app-forgot-password',\r\n templateUrl: './forgot-password.component.html',\r\n styleUrls: ['./forgot-password.component.scss']\r\n})\r\nexport class ForgotPasswordComponent implements OnInit {\r\n\r\n title: string = \"Login\";\r\n staticScreen = true;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n baseUrl: string;\r\n url: string;\r\n showError: boolean = false;\r\n showErrorMsg: string = \"\";\r\n emailid: string = \"\";\r\n maskedEmailID: string = \"\";\r\n ConfirmPin: string;\r\n versionLabel: string = \"6.0\";\r\n username: string = \"\";\r\n loading: boolean = false;\r\n userNameSection: boolean = true;\r\n titleMessage: string;\r\n\r\n\r\n loginDetails = new SystemSettingConfig();\r\n constructor(private http: HttpClient, private cdr: ChangeDetectorRef, private logservice: SystemSettingsService, private dialog: MatDialog, @Inject(DOCUMENT) private _document: Document, private router: Router, private route: ActivatedRoute) {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n //alert('fp');\r\n }\r\n\r\n ngOnInit() {\r\n //alert('forgot');\r\n this.parentEvent();\r\n }\r\n\r\n\r\n parentEvent() {\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n\r\n ReturnToLogin() {\r\n this.router.navigateByUrl('login');\r\n }\r\n\r\n validateEmailID() {\r\n this.showError = false;\r\n this.showErrorMsg = \"\";\r\n debugger;\r\n if (this.emailid.length == 0) {\r\n this.showError = true;\r\n this.showErrorMsg = \"* Required\";\r\n return false;\r\n }\r\n else {\r\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\r\n if (!emailRegex.test(this.emailid)) {\r\n this.showError = true;\r\n this.showErrorMsg = \"enter valid email id\";\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n SendLink() {\r\n //if (!this.validateEmailID())\r\n // return;\r\n\r\n this.loading = true;\r\n this.loginDetails.EmailID = this.emailid;\r\n try {\r\n this.url = this.baseUrl + 'Login/ForgotPassword';\r\n this.ForgotPassword_Service().subscribe((res: any) => {\r\n //debugger;\r\n this.loading = false;\r\n let rows: any = res;//JSON.parse(res) as any;\r\n if (rows == \"success\") {\r\n //alert(\"We have sent an email with instructions to reset your password.Please check your email inbox or spam folder for further details.\");\r\n this.titleMessage = \"A reset password link has been sent to your registered email address '\" + this.maskedEmailID + \"'\";\r\n }\r\n else {\r\n this.showError = true;\r\n this.showErrorMsg = \"email id doesnt exists. please contact your administrator.\";\r\n }\r\n return false;\r\n });\r\n } catch (err) {\r\n this.loading = false;\r\n }\r\n }\r\n\r\n CheckUserName() {\r\n this.titleMessage = \"\";\r\n this.loading = true;\r\n this.showError = false;\r\n this.showErrorMsg = \"\";\r\n\r\n if (this.username.trim() == \"\") {\r\n this.showError = true;\r\n this.showErrorMsg = \"* Required\";\r\n return false;\r\n }\r\n \r\n this.loginDetails.UserName = this.username;\r\n try {\r\n this.url = this.baseUrl + 'Login/CheckUserName';\r\n this.ForgotPassword_Service().subscribe((res: any) => {\r\n //debugger;\r\n this.loading = false;\r\n let rows: any = res;//JSON.parse(res) as any;\r\n if (rows.includes('admin'))//(rows == \"success\")\r\n {\r\n this.maskedEmailID = rows.split('$')[1];\r\n //this.userNameSection = false;//// commented as it's for enter emaild for reset link to sent to user but now not need that process as per ROB's requirement.\r\n this.userNameSection = true;\r\n this.emailid = rows.split('$')[2];\r\n this.SendLink();\r\n }\r\n else if (rows == \"user\") {\r\n this.userNameSection = true;\r\n this.titleMessage = \"Please contact the system administrator to reset your password.\";\r\n //alert('Please contact the system administrator to reset your password.');\r\n }\r\n else {\r\n this.userNameSection = true;\r\n this.showError = true;\r\n this.showErrorMsg = \"username doesnt exists.\";\r\n }\r\n return false;\r\n });\r\n } catch (err) {\r\n this.loading = false;\r\n }\r\n\r\n }\r\n ///////////////////////////////////////// SERVICE\r\n ForgotPassword_Service() {\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n return this.http.post(this.url, this.loginDetails, options);\r\n }\r\n\r\n\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2xvZ2luL2xpY2VuY2UtY2hlY2svbGljZW5jZS1jaGVjay5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { SystemSettingsService } from 'src/app/shared/services/system-settings/system-settings.service';\r\n\r\n@Component({\r\n selector: 'app-licence-check',\r\n templateUrl: './licence-check.component.html',\r\n styleUrls: ['./licence-check.component.scss']\r\n})\r\nexport class LicenceCheckComponent implements OnInit {\r\n isRebrandCompany = false;\r\n\r\n rsltType: string = \"license\";\r\n\r\n title: string = \"License\";\r\n staticScreen = true;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n constructor(private logservice: SystemSettingsService) {\r\n }\r\n\r\n ngOnInit() {\r\n setTimeout(() => {\r\n this.logservice.logDetail = \"\";\r\n this.logservice.LogType = \"\";\r\n this.logservice.CompanyLogo = \"\";\r\n this.logservice.UserName = \"\";\r\n this.logservice.isLoggedIn = false;\r\n this.logservice.isCommonLogo = true;\r\n\r\n if (localStorage.getItem('SystemSettings') != null) {\r\n localStorage.removeItem('SystemSettings');\r\n localStorage.clear();\r\n }\r\n\r\n if (sessionStorage.getItem('SystemSettings') != null) {\r\n sessionStorage.removeItem('SystemSettings');\r\n sessionStorage.clear();\r\n }\r\n\r\n if (localStorage.getItem('Keyword') != null) {\r\n localStorage.removeItem('Keyword');\r\n localStorage.clear();\r\n }\r\n\r\n if (sessionStorage.getItem('Keyword') != null) {\r\n sessionStorage.removeItem('Keyword');\r\n sessionStorage.clear();\r\n }\r\n\r\n this.parentEvent();\r\n\r\n });\r\n }\r\n\r\n\r\n parentEvent() {\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n}\r\n","module.exports = \":host {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-pack: center;\\n justify-content: center;\\n margin: 100px 0px;\\n}\\n\\n.mat-form-field {\\n width: 100%;\\n min-width: 300px;\\n}\\n\\nmat-card-title,\\nmat-card-content {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-pack: center;\\n justify-content: center;\\n}\\n\\n.error {\\n padding: 16px;\\n width: 300px;\\n color: white;\\n background-color: red;\\n}\\n\\n.button {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-pack: end;\\n justify-content: flex-end;\\n}\\n\\n.overlayPopUp {\\n display: -ms-flexbox;\\n display: flex;\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n background: rgba(0, 0, 0, 0.5);\\n -ms-flex-align: center;\\n align-items: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n}\\n\\n.popup-container {\\n background: #fff;\\n padding: 20px;\\n border-radius: 5px;\\n}\\n\\n/*:host {*/\\n\\n:host(.custom-class) {\\n position: absolute;\\n top: -8%;\\n left: 1%;\\n right: 1%;\\n z-index: 1002;\\n border: 3px solid black;\\n height: 95%;\\n width: 98%;\\n overflow-y: scroll;\\n background: #fff;\\n padding: 20px;\\n border-radius: 5px;\\n /*position: fixed;*/\\n top: 50%;\\n left: 50%;\\n -ms-transform: translate(-50%, -58%);\\n transform: translate(-50%, -58%);\\n /*background-color: rgb(227, 232, 236);*/\\n}\\n\\n.changepasswordcss {\\n width: 100%;\\n position: absolute;\\n top: 0;\\n left: 0;\\n}\\n\\n.changepasswordMainDivcss {\\n float: left;\\n margin-left: 30%;\\n}\\n\\n/*start loader*/\\n\\n#spinner {\\n -webkit-animation: frames 1s infinite linear;\\n animation: frames 1s infinite linear;\\n background: transparent;\\n border: 0.75vw solid #FFF;\\n border-radius: 100%;\\n border-top-color: #DF691A;\\n width: 5vw;\\n height: 5vw;\\n opacity: 0.6;\\n padding: 0;\\n position: absolute;\\n z-index: 999;\\n}\\n\\n@-webkit-keyframes frames {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(359deg);\\n }\\n}\\n\\n@keyframes frames {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(359deg);\\n }\\n}\\n\\n#pause {\\n display: block;\\n background: rgba(0, 0, 0, 0.66) no-repeat 0 0;\\n width: 100%;\\n height: 100%;\\n position: fixed;\\n bottom: 0;\\n left: 0;\\n z-index: 1000;\\n}\\n\\n/*end loader*/\\n\\n.spinner_overlay {\\n position: fixed;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #fff;\\n opacity: 0.5;\\n z-index: 1000;\\n}\\n\\n.spinner {\\n position: absolute;\\n left: 50%;\\n top: 20%;\\n height: 60px;\\n width: 60px;\\n margin: 0px auto;\\n -webkit-animation: rotation 0.6s infinite linear;\\n animation: rotation 0.6s infinite linear;\\n border-left: 6px solid rgba(0, 174, 239, 0.15);\\n border-right: 6px solid rgba(0, 174, 239, 0.15);\\n border-bottom: 6px solid rgba(0, 174, 239, 0.15);\\n border-top: 6px solid rgba(0, 174, 239, 0.8);\\n border-radius: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbG9naW4vbG9naW4tY29uZmlnL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9zcmNcXGFwcFxcbG9naW5cXGxvZ2luLWNvbmZpZ1xcbG9naW4tY29uZmlnLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9sb2dpbi9sb2dpbi1jb25maWcvbG9naW4tY29uZmlnLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0EscUJBQUE7TUFBQSx1QkFBQTtFQUNBLGlCQUFBO0FDQ0Y7O0FERUE7RUFDRSxXQUFBO0VBQ0EsZ0JBQUE7QUNDRjs7QURFQTs7RUFFRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSxxQkFBQTtNQUFBLHVCQUFBO0FDQ0Y7O0FERUE7RUFDRSxhQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxxQkFBQTtBQ0NGOztBREVBO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0Esa0JBQUE7TUFBQSx5QkFBQTtBQ0NGOztBREVBO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0EsZUFBQTtFQUNBLE1BQUE7RUFDQSxPQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSw4QkFBQTtFQUNBLHNCQUFBO01BQUEsbUJBQUE7RUFDQSxxQkFBQTtNQUFBLHVCQUFBO0FDQ0Y7O0FERUE7RUFDRSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxrQkFBQTtBQ0NGOztBREdBLFVBQUE7O0FBQ0E7RUFDRSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLGFBQUE7RUFDQSx1QkFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxrQkFBQTtFQUVBLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxvQ0FBQTtNQUFBLGdDQUFBO0VBQ0Esd0NBQUE7QUNERjs7QURJQTtFQUNFLFdBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxPQUFBO0FDREY7O0FESUE7RUFDRSxXQUFBO0VBQ0EsZ0JBQUE7QUNERjs7QURLQSxlQUFBOztBQUNBO0VBQ0UsNENBQUE7RUFDQSxvQ0FBQTtFQUNBLHVCQUFBO0VBQ0EseUJBQUE7RUFDQSxtQkFBQTtFQUNBLHlCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtBQ0ZGOztBREtBO0VBQ0U7SUFFRSx1QkFBQTtFQ0ZGO0VES0E7SUFFRSx5QkFBQTtFQ0hGO0FBQ0Y7O0FETkE7RUFDRTtJQUVFLHVCQUFBO0VDRkY7RURLQTtJQUVFLHlCQUFBO0VDSEY7QUFDRjs7QURNQTtFQUNFLGNBQUE7RUFDQSw2Q0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLFNBQUE7RUFDQSxPQUFBO0VBQ0EsYUFBQTtBQ0pGOztBRE9BLGFBQUE7O0FBRUE7RUFDRSxlQUFBO0VBQ0EsT0FBQTtFQUNBLE1BQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLHNCQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7QUNMRjs7QURRQTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsZ0RBQUE7RUFHQSx3Q0FBQTtFQUNBLDhDQUFBO0VBQ0EsK0NBQUE7RUFDQSxnREFBQTtFQUNBLDRDQUFBO0VBQ0EsbUJBQUE7QUNMRiIsImZpbGUiOiJzcmMvYXBwL2xvZ2luL2xvZ2luLWNvbmZpZy9sb2dpbi1jb25maWcuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBtYXJnaW46IDEwMHB4IDBweDsgXHJcbn1cclxuXHJcbi5tYXQtZm9ybS1maWVsZCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWluLXdpZHRoOiAzMDBweDtcclxufVxyXG5cclxubWF0LWNhcmQtdGl0bGUsXHJcbm1hdC1jYXJkLWNvbnRlbnQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbi5lcnJvciB7XHJcbiAgcGFkZGluZzogMTZweDtcclxuICB3aWR0aDogMzAwcHg7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJlZDtcclxufVxyXG5cclxuLmJ1dHRvbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59XHJcblxyXG4ub3ZlcmxheVBvcFVwIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbi5wb3B1cC1jb250YWluZXIge1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgcGFkZGluZzogMjBweDtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuXHJcblxyXG4vKjpob3N0IHsqL1xyXG46aG9zdCguY3VzdG9tLWNsYXNzKSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogLTglO1xyXG4gIGxlZnQ6IDElO1xyXG4gIHJpZ2h0OiAxJTtcclxuICB6LWluZGV4OiAxMDAyO1xyXG4gIGJvcmRlcjogM3B4IHNvbGlkIGJsYWNrO1xyXG4gIGhlaWdodDogOTUlO1xyXG4gIHdpZHRoOiA5OCU7XHJcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgcGFkZGluZzogMjBweDtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcblxyXG4gIC8qcG9zaXRpb246IGZpeGVkOyovXHJcbiAgdG9wOiA1MCU7XHJcbiAgbGVmdDogNTAlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01OCUpO1xyXG4gIC8qYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNywgMjMyLCAyMzYpOyovXHJcbn1cclxuXHJcbi5jaGFuZ2VwYXNzd29yZGNzcyB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwOyAgXHJcbn1cclxuXHJcbi5jaGFuZ2VwYXNzd29yZE1haW5EaXZjc3Mge1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIG1hcmdpbi1sZWZ0OiAzMCU7XHJcbiAgfVxyXG5cclxuXHJcbi8qc3RhcnQgbG9hZGVyKi9cclxuI3NwaW5uZXIge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmcmFtZXMgMXMgaW5maW5pdGUgbGluZWFyO1xyXG4gIGFuaW1hdGlvbjogZnJhbWVzIDFzIGluZmluaXRlIGxpbmVhcjtcclxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICBib3JkZXI6IDAuNzV2dyBzb2xpZCAjRkZGO1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbiAgYm9yZGVyLXRvcC1jb2xvcjogI0RGNjkxQTtcclxuICB3aWR0aDogNXZ3O1xyXG4gIGhlaWdodDogNXZ3O1xyXG4gIG9wYWNpdHk6IC42O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHotaW5kZXg6IDk5OTtcclxufVxyXG5cclxuQGtleWZyYW1lcyBmcmFtZXMge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICB9XHJcblxyXG4gIDEwMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcclxuICB9XHJcbn1cclxuXHJcbiNwYXVzZSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjY2KSBuby1yZXBlYXQgMCAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgei1pbmRleDogMTAwMDtcclxufVxyXG5cclxuLyplbmQgbG9hZGVyKi9cclxuXHJcbi5zcGlubmVyX292ZXJsYXkge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBsZWZ0OiAwO1xyXG4gIHRvcDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBvcGFjaXR5OiAwLjU7XHJcbiAgei1pbmRleDogMTAwMDtcclxufVxyXG5cclxuLnNwaW5uZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiA1MCU7XHJcbiAgdG9wOiAyMCU7XHJcbiAgaGVpZ2h0OiA2MHB4O1xyXG4gIHdpZHRoOiA2MHB4O1xyXG4gIG1hcmdpbjogMHB4IGF1dG87XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0aW9uIC42cyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgLW1vei1hbmltYXRpb246IHJvdGF0aW9uIC42cyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgLW8tYW5pbWF0aW9uOiByb3RhdGlvbiAuNnMgaW5maW5pdGUgbGluZWFyO1xyXG4gIGFuaW1hdGlvbjogcm90YXRpb24gLjZzIGluZmluaXRlIGxpbmVhcjtcclxuICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHJnYmEoMCwxNzQsMjM5LC4xNSk7XHJcbiAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgcmdiYSgwLDE3NCwyMzksLjE1KTtcclxuICBib3JkZXItYm90dG9tOiA2cHggc29saWQgcmdiYSgwLDE3NCwyMzksLjE1KTtcclxuICBib3JkZXItdG9wOiA2cHggc29saWQgcmdiYSgwLDE3NCwyMzksLjgpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbn1cclxuIiwiOmhvc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiAxMDBweCAwcHg7XG59XG5cbi5tYXQtZm9ybS1maWVsZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDMwMHB4O1xufVxuXG5tYXQtY2FyZC10aXRsZSxcbm1hdC1jYXJkLWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmVycm9yIHtcbiAgcGFkZGluZzogMTZweDtcbiAgd2lkdGg6IDMwMHB4O1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJlZDtcbn1cblxuLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5vdmVybGF5UG9wVXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnBvcHVwLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLyo6aG9zdCB7Ki9cbjpob3N0KC5jdXN0b20tY2xhc3MpIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC04JTtcbiAgbGVmdDogMSU7XG4gIHJpZ2h0OiAxJTtcbiAgei1pbmRleDogMTAwMjtcbiAgYm9yZGVyOiAzcHggc29saWQgYmxhY2s7XG4gIGhlaWdodDogOTUlO1xuICB3aWR0aDogOTglO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgLypwb3NpdGlvbjogZml4ZWQ7Ki9cbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTU4JSk7XG4gIC8qYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNywgMjMyLCAyMzYpOyovXG59XG5cbi5jaGFuZ2VwYXNzd29yZGNzcyB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cblxuLmNoYW5nZXBhc3N3b3JkTWFpbkRpdmNzcyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMzAlO1xufVxuXG4vKnN0YXJ0IGxvYWRlciovXG4jc3Bpbm5lciB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmcmFtZXMgMXMgaW5maW5pdGUgbGluZWFyO1xuICBhbmltYXRpb246IGZyYW1lcyAxcyBpbmZpbml0ZSBsaW5lYXI7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDAuNzV2dyBzb2xpZCAjRkZGO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBib3JkZXItdG9wLWNvbG9yOiAjREY2OTFBO1xuICB3aWR0aDogNXZ3O1xuICBoZWlnaHQ6IDV2dztcbiAgb3BhY2l0eTogMC42O1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDk5OTtcbn1cblxuQGtleWZyYW1lcyBmcmFtZXMge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcbiAgfVxufVxuI3BhdXNlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42Nikgbm8tcmVwZWF0IDAgMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG59XG5cbi8qZW5kIGxvYWRlciovXG4uc3Bpbm5lcl9vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIG9wYWNpdHk6IDAuNTtcbiAgei1pbmRleDogMTAwMDtcbn1cblxuLnNwaW5uZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiAyMCU7XG4gIGhlaWdodDogNjBweDtcbiAgd2lkdGg6IDYwcHg7XG4gIG1hcmdpbjogMHB4IGF1dG87XG4gIC13ZWJraXQtYW5pbWF0aW9uOiByb3RhdGlvbiAwLjZzIGluZmluaXRlIGxpbmVhcjtcbiAgLW1vei1hbmltYXRpb246IHJvdGF0aW9uIDAuNnMgaW5maW5pdGUgbGluZWFyO1xuICAtby1hbmltYXRpb246IHJvdGF0aW9uIDAuNnMgaW5maW5pdGUgbGluZWFyO1xuICBhbmltYXRpb246IHJvdGF0aW9uIDAuNnMgaW5maW5pdGUgbGluZWFyO1xuICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHJnYmEoMCwgMTc0LCAyMzksIDAuMTUpO1xuICBib3JkZXItcmlnaHQ6IDZweCBzb2xpZCByZ2JhKDAsIDE3NCwgMjM5LCAwLjE1KTtcbiAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkIHJnYmEoMCwgMTc0LCAyMzksIDAuMTUpO1xuICBib3JkZXItdG9wOiA2cHggc29saWQgcmdiYSgwLCAxNzQsIDIzOSwgMC44KTtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbn0iXX0= */\"","import { Component, OnInit, Output, EventEmitter, ViewChild, Sanitizer, ElementRef, ChangeDetectorRef, Inject, AfterViewInit, Renderer2 } from '@angular/core';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { request } from 'http';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n//import { RequestMetadata, PagedResult } from '../../../../lib/ng-crud-table';\r\nimport { MatTableDataSource, fadeInContent } from '@angular/material';\r\nimport { DataSource } from '@angular/cdk/table';\r\nimport { MatDialog, MatDialogConfig, PageEvent, MatPaginator } from '@angular/material';\r\nimport { Row } from 'lib/ng-data-table';\r\nimport { SelectItem, Keys } from 'lib/common';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as moment from 'moment';\r\nimport { ConfirmDialogComponent } from 'src/app/shared/components/confirm-dialog/confirm-dialog.component';\r\nimport { NgSwitchCase, DOCUMENT } from '@angular/common';\r\nimport { validateBasis } from '@angular/flex-layout';\r\nimport { AppComponent } from 'src/app/app.component';\r\nimport { SystemSettingConfig } from 'src/app/shared/models/SystemSettingConfig';\r\nimport { SystemSettingsService } from 'src/app/shared/services/system-settings/system-settings.service';\r\nimport { stream } from 'exceljs';\r\n@Component({\r\n selector: 'app-login-config',\r\n templateUrl: './login-config.component.html',\r\n styleUrls: ['./login-config.component.scss']\r\n})\r\nexport class LoginConfigComponent implements OnInit {\r\n\r\n title: string = \"Login\";\r\n staticScreen = true;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n baseUrl: string;\r\n url: string;\r\n showError: boolean = false;\r\n showErrorMsg: string = \"\";\r\n OldPin: string=\"\";\r\n pin: string=\"\";\r\n ConfirmPin: string=\"\";\r\n versionLabel: string = \"6.4.2\";\r\n loading: boolean = false;\r\n isChangePassword: boolean = false;\r\n \r\n loginDetails = new SystemSettingConfig();\r\n constructor(private renderer: Renderer2, private el: ElementRef,private http: HttpClient, private cdr: ChangeDetectorRef, private logservice: SystemSettingsService, private dialog: MatDialog, @Inject(DOCUMENT) private _document: Document, private router: Router, private route: ActivatedRoute) {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n //alert('config');\r\n debugger;\r\n \r\n //// if page is called for change password\r\n if (this.route.snapshot.queryParamMap.get('cp') == \"1\") {\r\n this.title = \"\"; \r\n this.isChangePassword = true;\r\n\r\n //to close filter and webviewerconfig popup . Note it will delete querystring if previuosly set in url \r\n this.router.navigate([{ outlets: { filterPopup: null, configPopup: null } }]);\r\n\r\n ////check login details\r\n if (sessionStorage.getItem('SystemSettings') != null) {\r\n this.logservice = JSON.parse(sessionStorage.getItem('SystemSettings'));\r\n }\r\n else if (localStorage.getItem('SystemSettings') != null) {\r\n this.logservice = JSON.parse(localStorage.getItem('SystemSettings'));\r\n }\r\n\r\n if (this.logservice.UserName != null && this.logservice.UserName != \"\") {\r\n\r\n if (this.logservice.UserName.length <= 0) {\r\n alert(\"Session expired!!\");\r\n this.router.navigateByUrl('/login');\r\n }\r\n this.loginDetails.UserName = this.logservice.UserName;//this.logservice.logDetail.split('@')[0];\r\n //this.loginDetails.Pin = this.logservice.logDetail.split('@')[1];\r\n }\r\n ////end checking login details\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n debugger;\r\n if (this.isChangePassword) {\r\n this.renderer.addClass(this.el.nativeElement, 'custom-class');\r\n }\r\n\r\n //alert('init');\r\n //const forgotPasswordKey = this.routeActive.snapshot.queryParamMap.get('fkey');\r\n ////to check if request is for reset password from email link clicked\r\n const forgotPasswordKey = this.route.snapshot.queryParamMap.get('fkey');\r\n \r\n\r\n if (forgotPasswordKey != null) {\r\n this.CheckVaildUserRequest(forgotPasswordKey);\r\n }\r\n\r\n this.parentEvent();\r\n\r\n ////below commented temporarily\r\n //if (this.logservice.logDetail != null) {\r\n\r\n // if (this.logservice.logDetail.length <= 0) {\r\n // alert(\"Session expired!!\");\r\n // this.router.navigateByUrl('/login');\r\n // }\r\n // this.loginDetails.UserName = this.logservice.logDetail.split('@')[0];\r\n // this.loginDetails.Pin = this.logservice.logDetail.split('@')[1];\r\n //}\r\n \r\n }\r\n\r\n CheckVaildUserRequest(forgotPasswordKey) {\r\n this.loading = true;\r\n this.loginDetails.ForgotPasswodKey = forgotPasswordKey;\r\n\r\n this.url = this.baseUrl + 'Login/CheckVaildForgotPasswordKey';\r\n this.LoginData_Service().subscribe((res: any) => {\r\n this.loading = false;\r\n let rows: any = res;\r\n if (rows == 'failed') {\r\n this.router.navigateByUrl('/login');\r\n alert('Link is not valid');\r\n }\r\n else {\r\n this.loginDetails.UserName = rows;\r\n }\r\n\r\n });\r\n }\r\n\r\n CheckValidation() {\r\n if (this.pin != this.ConfirmPin)\r\n return false;\r\n return true;\r\n }\r\n\r\n ResetPin() {\r\n //alert();\r\n this.loading = true;\r\n this.showError = false;\r\n this.showErrorMsg = \"\";\r\n if (!this.CheckValidation()) {\r\n this.showError = true;\r\n this.showErrorMsg = \"Pin and RetypePin should be same.\"\r\n return;\r\n }\r\n\r\n this.loginDetails.Pin = this.pin; //assign new pin\r\n\r\n this.url = this.baseUrl + 'Login/ResetPassword';\r\n this.LoginData_Service().subscribe((res: any) => {\r\n this.loading = false;\r\n let rows: any = res;//JSON.parse(res) as any;\r\n if (rows != \"success\") {\r\n this.showError = true;\r\n this.showErrorMsg = rows;\r\n }\r\n else {\r\n alert(\"Pin changed successfully,please login with new pin\");\r\n this.router.navigateByUrl('/login');\r\n }\r\n });\r\n }\r\n\r\n CheckChangePasswordValidation() {\r\n if (this.pin.trim() == \"\" || this.ConfirmPin.trim() == \"\" || this.OldPin.trim() == \"\") {\r\n this.showError = true;\r\n this.showErrorMsg = \"all fields are mandatory required. \"\r\n return false;\r\n }\r\n \r\n if (this.pin != this.ConfirmPin) {\r\n this.showError = true;\r\n this.showErrorMsg = \"Pin and RetypePin should be same.\"\r\n return false;\r\n }\r\n\r\n\r\n return true;\r\n }\r\n SaveNewPin() {\r\n debugger;\r\n this.loading = true;\r\n this.showError = false;\r\n this.showErrorMsg = \"\";\r\n if (!this.CheckChangePasswordValidation()) {\r\n this.loading = false;\r\n return;\r\n }\r\n\r\n this.loginDetails.OldPin = this.OldPin;\r\n this.loginDetails.Pin = this.pin; //assign new pin\r\n\r\n this.url = this.baseUrl + 'Login/ChangePassword';\r\n this.LoginData_Service().subscribe((res: any) => {\r\n this.loading = false;\r\n let rows: any = res;//JSON.parse(res) as any; \r\n this.showError = true;\r\n this.showErrorMsg = rows;\r\n\r\n ///redirect to login page after successfull change password\r\n if (rows.includes('success')) {\r\n setTimeout(() => {\r\n alert(\"Pin changed successfully,please login with new pin\");\r\n this.router.navigateByUrl('/logout');\r\n }, 2000);\r\n\r\n }\r\n\r\n\r\n });\r\n }\r\n\r\n ReturnToLogin() {\r\n this.router.navigateByUrl('login');\r\n }\r\n\r\n ///////////////////////////////////////////////////////// SERVICES\r\n\r\n GetData_Service() {\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, options);\r\n\r\n }\r\n LoginData_Service() {\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, this.loginDetails, options);\r\n\r\n }\r\n\r\n parentEvent() {\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n\r\n typeOld = 'password';\r\n typeNew = 'password';\r\n typeConf = 'password';\r\n onEyeClick(newOrConf) {\r\n //console.log(this.type)\r\n if (newOrConf=='new') {\r\n if (this.typeNew === \"password\") {\r\n this.typeNew = \"text\";\r\n }\r\n else {\r\n this.typeNew = \"password\";\r\n }\r\n }\r\n else if (newOrConf == 'old') {\r\n if (this.typeOld === \"password\") {\r\n this.typeOld = \"text\";\r\n }\r\n else {\r\n this.typeOld = \"password\";\r\n }\r\n }\r\n else {\r\n if (this.typeConf === \"password\") {\r\n this.typeConf = \"text\";\r\n }\r\n else {\r\n this.typeConf = \"password\";\r\n }\r\n }\r\n }\r\n\r\n\r\n close() {\r\n this.router.navigate([{ outlets: { popupOutlet: null } }]);\r\n }\r\n\r\n}\r\n","module.exports = \"/*@import url('../../../lib/styles/spinners.css');*/\\n/*:host {\\n display: flex;\\n justify-content: center;\\n margin: 120px 0px;\\n background-image: url(src/assets/images/gl/wallpaper.jpg);\\n height: 100%;\\n}*/\\n.containerHeight {\\n height: 100%;\\n padding-left: 2%;\\n}\\n/* Extra small devices (phones, 600px and down) */\\n@media only screen and (max-width: 600px) {\\n .containerHeight {\\n height: 600px;\\n }\\n}\\n/* Small devices (portrait tablets and large phones, 600px and up) */\\n@media only screen and (min-width: 600px) {\\n .containerHeight {\\n width: 1500px;\\n height: 616px;\\n }\\n}\\n/* Medium devices (landscape tablets, 768px and up) */\\n@media only screen and (min-width: 768px) {\\n .containerHeight {\\n width: 1500px;\\n height: 616px;\\n }\\n}\\n/* Large devices (laptops/desktops, 992px and up) */\\n@media only screen and (min-width: 992px) {\\n .containerHeight {\\n width: 1500px;\\n height: 616px;\\n }\\n}\\n@media only screen and (min-width: 1600px) {\\n .containerHeight {\\n width: 1500px;\\n height: 666px;\\n }\\n}\\n/* Extra large devices (large laptops and desktops, 1200px and up) */\\n@media only screen and (min-width: 1920px) {\\n .containerHeight {\\n width: 1800px;\\n height: 816px;\\n }\\n}\\n.mat-form-field {\\n width: 100%;\\n min-width: 300px;\\n}\\nmat-card-title,\\nmat-card-content {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-pack: center;\\n justify-content: center;\\n}\\n.error {\\n padding: 16px;\\n width: 300px;\\n color: white;\\n background-color: red;\\n}\\n.button {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-pack: end;\\n justify-content: flex-end;\\n}\\n/*spinner loader*/\\n/*start loader*/\\n#spinner {\\n -webkit-animation: frames 1s infinite linear;\\n animation: frames 1s infinite linear;\\n background: transparent;\\n border: 0.75vw solid #FFF;\\n border-radius: 100%;\\n border-top-color: #DF691A;\\n width: 5vw;\\n height: 5vw;\\n opacity: 0.6;\\n padding: 0;\\n position: absolute;\\n z-index: 999;\\n}\\n@-webkit-keyframes frames {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(359deg);\\n }\\n}\\n@keyframes frames {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(359deg);\\n }\\n}\\n#pause {\\n display: block;\\n background: rgba(0, 0, 0, 0.66) no-repeat 0 0;\\n width: 100%;\\n height: 100%;\\n position: fixed;\\n bottom: 0;\\n left: 0;\\n z-index: 1000;\\n}\\n/*end loader*/\\n.spinner_overlay {\\n position: fixed;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #fff;\\n opacity: 0.5;\\n z-index: 1000;\\n}\\n.spinner {\\n position: absolute;\\n left: 50%;\\n top: 20%;\\n height: 60px;\\n width: 60px;\\n margin: 0px auto;\\n -webkit-animation: rotation 0.6s infinite linear;\\n animation: rotation 0.6s infinite linear;\\n border-left: 6px solid rgba(0, 174, 239, 0.15);\\n border-right: 6px solid rgba(0, 174, 239, 0.15);\\n border-bottom: 6px solid rgba(0, 174, 239, 0.15);\\n border-top: 6px solid rgba(0, 174, 239, 0.8);\\n border-radius: 100%;\\n}\\n.login-block {\\n background: #7AC1E2;\\n /* fallback for old browsers */\\n /* Chrome 10-25, Safari 5.1-6 */\\n background: linear-gradient(to bottom, #162F9E, #7AC1E2);\\n /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */\\n float: left;\\n width: 100%;\\n height: 100%;\\n /*position: fixed;*/\\n bottom: 0;\\n left: 0;\\n padding-bottom: 22%;\\n}\\n.banner-sec {\\n /*https://images.pexels.com/photos/236451/pexels-photo-236451.jpeg*/\\n background: url('assets/images/Help/login/graphic_2.jpg') no-repeat left bottom;\\n background-size: cover;\\n width: 65%;\\n border: 1px solid blue;\\n border-left: 0px;\\n /*border-radius: 0 10px 10px 0;*/\\n /*https://dev.to/david_bilsonn/how-to-create-responsive-containers-for-your-website-step-by-step-tutorial-oko*/\\n position: relative;\\n}\\n/*https://www.w3docs.com/snippets/css/how-to-create-an-image-with-transparent-text-using-css.html*/\\n.text-block {\\n width: 100%;\\n /*height:100%;*/\\n position: absolute;\\n /*bottom: 50px;\\n left: 20px;*/\\n background-color: #000;\\n opacity: 0.6;\\n color: white;\\n vertical-align: middle;\\n text-align: center;\\n top: 60px;\\n /*padding-left: 20px;\\n padding-right: 20px;*/\\n}\\n.carousel-container {\\n background: #fff;\\n border-radius: 10px;\\n box-shadow: 15px 20px 0px rgba(0, 0, 0, 0.1);\\n width: 80%;\\n height: 60%;\\n}\\n.carousel-inner {\\n /*border-radius: 0 10px 10px 0;*/\\n}\\n.carousel-item {\\n padding: 0;\\n}\\n.carousel-caption {\\n text-align: left;\\n left: 5%;\\n}\\n.login-sec {\\n padding: 16px 16px;\\n position: relative;\\n background: #FFFFFF;\\n width: 35%;\\n border: 1px solid blue;\\n}\\n.warn-sec {\\n /*padding: 50px 30px;*/\\n position: relative;\\n background: #FFFFFF;\\n}\\n.login-sec .copy-text {\\n position: absolute;\\n width: 80%;\\n bottom: 20px;\\n font-size: 13px;\\n text-align: center;\\n}\\n.login-sec .copy-text i {\\n color: #FEB58A;\\n}\\n.login-sec .copy-text a {\\n color: #E36262;\\n}\\n.login-sec h2 {\\n margin-bottom: 30px;\\n font-weight: 800;\\n font-size: 30px;\\n color: #7AC1E2;\\n}\\n.login-sec h2:after {\\n content: \\\" \\\";\\n width: 100px;\\n height: 5px;\\n background: #FEB58A;\\n display: block;\\n margin-top: 20px;\\n border-radius: 3px;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n.btn-login {\\n background: #7AC1E2;\\n color: #fff;\\n font-weight: 600;\\n}\\n.banner-text {\\n width: 70%;\\n position: absolute;\\n bottom: 40px;\\n padding-left: 20px;\\n}\\n.banner-text h2 {\\n color: #fff;\\n font-weight: 600;\\n}\\n.banner-text h2:after {\\n content: \\\" \\\";\\n width: 100px;\\n height: 5px;\\n background: #FFF;\\n display: block;\\n margin-top: 20px;\\n border-radius: 3px;\\n}\\n.banner-text p {\\n color: #fff;\\n}\\n/*https://stackoverflow.com/questions/47235256/how-can-i-change-bootstrap-carousel-indicators-into-dots*/\\n.carousel-indicators li {\\n width: 10px;\\n height: 10px;\\n border-radius: 100%;\\n}\\n/*https://stackoverflow.com/questions/31316645/how-to-position-the-bootstrap-carousel-controls-to-the-extreme-right-and-extreme?rq=3*/\\n/*.carousel-control .fa-angle-right, .carousel-control .icon-next {\\n right: 0; //or you can increase this\\n}\\n.carousel-control .fa-angle-left, .carousel-control .icon-prev {\\n left: 0; //or you can increase this\\n}*/\\n/*https://stackoverflow.com/a/47401644*/\\n/*.carousel-control-prev,\\n.carousel-control-next {\\n bottom: 75%;\\n}*/\\n/*https://stackoverflow.com/questions/2005954/center-a-positionfixed-element\\n https://stackoverflow.com/questions/53728817/vertical-alignment-in-a-position-fixed-div\\n*/\\n.containerFixed {\\n position: fixed;\\n top: 50%;\\n left: 50%;\\n -ms-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbG9naW4vRDpcXFNyY3dlYlxcVlMyMDE3IFByb2plY3RzXFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3L3NyY1xcYXBwXFxsb2dpblxcbG9naW4uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1EQUFBO0FBQ0E7Ozs7OztFQUFBO0FBUUE7RUFDRSxZQUFBO0VBQ0EsZ0JBQUE7QUNBRjtBREVBLGlEQUFBO0FBQ0E7RUFDRTtJQUNFLGFBQUE7RUNDRjtBQUNGO0FERUEsb0VBQUE7QUFDQTtFQUNFO0lBQ0UsYUFBQTtJQUNBLGFBQUE7RUNBRjtBQUNGO0FER0EscURBQUE7QUFDQTtFQUNFO0lBQ0UsYUFBQTtJQUNBLGFBQUE7RUNERjtBQUNGO0FESUEsbURBQUE7QUFDQTtFQUNFO0lBQ0UsYUFBQTtJQUNBLGFBQUE7RUNGRjtBQUNGO0FES0E7RUFDRTtJQUNFLGFBQUE7SUFDQSxhQUFBO0VDSEY7QUFDRjtBRE1BLG9FQUFBO0FBQ0E7RUFDRTtJQUNFLGFBQUE7SUFDQSxhQUFBO0VDSkY7QUFDRjtBRE9BO0VBQ0UsV0FBQTtFQUNBLGdCQUFBO0FDTEY7QURRQTs7RUFFRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSxxQkFBQTtNQUFBLHVCQUFBO0FDTEY7QURRQTtFQUNFLGFBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLHFCQUFBO0FDTEY7QURRQTtFQUNFLG9CQUFBO0VBQUEsYUFBQTtFQUNBLGtCQUFBO01BQUEseUJBQUE7QUNMRjtBRFFBLGlCQUFBO0FBSUEsZUFBQTtBQUNBO0VBQ0UsNENBQUE7RUFDQSxvQ0FBQTtFQUNBLHVCQUFBO0VBQ0EseUJBQUE7RUFDQSxtQkFBQTtFQUNBLHlCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtBQ1JG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dCI6WyIvKkBpbXBvcnQgdXJsKCcuLi8uLi8uLi9saWIvc3R5bGVzL3NwaW5uZXJzLmNzcycpOyovXHJcbi8qOmhvc3Qge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgbWFyZ2luOiAxMjBweCAwcHg7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHNyYy9hc3NldHMvaW1hZ2VzL2dsL3dhbGxwYXBlci5qcGcpO1xyXG4gIGhlaWdodDogMTAwJTtcclxufSovXHJcblxyXG4uY29udGFpbmVySGVpZ2h0IHtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgcGFkZGluZy1sZWZ0OiAyJTtcclxufVxyXG4vKiBFeHRyYSBzbWFsbCBkZXZpY2VzIChwaG9uZXMsIDYwMHB4IGFuZCBkb3duKSAqL1xyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XHJcbiAgLmNvbnRhaW5lckhlaWdodCB7XHJcbiAgICBoZWlnaHQ6IDYwMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLyogU21hbGwgZGV2aWNlcyAocG9ydHJhaXQgdGFibGV0cyBhbmQgbGFyZ2UgcGhvbmVzLCA2MDBweCBhbmQgdXApICovXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcclxuICAuY29udGFpbmVySGVpZ2h0IHtcclxuICAgIHdpZHRoOiAxNTAwcHg7XHJcbiAgICBoZWlnaHQ6IDYxNnB4O1xyXG4gIH1cclxufVxyXG5cclxuLyogTWVkaXVtIGRldmljZXMgKGxhbmRzY2FwZSB0YWJsZXRzLCA3NjhweCBhbmQgdXApICovXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuICAuY29udGFpbmVySGVpZ2h0IHtcclxuICAgIHdpZHRoOiAxNTAwcHg7XHJcbiAgICBoZWlnaHQ6IDYxNnB4O1xyXG4gIH1cclxufVxyXG5cclxuLyogTGFyZ2UgZGV2aWNlcyAobGFwdG9wcy9kZXNrdG9wcywgOTkycHggYW5kIHVwKSAqL1xyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XHJcbiAgLmNvbnRhaW5lckhlaWdodCB7XHJcbiAgICB3aWR0aDogMTUwMHB4O1xyXG4gICAgaGVpZ2h0OiA2MTZweDtcclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTYwMHB4KSB7XHJcbiAgLmNvbnRhaW5lckhlaWdodCB7XHJcbiAgICB3aWR0aDogMTUwMHB4O1xyXG4gICAgaGVpZ2h0OiA2NjZweDtcclxuICB9XHJcbn1cclxuXHJcbi8qIEV4dHJhIGxhcmdlIGRldmljZXMgKGxhcmdlIGxhcHRvcHMgYW5kIGRlc2t0b3BzLCAxMjAwcHggYW5kIHVwKSAqL1xyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MjBweCkge1xyXG4gIC5jb250YWluZXJIZWlnaHQge1xyXG4gICAgd2lkdGg6MTgwMHB4O1xyXG4gICAgaGVpZ2h0OiA4MTZweDtcclxuICB9XHJcbn1cclxuXHJcbi5tYXQtZm9ybS1maWVsZCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWluLXdpZHRoOiAzMDBweDtcclxufVxyXG5cclxubWF0LWNhcmQtdGl0bGUsXHJcbm1hdC1jYXJkLWNvbnRlbnQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbi5lcnJvciB7XHJcbiAgcGFkZGluZzogMTZweDtcclxuICB3aWR0aDogMzAwcHg7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJlZDtcclxufVxyXG5cclxuLmJ1dHRvbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59XHJcblxyXG4vKnNwaW5uZXIgbG9hZGVyKi9cclxuXHJcblxyXG5cclxuLypzdGFydCBsb2FkZXIqL1xyXG4jc3Bpbm5lciB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGZyYW1lcyAxcyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgYW5pbWF0aW9uOiBmcmFtZXMgMXMgaW5maW5pdGUgbGluZWFyO1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlcjogMC43NXZ3IHNvbGlkICNGRkY7XHJcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxuICBib3JkZXItdG9wLWNvbG9yOiAjREY2OTFBO1xyXG4gIHdpZHRoOiA1dnc7XHJcbiAgaGVpZ2h0OiA1dnc7XHJcbiAgb3BhY2l0eTogLjY7XHJcbiAgcGFkZGluZzogMDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgei1pbmRleDogOTk5O1xyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGZyYW1lcyB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gIH1cclxuXHJcbiAgMTAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xyXG4gIH1cclxufVxyXG5cclxuI3BhdXNlIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNjYpIG5vLXJlcGVhdCAwIDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICB6LWluZGV4OiAxMDAwO1xyXG59XHJcblxyXG4vKmVuZCBsb2FkZXIqL1xyXG5cclxuLnNwaW5uZXJfb3ZlcmxheSB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIGxlZnQ6IDA7XHJcbiAgdG9wOiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gIG9wYWNpdHk6IDAuNTtcclxuICB6LWluZGV4OiAxMDAwO1xyXG59XHJcblxyXG4uc3Bpbm5lciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0b3A6IDIwJTtcclxuICBoZWlnaHQ6IDYwcHg7XHJcbiAgd2lkdGg6IDYwcHg7XHJcbiAgbWFyZ2luOiAwcHggYXV0bztcclxuICAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRpb24gLjZzIGluZmluaXRlIGxpbmVhcjtcclxuICAtbW96LWFuaW1hdGlvbjogcm90YXRpb24gLjZzIGluZmluaXRlIGxpbmVhcjtcclxuICAtby1hbmltYXRpb246IHJvdGF0aW9uIC42cyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgYW5pbWF0aW9uOiByb3RhdGlvbiAuNnMgaW5maW5pdGUgbGluZWFyO1xyXG4gIGJvcmRlci1sZWZ0OiA2cHggc29saWQgcmdiYSgwLDE3NCwyMzksLjE1KTtcclxuICBib3JkZXItcmlnaHQ6IDZweCBzb2xpZCByZ2JhKDAsMTc0LDIzOSwuMTUpO1xyXG4gIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCByZ2JhKDAsMTc0LDIzOSwuMTUpO1xyXG4gIGJvcmRlci10b3A6IDZweCBzb2xpZCByZ2JhKDAsMTc0LDIzOSwuOCk7XHJcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxufVxyXG5cclxuXHJcblxyXG5cclxuLmxvZ2luLWJsb2NrIHtcclxuICBiYWNrZ3JvdW5kOiAjN0FDMUUyOyAvKiBmYWxsYmFjayBmb3Igb2xkIGJyb3dzZXJzICovXHJcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMTYyRjlFLCAjN0FDMUUyKTsgLyogQ2hyb21lIDEwLTI1LCBTYWZhcmkgNS4xLTYgKi9cclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMTYyRjlFLCAjN0FDMUUyKTsgLyogVzNDLCBJRSAxMCsvIEVkZ2UsIEZpcmVmb3ggMTYrLCBDaHJvbWUgMjYrLCBPcGVyYSAxMissIFNhZmFyaSA3KyAqL1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICAvKnBvc2l0aW9uOiBmaXhlZDsqL1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHBhZGRpbmctYm90dG9tOiAyMiU7XHJcbn1cclxuXHJcbi5iYW5uZXItc2VjIHtcclxuICAvKmh0dHBzOi8vaW1hZ2VzLnBleGVscy5jb20vcGhvdG9zLzIzNjQ1MS9wZXhlbHMtcGhvdG8tMjM2NDUxLmpwZWcqL1xyXG4gIGJhY2tncm91bmQ6IHVybCguLi8uLi9hc3NldHMvaW1hZ2VzL0hlbHAvbG9naW4vZ3JhcGhpY18yLmpwZykgbm8tcmVwZWF0IGxlZnQgYm90dG9tO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgd2lkdGg6IDY1JTtcclxuICBib3JkZXI6IDFweCBzb2xpZCBibHVlO1xyXG4gIGJvcmRlci1sZWZ0OiAwcHg7XHJcbiAgLypib3JkZXItcmFkaXVzOiAwIDEwcHggMTBweCAwOyovXHJcbiAgLypodHRwczovL2Rldi50by9kYXZpZF9iaWxzb25uL2hvdy10by1jcmVhdGUtcmVzcG9uc2l2ZS1jb250YWluZXJzLWZvci15b3VyLXdlYnNpdGUtc3RlcC1ieS1zdGVwLXR1dG9yaWFsLW9rbyovXHJcblxyXG5cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi8qaHR0cHM6Ly93d3cudzNkb2NzLmNvbS9zbmlwcGV0cy9jc3MvaG93LXRvLWNyZWF0ZS1hbi1pbWFnZS13aXRoLXRyYW5zcGFyZW50LXRleHQtdXNpbmctY3NzLmh0bWwqL1xyXG4udGV4dC1ibG9jayB7XHJcbiAgd2lkdGg6MTAwJTtcclxuICAvKmhlaWdodDoxMDAlOyovXHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIC8qYm90dG9tOiA1MHB4O1xyXG4gIGxlZnQ6IDIwcHg7Ki9cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xyXG4gIG9wYWNpdHk6IDAuNjtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgdmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG4gIHRleHQtYWxpZ246Y2VudGVyO1xyXG4gIHRvcDo2MHB4O1xyXG4gIC8qcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7Ki9cclxufVxyXG5cclxuLmNhcm91c2VsLWNvbnRhaW5lciB7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjtcclxuICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gIGJveC1zaGFkb3c6IDE1cHggMjBweCAwcHggcmdiYSgwLDAsMCwwLjEpO1xyXG4gIHdpZHRoOjgwJTtcclxuICBoZWlnaHQ6NjAlO1xyXG59XHJcblxyXG4uY2Fyb3VzZWwtaW5uZXIge1xyXG4gIC8qYm9yZGVyLXJhZGl1czogMCAxMHB4IDEwcHggMDsqL1xyXG59XHJcblxyXG4uY2Fyb3VzZWwtaXRlbSB7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLmNhcm91c2VsLWNhcHRpb24ge1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgbGVmdDogNSU7XHJcbn1cclxuXHJcbi5sb2dpbi1zZWMge1xyXG4gIHBhZGRpbmc6IDE2cHggMTZweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcclxuICB3aWR0aDogMzUlO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIGJsdWU7XHJcbn1cclxuLndhcm4tc2VjIHtcclxuICAvKnBhZGRpbmc6IDUwcHggMzBweDsqL1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xyXG59XHJcblxyXG4ubG9naW4tc2VjIC5jb3B5LXRleHQge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB3aWR0aDogODAlO1xyXG4gIGJvdHRvbTogMjBweDtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4ubG9naW4tc2VjIC5jb3B5LXRleHQgaSB7XHJcbiAgY29sb3I6ICNGRUI1OEE7XHJcbn1cclxuXHJcbi5sb2dpbi1zZWMgLmNvcHktdGV4dCBhIHtcclxuICBjb2xvcjogI0UzNjI2MjtcclxufVxyXG5cclxuLmxvZ2luLXNlYyBoMiB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICBmb250LXdlaWdodDogODAwO1xyXG4gIGZvbnQtc2l6ZTogMzBweDtcclxuICBjb2xvcjogIzdBQzFFMjtcclxufVxyXG5cclxuLmxvZ2luLXNlYyBoMjphZnRlciB7XHJcbiAgY29udGVudDogXCIgXCI7XHJcbiAgd2lkdGg6IDEwMHB4O1xyXG4gIGhlaWdodDogNXB4O1xyXG4gIGJhY2tncm91bmQ6ICNGRUI1OEE7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbWFyZ2luLXRvcDogMjBweDtcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvXHJcbn1cclxuXHJcbi5idG4tbG9naW4ge1xyXG4gIGJhY2tncm91bmQ6ICM3QUMxRTI7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuLmJhbm5lci10ZXh0IHtcclxuICB3aWR0aDogNzAlO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IDQwcHg7XHJcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG59XHJcblxyXG4uYmFubmVyLXRleHQgaDIge1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbi5iYW5uZXItdGV4dCBoMjphZnRlciB7XHJcbiAgY29udGVudDogXCIgXCI7XHJcbiAgd2lkdGg6IDEwMHB4O1xyXG4gIGhlaWdodDogNXB4O1xyXG4gIGJhY2tncm91bmQ6ICNGRkY7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbWFyZ2luLXRvcDogMjBweDtcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbn1cclxuXHJcbi5iYW5uZXItdGV4dCBwIHtcclxuICBjb2xvcjogI2ZmZjtcclxufVxyXG5cclxuLypodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80NzIzNTI1Ni9ob3ctY2FuLWktY2hhbmdlLWJvb3RzdHJhcC1jYXJvdXNlbC1pbmRpY2F0b3JzLWludG8tZG90cyovXHJcbi5jYXJvdXNlbC1pbmRpY2F0b3JzIGxpIHtcclxuICB3aWR0aDogMTBweDtcclxuICBoZWlnaHQ6IDEwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxufVxyXG5cclxuLypodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zMTMxNjY0NS9ob3ctdG8tcG9zaXRpb24tdGhlLWJvb3RzdHJhcC1jYXJvdXNlbC1jb250cm9scy10by10aGUtZXh0cmVtZS1yaWdodC1hbmQtZXh0cmVtZT9ycT0zKi9cclxuLyouY2Fyb3VzZWwtY29udHJvbCAuZmEtYW5nbGUtcmlnaHQsIC5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHQge1xyXG4gIHJpZ2h0OiAwOyAvL29yIHlvdSBjYW4gaW5jcmVhc2UgdGhpc1xyXG59XHJcbi5jYXJvdXNlbC1jb250cm9sIC5mYS1hbmdsZS1sZWZ0LCAuY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1wcmV2IHtcclxuICBsZWZ0OiAwOyAvL29yIHlvdSBjYW4gaW5jcmVhc2UgdGhpc1xyXG59Ki9cclxuXHJcbi8qaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQ3NDAxNjQ0Ki9cclxuLyouY2Fyb3VzZWwtY29udHJvbC1wcmV2LFxyXG4uY2Fyb3VzZWwtY29udHJvbC1uZXh0IHtcclxuICBib3R0b206IDc1JTtcclxufSovXHJcblxyXG4vKmh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzIwMDU5NTQvY2VudGVyLWEtcG9zaXRpb25maXhlZC1lbGVtZW50XHJcbiAgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTM3Mjg4MTcvdmVydGljYWwtYWxpZ25tZW50LWluLWEtcG9zaXRpb24tZml4ZWQtZGl2XHJcbiovXHJcbi5jb250YWluZXJGaXhlZCB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogNTAlO1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgIFxyXG59XHJcbiIsIi8qQGltcG9ydCB1cmwoJy4uLy4uLy4uL2xpYi9zdHlsZXMvc3Bpbm5lcnMuY3NzJyk7Ki9cbi8qOmhvc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiAxMjBweCAwcHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChzcmMvYXNzZXRzL2ltYWdlcy9nbC93YWxscGFwZXIuanBnKTtcbiAgaGVpZ2h0OiAxMDAlO1xufSovXG4uY29udGFpbmVySGVpZ2h0IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nLWxlZnQ6IDIlO1xufVxuXG4vKiBFeHRyYSBzbWFsbCBkZXZpY2VzIChwaG9uZXMsIDYwMHB4IGFuZCBkb3duKSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAuY29udGFpbmVySGVpZ2h0IHtcbiAgICBoZWlnaHQ6IDYwMHB4O1xuICB9XG59XG4vKiBTbWFsbCBkZXZpY2VzIChwb3J0cmFpdCB0YWJsZXRzIGFuZCBsYXJnZSBwaG9uZXMsIDYwMHB4IGFuZCB1cCkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLmNvbnRhaW5lckhlaWdodCB7XG4gICAgd2lkdGg6IDE1MDBweDtcbiAgICBoZWlnaHQ6IDYxNnB4O1xuICB9XG59XG4vKiBNZWRpdW0gZGV2aWNlcyAobGFuZHNjYXBlIHRhYmxldHMsIDc2OHB4IGFuZCB1cCkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbnRhaW5lckhlaWdodCB7XG4gICAgd2lkdGg6IDE1MDBweDtcbiAgICBoZWlnaHQ6IDYxNnB4O1xuICB9XG59XG4vKiBMYXJnZSBkZXZpY2VzIChsYXB0b3BzL2Rlc2t0b3BzLCA5OTJweCBhbmQgdXApICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5jb250YWluZXJIZWlnaHQge1xuICAgIHdpZHRoOiAxNTAwcHg7XG4gICAgaGVpZ2h0OiA2MTZweDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNjAwcHgpIHtcbiAgLmNvbnRhaW5lckhlaWdodCB7XG4gICAgd2lkdGg6IDE1MDBweDtcbiAgICBoZWlnaHQ6IDY2NnB4O1xuICB9XG59XG4vKiBFeHRyYSBsYXJnZSBkZXZpY2VzIChsYXJnZSBsYXB0b3BzIGFuZCBkZXNrdG9wcywgMTIwMHB4IGFuZCB1cCkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC5jb250YWluZXJIZWlnaHQge1xuICAgIHdpZHRoOiAxODAwcHg7XG4gICAgaGVpZ2h0OiA4MTZweDtcbiAgfVxufVxuLm1hdC1mb3JtLWZpZWxkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMzAwcHg7XG59XG5cbm1hdC1jYXJkLXRpdGxlLFxubWF0LWNhcmQtY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uZXJyb3Ige1xuICBwYWRkaW5nOiAxNnB4O1xuICB3aWR0aDogMzAwcHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xufVxuXG4uYnV0dG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLypzcGlubmVyIGxvYWRlciovXG4vKnN0YXJ0IGxvYWRlciovXG4jc3Bpbm5lciB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmcmFtZXMgMXMgaW5maW5pdGUgbGluZWFyO1xuICBhbmltYXRpb246IGZyYW1lcyAxcyBpbmZpbml0ZSBsaW5lYXI7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDAuNzV2dyBzb2xpZCAjRkZGO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBib3JkZXItdG9wLWNvbG9yOiAjREY2OTFBO1xuICB3aWR0aDogNXZ3O1xuICBoZWlnaHQ6IDV2dztcbiAgb3BhY2l0eTogMC42O1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDk5OTtcbn1cblxuQGtleWZyYW1lcyBmcmFtZXMge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcbiAgfVxufVxuI3BhdXNlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42Nikgbm8tcmVwZWF0IDAgMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG59XG5cbi8qZW5kIGxvYWRlciovXG4uc3Bpbm5lcl9vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIG9wYWNpdHk6IDAuNTtcbiAgei1pbmRleDogMTAwMDtcbn1cblxuLnNwaW5uZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiAyMCU7XG4gIGhlaWdodDogNjBweDtcbiAgd2lkdGg6IDYwcHg7XG4gIG1hcmdpbjogMHB4IGF1dG87XG4gIC13ZWJraXQtYW5pbWF0aW9uOiByb3RhdGlvbiAwLjZzIGluZmluaXRlIGxpbmVhcjtcbiAgLW1vei1hbmltYXRpb246IHJvdGF0aW9uIDAuNnMgaW5maW5pdGUgbGluZWFyO1xuICAtby1hbmltYXRpb246IHJvdGF0aW9uIDAuNnMgaW5maW5pdGUgbGluZWFyO1xuICBhbmltYXRpb246IHJvdGF0aW9uIDAuNnMgaW5maW5pdGUgbGluZWFyO1xuICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHJnYmEoMCwgMTc0LCAyMzksIDAuMTUpO1xuICBib3JkZXItcmlnaHQ6IDZweCBzb2xpZCByZ2JhKDAsIDE3NCwgMjM5LCAwLjE1KTtcbiAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkIHJnYmEoMCwgMTc0LCAyMzksIDAuMTUpO1xuICBib3JkZXItdG9wOiA2cHggc29saWQgcmdiYSgwLCAxNzQsIDIzOSwgMC44KTtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbn1cblxuLmxvZ2luLWJsb2NrIHtcbiAgYmFja2dyb3VuZDogIzdBQzFFMjtcbiAgLyogZmFsbGJhY2sgZm9yIG9sZCBicm93c2VycyAqL1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMxNjJGOUUsICM3QUMxRTIpO1xuICAvKiBDaHJvbWUgMTAtMjUsIFNhZmFyaSA1LjEtNiAqL1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMTYyRjlFLCAjN0FDMUUyKTtcbiAgLyogVzNDLCBJRSAxMCsvIEVkZ2UsIEZpcmVmb3ggMTYrLCBDaHJvbWUgMjYrLCBPcGVyYSAxMissIFNhZmFyaSA3KyAqL1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgLypwb3NpdGlvbjogZml4ZWQ7Ki9cbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMjIlO1xufVxuXG4uYmFubmVyLXNlYyB7XG4gIC8qaHR0cHM6Ly9pbWFnZXMucGV4ZWxzLmNvbS9waG90b3MvMjM2NDUxL3BleGVscy1waG90by0yMzY0NTEuanBlZyovXG4gIGJhY2tncm91bmQ6IHVybCguLi8uLi9hc3NldHMvaW1hZ2VzL0hlbHAvbG9naW4vZ3JhcGhpY18yLmpwZykgbm8tcmVwZWF0IGxlZnQgYm90dG9tO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICB3aWR0aDogNjUlO1xuICBib3JkZXI6IDFweCBzb2xpZCBibHVlO1xuICBib3JkZXItbGVmdDogMHB4O1xuICAvKmJvcmRlci1yYWRpdXM6IDAgMTBweCAxMHB4IDA7Ki9cbiAgLypodHRwczovL2Rldi50by9kYXZpZF9iaWxzb25uL2hvdy10by1jcmVhdGUtcmVzcG9uc2l2ZS1jb250YWluZXJzLWZvci15b3VyLXdlYnNpdGUtc3RlcC1ieS1zdGVwLXR1dG9yaWFsLW9rbyovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLypodHRwczovL3d3dy53M2RvY3MuY29tL3NuaXBwZXRzL2Nzcy9ob3ctdG8tY3JlYXRlLWFuLWltYWdlLXdpdGgtdHJhbnNwYXJlbnQtdGV4dC11c2luZy1jc3MuaHRtbCovXG4udGV4dC1ibG9jayB7XG4gIHdpZHRoOiAxMDAlO1xuICAvKmhlaWdodDoxMDAlOyovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLypib3R0b206IDUwcHg7XG4gIGxlZnQ6IDIwcHg7Ki9cbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgb3BhY2l0eTogMC42O1xuICBjb2xvcjogd2hpdGU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdG9wOiA2MHB4O1xuICAvKnBhZGRpbmctbGVmdDogMjBweDtcbiAgcGFkZGluZy1yaWdodDogMjBweDsqL1xufVxuXG4uY2Fyb3VzZWwtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm94LXNoYWRvdzogMTVweCAyMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIHdpZHRoOiA4MCU7XG4gIGhlaWdodDogNjAlO1xufVxuXG4uY2Fyb3VzZWwtaW5uZXIge1xuICAvKmJvcmRlci1yYWRpdXM6IDAgMTBweCAxMHB4IDA7Ki9cbn1cblxuLmNhcm91c2VsLWl0ZW0ge1xuICBwYWRkaW5nOiAwO1xufVxuXG4uY2Fyb3VzZWwtY2FwdGlvbiB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGxlZnQ6IDUlO1xufVxuXG4ubG9naW4tc2VjIHtcbiAgcGFkZGluZzogMTZweCAxNnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIHdpZHRoOiAzNSU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGJsdWU7XG59XG5cbi53YXJuLXNlYyB7XG4gIC8qcGFkZGluZzogNTBweCAzMHB4OyovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbn1cblxuLmxvZ2luLXNlYyAuY29weS10ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogODAlO1xuICBib3R0b206IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubG9naW4tc2VjIC5jb3B5LXRleHQgaSB7XG4gIGNvbG9yOiAjRkVCNThBO1xufVxuXG4ubG9naW4tc2VjIC5jb3B5LXRleHQgYSB7XG4gIGNvbG9yOiAjRTM2MjYyO1xufVxuXG4ubG9naW4tc2VjIGgyIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBjb2xvcjogIzdBQzFFMjtcbn1cblxuLmxvZ2luLXNlYyBoMjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogNXB4O1xuICBiYWNrZ3JvdW5kOiAjRkVCNThBO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uYnRuLWxvZ2luIHtcbiAgYmFja2dyb3VuZDogIzdBQzFFMjtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5iYW5uZXItdGV4dCB7XG4gIHdpZHRoOiA3MCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiA0MHB4O1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG59XG5cbi5iYW5uZXItdGV4dCBoMiB7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uYmFubmVyLXRleHQgaDI6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgd2lkdGg6IDEwMHB4O1xuICBoZWlnaHQ6IDVweDtcbiAgYmFja2dyb3VuZDogI0ZGRjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLmJhbm5lci10ZXh0IHAge1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLypodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80NzIzNTI1Ni9ob3ctY2FuLWktY2hhbmdlLWJvb3RzdHJhcC1jYXJvdXNlbC1pbmRpY2F0b3JzLWludG8tZG90cyovXG4uY2Fyb3VzZWwtaW5kaWNhdG9ycyBsaSB7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG59XG5cbi8qaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzEzMTY2NDUvaG93LXRvLXBvc2l0aW9uLXRoZS1ib290c3RyYXAtY2Fyb3VzZWwtY29udHJvbHMtdG8tdGhlLWV4dHJlbWUtcmlnaHQtYW5kLWV4dHJlbWU/cnE9MyovXG4vKi5jYXJvdXNlbC1jb250cm9sIC5mYS1hbmdsZS1yaWdodCwgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCB7XG4gIHJpZ2h0OiAwOyAvL29yIHlvdSBjYW4gaW5jcmVhc2UgdGhpc1xufVxuLmNhcm91c2VsLWNvbnRyb2wgLmZhLWFuZ2xlLWxlZnQsIC5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXYge1xuICBsZWZ0OiAwOyAvL29yIHlvdSBjYW4gaW5jcmVhc2UgdGhpc1xufSovXG4vKmh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80NzQwMTY0NCovXG4vKi5jYXJvdXNlbC1jb250cm9sLXByZXYsXG4uY2Fyb3VzZWwtY29udHJvbC1uZXh0IHtcbiAgYm90dG9tOiA3NSU7XG59Ki9cbi8qaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjAwNTk1NC9jZW50ZXItYS1wb3NpdGlvbmZpeGVkLWVsZW1lbnRcbiAgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTM3Mjg4MTcvdmVydGljYWwtYWxpZ25tZW50LWluLWEtcG9zaXRpb24tZml4ZWQtZGl2XG4qL1xuLmNvbnRhaW5lckZpeGVkIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn0iXX0= */\"","import { Component, OnInit, Output, EventEmitter, ViewChild, Sanitizer, ElementRef, ChangeDetectorRef, Inject } from '@angular/core';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { request } from 'http';\r\nimport { Router, ActivatedRoute, NavigationEnd } from '@angular/router';\r\n//import { RequestMetadata, PagedResult } from '../../../../lib/ng-crud-table';\r\nimport { MatTableDataSource, fadeInContent } from '@angular/material';\r\nimport { DataSource } from '@angular/cdk/table';\r\nimport { MatDialog, MatDialogConfig, PageEvent, MatPaginator } from '@angular/material';\r\nimport { Row } from 'lib/ng-data-table';\r\nimport { SelectItem, Keys } from 'lib/common';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as moment from 'moment';\r\nimport { ConfirmDialogComponent } from 'src/app/shared/components/confirm-dialog/confirm-dialog.component';\r\nimport { NgSwitchCase, DOCUMENT } from '@angular/common';\r\nimport { validateBasis } from '@angular/flex-layout';\r\nimport { SystemSettingConfig } from '../shared/models/SystemSettingConfig';\r\nimport { AppComponent } from '../app.component';\r\nimport { SystemSettingsService } from '../shared/services/system-settings/system-settings.service';\r\nimport { transcode } from 'buffer';\r\nimport { filter } from 'rxjs/operators';\r\nimport { CommonFilterService } from '../shared/services/common-filter/common-filter.service';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n rsltType: string = \"login\";\r\n\r\n title: string = \"Login\";\r\n staticScreen = true;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n baseUrl: string;\r\n url: string;\r\n showError: boolean = false;\r\n showErrorMsg: string = \"\";\r\n restrictPage: string = \"5\";\r\n keyword: any;\r\n adminName: any;\r\n isRebrandCompany: boolean = false;\r\n versionLabel: string = \"6.4.2\";\r\n loginType: string = \"\";\r\n\r\n localOrSession: boolean = false;\r\n loading: boolean = false;\r\n isLicenceChecked: boolean = false;\r\n\r\n loginCred = new SystemSettingConfig();\r\n sysSetting = new SystemSettingConfig();\r\n\r\n isCommonLogo: boolean = true;\r\n\r\n logserviceHTML: SystemSettingsService;\r\n //private parent: AppComponent, \r\n constructor(private http: HttpClient, private logservice: SystemSettingsService, private commonFilterService: CommonFilterService, private cdr: ChangeDetectorRef, private dialog: MatDialog, @Inject(DOCUMENT) private _document: Document, private router: Router, private route: ActivatedRoute) {\r\n this.logserviceHTML = logservice; \r\n this.baseUrl = environment.urlAddress + '/api/';\r\n this.ConfigSettings_Service();\r\n this.keyword = this.route.snapshot.queryParamMap.get('k');\r\n if (this.keyword != null) {\r\n //if (this.localOrSession) {\r\n // localStorage.removeItem('Keyword');\r\n // localStorage.clear();\r\n\r\n // localStorage.setItem('Keyword', keyword1);\r\n //}\r\n //else {\r\n // sessionStorage.removeItem('Keyword');\r\n // sessionStorage.clear();\r\n\r\n // sessionStorage.setItem('Keyword', keyword1);\r\n //}\r\n this.loginCred.UserName = \"\";\r\n this.KeywordLogin(this.keyword);\r\n }\r\n else\r\n this.LicenceCheck();\r\n\r\n }\r\n\r\n ngOnInit() {\r\n //this.GetSystemConfig();//NOT NEEDED\r\n ///// to do hard refresh after logout so that already selected filters/dates should be set to default\r\n let isLogout = this.route.snapshot.queryParamMap.get('logout');\r\n if (isLogout) {\r\n //console.log('logged out reload')\r\n this.router.events.pipe(\r\n filter(event => event instanceof NavigationEnd)\r\n ).subscribe(() => {\r\n (window as any).location.reload();\r\n });\r\n }\r\n }\r\n\r\n\r\n GetSystemConfig() {\r\n this.url = this.baseUrl + 'UserAndSytemConfig/GetUserSystemConfiguration';\r\n\r\n this.GetConfigurations_Service().subscribe((res: any) => {\r\n //debugger;\r\n let rows: any[] = JSON.parse(res) as any[];\r\n\r\n //this.sysSetting.AdminName = rows[\"AdminName\"];\r\n //this.sysSetting.DBType = rows[\"DBType\"];\r\n //this.sysSetting.DB_Name = rows[\"DB_Name\"];\r\n //this.sysSetting.UserName = rows[\"UserName\"];\r\n //this.sysSetting.Pin = rows[\"Pin\"];\r\n //if (this.sysSetting.DBType != \"1\")\r\n // this.sysSetting.Port = rows[\"Port\"];\r\n ////this.sysSetting.DBPath = rows[\"DBPath\"];\r\n ////this.sysSetting.ByPassPin = rows[\"ByPassPin\"];\r\n //this.sysSetting.FailureCalls = rows[\"FailureCalls\"];\r\n this.sysSetting.GoogleMapsAPIKey = rows[\"GoogleMapsAPIKey\"];\r\n if (this.sysSetting.GoogleMapsAPIKey !== \"\")\r\n this.SaveConfiuration();\r\n ////this.sysSetting.SortEvents = rows[\"SortEvents\"];\r\n ////this.sysSetting.CallTypeTerminating = rows[\"CallTypeTerminating\"];\r\n ////this.sysSetting.OutPutGPSFormat = rows[\"OutPutGPSFormat\"];\r\n ////this.sysSetting.OutPutTimestampFormat = rows[\"OutPutTimestampFormat\"];\r\n ////this.sysSetting.SendConfigToScheduler = rows[\"SendConfigToScheduler\"];\r\n //this.sysSetting.DB_IP = rows[\"DB_IP\"];\r\n //this.sysSetting.LoginType = rows[\"LoginType\"];\r\n\r\n //this.selectedDBTypes = [rows[\"DBType\"]];\r\n ////this.selectedByPassPin = [rows[\"ByPassPin\"]];\r\n ////this.selectedOutputTimestamp = [rows[\"OutPutTimestampFormat\"]];\r\n ////this.selectedOutputGPS = [rows[\"OutPutGPSFormat\"]];\r\n ////this.selectedConfigScheduler = [rows[\"SendConfigToScheduler\"]];\r\n\r\n });\r\n }\r\n\r\n GetConfigurations_Service() {\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, options);\r\n\r\n }\r\n\r\n SaveConfiuration() {\r\n //debugger;\r\n\r\n //this.sysSetting.DBType = this.dbTypes.find(m => m.id == this.selectedDBTypes[0]).id;\r\n\r\n this.url = this.baseUrl + 'UserAndSytemConfig/SetMapsAPIKeyInHtml';\r\n this.SaveConfigurations_Service().subscribe((res: any) => {\r\n //console.log(res);\r\n if (res == \"success\") {\r\n //this.showErrorMsg = \"saved successfully\";\r\n //this.showError = true;\r\n }\r\n\r\n });\r\n }\r\n SaveConfigurations_Service() {\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, this.sysSetting, options);\r\n\r\n }\r\n\r\n ///to check software licence\r\n async LicenceCheck() {\r\n this.isLicenceChecked = false;\r\n this.loading = true;\r\n this.logservice.UserName = \"\";//IMP IMP\r\n this.url = this.baseUrl + 'Login/LicenseCheck';\r\n //console.log('loginLic:' + new Date())\r\n return await this.GetLicData_Service().toPromise().then((res: any) => {\r\n //debugger\r\n this.isLicenceChecked = true;\r\n let rows: any = res;//JSON.parse(res) as any;\r\n //console.log(rows + 'loginLic:' + new Date())\r\n if (rows == \"failed\") {\r\n this.loading = false;\r\n this.logservice.UserName = \"LicenseCheck\";\r\n this.router.navigateByUrl('login/LicenseCheck');\r\n }\r\n else {\r\n this.parentEvent();\r\n\r\n //this.loginCred.UserName = \"\";\r\n //this.keyword = this.route.snapshot.queryParamMap.get('k');\r\n //console.log('login init')\r\n //if (this.keyword != null) {\r\n // this.KeywordLogin(this.keyword);\r\n //}\r\n\r\n /// get LoginType\r\n this.isRebrandCompany = false;\r\n this.url = this.baseUrl + 'Login/GetLoginType';\r\n\r\n this.GetData_Service().subscribe((res: any) => {\r\n //debugger;\r\n let rows: any = res;//JSON.parse(res) as any;\r\n //console.log('loginTyped');\r\n if (rows != \"\" && rows != \"Login failed\") {\r\n this.isRebrandCompany = true;\r\n this.loginType = rows;\r\n this.logservice.LogType = rows;\r\n this.logservice.CompanyLogo = './assets/images/' + this.logservice.LogType + '/' + this.logservice.LogType + '_logo.png';\r\n this.logservice.CompanyRebrand = './assets/images/Rebrand/Rebrand.png';\r\n }\r\n else {\r\n this.isRebrandCompany = false;\r\n }\r\n this.loading = false;\r\n });\r\n }\r\n },\r\n error => {\r\n //console.log(error);\r\n this.loading = false;\r\n });\r\n }\r\n\r\n CheckValidation() {\r\n this.showError = false;\r\n this.showErrorMsg = \"\";\r\n\r\n if (this.loginCred.UserName == \"\" || this.loginCred.Pin == \"\") {\r\n this.showError = true;\r\n this.showErrorMsg = \"Username and Pin cannot be empty\";\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n Login() {\r\n this.loading = true;\r\n if (!this.CheckValidation()) {\r\n this.loading = false;\r\n return;\r\n }\r\n //localStorage.setItem('ConfigScreen', null);\r\n localStorage.removeItem('ConfigScreen');\r\n this.showError = false;\r\n this.url = this.baseUrl + 'Login/LoginCheck';\r\n //debugger;\r\n this.LoginData_Service().subscribe((res: any) => {\r\n //debugger;\r\n this.loading = false;\r\n let rows: any = res;//JSON.parse(res) as any;\r\n //console.log(rows)\r\n if (rows == \"wrong credentials\") {\r\n this.showError = true;\r\n this.showErrorMsg = rows;\r\n }\r\n else if (rows == \"Login failed\") {\r\n this.showError = true;\r\n this.showErrorMsg = rows;\r\n }\r\n else {\r\n let UserName = (rows == \"\" || rows == \"ADMIN_INCOMPLETEDATA\") ? 'admin' : rows.UserName;\r\n this.logservice.UserName = UserName;\r\n this.logservice.isLoggedIn = true;\r\n if (this.logservice.LogType != \"\") {\r\n this.logservice.isCommonLogo = false;\r\n this.isCommonLogo = false;\r\n }\r\n\r\n let currRoute = 'dashboard/pesq';\r\n if (rows != \"\" && rows != \"ADMIN_INCOMPLETEDATA\") {\r\n //this.logservice.pageRefMessage(rows.Screens);\r\n //this.parent.RestrictScreenAfterLogin(rows.Screens);\r\n this.logservice.Criteria = rows.Criteria;\r\n this.logservice.restrictScreens = rows.Screens;\r\n this.logservice.authorizeFilters = rows.StartUp.split('|').length == 4 ? rows.StartUp.split('|')[3] : \"\";\r\n ////////// check if user previlege configed any mainfilter or not\r\n if (!rows.StartUp.includes('ALLON') && rows.StartUp.split('|').length == 4)\r\n this.logservice.mainFilterIDs = rows.StartUp.split('|')[2];///ALLON\r\n if (rows.StartUp.split('|')[2] == '')\r\n this.logservice.ismainFilterEnabled = false;\r\n else\r\n this.logservice.mainFilterIDs = rows.StartUp.split('|')[2];///if mainfilter is selected and \r\n\r\n debugger;\r\n ////// to show/hide ModifyFilter in action control in dt-toolbar\r\n if (rows.StartUp.split('|')[2] != \"undefined\" && rows.StartUp.split('|')[2].length > 0) {\r\n this.commonFilterService.setIsFilters(false);\r\n }\r\n else\r\n this.commonFilterService.setIsFilters(true);\r\n\r\n\r\n this.SetStartUpScreen(rows.StartUp.split('|')[0]);\r\n currRoute = this.logservice.startupScreen.substring(1, this.logservice.startupScreen.length);\r\n }\r\n else {\r\n this.logservice.restrictScreens = \"\";\r\n this.logservice.Criteria = \"\";\r\n this.logservice.authorizeFilters = \"\";\r\n this.logservice.mainFilterIDs = \"\";\r\n this.logservice.ismainFilterEnabled = true;\r\n }\r\n\r\n //https://stackoverflow.com/questions/19867599/what-is-the-difference-between-localstorage-sessionstorage-session-and-cookies\r\n //https://www.c-sharpcorner.com/article/angular-7-login-with-session-authentication-using-the-reactive-form/\r\n if (this.localOrSession)\r\n localStorage.setItem('SystemSettings', JSON.stringify(this.logservice));\r\n else\r\n sessionStorage.setItem('SystemSettings', JSON.stringify(this.logservice));\r\n //debugger;\r\n\r\n\r\n ////testin purpose \r\n if (rows == \"ADMIN_INCOMPLETEDATA\") {\r\n //alert(\"To enhance the security of your account, please ensure to provide a valid email address and (WebViewer IP or Domain Name) information in the Admin and System Settings page.\");\r\n alert(\" Alert!! \\n Make your account secure by adding the right email and \\n WebViewer info in settings.\");\r\n //this.router.navigate(\r\n // [\r\n // //{ outlets: { filterPopup: null, configPopup: 'configuration/UserSetting/false/true' } }\r\n // { outlets: { filterPopup: null, configPopup: ['configuration', 'UserSetting', false, 'true'] } }\r\n // ],\r\n\r\n //);\r\n this.router.navigateByUrl(currRoute + '(configPopup:configuration/UserSetting/0/true)');\r\n return;\r\n }\r\n\r\n this.router.navigateByUrl(currRoute);\r\n }\r\n });\r\n }\r\n\r\n async KeywordLogin(keyword) {\r\n await this.LicenceCheck().then(() => {\r\n\r\n this.loading = true;\r\n this.showError = false;\r\n this.loginCred.LinkKeyword = keyword; ///for keywordlogin\r\n this.url = this.baseUrl + 'Login/KeywordLoginCheck';\r\n //debugger;\r\n this.LoginData_Service().subscribe((res: any) => {\r\n this.loading = false;\r\n //debugger;\r\n this.logservice.restrictScreens = \"\";\r\n this.logservice.Criteria = \"\";\r\n let rows: any = res;//JSON.parse(res) as any;\r\n if (rows == \"wrong credentials\") {\r\n this.showError = true;\r\n this.showErrorMsg = rows;\r\n }\r\n else {\r\n let UserName = rows == \"\" ? 'admin' : rows.UserName;\r\n this.logservice.isLoggedIn = true;\r\n this.logservice.UserName = UserName;\r\n if (this.logservice.LogType != \"\") {\r\n this.logservice.isCommonLogo = false;\r\n this.isCommonLogo = false;\r\n }\r\n\r\n //this.logservice.pageRefMessage(rows.Screens);\r\n //this.parent.RestrictScreenAfterLogin(rows.Screens);\r\n this.logservice.Criteria = rows.Criteria;\r\n this.logservice.restrictScreens = rows.Screens;\r\n this.logservice.authorizeFilters = rows.StartUp.split('|').length == 4 ? rows.StartUp.split('|')[3] : \"\";\r\n this.SetStartUpScreen(rows.StartUp.split('|')[0]);\r\n let currRoute = this.logservice.startupScreen.substring(1, this.logservice.startupScreen.length);\r\n\r\n if (this.localOrSession) {\r\n //console.log('keyset')\r\n localStorage.setItem('Keyword', keyword);\r\n localStorage.setItem('SystemSettings', JSON.stringify(this.logservice));\r\n }\r\n else {\r\n sessionStorage.setItem('Keyword', keyword);\r\n sessionStorage.setItem('SystemSettings', JSON.stringify(this.logservice));\r\n }\r\n this.router.navigateByUrl(currRoute);\r\n }\r\n });\r\n\r\n });\r\n }\r\n\r\n\r\n\r\n ForgotPassword() {\r\n\r\n this.router.navigateByUrl('forgotpassword');\r\n //this.router.navigateByUrl('login/Config');\r\n\r\n }\r\n\r\n Config() {\r\n\r\n //localStorage.setItem('ConfigScreen', null);\r\n this.loading = true;\r\n localStorage.removeItem('ConfigScreen');\r\n this.showError = false;\r\n this.url = this.baseUrl + 'Login/LoginCheck';\r\n\r\n //debugger;\r\n this.LoginData_Service().subscribe((res: any) => {\r\n //debugger;\r\n this.loading = false;\r\n let rows: any = res;//JSON.parse(res) as any;\r\n //console.log(rows)\r\n if (rows == \"wrong credentials\" || rows == \"Login failed\") {\r\n this.showError = true;\r\n this.showErrorMsg = rows;\r\n }\r\n else {\r\n\r\n //let queryUrl = 'login/Config?log=' + this.loginCred.UserName + '@' + this.loginCred.Pin;\r\n let queryUrl = 'login/Config'; //'login/Config';\r\n this.logservice.logDetail = this.loginCred.UserName + '@' + this.loginCred.Pin;\r\n //debugger;\r\n localStorage.setItem('ConfigScreen', 'true');\r\n this.router.navigateByUrl(queryUrl);\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n redirectTo(uri: string) {\r\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() =>\r\n this.router.navigate([uri]));\r\n }\r\n\r\n\r\n SetStartUpScreen(startup) {\r\n //debugger;\r\n switch (startup) {\r\n case \"vp\":\r\n //Session[\"Menuname\"] = \"VQT PESQ\";\r\n //RsltType.Value = \"VQTPESQ\";\r\n this.logservice.startupScreen = '/dashboard/pesq';\r\n break;\r\n case \"vpol\":\r\n\r\n //Session[\"Menuname\"] = \"VQT POLQA\";\r\n //RsltType.Value = \"VQTPOLQA\";\r\n this.logservice.startupScreen = '/dashboard/polqa';\r\n break;\r\n case \"vba\":\r\n\r\n //Session[\"Menuname\"] = \"VBA (With or without E-Model)\";\r\n //RsltType.Value = \"VBADATA\";\r\n this.logservice.startupScreen = '/dashboard/vba';\r\n break;\r\n case \"emu\":\r\n //Session[\"Menuname\"] = \"EMU Results\";\r\n //RsltType.Value = \"EMUDATA\";\r\n this.logservice.startupScreen = '/dashboard/emu';\r\n break;\r\n case \"vac\":\r\n //Session[\"Menuname\"] = \"VAC Results\";\r\n //RsltType.Value = \"VACDATA\";\r\n this.logservice.startupScreen = '/dashboard/vac';\r\n break;\r\n case \"tcp\":\r\n case \"NetTestHead\":\r\n //Session[\"Menuname\"] = \"Net Test Results\";\r\n this.logservice.startupScreen = '/dashboard/nettest';\r\n break;\r\n case \"MobileHead\":\r\n //Session[\"Menuname\"] = \"Mobile Device Information\";\r\n break;\r\n case \"fax\":\r\n //Session[\"Menuname\"] = \"FAX Results\";\r\n //RsltType.Value = \"FAXDATA\";\r\n this.logservice.startupScreen = '/dashboard/fax';\r\n break;\r\n case \"tdm\":\r\n //Session[\"Menuname\"] = \"Audio and Delay Analysis\";\r\n //RsltType.Value = \"AUDIODELAY\";\r\n this.logservice.startupScreen = '/dashboard/audio-delay';\r\n break;\r\n case \"gd_Call\":\r\n case \"gd_Analysis\":\r\n case \"gd_NetTest\":\r\n break;\r\n case \"ud\":\r\n break;\r\n case \"cc\":\r\n //Session[\"Menuname\"] = \"VQuad Call Events\";\r\n //RsltType.Value = \"VQUADDATA\";\r\n this.logservice.startupScreen = '/dashboard/call-events';\r\n break;\r\n case \"STATS_CALLEVENT\":\r\n //Session[\"Menuname\"] = \"Call Events Statistics\";\r\n this.logservice.startupScreen = '/dashboard/pesq';\r\n break;\r\n case \"STATS_QOS\":\r\n //Session[\"Menuname\"] = \"Audio and Delay Statistics\";\r\n this.logservice.startupScreen = '/statistics/AudioDelayStatsPieChart';\r\n break;\r\n case \"STATS_MEASUREMENT\":\r\n //Session[\"Menuname\"] = \"VQT (PESQ) Measurements\";\r\n this.logservice.startupScreen = '/dashboard/pesq';\r\n break;\r\n case \"STATS_COMPLETEDCALL\":\r\n //Session[\"Menuname\"] = \"Customized Stats\";\r\n this.logservice.startupScreen = '/dashboard/pesq';\r\n break;\r\n case \"STATS_NETWORKSTATUS\":\r\n //Session[\"Menuname\"] = \"VQuad Probe Status\";\r\n this.logservice.startupScreen = '/dashboard/pesq';\r\n break;\r\n case \"STATS_SCHEDULERSTATUS\":\r\n //Session[\"Menuname\"] = \"Scheduler Status\";\r\n this.logservice.startupScreen = '/dashboard/pesq';\r\n break;\r\n case \"sc\"://Filters\r\n case \"cs\":\r\n return;\r\n case \"SAVETOCSV\":\r\n case \"SAVETOPDF\":\r\n case \"SAVETOEXCEL\":\r\n case \"SAVEGPSFILE\":\r\n break;\r\n case \"CUSTOMREPORTS\":\r\n case \"WebviewerCRHead\":\r\n //Session[\"Menuname\"] = \"Custom Reports\";\r\n this.logservice.startupScreen = '/outputresult/CustomReport';\r\n break;\r\n case \"DataImportCRHead\":\r\n //Session[\"Menuname\"] = \"Custom Reports\";\r\n this.logservice.startupScreen = '/dashboard/pesq';\r\n break;\r\n case \"GMAPS\":\r\n case \"btnGoogleMapsRedirect\":\r\n //Session[\"Menuname\"] = \"Latitude-Longitude Plot\";\r\n this.logservice.startupScreen = '/outputresult/GoogleMap';\r\n return;\r\n case \"VQuad\":\r\n this.logservice.startupScreen = '/dashboard/pesq';\r\n break;\r\n case \"AutoRemote\":\r\n //Session[\"GridViewType\"] = GRIDVIEW_TYPE.GD_AUTOVQUADREMOTE;\r\n this.logservice.startupScreen = '/dashboard/pesq';\r\n break;\r\n case \"Configuration\":\r\n //Session[\"GridViewType\"] = GRIDVIEW_TYPE.GD_WEBCONFIGTOOL;\r\n this.logservice.startupScreen = '/dashboard/pesq';\r\n break;\r\n case \"btnConsoleView\":\r\n //Session[\"SelectdMenu\"] = \"VQuad\";\r\n this.logservice.startupScreen = '/configuration/ConsoleViewConfig';\r\n break\r\n default:\r\n this.logservice.startupScreen = '/dashboard/pesq';\r\n break;\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n ///////////////////////////////////////////////////////// SERVICES\r\n GetLicData_Service() {\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, options);\r\n\r\n }\r\n GetData_Service() {\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, options);\r\n\r\n }\r\n LoginData_Service() {\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, this.loginCred, options);\r\n\r\n }\r\n ConfigSettings_Service() {\r\n this.url = this.baseUrl + 'Login/AddConfigSettings';\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n this.http.post(this.url, options).subscribe();\r\n }\r\n\r\n parentEvent() {\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n\r\n //eyeIconVisible = false;\r\n type = 'password';\r\n onEyeClick() {\r\n //this.eyeIconVisible = true;\r\n //console.log(this.type)\r\n if (this.type === \"password\") {\r\n this.type = \"text\";\r\n }\r\n else {\r\n this.type = \"password\";\r\n }\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2xvZ2luL2xvZ291dC9sb2dvdXQuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Output, EventEmitter, ViewChild, Sanitizer, ElementRef, ChangeDetectorRef, Inject } from '@angular/core';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { request } from 'http';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n//import { RequestMetadata, PagedResult } from '../../../../lib/ng-crud-table';\r\nimport { MatTableDataSource, fadeInContent } from '@angular/material';\r\nimport { DataSource } from '@angular/cdk/table';\r\nimport { MatDialog, MatDialogConfig, PageEvent, MatPaginator } from '@angular/material';\r\nimport { Row } from 'lib/ng-data-table';\r\nimport { SelectItem, Keys } from 'lib/common';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as moment from 'moment';\r\nimport { ConfirmDialogComponent } from 'src/app/shared/components/confirm-dialog/confirm-dialog.component';\r\nimport { NgSwitchCase, DOCUMENT } from '@angular/common';\r\nimport { validateBasis } from '@angular/flex-layout';\r\nimport { SystemSettingsService } from 'src/app/shared/services/system-settings/system-settings.service';\r\n\r\n@Component({\r\n selector: 'app-logout',\r\n templateUrl: './logout.component.html',\r\n styleUrls: ['./logout.component.scss']\r\n})\r\nexport class LogoutComponent implements OnInit {\r\n\r\n rsltType: string = \"logout\";\r\n\r\n title: string = \"Logout\";\r\n staticScreen = true;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n constructor(private logservice: SystemSettingsService, private router: Router, private route: ActivatedRoute) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n setTimeout(() => {\r\n this.logservice.logDetail = \"\";\r\n this.logservice.LogType = \"\";\r\n this.logservice.CompanyLogo = \"\";\r\n this.logservice.UserName = \"\";\r\n this.logservice.isLoggedIn = false;\r\n this.logservice.isCommonLogo = true;\r\n\r\n if (localStorage.getItem('SystemSettings') != null) {\r\n localStorage.removeItem('SystemSettings');\r\n localStorage.clear();\r\n }\r\n\r\n if (sessionStorage.getItem('SystemSettings') != null) {\r\n sessionStorage.removeItem('SystemSettings');\r\n sessionStorage.clear();\r\n }\r\n\r\n if (localStorage.getItem('Keyword') != null) {\r\n localStorage.removeItem('Keyword');\r\n localStorage.clear();\r\n }\r\n\r\n if (sessionStorage.getItem('Keyword') != null) {\r\n sessionStorage.removeItem('Keyword');\r\n sessionStorage.clear();\r\n }\r\n\r\n this.parentEvent();\r\n });\r\n\r\n //console.log('redirect to login out')\r\n this.router.navigateByUrl('/login?logout=true');\r\n }\r\n\r\n parentEvent() {\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n//For Form controls\r\nimport { MatCheckboxModule } from '@angular/material';\r\nimport { MatButtonModule } from '@angular/material';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatNativeDateModule } from '@angular/material';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';//group mat components and give same style to all of them\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSliderModule } from '@angular/material/slider';//drag a play\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';//ON/OFF\r\n\r\n//For Navigation\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';//header on the top of screen\r\n\r\n//For Layout\r\nimport { MatListModule } from '@angular/material/list';//several list types\r\nimport { MatGridListModule } from '@angular/material/grid-list';//gridview\r\nimport { MatCardModule } from '@angular/material/card';//insert photos, text in a card\r\nimport { MatStepperModule } from '@angular/material/stepper';//performing steps to complete process\r\nimport { MatTabsModule } from '@angular/material/tabs';//select between sub screens\r\nimport { MatExpansionModule } from '@angular/material/expansion';//expand to different sections\r\nimport { MatDividerModule } from '@angular/material/divider';//line drawn between as a separator\r\nimport { MatTreeModule } from '@angular/material/tree';//Expanding menu\r\n\r\n//Buttons and Indicators\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';//ON/OFF between two or more buttons\r\nimport { MatChipsModule } from '@angular/material/chips';//similar to tabs converted to separate buttons. Can be used as multiple inputs under autocomplete\r\nimport { MatIconRegistry, MatIconModule } from '@angular/material/icon';//Icon pointer\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';//Loading circle\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';//Processing line\r\nimport { MatBadgeModule } from '@angular/material/badge';//Round on top with number inside, for ex: num of notifications over button, label, etc\r\n\r\n//Popups and modals\r\nimport { MatDialogModule, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';//Notifications at the bottom\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';//Used as alternate to Dialogs and Menu in Mobile screen\r\nimport { MatRippleModule } from '@angular/material/core';\r\n\r\n//DataTable\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\n\r\nimport { CdkTableModule } from '@angular/cdk/table';\r\n\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\n\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n\r\n MatCheckboxModule,\r\n MatButtonModule,\r\n MatInputModule,\r\n MatAutocompleteModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatFormFieldModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatMenuModule,\r\n MatSidenavModule,\r\n MatToolbarModule,\r\n MatListModule,\r\n MatGridListModule,\r\n MatCardModule,\r\n MatStepperModule,\r\n MatTabsModule,\r\n MatExpansionModule,\r\n MatDividerModule,\r\n MatTreeModule,\r\n MatButtonToggleModule,\r\n MatChipsModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatProgressBarModule,\r\n MatBadgeModule,\r\n MatDialogModule,\r\n MatTooltipModule,\r\n MatSnackBarModule,\r\n MatBottomSheetModule,\r\n MatRippleModule,\r\n MatTableModule,\r\n MatSortModule,\r\n MatPaginatorModule,\r\n\r\n CdkTableModule,\r\n\r\n FlexLayoutModule,\r\n ],\r\n exports: [\r\n CommonModule,\r\n\r\n MatCheckboxModule,\r\n MatButtonModule,\r\n MatInputModule,\r\n MatAutocompleteModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatFormFieldModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatMenuModule,\r\n MatSidenavModule,\r\n MatToolbarModule,\r\n MatListModule,\r\n MatGridListModule,\r\n MatCardModule,\r\n MatStepperModule,\r\n MatTabsModule,\r\n MatExpansionModule,\r\n MatDividerModule,\r\n MatTreeModule,\r\n MatButtonToggleModule,\r\n MatChipsModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatProgressBarModule,\r\n MatBadgeModule,\r\n MatDialogModule,\r\n MatTooltipModule,\r\n MatSnackBarModule,\r\n MatBottomSheetModule,\r\n MatRippleModule,\r\n MatTableModule,\r\n MatSortModule,\r\n MatPaginatorModule,\r\n\r\n CdkTableModule,\r\n\r\n FlexLayoutModule,\r\n ],\r\n //https://stackoverflow.com/questions/47270324/nullinjectorerror-no-provider-for-matdialogref\r\n providers: [\r\n {\r\n provide: MatDialogRef,\r\n useValue: {}\r\n },\r\n ],\r\n declarations: []\r\n})\r\nexport class MaterialModule {\r\n assetsPath: string;\r\n constructor(matIconRegistry: MatIconRegistry, domSanitizer: DomSanitizer) {\r\n this.assetsPath = environment.assetsPath;\r\n matIconRegistry.addSvgIconSet(domSanitizer.bypassSecurityTrustResourceUrl('/Webviewer/assets/svg/mdi.svg')); // Or whatever path you placed mdi.svg at\r\n //https://www.positronx.io/angular-material-8-icons-tutorial-with-real-world-examples/\r\n //https://css-tricks.com/scale-svg/\r\n matIconRegistry.addSvgIcon('OOS', domSanitizer.bypassSecurityTrustResourceUrl('/Webviewer/assets/svg/Line_within_circle.svg'));\r\n //matIconRegistry.addSvgIcon('stat1', domSanitizer.bypassSecurityTrustResourceUrl('../../assets/svg/stat1.svg'));\r\n //matIconRegistry.addSvgIcon('report', domSanitizer.bypassSecurityTrustResourceUrl('../../assets/svg/report.svg'));\r\n //matIconRegistry.addSvgIcon('console', domSanitizer.bypassSecurityTrustResourceUrl('../../assets/svg/console.svg'));\r\n //matIconRegistry.addSvgIcon('calendar-schedule', domSanitizer.bypassSecurityTrustResourceUrl('../../assets/svg/calendar-schedule.svg'));\r\n //matIconRegistry.addSvgIcon('search-results', domSanitizer.bypassSecurityTrustResourceUrl('../../assets/svg/search-results.svg'));\r\n }\r\n}\r\n","module.exports = \"/**\\n * @license\\n * Copyright 2019 Google LLC. All Rights Reserved.\\n * SPDX-License-Identifier: Apache-2.0\\n */\\n/* \\n * Always set the map height explicitly to define the size of the div element\\n * that contains the map. \\n */\\n#map {\\n height: 50%;\\n width: 80%;\\n}\\n/* HTML marker styles */\\n.price-tag {\\n background-color: #4285F4;\\n border-radius: 8px;\\n color: #FFFFFF;\\n font-size: 14px;\\n padding: 10px 15px;\\n position: relative;\\n}\\n.price-tag::after {\\n content: \\\"\\\";\\n position: absolute;\\n left: 50%;\\n top: 100%;\\n -ms-transform: translate(-50%, 0);\\n transform: translate(-50%, 0);\\n width: 0;\\n height: 0;\\n border-left: 8px solid transparent;\\n border-right: 8px solid transparent;\\n border-top: 8px solid #4285F4;\\n}\\n.pin2 {\\n position: relative;\\n background-color: red;\\n border-radius: 50%;\\n color: white;\\n font-size: 10px;\\n text-align: center;\\n border: 8px solid red;\\n width: 8px;\\n height: 8px;\\n}\\n.pin2::after {\\n position: absolute;\\n content: \\\"\\\";\\n width: 0px;\\n height: 0px;\\n bottom: -30px;\\n left: -6px;\\n border: 10px solid transparent;\\n border-top: 17px solid red;\\n}\\n.bubble {\\n position: relative;\\n font-family: sans-serif;\\n font-size: 18px;\\n line-height: 36px;\\n width: 90px;\\n background: #fff;\\n border-radius: 5px;\\n text-align: center;\\n color: #000;\\n}\\n.bubble-bottom-left:before {\\n content: \\\"\\\";\\n width: 0px;\\n height: 0px;\\n position: absolute;\\n border-left: 12px solid #fff;\\n border-right: 12px solid transparent;\\n border-top: 12px solid #fff;\\n border-bottom: 24px solid transparent;\\n left: -6px;\\n bottom: -24px;\\n -ms-transform: skewX(-24deg);\\n transform: skewX(-24deg);\\n}\\n/*https://codepen.io/run-time/pen/VNRBJd*/\\n.bubble1 {\\n position: relative;\\n font-family: sans-serif;\\n font-size: 12px;\\n line-height: 5px;\\n width: 50px;\\n background: red;\\n border-radius: 5px;\\n padding: 4px;\\n height: 10px;\\n text-align: center;\\n color: white;\\n padding-top: 8px;\\n}\\n.bubble-bottom-left1:before {\\n content: \\\"\\\";\\n width: 0px;\\n height: 0px;\\n position: absolute;\\n border-left: 5px solid red;\\n border-right: 5px solid transparent;\\n border-top: 5px solid red;\\n border-bottom: 20px solid transparent;\\n left: 0px;\\n bottom: -15px;\\n -ms-transform: skewX(-15deg);\\n transform: skewX(-15deg);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvb3V0cHV0LXJlc3VsdHMvYWR2YW5jZWQtbWFya2Vycy9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvc3JjXFxhcHBcXG91dHB1dC1yZXN1bHRzXFxhZHZhbmNlZC1tYXJrZXJzXFxhZHZhbmNlZC1tYXJrZXJzLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9vdXRwdXQtcmVzdWx0cy9hZHZhbmNlZC1tYXJrZXJzL2FkdmFuY2VkLW1hcmtlcnMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7RUFBQTtBQUtBOzs7RUFBQTtBQUlBO0VBQ0UsV0FBQTtFQUNBLFVBQUE7QUNDRjtBRENBLHVCQUFBO0FBQ0E7RUFDRSx5QkFBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0FDRUY7QURDQTtFQUNFLFdBQUE7RUFDQSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxTQUFBO0VBQ0EsaUNBQUE7TUFBQSw2QkFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0Esa0NBQUE7RUFDQSxtQ0FBQTtFQUNBLDZCQUFBO0FDRUY7QURFQTtFQUNFLGtCQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxxQkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0FDQ0Y7QURFQTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtFQUNBLFVBQUE7RUFDQSw4QkFBQTtFQUNBLDBCQUFBO0FDQ0Y7QURJQTtFQUNFLGtCQUFBO0VBQ0EsdUJBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtBQ0RGO0FESUE7RUFDRSxXQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLDRCQUFBO0VBQ0Esb0NBQUE7RUFDQSwyQkFBQTtFQUNBLHFDQUFBO0VBQ0EsVUFBQTtFQUNBLGFBQUE7RUFDQSw0QkFBQTtNQUFBLHdCQUFBO0FDREY7QURLQSx5Q0FBQTtBQUNBO0VBQ0Usa0JBQUE7RUFDQSx1QkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0FDRkY7QURLQTtFQUNFLFdBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsMEJBQUE7RUFDQSxtQ0FBQTtFQUNBLHlCQUFBO0VBQ0EscUNBQUE7RUFDQSxTQUFBO0VBQ0EsYUFBQTtFQUNBLDRCQUFBO01BQUEsd0JBQUE7QUNGRiIsImZpbGUiOiJzcmMvYXBwL291dHB1dC1yZXN1bHRzL2FkdmFuY2VkLW1hcmtlcnMvYWR2YW5jZWQtbWFya2Vycy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxyXG4gKi9cclxuLyogXHJcbiAqIEFsd2F5cyBzZXQgdGhlIG1hcCBoZWlnaHQgZXhwbGljaXRseSB0byBkZWZpbmUgdGhlIHNpemUgb2YgdGhlIGRpdiBlbGVtZW50XHJcbiAqIHRoYXQgY29udGFpbnMgdGhlIG1hcC4gXHJcbiAqL1xyXG4jbWFwIHtcclxuICBoZWlnaHQ6IDUwJTtcclxuICB3aWR0aDo4MCVcclxufVxyXG4vKiBIVE1MIG1hcmtlciBzdHlsZXMgKi9cclxuLnByaWNlLXRhZyB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyODVGNDtcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgY29sb3I6ICNGRkZGRkY7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIHBhZGRpbmc6IDEwcHggMTVweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5wcmljZS10YWc6OmFmdGVyIHtcclxuICBjb250ZW50OiBcIlwiO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiA1MCU7XHJcbiAgdG9wOiAxMDAlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xyXG4gIHdpZHRoOiAwO1xyXG4gIGhlaWdodDogMDtcclxuICBib3JkZXItbGVmdDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlci1yaWdodDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlci10b3A6IDhweCBzb2xpZCAjNDI4NUY0O1xyXG59XHJcblxyXG5cclxuLnBpbjIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBmb250LXNpemU6IDEwcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGJvcmRlcjogOHB4IHNvbGlkIHJlZDtcclxuICB3aWR0aDogOHB4O1xyXG4gIGhlaWdodDogOHB4O1xyXG59XHJcblxyXG4ucGluMjo6YWZ0ZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBjb250ZW50OiBcIlwiO1xyXG4gIHdpZHRoOiAwcHg7XHJcbiAgaGVpZ2h0OiAwcHg7XHJcbiAgYm90dG9tOiAtMzBweDtcclxuICBsZWZ0OiAtNnB4O1xyXG4gIGJvcmRlcjogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBib3JkZXItdG9wOiAxN3B4IHNvbGlkIHJlZDtcclxufVxyXG5cclxuXHJcblxyXG4uYnViYmxlIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XHJcbiAgZm9udC1zaXplOiAxOHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xyXG4gIHdpZHRoOiA5MHB4O1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBjb2xvcjogIzAwMDtcclxufVxyXG5cclxuLmJ1YmJsZS1ib3R0b20tbGVmdDpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXCI7XHJcbiAgd2lkdGg6IDBweDtcclxuICBoZWlnaHQ6IDBweDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm9yZGVyLWxlZnQ6IDEycHggc29saWQgI2ZmZjtcclxuICBib3JkZXItcmlnaHQ6IDEycHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyLXRvcDogMTJweCBzb2xpZCAjZmZmO1xyXG4gIGJvcmRlci1ib3R0b206IDI0cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgbGVmdDogLTZweDtcclxuICBib3R0b206IC0yNHB4O1xyXG4gIHRyYW5zZm9ybTogc2tld1goLTI0ZGVnKTtcclxufVxyXG5cclxuXHJcbi8qaHR0cHM6Ly9jb2RlcGVuLmlvL3J1bi10aW1lL3Blbi9WTlJCSmQqL1xyXG4uYnViYmxlMSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBsaW5lLWhlaWdodDogNXB4O1xyXG4gIHdpZHRoOiA1MHB4O1xyXG4gIGJhY2tncm91bmQ6IHJlZDtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgcGFkZGluZzogNHB4O1xyXG4gIGhlaWdodDogMTBweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHBhZGRpbmctdG9wOiA4cHg7XHJcbn1cclxuXHJcbi5idWJibGUtYm90dG9tLWxlZnQxOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcIjtcclxuICB3aWR0aDogMHB4O1xyXG4gIGhlaWdodDogMHB4O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3JkZXItbGVmdDogNXB4IHNvbGlkIHJlZDtcclxuICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBib3JkZXItdG9wOiA1cHggc29saWQgcmVkO1xyXG4gIGJvcmRlci1ib3R0b206IDIwcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgbGVmdDogMHB4O1xyXG4gIGJvdHRvbTogLTE1cHg7XHJcbiAgdHJhbnNmb3JtOiBza2V3WCgtMTVkZWcpO1xyXG59XHJcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG4vKiBcbiAqIEFsd2F5cyBzZXQgdGhlIG1hcCBoZWlnaHQgZXhwbGljaXRseSB0byBkZWZpbmUgdGhlIHNpemUgb2YgdGhlIGRpdiBlbGVtZW50XG4gKiB0aGF0IGNvbnRhaW5zIHRoZSBtYXAuIFxuICovXG4jbWFwIHtcbiAgaGVpZ2h0OiA1MCU7XG4gIHdpZHRoOiA4MCU7XG59XG5cbi8qIEhUTUwgbWFya2VyIHN0eWxlcyAqL1xuLnByaWNlLXRhZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0Mjg1RjQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wcmljZS10YWc6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogMTAwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1sZWZ0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiA4cHggc29saWQgIzQyODVGNDtcbn1cblxuLnBpbjIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJlZDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDhweCBzb2xpZCByZWQ7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogOHB4O1xufVxuXG4ucGluMjo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHdpZHRoOiAwcHg7XG4gIGhlaWdodDogMHB4O1xuICBib3R0b206IC0zMHB4O1xuICBsZWZ0OiAtNnB4O1xuICBib3JkZXI6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3A6IDE3cHggc29saWQgcmVkO1xufVxuXG4uYnViYmxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMzZweDtcbiAgd2lkdGg6IDkwcHg7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLmJ1YmJsZS1ib3R0b20tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogMHB4O1xuICBoZWlnaHQ6IDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItbGVmdDogMTJweCBzb2xpZCAjZmZmO1xuICBib3JkZXItcmlnaHQ6IDEycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3A6IDEycHggc29saWQgI2ZmZjtcbiAgYm9yZGVyLWJvdHRvbTogMjRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgbGVmdDogLTZweDtcbiAgYm90dG9tOiAtMjRweDtcbiAgdHJhbnNmb3JtOiBza2V3WCgtMjRkZWcpO1xufVxuXG4vKmh0dHBzOi8vY29kZXBlbi5pby9ydW4tdGltZS9wZW4vVk5SQkpkKi9cbi5idWJibGUxIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogNXB4O1xuICB3aWR0aDogNTBweDtcbiAgYmFja2dyb3VuZDogcmVkO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHBhZGRpbmc6IDRweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZy10b3A6IDhweDtcbn1cblxuLmJ1YmJsZS1ib3R0b20tbGVmdDE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgd2lkdGg6IDBweDtcbiAgaGVpZ2h0OiAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCByZWQ7XG4gIGJvcmRlci1yaWdodDogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiA1cHggc29saWQgcmVkO1xuICBib3JkZXItYm90dG9tOiAyMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBsZWZ0OiAwcHg7XG4gIGJvdHRvbTogLTE1cHg7XG4gIHRyYW5zZm9ybTogc2tld1goLTE1ZGVnKTtcbn0iXX0= */\"","import { Component, OnInit, Output, EventEmitter, Renderer2, AfterViewInit, ViewChild, ElementRef, Inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { BrowserModule, DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { environment } from 'src/environments/environment';\r\nimport { faMessage } from \"@fortawesome/free-solid-svg-icons\";\r\ndeclare var google: any;\r\ndeclare var OverlappingMarkerSpiderfier: any;\r\n//https://developers.google.com/maps/documentation/javascript/examples/advanced-markers-html-simple\r\n//https://developers.google.com/maps/documentation/javascript/examples/marker-labels\r\n//https://developers.google.com/maps/documentation/javascript/custom-markers\r\n//https://developers.google.com/maps/documentation/javascript/examples/marker-modern\r\n//https://www.npmjs.com/package/@fortawesome/free-solid-svg-icons\r\n//https://www.npmjs.com/package/fontawesome-markers\r\n//https://www.w3schools.com/graphics/svg_intro.asp\r\n\r\n//https://levelup.gitconnected.com/how-to-create-custom-html-markers-on-google-maps-9ff21be90e4b\r\n//https://spatialized.io/advanced-google-maps-markers-definitive-guide-94c5a070615e436ab0a255b9f5100a88#9e0ed97c390a48d7ba52e5107565fb34\r\n\r\n@Component({\r\n selector: 'app-advanced-markers',\r\n templateUrl: './advanced-markers.component.html',\r\n styleUrls: ['./advanced-markers.component.scss']\r\n})\r\nexport class AdvancedMarkersComponent implements OnInit, AfterViewInit {\r\n rsltType: string = \"Advanced Google Maps\";\r\n title: string = \"Google Maps\";\r\n staticScreen = false; //true;\r\n\r\n baseUrl: string;\r\n url: string;\r\n\r\n ////lat: 40.4230, lng: -98.7372 -- USA\r\n lat = 40.4230;//12.9264;// india\r\n lng = -98.7372;//77.6012;//india\r\n\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n map: any;\r\n optionsOMS = {\r\n //nearbyDistance: 100,\r\n legWeight: 2,\r\n markersWontMove: true,\r\n markersWontHide: true,\r\n keepSpiderfied: true,\r\n // spiderfyDistanceMultiplier:1.5,\r\n //circleSpiralSwitchover: 90,\r\n //spiralFootSeparation: 80,\r\n // spiralLengthStart :51,\r\n // spiralLengthFactor: 54,\r\n //spiderfiedZIndex :1,\r\n spiderfiedShadowColor: false,\r\n //unspiderfyFunction: function () { }\r\n };\r\n\r\n Markers_30000 = [];\r\n constructor(@Inject(DOCUMENT) private document: Document, private renderer2: Renderer2, private _Activatedroute: ActivatedRoute, private _router: Router, private http: HttpClient, private sanitizer: DomSanitizer, private elRef: ElementRef) {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n }\r\n\r\n ngOnInit() {\r\n setTimeout(() => {\r\n //this.JSInitialization();\r\n this.Initialize();\r\n }, 6000);\r\n }\r\n intersectionObserver:any;\r\n ngAfterViewInit() {\r\n this.GetSystemConfig();\r\n //https://stackoverflow.com/questions/70281750/easy-angular-way-to-detect-if-element-is-in-viewport-on-scroll\r\n this.intersectionObserver = new IntersectionObserver((entries) => {\r\n for (const entry of entries) {\r\n if (entry.isIntersecting) {\r\n entry.target.classList.add(\"drop\");\r\n this.intersectionObserver.unobserve(entry.target);\r\n }\r\n }\r\n });\r\n }\r\n\r\n //https://jsfiddle.net/gh/get/library/pure/googlemaps/js-samples/tree/master/dist/samples/advanced-markers-animation/jsfiddle\r\n getRandomPosition(map) {\r\n const bounds = map.getBounds();\r\n const minLat = bounds.getSouthWest().lat();\r\n const minLng = bounds.getSouthWest().lng();\r\n const maxLat = bounds.getNorthEast().lat();\r\n const maxLng = bounds.getNorthEast().lng();\r\n const latRange = maxLat - minLat;\r\n // Note: longitude can span from a positive longitude in the west to a\r\n // negative one in the east. e.g. 150lng (150E) <-> -30lng (30W) is a large\r\n // span that covers the whole USA.\r\n let lngRange = maxLng - minLng;\r\n\r\n if (maxLng < minLng) {\r\n lngRange += 360;\r\n }\r\n return {\r\n lat: minLat + Math.random() * latRange,\r\n lng: minLng + Math.random() * lngRange,\r\n };\r\n}\r\n\r\n\r\n\r\nasync Initialize() {\r\n // Request needed libraries.\r\n const { Map } = await google.maps.importLibrary(\"maps\");\r\n const { AdvancedMarkerElement } = await google.maps.importLibrary(\"marker\");\r\n const position = { lat: 39.045753, lng: -76.641273};//{ lat: 37.4242011827985, lng: -122.09242296450893 };\r\n const map = new Map(document.getElementById(\"map\"), {\r\n zoom: 10,\r\n center: position,\r\n mapId: \"4504f8b37365c3d0\",\r\n });\r\n\r\n //var newmarker = this.Markers_30000.map(x => ({ lat: x.lat_num, lng: x.lng_num, iconurl: x.iconurl, itemID: x.itemID}));\r\n //console.log(newmarker)\r\n //console.log(this.Markers_30000.length)\r\n\r\n // Create 100 markers to animate.\r\n google.maps.event.addListenerOnce(map, \"idle\", () => {\r\n for (let i = 0; i < this.Markers_30000.length; i++) {\r\n this.createMarker(map, this.Markers_30000[i], AdvancedMarkerElement);\r\n }\r\n });\r\n\r\n // Add a button to reset the example.\r\n const controlDiv = document.createElement(\"div\");\r\n const controlUI = document.createElement(\"button\");\r\n\r\n controlUI.classList.add(\"ui-button\");\r\n controlUI.innerText = \"Reset the example\";\r\n controlUI.addEventListener(\"click\", () => {\r\n // Reset the example by reloading the map iframe.\r\n this.refreshMap();\r\n });\r\n controlDiv.appendChild(controlUI);\r\n map.controls[google.maps.ControlPosition.TOP_CENTER].push(controlDiv);\r\n}\r\n\r\n createMarker(map, markerElem, AdvancedMarkerElement) {\r\n const advancedMarker = new AdvancedMarkerElement({\r\n position: { lat: markerElem.lat, lng: markerElem.lng },//this.getRandomPosition(map),\r\n map: map,\r\n });\r\n //const content = advancedMarker.content;\r\n\r\n //content.style.opacity = \"0\";\r\n //content.addEventListener(\"animationend\", (event) => {\r\n // content.classList.remove(\"drop\");\r\n // content.style.opacity = \"1\";\r\n //});\r\n\r\n //const time = 2 + Math.random(); // 2s delay for easy to see the animation\r\n\r\n //content.style.setProperty(\"--delay-time\", time + \"s\");\r\n //if (this.intersectionObserver)\r\n // this.intersectionObserver.observe(content);\r\n }\r\n\r\nrefreshMap() {\r\n // Refresh the map.\r\n const mapContainer = document.getElementById(\"mapContainer\");\r\n const map = document.getElementById(\"map\");\r\n\r\n map.remove();\r\n\r\n const mapDiv = document.createElement(\"div\");\r\n\r\n mapDiv.id = \"map\";\r\n mapContainer.appendChild(mapDiv);\r\n this.Initialize();\r\n}\r\n\r\n JSInitialization() {\r\n //// Request needed libraries.\r\n //const { Map } = await google.maps.importLibrary(\"maps\") as google.maps.MapsLibrary;\r\n //const { AdvancedMarkerElement } = await google.maps.importLibrary(\"marker\") as google.maps.MarkerLibrary;\r\n\r\n const map = new google.maps.Map(document.getElementById('map') as HTMLElement, {\r\n center: { lat: 37.42, lng: -122.1 },\r\n zoom: 14,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP,\r\n //mapId: '4504f8b37365c3d0',\r\n });\r\n\r\n const priceTag = document.createElement('div');\r\n priceTag.className = 'price-tag';\r\n priceTag.textContent = '$2.5M';\r\n\r\n //const oms = new OverlappingMarkerSpiderfier(this.map, this.optionsOMS);\r\n\r\n ////const marker = new google.maps.Marker({\r\n //const marker = new google.maps.marker.AdvancedMarkerElement({\r\n // map,\r\n // position: { lat: 37.42, lng: -122.1 },\r\n // content: priceTag,\r\n //});\r\n\r\n\r\n //const priceTag1 = document.createElement(\"div\");\r\n\r\n //priceTag1.className = \"pin2\";\r\n //priceTag1.textContent = \"Q\";\r\n //const marker1 = new google.maps.marker.AdvancedMarkerElement({\r\n // map,\r\n // position: { lat: 37.42, lng: -122.1 },\r\n // content: priceTag1,\r\n //});\r\n\r\n\r\n // use a FontAwesome svg\r\n const marker = new google.maps.Marker({\r\n position: { lat: 37.42, lng: -122.1 },\r\n map,\r\n icon: {\r\n path: faMessage.icon[4] as string,\r\n fillColor: \"#0000ff\",\r\n fillOpacity: 1,\r\n anchor: new google.maps.Point(\r\n faMessage.icon[0] / 2, // width\r\n faMessage.icon[1] // height\r\n ),\r\n strokeWeight: 1,\r\n strokeColor: \"#ffffff\",\r\n scale: 0.075,\r\n },\r\n title: \"FontAwesome SVG Marker\",\r\n });\r\n\r\n // use a Material Icon as font\r\n const marker1 = new google.maps.Marker({\r\n position: { lat: 36.6163, lng: -100.6 },\r\n map,\r\n label: {\r\n text: \"\\ue0ca\", // codepoint - chat bubble from https://fonts.google.com/icons\r\n fontFamily: \"Material Icons\",\r\n color: \"#ffffff\",\r\n fontSize: \"18px\",\r\n },\r\n title: \"Material Icon Font Marker\",\r\n });\r\n\r\n\r\n\r\n const svgMarker = {\r\n path: \"M416,0H96C42.969,0,0,42.969,0,96v160c0,53.031,42.969,96,96,96h63.984L256,512l96-160h64c53.031,0,96-42.969,96-96V96 C512,42.969,469.031,0,416,0z\",\r\n fillColor: \"blue\",\r\n fillOpacity: 0.6,\r\n strokeWeight: 0,\r\n rotation: 0,\r\n scale: 0.1,\r\n //scaledSize: new google.maps.Size(5, 5),\r\n anchor: new google.maps.Point(0, 20),\r\n width: 24,\r\n height: 24,\r\n };\r\n\r\n const marker2 = new google.maps.Marker({\r\n position: map.getCenter(),\r\n icon: svgMarker,\r\n map: map,\r\n });\r\n\r\n\r\n //oms.addMarker(marker);//spiderfy\r\n //oms.keepSpiderfied = true;\r\n }\r\n\r\n\r\n scriptMapJS: any;\r\n scriptCallBack: any;\r\n loadScript(url) {\r\n this.scriptCallBack = this.renderer2.createElement('script');\r\n this.scriptCallBack.type = 'text/javascript';\r\n this.scriptCallBack.text = `\r\n function initMap() {\r\n console.log('init map')\r\n }\r\n `;\r\n this.renderer2.appendChild(this.document.body, this.scriptCallBack);\r\n\r\n return new Promise((resolve, reject) => {\r\n this.scriptMapJS = this.renderer2.createElement('script');\r\n this.scriptMapJS.type = 'text/javascript';\r\n this.scriptMapJS.src = url;\r\n this.scriptMapJS.text = ``;\r\n this.scriptMapJS.async = true;\r\n this.scriptMapJS.defer = true;\r\n this.scriptMapJS.onload = resolve;\r\n this.scriptMapJS.onerror = reject;\r\n this.renderer2.appendChild(this.document.body, this.scriptMapJS);\r\n })\r\n }\r\n GetSystemConfig() {\r\n this.url = this.baseUrl + 'UserAndSytemConfig/GetUserSystemConfiguration';\r\n let GoogleMapsAPIKey = \"\";\r\n this.GetConfigurations_Service().subscribe((res: any) => {\r\n //debugger;\r\n let rows: any[] = JSON.parse(res) as any[];\r\n GoogleMapsAPIKey = rows[\"GoogleMapsAPIKey\"];\r\n if (GoogleMapsAPIKey == \"\") {\r\n if (confirm(\"API Key not set yet. Redirecting to setting page... Do you want to continue?\")) {\r\n this._router.navigate([{ outlets: { filterPopup: null, configPopup: ['configuration', 'UserSetting', '1', 'false'] } }]);//splitting 'configuration/UserSetting' as / converting in %2f in URL\r\n }\r\n }\r\n else {\r\n let foundScriptElem = false;\r\n var c = document.getElementsByTagName('script');\r\n for (var x = 0; x < c.length; x++) {\r\n if (document.body.innerHTML.indexOf('initMap') != -1) {\r\n foundScriptElem = true;//c[x].parentElement.removeChild(c[x]);\r\n break;\r\n }\r\n }\r\n if (!foundScriptElem) {\r\n //const url = 'https://maps.googleapis.com/maps/api/js?key=' + GoogleMapsAPIKey + '&libraries=places&libraries=geometry&callback=initMap';\r\n\r\n ////// below code used for AdvacneMarker\r\n const url = 'https://maps.googleapis.com/maps/api/js?key=' + GoogleMapsAPIKey + '&libraries=places&libraries=geometry&libraries=marker&callback=initMap';\r\n this.loadScript(url);\r\n }\r\n }\r\n });\r\n }\r\n GetConfigurations_Service() {\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, options);\r\n\r\n }\r\n\r\n parentEvent(title) {\r\n this.title = title;\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n}\r\n\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL291dHB1dC1yZXN1bHRzL2F1ZGlvLXBsYXllci1wb3B1cC9hdWRpby1wbGF5ZXItcG9wdXAuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Optional, Inject, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ITimeUpdateEvent, NgWaveformComponent, IRegionPositions } from 'ng-waveform';\r\n\n@Component({\n selector: 'app-audio-player-popup',\n templateUrl: './audio-player-popup.component.html',\n styleUrls: ['./audio-player-popup.component.scss']\n})\nexport class AudioPlayerPopupComponent implements OnInit {\n audioURL: string; /// /Webviewer/assets/audio/audio.wav\r\n nodeName: string;\r\n message: string;\r\n title: string;\r\n baseUrl: string;\r\n url: string;\n isPlaying: boolean = false;\n\n @ViewChild('waveformAudio', { static: false }) waveform: NgWaveformComponent;\n\n constructor(private http: HttpClient, public dialogBox: MatDialogRef, @Optional() @Inject(MAT_DIALOG_DATA) public data: any) {\n this.baseUrl = environment.urlAddress + '/api/';\n debugger;\n //alert(data.audioURL);\n this.audioURL = data.audioURL;//Node ID\r\n this.nodeName = data.nodeName;\r\n this.message = data.message;\r\n //console.log(this.message);\n\n }\n\n ngOnInit() {\n\n \n }\n\n togglePlayback() { \r\n this.isPlaying = !this.isPlaying;\r\n if (this.isPlaying) {\r\n // Start playback\r\n this.onAudioPlay();\r\n } else {\r\n // Pause playback\r\n this.onAudioPause();\r\n }\r\n }\r\n\r\n onTimeUpdate(event) {\r\n debugger;\r\n if (event.progress >= 100)\r\n this.isPlaying = false;\r\n //console.log(event.progress);\r\n }\r\n\r\n onAudioPlay() { \r\n //this.audio = new Audio('/Webviewer/assets/audio/audioTest.wav');\r\n //this.audio.play(); \r\n this.waveform.play(); \r\n }\r\n\r\n onAudioPause() {\r\n //this.audio.pause();\r\n this.waveform.pause();\r\n }\r\n\r\n onAudioStop() {\r\n //this.audio.pause();\r\n //this.audio.currentTime = 0;\r\n // Seek to the start of the audio\r\n \r\n }\n\n Close() {\r\n this.dialogBox.close();\r\n }\n\n\n}\n","module.exports = \"#map {\\n height: 500px;\\n width: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvb3V0cHV0LXJlc3VsdHMvY3VzdG9tLWdtYXBzLW1haW4vRDpcXFNyY3dlYlxcVlMyMDE3IFByb2plY3RzXFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3L3NyY1xcYXBwXFxvdXRwdXQtcmVzdWx0c1xcY3VzdG9tLWdtYXBzLW1haW5cXGN1c3RvbS1nbWFwcy1tYWluLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9vdXRwdXQtcmVzdWx0cy9jdXN0b20tZ21hcHMtbWFpbi9jdXN0b20tZ21hcHMtbWFpbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGFBQUE7RUFDQSxXQUFBO0FDQ0YiLCJmaWxlIjoic3JjL2FwcC9vdXRwdXQtcmVzdWx0cy9jdXN0b20tZ21hcHMtbWFpbi9jdXN0b20tZ21hcHMtbWFpbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiNtYXAge1xyXG4gIGhlaWdodDogNTAwcHg7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuIiwiI21hcCB7XG4gIGhlaWdodDogNTAwcHg7XG4gIHdpZHRoOiAxMDAlO1xufSJdfQ== */\"","import { Component, OnInit, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\n//https://medium.com/@jkeung/integrating-google-maps-api-w-angular-7-e7672396ce2d\r\n//https://dev.to/devpato/setup-google-map-in-angular-app-the-pro-way-3m9p\r\n//https://timdeschryver.dev/blog/google-maps-as-an-angular-component\r\n\r\n//https://timdeschryver.dev/blog/google-maps-as-an-angular-component\r\n//https://www.geeksforgeeks.org/how-to-add-google-map-and-marker-to-your-application-using-angularjs/\r\n//https://morioh.com/p/11d933ad6801\r\n\r\n\r\n@Component({\r\n selector: 'app-custom-gmaps-main',\r\n templateUrl: './custom-gmaps-main.component.html',\r\n styleUrls: ['./custom-gmaps-main.component.scss']\r\n})\r\nexport class CustomGmapsMainComponent implements OnInit {\r\n baseUrl: string;\r\n url: string;\r\n\r\n constructor() {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n }\r\n\r\n ngOnInit() { }\r\n}\r\n","module.exports = \"table {\\n width: 100%;\\n overflow: auto;\\n /*table-layout:auto;*/\\n}\\n\\n/*th, td {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}*/\\n\\ntr.example-detail-row {\\n height: 0;\\n}\\n\\ntr.example-element-row:not(.example-expanded-row):hover {\\n background: whitesmoke;\\n}\\n\\ntr.example-element-row:not(.example-expanded-row):active {\\n background: #efefef;\\n}\\n\\n.example-element-row td {\\n border-bottom-width: 0;\\n}\\n\\n.example-element-detail {\\n overflow: hidden;\\n /*display: flex;*/\\n}\\n\\n.example-element-diagram {\\n min-width: 80px;\\n border: 2px solid black;\\n padding: 8px;\\n font-weight: lighter;\\n margin: 8px 0;\\n height: 104px;\\n}\\n\\n.example-element-symbol {\\n font-weight: bold;\\n font-size: 40px;\\n line-height: normal;\\n}\\n\\n.example-element-description {\\n padding: 16px;\\n}\\n\\n.example-element-description-attribution {\\n opacity: 0.5;\\n}\\n\\nth {\\n background-color: #5B9BD5;\\n}\\n\\n.th_expanded {\\n background-color: #C9DFF4;\\n padding: 4px 3px;\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n}\\n\\n.theader {\\n color: white;\\n padding: 4px 3px;\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n /*border-top: 1px solid #c6c6c6;*/\\n}\\n\\n.td_expanded {\\n padding: 4px 3px;\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n border-top: 1px solid #c6c6c6;\\n border-left: 1px solid #c6c6c6;\\n}\\n\\n.divHearder {\\n margin-left: 200px;\\n font-size: large;\\n}\\n\\n.td_Main {\\n padding: 4px 3px;\\n border-bottom: 1px solid #c6c6c6;\\n border-top: 1px solid #c6c6c6;\\n}\\n\\n.highlight {\\n color: blueviolet;\\n}\\n\\n.footer {\\n position: fixed;\\n left: 0;\\n bottom: 0;\\n width: 100%;\\n background-color: red;\\n color: white;\\n text-align: center;\\n}\\n\\n.export:hover {\\n color: black;\\n}\\n\\n/*start Radio Button*/\\n\\n/*.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}*/\\n\\n/*END Radio Button*/\\n\\n/*start checkbox*/\\n\\n/*.checkboxsize .defaultMat .mat-checkbox-inner-container {\\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n::ng-deep .mat-checkbox .mat-checkbox-frame {\\n border-color: violet;\\n top: 10px;\\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n\\n::ng-deep .mat-checkbox-checked .mat-checkbox-background,\\n::ng-deep .mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: blue !important;\\n top: 10px;\\n width: 20px;\\n height: 20px;\\n}*/\\n\\n/*::ng-deep .mat-checkbox-checked .mat-checkbox-background {\\n background-color: blue !important;\\n top: 10px;\\n width: 20px;\\n height: 20px;\\n}*/\\n\\n/*end checkbox*/\\n\\n.lineSpaceDiv {\\n height: 3px;\\n}\\n\\n/*start loader*/\\n\\n#spinner {\\n -webkit-animation: frames 1s infinite linear;\\n animation: frames 1s infinite linear;\\n background: transparent;\\n border: 0.75vw solid #FFF;\\n border-radius: 100%;\\n border-top-color: #DF691A;\\n width: 5vw;\\n height: 5vw;\\n opacity: 0.6;\\n padding: 0;\\n position: absolute;\\n z-index: 999;\\n}\\n\\n@-webkit-keyframes frames {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(359deg);\\n }\\n}\\n\\n@keyframes frames {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(359deg);\\n }\\n}\\n\\n#pause {\\n display: block;\\n background: rgba(0, 0, 0, 0.66) no-repeat 0 0;\\n width: 100%;\\n height: 100%;\\n position: fixed;\\n bottom: 0;\\n left: 0;\\n z-index: 1000;\\n}\\n\\n/*end loader*/\\n\\n.spinner_overlay {\\n position: fixed;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #fff;\\n opacity: 0.5;\\n z-index: 1000;\\n}\\n\\n.spinner {\\n position: absolute;\\n left: 50%;\\n top: 20%;\\n height: 60px;\\n width: 60px;\\n margin: 0px auto;\\n -webkit-animation: rotation 0.6s infinite linear;\\n animation: rotation 0.6s infinite linear;\\n border-left: 6px solid rgba(0, 174, 239, 0.15);\\n border-right: 6px solid rgba(0, 174, 239, 0.15);\\n border-bottom: 6px solid rgba(0, 174, 239, 0.15);\\n border-top: 6px solid rgba(0, 174, 239, 0.8);\\n border-radius: 100%;\\n}\\n\\n.labelfontweight {\\n font-weight: 500;\\n}\\n\\n.labelClass {\\n font-size: 12px;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n width: 300px;\\n white-space: nowrap;\\n}\\n\\n.dt-toolbar-row-CR {\\n display: -ms-flexbox;\\n display: flex;\\n /*margin-right: -5px;\\n margin-left: -5px;\\n margin-bottom: 1rem;*/\\n}\\n\\n.dt-toolbar-col-CR {\\n padding-right: 5px;\\n padding-left: 5px;\\n position: relative;\\n}\\n\\n.dt-toolbar-col-CR .dt-context-menu {\\n width: 170px;\\n display: none;\\n}\\n\\n.dt-toolbar-col-CR.open .dt-context-menu {\\n display: block;\\n}\\n\\n.dt-toolbar-col-CR .dt-list-menu-item.disabled,\\n.dt-toolbar-col-CR .dt-list-menu-item.disabled:hover {\\n color: silver;\\n background-color: transparent;\\n border: 0;\\n box-shadow: 0 0 0;\\n cursor: default;\\n}\\n\\n.errorClass {\\n border: 2px solid red;\\n}\\n\\n.mat-selected {\\n background: darkblue !important;\\n color: lightgray !important;\\n}\\n\\n/*background colr change after selcting option*/\\n\\n.mat-selecte-default {\\n background: darkblue !important;\\n color: lightgray !important;\\n}\\n\\n/*bold filtered options while typing*/\\n\\n.highlight {\\n font-weight: bold;\\n}\\n\\n/*https://stackoverflow.com/questions/45777232/customize-angular-material-2-tooltip-styles*/\\n\\n::ng-deep .mat-tooltip {\\n color: red !important;\\n /*https: //stackoverflow.com/a/47576285*/\\n background-color: yellow !important;\\n font-size: 12px;\\n font-weight: bold;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvb3V0cHV0LXJlc3VsdHMvY3VzdG9tLXJlcG9ydC9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvc3JjXFxhcHBcXG91dHB1dC1yZXN1bHRzXFxjdXN0b20tcmVwb3J0XFxjdXN0b20tcmVwb3J0LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9vdXRwdXQtcmVzdWx0cy9jdXN0b20tcmVwb3J0L2N1c3RvbS1yZXBvcnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFBO0VBQ0EsY0FBQTtFQUNBLHFCQUFBO0FDQ0Y7O0FEQ0E7Ozs7RUFBQTs7QUFLQTtFQUNFLFNBQUE7QUNFRjs7QURDQTtFQUNFLHNCQUFBO0FDRUY7O0FEQ0E7RUFDRSxtQkFBQTtBQ0VGOztBRENBO0VBQ0Usc0JBQUE7QUNFRjs7QURDQTtFQUNFLGdCQUFBO0VBQ0EsaUJBQUE7QUNFRjs7QURDQTtFQUNFLGVBQUE7RUFDQSx1QkFBQTtFQUNBLFlBQUE7RUFDQSxvQkFBQTtFQUNBLGFBQUE7RUFDQSxhQUFBO0FDRUY7O0FEQ0E7RUFDRSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxtQkFBQTtBQ0VGOztBRENBO0VBQ0UsYUFBQTtBQ0VGOztBRENBO0VBQ0UsWUFBQTtBQ0VGOztBRENBO0VBQ0UseUJBQUE7QUNFRjs7QURDQTtFQUNFLHlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSwrQkFBQTtFQUNBLGdDQUFBO0FDRUY7O0FEQ0E7RUFDRSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSwrQkFBQTtFQUNBLGdDQUFBO0VBQ0EsaUNBQUE7QUNFRjs7QURHQTtFQUNFLGdCQUFBO0VBQ0EsK0JBQUE7RUFDQSxnQ0FBQTtFQUNBLDZCQUFBO0VBQ0EsOEJBQUE7QUNBRjs7QURHQTtFQUNFLGtCQUFBO0VBQ0EsZ0JBQUE7QUNBRjs7QURHQTtFQUNFLGdCQUFBO0VBQ0EsZ0NBQUE7RUFDQSw2QkFBQTtBQ0FGOztBREdBO0VBQ0UsaUJBQUE7QUNBRjs7QURHQTtFQUNFLGVBQUE7RUFDQSxPQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxxQkFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtBQ0FGOztBREdBO0VBQ0UsWUFBQTtBQ0FGOztBREdBLHFCQUFBOztBQUNBOztFQUFBOztBQUdBLG1CQUFBOztBQUVBLGlCQUFBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFBQTs7QUEwQkE7Ozs7O0VBQUE7O0FBTUEsZUFBQTs7QUFFQTtFQUNFLFdBQUE7QUNORjs7QURTQSxlQUFBOztBQUNBO0VBQ0UsNENBQUE7RUFDQSxvQ0FBQTtFQUNBLHVCQUFBO0VBQ0EseUJBQUE7RUFDQSxtQkFBQTtFQUNBLHlCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtBQ05GOztBRFNBO0VBQ0U7SUFFRSx1QkFBQTtFQ05GO0VEU0E7SUFFRSx5QkFBQTtFQ1BGO0FBQ0Y7O0FERkE7RUFDRTtJQUVFLHVCQUFBO0VDTkY7RURTQTtJQUVFLHlCQUFBO0VDUEY7QUFDRjs7QURVQTtFQUNFLGNBQUE7RUFDQSw2Q0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLFNBQUE7RUFDQSxPQUFBO0VBQ0EsYUFBQTtBQ1JGOztBRFdBLGFBQUE7O0FBRUE7RUFDRSxlQUFBO0VBQ0EsT0FBQTtFQUNBLE1BQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLHNCQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7QUNURjs7QURZQTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsZ0RBQUE7RUFHQSx3Q0FBQTtFQUNBLDhDQUFBO0VBQ0EsK0NBQUE7RUFDQSxnREFBQTtFQUNBLDRDQUFBO0VBQ0EsbUJBQUE7QUNURjs7QURZQTtFQUNFLGdCQUFBO0FDVEY7O0FEWUE7RUFDRSxlQUFBO0VBQ0Esa0RBQUE7RUFDQSxZQUFBO0VBQ0EsbUJBQUE7QUNURjs7QURZQTtFQUNFLG9CQUFBO0VBQUEsYUFBQTtFQUNBOzt5QkFBQTtBQ1BGOztBRFdBO0VBQ0Usa0JBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0FDUkY7O0FEVUE7RUFDRSxZQUFBO0VBQ0EsYUFBQTtBQ1BGOztBRFVBO0VBQ0UsY0FBQTtBQ1BGOztBRFNBOztFQUVFLGFBQUE7RUFDQSw2QkFBQTtFQUNBLFNBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7QUNORjs7QURXQTtFQUNFLHFCQUFBO0FDUkY7O0FEWUE7RUFDRSwrQkFBQTtFQUNBLDJCQUFBO0FDVEY7O0FEV0EsK0NBQUE7O0FBQ0E7RUFDRSwrQkFBQTtFQUNBLDJCQUFBO0FDUkY7O0FEV0EscUNBQUE7O0FBQ0E7RUFDRSxpQkFBQTtBQ1JGOztBRFdBLDJGQUFBOztBQUNBO0VBQ0UscUJBQUE7RUFBdUIsd0NBQUE7RUFDdkIsbUNBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxrREFBQTtBQ1BGIiwiZmlsZSI6InNyYy9hcHAvb3V0cHV0LXJlc3VsdHMvY3VzdG9tLXJlcG9ydC9jdXN0b20tcmVwb3J0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsidGFibGUge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG4gIC8qdGFibGUtbGF5b3V0OmF1dG87Ki9cclxufVxyXG4vKnRoLCB0ZCB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59Ki9cclxudHIuZXhhbXBsZS1kZXRhaWwtcm93IHtcclxuICBoZWlnaHQ6IDA7XHJcbn1cclxuXHJcbnRyLmV4YW1wbGUtZWxlbWVudC1yb3c6bm90KC5leGFtcGxlLWV4cGFuZGVkLXJvdyk6aG92ZXIge1xyXG4gIGJhY2tncm91bmQ6IHdoaXRlc21va2U7XHJcbn1cclxuXHJcbnRyLmV4YW1wbGUtZWxlbWVudC1yb3c6bm90KC5leGFtcGxlLWV4cGFuZGVkLXJvdyk6YWN0aXZlIHtcclxuICBiYWNrZ3JvdW5kOiAjZWZlZmVmO1xyXG59XHJcblxyXG4uZXhhbXBsZS1lbGVtZW50LXJvdyB0ZCB7XHJcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcclxufVxyXG5cclxuLmV4YW1wbGUtZWxlbWVudC1kZXRhaWwge1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgLypkaXNwbGF5OiBmbGV4OyovXHJcbn1cclxuXHJcbi5leGFtcGxlLWVsZW1lbnQtZGlhZ3JhbSB7XHJcbiAgbWluLXdpZHRoOiA4MHB4O1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrO1xyXG4gIHBhZGRpbmc6IDhweDtcclxuICBmb250LXdlaWdodDogbGlnaHRlcjtcclxuICBtYXJnaW46IDhweCAwO1xyXG4gIGhlaWdodDogMTA0cHg7XHJcbn1cclxuXHJcbi5leGFtcGxlLWVsZW1lbnQtc3ltYm9sIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXNpemU6IDQwcHg7XHJcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxufVxyXG5cclxuLmV4YW1wbGUtZWxlbWVudC1kZXNjcmlwdGlvbiB7XHJcbiAgcGFkZGluZzogMTZweDtcclxufVxyXG5cclxuLmV4YW1wbGUtZWxlbWVudC1kZXNjcmlwdGlvbi1hdHRyaWJ1dGlvbiB7XHJcbiAgb3BhY2l0eTogMC41O1xyXG59XHJcblxyXG50aCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVCOUJENTtcclxufVxyXG5cclxuLnRoX2V4cGFuZGVkIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzlERkY0O1xyXG4gIHBhZGRpbmc6IDRweCAzcHg7XHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2M2YzZjNjtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M2YzZjNjtcclxufVxyXG5cclxuLnRoZWFkZXIge1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBwYWRkaW5nOiA0cHggM3B4O1xyXG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjNmM2YzY7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNmM2YzY7XHJcbiAgLypib3JkZXItdG9wOiAxcHggc29saWQgI2M2YzZjNjsqL1xyXG59XHJcblxyXG5cclxuXHJcbi50ZF9leHBhbmRlZCB7XHJcbiAgcGFkZGluZzogNHB4IDNweDtcclxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYzZjNmM2O1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzZjNmM2O1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYzZjNmM2O1xyXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2M2YzZjNjtcclxufVxyXG5cclxuLmRpdkhlYXJkZXIge1xyXG4gIG1hcmdpbi1sZWZ0OiAyMDBweDtcclxuICBmb250LXNpemU6IGxhcmdlO1xyXG59XHJcblxyXG4udGRfTWFpbiB7XHJcbiAgcGFkZGluZzogNHB4IDNweDtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M2YzZjNjtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2M2YzZjNjtcclxufVxyXG5cclxuLmhpZ2hsaWdodCB7XHJcbiAgY29sb3I6IGJsdWV2aW9sZXQ7XHJcbn1cclxuXHJcbi5mb290ZXIge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBsZWZ0OiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLmV4cG9ydDpob3ZlciB7XHJcbiAgY29sb3I6IGJsYWNrO1xyXG59XHJcblxyXG4vKnN0YXJ0IFJhZGlvIEJ1dHRvbiovXHJcbi8qLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbn0qL1xyXG4vKkVORCBSYWRpbyBCdXR0b24qL1xyXG5cclxuLypzdGFydCBjaGVja2JveCovXHJcbi8qLmNoZWNrYm94c2l6ZSAuZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lciB7XHJcbiAgd2lkdGg6IDIwcHg7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG59XHJcblxyXG5cclxuOjpuZy1kZWVwIC5tYXQtY2hlY2tib3ggLm1hdC1jaGVja2JveC1mcmFtZSB7XHJcbiAgYm9yZGVyLWNvbG9yOiB2aW9sZXQ7XHJcbiAgdG9wOiAxMHB4O1xyXG4gIHdpZHRoOiAyMHB4O1xyXG4gIGhlaWdodDogMjBweDtcclxufVxyXG5cclxuXHJcblxyXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCxcclxuOjpuZy1kZWVwIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IGJsdWUgIWltcG9ydGFudDtcclxuICB0b3A6IDEwcHg7XHJcbiAgd2lkdGg6IDIwcHg7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG59Ki9cclxuXHJcblxyXG5cclxuXHJcbi8qOjpuZy1kZWVwIC5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IGJsdWUgIWltcG9ydGFudDtcclxuICB0b3A6IDEwcHg7XHJcbiAgd2lkdGg6IDIwcHg7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG59Ki9cclxuLyplbmQgY2hlY2tib3gqL1xyXG5cclxuLmxpbmVTcGFjZURpdiB7XHJcbiAgaGVpZ2h0OiAzcHg7XHJcbn1cclxuXHJcbi8qc3RhcnQgbG9hZGVyKi9cclxuI3NwaW5uZXIge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmcmFtZXMgMXMgaW5maW5pdGUgbGluZWFyO1xyXG4gIGFuaW1hdGlvbjogZnJhbWVzIDFzIGluZmluaXRlIGxpbmVhcjtcclxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICBib3JkZXI6IDAuNzV2dyBzb2xpZCAjRkZGO1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbiAgYm9yZGVyLXRvcC1jb2xvcjogI0RGNjkxQTtcclxuICB3aWR0aDogNXZ3O1xyXG4gIGhlaWdodDogNXZ3O1xyXG4gIG9wYWNpdHk6IC42O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHotaW5kZXg6IDk5OTtcclxufVxyXG5cclxuQGtleWZyYW1lcyBmcmFtZXMge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICB9XHJcblxyXG4gIDEwMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcclxuICB9XHJcbn1cclxuXHJcbiNwYXVzZSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjY2KSBuby1yZXBlYXQgMCAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgei1pbmRleDogMTAwMDtcclxufVxyXG5cclxuLyplbmQgbG9hZGVyKi9cclxuXHJcbi5zcGlubmVyX292ZXJsYXkge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBsZWZ0OiAwO1xyXG4gIHRvcDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBvcGFjaXR5OiAwLjU7XHJcbiAgei1pbmRleDogMTAwMDtcclxufVxyXG5cclxuLnNwaW5uZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiA1MCU7XHJcbiAgdG9wOiAyMCU7XHJcbiAgaGVpZ2h0OiA2MHB4O1xyXG4gIHdpZHRoOiA2MHB4O1xyXG4gIG1hcmdpbjogMHB4IGF1dG87XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0aW9uIC42cyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgLW1vei1hbmltYXRpb246IHJvdGF0aW9uIC42cyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgLW8tYW5pbWF0aW9uOiByb3RhdGlvbiAuNnMgaW5maW5pdGUgbGluZWFyO1xyXG4gIGFuaW1hdGlvbjogcm90YXRpb24gLjZzIGluZmluaXRlIGxpbmVhcjtcclxuICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHJnYmEoMCwxNzQsMjM5LC4xNSk7XHJcbiAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgcmdiYSgwLDE3NCwyMzksLjE1KTtcclxuICBib3JkZXItYm90dG9tOiA2cHggc29saWQgcmdiYSgwLDE3NCwyMzksLjE1KTtcclxuICBib3JkZXItdG9wOiA2cHggc29saWQgcmdiYSgwLDE3NCwyMzksLjgpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbn1cclxuXHJcbi5sYWJlbGZvbnR3ZWlnaHQge1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbn1cclxuXHJcbi5sYWJlbENsYXNzIHtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbiAgd2lkdGg6IDMwMHB4O1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcbi5kdC10b29sYmFyLXJvdy1DUiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICAvKm1hcmdpbi1yaWdodDogLTVweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsqL1xyXG59XHJcbi5kdC10b29sYmFyLWNvbC1DUiB7XHJcbiAgcGFkZGluZy1yaWdodDogNXB4O1xyXG4gIHBhZGRpbmctbGVmdDogNXB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG4uZHQtdG9vbGJhci1jb2wtQ1IgLmR0LWNvbnRleHQtbWVudSB7XHJcbiAgd2lkdGg6IDE3MHB4O1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5kdC10b29sYmFyLWNvbC1DUi5vcGVuIC5kdC1jb250ZXh0LW1lbnUge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcbi5kdC10b29sYmFyLWNvbC1DUiAuZHQtbGlzdC1tZW51LWl0ZW0uZGlzYWJsZWQsXHJcbi5kdC10b29sYmFyLWNvbC1DUiAuZHQtbGlzdC1tZW51LWl0ZW0uZGlzYWJsZWQ6aG92ZXIge1xyXG4gIGNvbG9yOiBzaWx2ZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAwO1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxufVxyXG5cclxuXHJcblxyXG4uZXJyb3JDbGFzcyB7XHJcbiAgYm9yZGVyOiAycHggc29saWQgcmVkO1xyXG59XHJcblxyXG5cclxuLm1hdC1zZWxlY3RlZCB7XHJcbiAgYmFja2dyb3VuZDogZGFya2JsdWUgIWltcG9ydGFudDtcclxuICBjb2xvcjogbGlnaHRncmF5ICFpbXBvcnRhbnQ7XHJcbn1cclxuLypiYWNrZ3JvdW5kIGNvbHIgY2hhbmdlIGFmdGVyIHNlbGN0aW5nIG9wdGlvbiovXHJcbi5tYXQtc2VsZWN0ZS1kZWZhdWx0IHtcclxuICBiYWNrZ3JvdW5kOiBkYXJrYmx1ZSAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiBsaWdodGdyYXkgIWltcG9ydGFudDtcclxufVxyXG5cclxuLypib2xkIGZpbHRlcmVkIG9wdGlvbnMgd2hpbGUgdHlwaW5nKi9cclxuLmhpZ2hsaWdodCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi8qaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDU3NzcyMzIvY3VzdG9taXplLWFuZ3VsYXItbWF0ZXJpYWwtMi10b29sdGlwLXN0eWxlcyovXHJcbjo6bmctZGVlcCAubWF0LXRvb2x0aXAge1xyXG4gIGNvbG9yOiByZWQgIWltcG9ydGFudDsgLypodHRwczogLy9zdGFja292ZXJmbG93LmNvbS9hLzQ3NTc2Mjg1Ki9cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3cgIWltcG9ydGFudDtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbn1cclxuIiwidGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIC8qdGFibGUtbGF5b3V0OmF1dG87Ki9cbn1cblxuLyp0aCwgdGQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn0qL1xudHIuZXhhbXBsZS1kZXRhaWwtcm93IHtcbiAgaGVpZ2h0OiAwO1xufVxuXG50ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1leHBhbmRlZC1yb3cpOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogd2hpdGVzbW9rZTtcbn1cblxudHIuZXhhbXBsZS1lbGVtZW50LXJvdzpub3QoLmV4YW1wbGUtZXhwYW5kZWQtcm93KTphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjZWZlZmVmO1xufVxuXG4uZXhhbXBsZS1lbGVtZW50LXJvdyB0ZCB7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG59XG5cbi5leGFtcGxlLWVsZW1lbnQtZGV0YWlsIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLypkaXNwbGF5OiBmbGV4OyovXG59XG5cbi5leGFtcGxlLWVsZW1lbnQtZGlhZ3JhbSB7XG4gIG1pbi13aWR0aDogODBweDtcbiAgYm9yZGVyOiAycHggc29saWQgYmxhY2s7XG4gIHBhZGRpbmc6IDhweDtcbiAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG4gIG1hcmdpbjogOHB4IDA7XG4gIGhlaWdodDogMTA0cHg7XG59XG5cbi5leGFtcGxlLWVsZW1lbnQtc3ltYm9sIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogNDBweDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLmV4YW1wbGUtZWxlbWVudC1kZXNjcmlwdGlvbiB7XG4gIHBhZGRpbmc6IDE2cHg7XG59XG5cbi5leGFtcGxlLWVsZW1lbnQtZGVzY3JpcHRpb24tYXR0cmlidXRpb24ge1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbnRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVCOUJENTtcbn1cblxuLnRoX2V4cGFuZGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0M5REZGNDtcbiAgcGFkZGluZzogNHB4IDNweDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2M2YzZjNjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNmM2YzY7XG59XG5cbi50aGVhZGVyIHtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiA0cHggM3B4O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYzZjNmM2O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M2YzZjNjtcbiAgLypib3JkZXItdG9wOiAxcHggc29saWQgI2M2YzZjNjsqL1xufVxuXG4udGRfZXhwYW5kZWQge1xuICBwYWRkaW5nOiA0cHggM3B4O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYzZjNmM2O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M2YzZjNjtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjNmM2YzY7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2M2YzZjNjtcbn1cblxuLmRpdkhlYXJkZXIge1xuICBtYXJnaW4tbGVmdDogMjAwcHg7XG4gIGZvbnQtc2l6ZTogbGFyZ2U7XG59XG5cbi50ZF9NYWluIHtcbiAgcGFkZGluZzogNHB4IDNweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNmM2YzY7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYzZjNmM2O1xufVxuXG4uaGlnaGxpZ2h0IHtcbiAgY29sb3I6IGJsdWV2aW9sZXQ7XG59XG5cbi5mb290ZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJlZDtcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5leHBvcnQ6aG92ZXIge1xuICBjb2xvcjogYmxhY2s7XG59XG5cbi8qc3RhcnQgUmFkaW8gQnV0dG9uKi9cbi8qLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufSovXG4vKkVORCBSYWRpbyBCdXR0b24qL1xuLypzdGFydCBjaGVja2JveCovXG4vKi5jaGVja2JveHNpemUgLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXIge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG5cbjo6bmctZGVlcCAubWF0LWNoZWNrYm94IC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6IHZpb2xldDtcbiAgdG9wOiAxMHB4O1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG5cblxuOjpuZy1kZWVwIC5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsdWUgIWltcG9ydGFudDtcbiAgdG9wOiAxMHB4O1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufSovXG4vKjo6bmctZGVlcCAubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZSAhaW1wb3J0YW50O1xuICB0b3A6IDEwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59Ki9cbi8qZW5kIGNoZWNrYm94Ki9cbi5saW5lU3BhY2VEaXYge1xuICBoZWlnaHQ6IDNweDtcbn1cblxuLypzdGFydCBsb2FkZXIqL1xuI3NwaW5uZXIge1xuICAtd2Via2l0LWFuaW1hdGlvbjogZnJhbWVzIDFzIGluZmluaXRlIGxpbmVhcjtcbiAgYW5pbWF0aW9uOiBmcmFtZXMgMXMgaW5maW5pdGUgbGluZWFyO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwLjc1dncgc29saWQgI0ZGRjtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI0RGNjkxQTtcbiAgd2lkdGg6IDV2dztcbiAgaGVpZ2h0OiA1dnc7XG4gIG9wYWNpdHk6IDAuNjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA5OTk7XG59XG5cbkBrZXlmcmFtZXMgZnJhbWVzIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gIH1cbn1cbiNwYXVzZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNjYpIG5vLXJlcGVhdCAwIDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG4vKmVuZCBsb2FkZXIqL1xuLnNwaW5uZXJfb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBvcGFjaXR5OiAwLjU7XG4gIHotaW5kZXg6IDEwMDA7XG59XG5cbi5zcGlubmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogMjAlO1xuICBoZWlnaHQ6IDYwcHg7XG4gIHdpZHRoOiA2MHB4O1xuICBtYXJnaW46IDBweCBhdXRvO1xuICAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRpb24gMC42cyBpbmZpbml0ZSBsaW5lYXI7XG4gIC1tb3otYW5pbWF0aW9uOiByb3RhdGlvbiAwLjZzIGluZmluaXRlIGxpbmVhcjtcbiAgLW8tYW5pbWF0aW9uOiByb3RhdGlvbiAwLjZzIGluZmluaXRlIGxpbmVhcjtcbiAgYW5pbWF0aW9uOiByb3RhdGlvbiAwLjZzIGluZmluaXRlIGxpbmVhcjtcbiAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCByZ2JhKDAsIDE3NCwgMjM5LCAwLjE1KTtcbiAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgcmdiYSgwLCAxNzQsIDIzOSwgMC4xNSk7XG4gIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCByZ2JhKDAsIDE3NCwgMjM5LCAwLjE1KTtcbiAgYm9yZGVyLXRvcDogNnB4IHNvbGlkIHJnYmEoMCwgMTc0LCAyMzksIDAuOCk7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG59XG5cbi5sYWJlbGZvbnR3ZWlnaHQge1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubGFiZWxDbGFzcyB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIHdpZHRoOiAzMDBweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmR0LXRvb2xiYXItcm93LUNSIHtcbiAgZGlzcGxheTogZmxleDtcbiAgLyptYXJnaW4tcmlnaHQ6IC01cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsqL1xufVxuXG4uZHQtdG9vbGJhci1jb2wtQ1Ige1xuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5kdC10b29sYmFyLWNvbC1DUiAuZHQtY29udGV4dC1tZW51IHtcbiAgd2lkdGg6IDE3MHB4O1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZHQtdG9vbGJhci1jb2wtQ1Iub3BlbiAuZHQtY29udGV4dC1tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5kdC10b29sYmFyLWNvbC1DUiAuZHQtbGlzdC1tZW51LWl0ZW0uZGlzYWJsZWQsXG4uZHQtdG9vbGJhci1jb2wtQ1IgLmR0LWxpc3QtbWVudS1pdGVtLmRpc2FibGVkOmhvdmVyIHtcbiAgY29sb3I6IHNpbHZlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgYm94LXNoYWRvdzogMCAwIDA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLmVycm9yQ2xhc3Mge1xuICBib3JkZXI6IDJweCBzb2xpZCByZWQ7XG59XG5cbi5tYXQtc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kOiBkYXJrYmx1ZSAhaW1wb3J0YW50O1xuICBjb2xvcjogbGlnaHRncmF5ICFpbXBvcnRhbnQ7XG59XG5cbi8qYmFja2dyb3VuZCBjb2xyIGNoYW5nZSBhZnRlciBzZWxjdGluZyBvcHRpb24qL1xuLm1hdC1zZWxlY3RlLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kOiBkYXJrYmx1ZSAhaW1wb3J0YW50O1xuICBjb2xvcjogbGlnaHRncmF5ICFpbXBvcnRhbnQ7XG59XG5cbi8qYm9sZCBmaWx0ZXJlZCBvcHRpb25zIHdoaWxlIHR5cGluZyovXG4uaGlnaGxpZ2h0IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDU3NzcyMzIvY3VzdG9taXplLWFuZ3VsYXItbWF0ZXJpYWwtMi10b29sdGlwLXN0eWxlcyovXG46Om5nLWRlZXAgLm1hdC10b29sdGlwIHtcbiAgY29sb3I6IHJlZCAhaW1wb3J0YW50O1xuICAvKmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDc1NzYyODUqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3cgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG59Il19 */\"","import { Component, OnInit, Output, EventEmitter, ViewChild, ViewEncapsulation, ElementRef, ChangeDetectorRef, OnDestroy, AfterViewInit, ViewChildren, QueryList, Input } from '@angular/core';\r\nimport { animate, state, style, transition, trigger, group } from '@angular/animations';\r\nimport { DemoService } from '../../shared/demo.service';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { request } from 'http';\r\nimport { MatTableDataSource } from '@angular/material';\r\nimport { DataSource } from '@angular/cdk/table';\r\nimport { MatDialog, MatDialogConfig, MatAutocomplete, MatAutocompleteTrigger, PageEvent, MatPaginator } from '@angular/material';\r\nimport { FormControl } from '@angular/forms';\r\nimport { VquadbtfxoComponent } from 'src/app/statistics/network-status/vquadbtfxo/vquadbtfxo.component';\r\nimport { CommonFilter } from 'src/app/shared/models/Common/common-filter';\r\nimport { parse } from 'querystring';\r\nimport { NWSTAT_VQUAD } from 'src/app/shared/models/NWSTAT_VQUAD';\r\nimport { NWSTAT_VQUAD_CENTRALIPS } from 'src/app/shared/models/NWSTAT_VQUAD_CENTRALIPS';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { ConfirmDialogComponent } from 'src/app/shared/components/confirm-dialog/confirm-dialog.component';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Chart, ChartType, ChartOptions } from 'chart.js';\r\nimport { ChartsModule } from 'ng2-charts';\r\nimport { strictEqual } from 'assert';\r\nimport { E } from '@angular/cdk/keycodes';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { SelectItem, Keys } from 'lib/common';\r\nimport { rsltTypeInTitle } from 'src/app/shared/functions/title';\r\nimport { Job } from 'src/app/shared/models/Scheduler/Job';\r\nimport jsPDF from 'jspdf';\r\nimport html2canvas from 'html2canvas';\r\nimport * as XLSX from 'xlsx';\r\nimport XLSXStyle from 'xlsx-style';\r\n//https://www.ngdevelop.tech/export-to-excel-in-angular-6/\r\nimport { Workbook, stream } from 'exceljs';\r\n//import * as Excel from 'exceljs/dist/exceljs.min.js';\r\nimport * as moment from 'moment';\r\nimport { url } from 'inspector';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\nimport { formatDate, lastDateFunc, formatDBTZDateToLocalDate, getDateValue, getDateValueViaValue } from 'lib/common/utils';\r\nimport { map } from 'rxjs/operators';\r\nimport { DatePipe } from '@angular/common';\r\nimport { Subscription } from 'rxjs';\r\nimport { DataFilter } from 'lib/ng-data-table/base';\r\nimport { CustomreportlinechartComponent } from '../customreportlinechart/customreportlinechart.component';\r\n//File-Saver for downloading PDF - IMP\r\ndeclare var require: any\r\nconst FileSaver = require('file-saver');\r\n\r\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\nconst EXCEL_EXTENSION = '.xlsx';\r\n\r\n@Component({\r\n selector: 'app-custom-report',\r\n templateUrl: './custom-report.component.html',\r\n styleUrls: ['./custom-report.component.scss']\r\n})\r\nexport class CustomReportComponent implements OnInit, AfterViewInit, OnDestroy {\r\n clearAllFiltersAction: boolean = true;\r\n actionsMessage: string = 'Actions';\r\n modifyFiltersMessage: string = 'Modify filters';\r\n clearFiltersMessage: string = 'Clear all filters';\r\n isFilters: boolean = true;\r\n hasFilters: boolean;\r\n\r\n //susheel \r\n rsltType: string = \"custom-reports\";\r\n rsltTypeTS = '-1';\r\n TSSelected: number;\r\n AutoRefreshInfo: any;\r\n title: string = \"Custom Reports\";\r\n staticScreen = false;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n baseUrl: string;\r\n url: string;\r\n isLoading = false;\r\n noRecordFound = false;\r\n selectedFilter: string = \"Aggregate\";\r\n timeFilter: string = \"10min\";\r\n timestampSearch: string = \"VQUAD_TIMESTAMP\";\r\n reportID: number = 0;\r\n isCustomDate: boolean = false;\r\n startDate: Date;\r\n endDate: Date;\r\n RecordPerPage: string = \"200\";\r\n chartID: string = \"chartID\";\r\n groupReportID: number = 0;\r\n crFilterType: string = \"\";\r\n isBarChart: boolean = false;\r\n isLineChart: boolean = false;\r\n filterType_LineGraph: string = \"\";\r\n selectedReportName: string = \"\";\r\n selectedGroupName: string = \"\";\r\n isRefreshClicked: boolean = false;\r\n firstTimeFunctionCall: boolean = false;\r\n restorePreviousReportID: number = 0;\r\n restoreGroupID: number = 0;\r\n\r\n reportList = [];\r\n dataSource = [];\r\n exportDataSource: any[];\r\n tableDef: Array = [];\r\n columnsToDisplay: string[];\r\n groupReportATMainList = [];\r\n groupReportList: SelectItem[] = [];\r\n grpCRNamesObservable: SelectItem[] = [];\r\n groupReportATList: SelectItem[] = [];\r\n customReportList: SelectItem[] = [];\r\n CRNamesObservable: SelectItem[] = [];\r\n selectedGroupID: number[] = [0];\r\n selectedGroupATID: number[] = [0];\r\n selectedReportID: number[] = [0];\r\n modelGrpCRName: string;\r\n selectedtimeFilter: string[] = ['10min'];\r\n selectedtimestampSearch: string[] = ['VQUAD_TIMESTAMP'];\r\n selectedRecordPerPage: string[] = ['200'];\r\n selectedStartEndTime: any;\r\n\r\n // MatPaginator Inputs\r\n TotalRecordCount:number = 0;\r\n currentPage: number;\r\n length = 0;\r\n pageSize = this.RecordPerPage;\r\n pageSizeOptions: number[] = [1, 10, 25, 100];\r\n pageIndex = 0;\r\n ResulTypeLatestID_CRPagination = \"\";\r\n\r\n pageEvent: PageEvent; // MatPaginator Output\r\n private commonFilter: CommonFilter;\r\n barChart = null;\r\n barChart1: Chart;\r\n lineChart = null;\r\n lineChartTest: Chart;\r\n dummyBarChart = null;\r\n mlineChart: Chart[] = [];\r\n lineChartCount: any;\r\n lineChartData: any;\r\n\r\n interval;\r\n\r\n @ViewChild(\"stackchartcanvas\", { static: true }) stackchartcanvas: ElementRef;\r\n @ViewChild('exporter', { static: true }) exporter: ElementRef;\r\n @ViewChild('pdfReport', { static: false }) pdfReport: ElementRef;\r\n @ViewChild('linechartReport', { static: false }) linechartReport: ElementRef;\r\n @ViewChild('dateInput', { static: true }) dateInput: ElementRef;\r\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\r\n\r\n MainFilterID = 0;\r\n MainFilterTZ = 0;\r\n genArrDel = [];\r\n genArr = [];\r\n private dataFilter: DataFilter;\r\n private subscriptions: Subscription[] = [];\r\n filterEventIDSelected = false;\r\n delColSelected = false;\r\n\r\n toHighlightCR: string = '';\r\n toHighlightGrpCR: string = '';\r\n\r\n constructor(private _Activatedroute: ActivatedRoute, private _router: Router, private http: HttpClient, private service: DemoService, public datepipe: DatePipe, private commonFilterService: CommonFilterService, private dialog: MatDialog, private cdr: ChangeDetectorRef) {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n this.firstTimeFunctionCall = true;\r\n this.dataFilter = new DataFilter();\r\n this.commonFilterService.setNonFiltersScreen(this.staticScreen);\r\n\r\n this.commonFilterService.mainFilterID.subscribe(res => this.MainFilterID = res);// set mainfilter ID\r\n this.commonFilterService.mfTZ.subscribe(res => this.MainFilterTZ = res);// set mainfilter ID\r\n //console.log(\"MainFilterTZ\");\r\n //console.log(this.MainFilterTZ);\r\n this.lineChartCount = Array(0).fill(0).map((x, i) => i);\r\n //this.lineChartCount.push(1);\r\n //this.lineChartCount.push(2);\r\n //this.lineChartCount.push(3);\r\n\r\n _Activatedroute.params.subscribe(val => {\r\n this.rsltType = _Activatedroute.snapshot.url[1].path;\r\n this.parentEvent();\r\n });\r\n\r\n this.commonFilterService.TSType.subscribe(res => {\r\n this.commonFilter = new CommonFilter();\r\n this.SetTimestampSearch(res);\r\n });//TsType\r\n\r\n\r\n //NOT NEEDED AS Refresh already is taking care\r\n //const _broadSubCRRefresh = this.commonFilterService.componentCRMethodCalled$.subscribe(res => {\r\n // //this.selectedFilters = 0;\r\n // //this.constructorLoad = true;\r\n // this.LoadReportByFilterMethod(this.selectedFilter, true);\r\n //});\r\n //this.subscriptions.push(_broadSubCRRefresh);\r\n\r\n const _broadSublisten = this.commonFilterService.listen.subscribe(res => {\r\n if (res === 'onlyCRInit' && !this.filterEventIDSelected)\r\n this.UpdateScreen();\r\n if (this.filterEventIDSelected)\r\n this.filterEventIDSelected = false;\r\n });\r\n this.subscriptions.push(_broadSublisten);\r\n\r\n this.commonFilterService.isFilters$.subscribe(res => {\r\n this.isFilters = res;\r\n });\r\n\r\n //Do Refresh\r\n const _broadSubRefresh = this.commonFilterService.componentMethodCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log('')\r\n //debugger;\r\n ///this is implemented when click on refresh after any change made in config sceen for the selected report.\r\n ///cpz if in config screen selected report is edited and saved then in database it will delete existing one and save it as new record so report id is mismatched. so to avoid that local storage is used to store report name instead of ID.\r\n this.isRefreshClicked = false;\r\n if (localStorage.getItem('selectedReportName') != null) {\r\n this.selectedReportName = localStorage.getItem('selectedReportName');\r\n this.isRefreshClicked = true;\r\n }\r\n if (localStorage.getItem('selectedGroupID') != null) {\r\n this.restoreGroupID = Number(localStorage.getItem('selectedGroupID'));\r\n this.isRefreshClicked = true;\r\n }\r\n\r\n //console.log(this.restoreGroupID)\r\n if (this.selectedFilter != \"Group\")\r\n this.LoadReportByFilterMethod(this.selectedFilter, true);\r\n else\r\n this.LoadGroupBasedData();\r\n\r\n\r\n }\r\n );\r\n this.subscriptions.push(_broadSubRefresh);\r\n\r\n //Do Refresh\r\n const _broadSubRefreshByEdit = this.commonFilterService.componentCRMethodCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.commonFilterService.basicCRSavedRefresh('');\r\n //console.log(res)\r\n this.isRefreshClicked = false;\r\n if (localStorage.getItem('selectedReportName') != null) {\r\n this.selectedReportName = localStorage.getItem('selectedReportName');\r\n this.isRefreshClicked = true;\r\n }\r\n //if (localStorage.getItem('selectedGroupID') != null) {\r\n // this.restoreGroupID = Number(localStorage.getItem('selectedGroupID'));\r\n // this.isRefreshClicked = true;\r\n //}\r\n if (localStorage.getItem('selectedGroupName') != null) {\r\n this.selectedGroupName = localStorage.getItem('selectedGroupName');\r\n this.GetReportListByGrpName(this.selectedGroupName);\r\n this.isRefreshClicked = true;\r\n }\r\n\r\n\r\n if (this.selectedFilter != \"Group\")\r\n this.LoadReportByFilterMethod(this.selectedFilter, true);\r\n else\r\n this.LoadGroupBasedData();\r\n\r\n\r\n }\r\n );\r\n this.subscriptions.push(_broadSubRefreshByEdit);\r\n \r\n\r\n //https://stackoverflow.com/questions/57909492/does-the-subscribe-function-execute-synchronously\r\n //return this.commonFilterService.AllGeneralFilter.pipe(map(res => {\r\n //https://stackoverflow.com/questions/53741079/filter-with-json-in-angular-6\r\n const _broadSubAllGeneralFilter = this.commonFilterService.AllGeneralFilter.subscribe(res => {\r\n this.AllGeneralFilter = res;\r\n if (!this.delColSelected && !this.clearAllFiltersBool && this.AllGeneralFilter.length > 0)\r\n this.UpdateScreen();\r\n //reset here\r\n if (this.delColSelected)\r\n this.delColSelected = false;\r\n if (this.clearAllFiltersBool)\r\n this.clearAllFiltersBool = false;\r\n\r\n this.delFilterColName = '';//reset if delete or clear all filters\r\n });\r\n this.subscriptions.push(_broadSubAllGeneralFilter);\r\n\r\n //https://medium.com/cp-massive-programming/angular-user-inheritance-to-unsubscribe-from-observables-f5617fbbd8f2\r\n //https://stackoverflow.com/questions/42951400/angular-2-behaviorsubject-avoid-with-multiple-subscription\r\n const _broadSubDeleteFilter = this.commonFilterService.DeleteFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n if (res !== '') {//IMP IMP\r\n this.delFilterColName = res;\r\n this.UpdateScreen();\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubDeleteFilter);\r\n\r\n //const _broadSubGeneralDFFilter = this.commonFilterService.GeneralFilterDF.subscribe(res => {\r\n // //console.log('GeneralDFFilter')\r\n // this.filters = res;\r\n //});\r\n //this.subscriptions.push(_broadSubGeneralDFFilter);\r\n const _broadSubGeneralFilter = this.commonFilterService.GeneralFilter.subscribe(res => {\r\n //console.log('GeneralFilter')\r\n //console.log(res)\r\n this.filters = res;\r\n });\r\n this.subscriptions.push(_broadSubGeneralFilter);\r\n\r\n const _broadSubEventIDFilter = this.commonFilterService.GeneralEventIDFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log(res)\r\n //console.log('filtersWithEventID')\r\n //this.filterEventIDSelected = true;\r\n this.filtersWithEventID = res;\r\n //if (!this.delColSelected && !this.clearAllFiltersBool && (typeof this.filtersWithEventID == 'object' && Object.keys(this.filtersWithEventID).length > 0))\r\n // this.UpdateScreen();\r\n });\r\n this.subscriptions.push(_broadSubEventIDFilter);\r\n\r\n //Do Auto-refresh - start/stop\r\n const _broadSubAutoRefresh = this.commonFilterService.componentMethodWithArgCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.AutoRefreshInfo = res;\r\n //console.log(this.AutoRefreshInfo);\r\n\r\n if (this.AutoRefreshInfo.AutoRefStop) {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n }\r\n }\r\n else {\r\n this.interval = setInterval(() => {\r\n //console.log(this.AutoRefreshInfo.AutoRefStop);\r\n this.UpdateScreen();\r\n }, this.AutoRefreshInfo.AutoRefSelected);\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAutoRefresh);\r\n\r\n }\r\n @ViewChildren(MatAutocompleteTrigger) triggerCollection: QueryList;\r\n @ViewChild('inputCR', { static: false }) inputCtrl;\r\n @ViewChild('inputGrpCR', { static: false }) inputGrpCtrl;\r\n\r\n controlCR = new FormControl();\r\n\r\n @Input() myConfigNameCR = \"null\";\r\n\r\n controlGrpCR = new FormControl();\r\n\r\n @Input() myConfigNameGrpCR = \"null\";\r\n\r\n parentEvent() {\r\n //debugger;\r\n this.title = rsltTypeInTitle(this.rsltType);\r\n this.childTitleEvent.emit(this.title);\r\n }\r\n\r\n initCR = false;\r\n initGrpCR = false;\r\n ngOnInit() {\r\n this.initCR = true;\r\n if (this.myConfigNameCR == \"\")\r\n this.myConfigNameCR = \"null\";\r\n this.initGrpCR = true;\r\n if (this.myConfigNameGrpCR == \"\")\r\n this.myConfigNameGrpCR = \"null\";\r\n\r\n //this.BindBarChartTest();\r\n //this.BindLineChart();\r\n\r\n //this.BindMultiLineChartTest();\r\n // this.BindBarChartSample();\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n if (this.myConfigNameCR != \"null\") {\r\n this.isLoading = true;\r\n this.interval = setInterval(() => {\r\n this.triggerCollection.forEach((x, i) => {\r\n if (i == 0) {\r\n const selMatOption = x.autocomplete.options.toArray();\r\n if (selMatOption.length > 0) {\r\n this.controlCR.setValue({ name: selMatOption.find((o) => o.value.name === this.myConfigNameCR).value });\r\n clearInterval(this.interval);\r\n }\r\n }\r\n });\r\n }, 1000);\r\n this.isLoading = false;\r\n }\r\n\r\n if (this.myConfigNameGrpCR != \"null\") {\r\n this.isLoading = true;\r\n this.interval = setInterval(() => {\r\n this.triggerCollection.forEach((x, i) => {\r\n if (i == 0) {\r\n const selMatOption = x.autocomplete.options.toArray();\r\n if (selMatOption.length > 0) {\r\n this.controlGrpCR.setValue({ name: selMatOption.find((o) => o.value.name === this.myConfigNameGrpCR).value });\r\n clearInterval(this.interval);\r\n }\r\n }\r\n });\r\n }, 1000);\r\n this.isLoading = false;\r\n }\r\n\r\n //////////// to restore previous reports\r\n if (this.firstTimeFunctionCall) {\r\n this.RestorePreviousDispalyOptions();\r\n }\r\n\r\n //this.hasFilters = this.table.dataFilter.hasFilters();\r\n this.selectedStartEndTime = { startDate: moment(), endDate: moment().add(1, 'days') };\r\n this.dataSource = [];\r\n this.LoadReportByFilterMethod(this.selectedFilter);\r\n\r\n this.controlCR.valueChanges.subscribe(newValue => {\r\n this.CRNamesObservable = this._CRName(newValue);\r\n })\r\n\r\n this.controlGrpCR.valueChanges.subscribe(newValue => {\r\n this.grpCRNamesObservable = this._GrpCRName(newValue);\r\n })\r\n\r\n\r\n\r\n }\r\n\r\n RestorePreviousDispalyOptions() {\r\n //this.firstTimeFunctionCall = false;\r\n const selectedcustomreportID = this.commonFilterService.customReportID_Config.subscribe(res => {\r\n if (this.firstTimeFunctionCall && res != null && res != 0) {\r\n if (!res.toString().includes('Group')) {\r\n let value = res.toString();\r\n //this.isPreSelectedReportId_Mainscreen = true;\r\n //this.selectedReportID_MainScreen = Number(value.split('@')[0]);\r\n //this.selectedMethodOfFilter_MainScreen = value.split('@')[1];\r\n this.selectedFilter = value.split('@')[1];\r\n this.restorePreviousReportID = Number(value.split('@')[0]);\r\n\r\n }\r\n else {\r\n let value = res.toString();\r\n this.selectedFilter = value.split('@')[1];\r\n this.restorePreviousReportID = Number(value.split('@')[0]);\r\n this.LoadGroupBasedData();\r\n }\r\n\r\n }\r\n });\r\n //this.cdr.detectChanges();\r\n }\r\n\r\n ngOnDestroy() {\r\n setTimeout(() => {\r\n this.triggerCollection.forEach((x, i) => {\r\n x.closePanel();\r\n });\r\n }, 1000);\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n parentRef(TSSelected) {\r\n this.TSSelected = parseInt(TSSelected);\r\n }\r\n parentEventID() {\r\n this.UpdateScreen();\r\n }\r\n parentAutoRef(AutoRefreshInfo) {\r\n this.TSSelected = parseInt(AutoRefreshInfo.TSSelected);\r\n this.AutoRefreshInfo = AutoRefreshInfo;\r\n }\r\n\r\n modifyFilter() {\r\n //this._router.navigate([{ outlets: { filterPopup: ['filters'], configPopup: null } }]);\r\n let selectedMainFilterCrieriaName = 'null';\r\n this.commonFilterService.mainFilter_CriteriaName.subscribe(res => selectedMainFilterCrieriaName = res);\r\n this._router.navigate([{ outlets: { filterPopup: ['filters', selectedMainFilterCrieriaName], configPopup: null } }]);\r\n\r\n /////// when calling modify search set mainfilter to initial values\r\n //this.commonFilterService.SetMainFilter(0);// set selected mainfilter id\r\n //this.commonFilterService.setMFCustDT(\"\");\r\n //this.commonFilterService.setMFTZON(0);\r\n ////this.commonFilterService.basicRefresh();\r\n }\r\n\r\n clearAllFiltersBool = false;\r\n clearAllFilters() {\r\n\r\n //debugger;\r\n this.delFilterColName = 'clearAllFilters';\r\n //this.hasFilters = false;\r\n this.UpdateScreen();\r\n //this.table.sorter.sortMeta = [];\r\n //this.table.events.onSort();//IMP- to reset sorting sel cols to none\r\n\r\n //if (this.table.dataFilter.hasFilters()) {\r\n // this.table.dataFilter.clear();\r\n // //console.log(this.table.dataFilter.hasFilters())\r\n // this.table.events.onFilter();\r\n // //this.table.events.onFilterClear();\r\n // this.clearFilters.emit();\r\n //}\r\n }\r\n\r\n\r\n async LoadCustomReport(selectedReportID, group = false, event?: PageEvent) {\r\n\r\n this.isLoading = true;\r\n this.dataSource = [];\r\n this.tableDef = [];\r\n this.columnsToDisplay = [];\r\n\r\n await this.SetCustomFilters();//// to set time filter and timestampSearch from global filter box\r\n\r\n //let reportName = \"GLVQTTesting_1\"; //this.reportList.find(m => m.ID_Abs == selectedReportID).CriteriaName_Abs;\r\n let found = this.reportList.find(m => m.ID_Abs == selectedReportID);\r\n let critName = \"\";\r\n if (found)\r\n critName = found.CriteriaName_Abs;\r\n let reportName = group == false ? critName : selectedReportID;\r\n this.selectedReportName = reportName;\r\n this.controlCR.setValue({ name: reportName });\r\n localStorage.setItem('selectedReportName', reportName);\r\n\r\n debugger;\r\n this.commonFilter = new CommonFilter();\r\n //sart pagination\r\n this.commonFilter.ResulTypeLatestID_CRPagination = this.ResulTypeLatestID_CRPagination;\r\n this.pageSize = this.selectedRecordPerPage.toString();\r\n let isPaginationApplied = false;\r\n if (event != undefined) {\r\n isPaginationApplied = true;\r\n this.currentPage = +event.pageIndex + +1;\r\n this.commonFilter.PerPage = this.selectedRecordPerPage.toString();//event.pageSize.toString();\r\n this.commonFilter.PageNumber = this.currentPage.toString();\r\n\r\n } else {\r\n isPaginationApplied = false;\r\n this.commonFilter.PerPage = this.selectedRecordPerPage.toString(); //this.pageSize.toString();\r\n this.commonFilter.PageNumber = \"1\";\r\n this.pageIndex = 0;\r\n\r\n this.paginator.pageIndex = 0;\r\n //this.currentPage = 1;\r\n\r\n }\r\n //end pagination\r\n this.commonFilter.MainFilterID = this.MainFilterID;\r\n //////check if loggedIn user has any criteria for filtering data\r\n if (sessionStorage.getItem('SystemSettings') != null)\r\n this.commonFilter.UserCriteria = JSON.parse(sessionStorage.getItem('SystemSettings')).Criteria;\r\n\r\n let startDate = \"\";\r\n let endDate = \"\";\r\n\r\n if (this.timeFilter == \"Custom\") {\r\n //startDate = this.selectedStartEndTime.startDate.format('MM/DD/YYYY HH:mm:ss'); \r\n //endDate = this.selectedStartEndTime.endDate.format('MM/DD/YYYY HH:mm:ss'); \r\n startDate = this.selectedStartEndTime.startDate;\r\n endDate = this.selectedStartEndTime.endDate;\r\n }\r\n\r\n let grpTypeForTZ = false;\r\n if (this.selectedFilter.trim() == \"Aggregate\")\r\n this.url = this.baseUrl + 'CustomReps/GetCustomReportGroupMainScreenData?reportName=' + reportName + '&timeFilter=' + this.timeFilter + '×tampSearch=' + this.timestampSearch + '&startDate=' + startDate + '&endDate=' + endDate;\r\n else if (this.selectedFilter == \"Timestamp\") {\r\n grpTypeForTZ = true;\r\n this.url = this.baseUrl + 'CustomReps/GetCustomReportNGpMainScreenData?reportName=' + reportName + '&timeFilter=' + this.timeFilter + '×tampSearch=' + this.timestampSearch + '&startDate=' + startDate + '&endDate=' + endDate + '&totalRecordCount=' + this.TotalRecordCount + '&isPaginationApplied=' + isPaginationApplied;\r\n }\r\n else {\r\n if (this.crFilterType.trim() == \"Aggregate\")\r\n this.url = this.baseUrl + 'CustomReps/GetCustomReportGroupMainScreenData?reportName=' + reportName + '&timeFilter=' + this.timeFilter + '×tampSearch=' + this.timestampSearch + '&startDate=' + startDate + '&endDate=' + endDate;\r\n else {\r\n grpTypeForTZ = true;\r\n this.url = this.baseUrl + 'CustomReps/GetCustomReportNGpMainScreenData?reportName=' + reportName + '&timeFilter=' + this.timeFilter + '×tampSearch=' + this.timestampSearch + '&startDate=' + startDate + '&endDate=' + endDate + '&totalRecordCount=' + this.TotalRecordCount + '&isPaginationApplied=' + isPaginationApplied;\r\n }\r\n }\r\n //console.log(this.genArr)\r\n //debugger;\r\n\r\n \r\n let body = JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.genArr });\r\n await this.GetCustomReport_Service(body).toPromise().then((res: any) => {\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //debugger;\r\n if (rows != null) {\r\n this.noRecordFound = false;\r\n if (this.barChart != null)\r\n this.barChart.destroy();\r\n if (this.mlineChart != null) {\r\n //this.lineChart.destroy();\r\n //this.mlineChart.forEach(chart => chart.destroy());\r\n\r\n\r\n //let canvasID = 0;\r\n //this.mlineChart.forEach(chart => {\r\n // chart.destroy(); // Destroy the chart\r\n // const canvas = chart.canvas; // Get the canvas element\r\n // // Get the canvas element by its ID\r\n // const canvasElement = document.getElementById(canvasID.toString());\r\n // if (canvasElement) {\r\n // // Remove the canvas element from the DOM\r\n // canvasElement.remove();\r\n // canvasID++;\r\n // }\r\n\r\n //});\r\n\r\n //this.mlineChart = [];\r\n\r\n }\r\n\r\n this.tableDef = rows[\"ColumnHeader\"];\r\n this.columnsToDisplay = rows[\"DisplayColumn\"];\r\n //console.log(rows[\"ResulTypeLatestID_CRPagination\"]);\r\n this.ResulTypeLatestID_CRPagination = rows[\"ResulTypeLatestID_CRPagination\"];\r\n\r\n this.dataSource = rows[\"ColumnData\"];\r\n //this.exportDataSource = rows[\"ColumnData\"];\r\n if (grpTypeForTZ == true) {\r\n //\"ColumnData\":[{\"VQuad_Timestamp\":\"24-11-2022 18:41:19\",\"Call_Timestamp\":\"24-11-2022 18:39:43\"}]\r\n\r\n let timeFormat = 'HH:mm:ss';\r\n\r\n //console.log(this.datepipe.transform(new Date(formatDBTZDateToLocalDate('11-25-2022 13:14:15', dbTz, dbAndBrHrs, this.MainFilterTZ)), 'MM/dd/yyyy ' + timeFormat))\r\n Object.keys(this.dataSource).forEach(key => {\r\n if (key) {\r\n if (this.dataSource[key].VQuad_Timestamp != null)\r\n this.dataSource[key].VQuad_Timestamp = this.datepipe.transform(new Date(formatDBTZDateToLocalDate(getDateValue(this.dataSource[key], \"VQuad_Timestamp\", ' '), this.dbTz, this.dbAndBrHrs, this.MainFilterTZ)), 'MM/dd/yyyy ' + timeFormat);\r\n if (this.dataSource[key].Call_Timestamp != null)\r\n this.dataSource[key].Call_Timestamp = this.datepipe.transform(new Date(formatDBTZDateToLocalDate(getDateValue(this.dataSource[key], \"Call_Timestamp\", ' '), this.dbTz, this.dbAndBrHrs, this.MainFilterTZ)), 'MM/dd/yyyy ' + timeFormat);\r\n }\r\n });\r\n //console.log(this.dataSource)\r\n }\r\n\r\n this.isBarChart = true;\r\n this.cdr.detectChanges();/////this is done so that isBarChart div should be included in document immediately before calling this.BindBarChart() else it will be null and barchart wont be binded\r\n this.exportDataSource = this.dataSource;\r\n\r\n //////to bind linechart only if pagination is not apllied for performance purpose\r\n if (!isPaginationApplied) {\r\n this.BindLineChart(rows); //bind line chart\r\n }\r\n else {\r\n this.isLineChart = true;\r\n }\r\n\r\n this.BindBarChart(rows, reportName); //bind bar chart\r\n\r\n //this.BindLineChart(rows); //bind line chart\r\n\r\n this.length = rows[\"TotalRecordCount\"];\r\n this.TotalRecordCount = rows[\"TotalRecordCount\"];\r\n\r\n this.isLoading = false;\r\n }\r\n else {\r\n this.isLoading = false;\r\n //this.isBarChart = false;\r\n //this.isLineChart = false;\r\n this.noRecordFound = true;\r\n }\r\n },\r\n error => {\r\n console.log('httperr', error); this.isLoading = false;\r\n //this.isBarChart = false;\r\n this.isLineChart = false;\r\n this.noRecordFound = true;\r\n });\r\n }\r\n\r\n LoadColumnData() {\r\n\r\n this.url = this.baseUrl + 'CustomReps/GetColumnData';\r\n //console.log(this.genArr)\r\n let body = JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.genArr });\r\n this.GetCustomReport_Service(body).subscribe((res: any) => {\r\n //console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n\r\n this.dataSource = rows;\r\n\r\n },\r\n error => { console.log('httperr', error); });\r\n }\r\n\r\n setCommonFilters() {\r\n //debugger;\r\n if (this.dateInput !== undefined) {\r\n let inputValue = this.dateInput.nativeElement.value;\r\n if (inputValue.length == 0)//Default/Last selected setting when page loaded / changed to different page\r\n {\r\n\r\n\r\n if (inputValue == \"Custom range\") {\r\n //this.commonFilterService.TSBetween.subscribe(res => {\r\n // //https://stackoverflow.com/questions/38251763/moment-js-how-to-convert-date-string-into-date\r\n // this.selectedTime.startDate = moment(new Date(res.split('^')[0]));\r\n // this.selectedTime.endDate = moment(new Date(res.split('^')[1]));\r\n // startAndEndDates = this.selectedTime.startDate.format('MM/DD/YYYY HH:mm:ss') + ' - ' + this.selectedTime.endDate.format('MM/DD/YYYY HH:mm:ss');\r\n //});\r\n }\r\n }\r\n }\r\n }\r\n\r\n /////////////////////////////////////Start EXPORT FILE\r\n ExportReport(exportType) {\r\n let reportName = this.selectedReportID[0] > 0 ? this.reportList.find(m => m.ID_Abs == this.selectedReportID[0]).CriteriaName_Abs : this.groupReportList.find(m => m.id == this.selectedGroupID[0]).name;\r\n if (exportType == \"EXCEL\")\r\n this.GetExportData(exportType);//this.exporter.exportTable('xlsx', { fileName: reportName });\r\n else if (exportType == \"CSV\")\r\n this.GetExportData(exportType);\r\n //this.ExportCSV();//this.exporter.exportTable('csv', { fileName: reportName });\r\n //else if (exportType == \"TXT\")\r\n // this.exporter.exportTable('txt', { fileName: reportName });\r\n\r\n }\r\n\r\n public ExportReportToPDF1() {\r\n //debugger;\r\n //const doc = new jsPDF('l', 'mm', \"a4\");\r\n const pdf = new jsPDF();\r\n\r\n const specialElementHandlers = {\r\n '#editor': function (element, renderer) {\r\n return true;\r\n }\r\n };\r\n\r\n const content = this.pdfReport.nativeElement;\r\n //const lineChart = this.linechartReport.nativeElement;\r\n\r\n pdf.fromHTML(content.innerHTML, 15, 15, {\r\n width: 190,\r\n 'elementHandlers': specialElementHandlers\r\n });\r\n\r\n ///start chart\r\n pdf.addPage();\r\n pdf.addImage(this.barChart.toBase64Image(), 'PNG', 0, 0);\r\n //pdf.addPage();\r\n\r\n //pdf.addImage(this.barChart1.toBase64Image(), 'PNG', 0,0);\r\n pdf.addPage();\r\n //doc.addImage(this.linechartReport, 'PNG', 0, 0);\r\n\r\n var data = this.linechartReport.nativeElement;//document.getElementById('contentToConvert');\r\n\r\n html2canvas(data).then(canvas => {\r\n // Few necessary setting options \r\n var imgWidth = 208;\r\n var pageHeight = 295;\r\n var imgHeight = canvas.height * imgWidth / canvas.width;\r\n var heightLeft = imgHeight;\r\n\r\n\r\n const contentDataURL = canvas.toDataURL('image/png')\r\n\r\n //let pdf = new jsPDF('p', 'mm', 'a4'); // A4 size page of PDF \r\n var position = 0;\r\n pdf.addImage(contentDataURL, 'PNG', 0, position, imgWidth, imgHeight)\r\n\r\n pdf.save('MYPdf.pdf'); // Generated PDF \r\n });\r\n\r\n\r\n ///end chart\r\n\r\n //doc.save('test.pdf');\r\n\r\n }\r\n\r\n public ExportReportToPDF_Test() {\r\n const fileName = \"z_all_202205311738\" + \".pdf\"; // z_polqa1_202107161511 z_all_202205311738\r\n // const fileUrl = '/assets/DownloadedReports/' + fileName;\r\n //const fileUrl = 'http://localhost:8050/CustomReports/' + fileName; /// For local\r\n const fileUrl = 'http://localhost/CustomReports/' + fileName; //// For Test Server\r\n\r\n FileSaver.saveAs(fileUrl, fileName);\r\n }\r\n public ExportReportToPDF() {\r\n this.isLoading = true;\r\n //this.url = \"http://localhost:53316/QueueJobs.aspx/saveArrFromWebview1\"; ////\"http://localhost/WebviewerScheduler/QueueJobs.aspx/saveArrFromWebview1\"; // the method we are calling to save Array to DB localhost:50316 / localhost/WebviewerScheduler\r\n this.url = \"http://localhost/WebviewerScheduler/QueueJobs.aspx/saveArrFromWebview1\"; //// test server\r\n this.ExportReportToPDF_Service().subscribe((res: any) => {\r\n //debugger;\r\n this.isLoading = false;\r\n //alert(res.d);\r\n const fileName = res.d.toString();//+\".pdf\";\r\n let basedownloadURL = document.getElementsByTagName('base')[0].href.replace('/Webviewer/', ''); ///test server\r\n //const fileUrl = '/assets/DownloadedReports/' + fileName;\r\n // const fileUrl = 'http://localhost:8050/CustomReports/' + fileName; /// For local\r\n //const fileUrl = 'http://localhost/WebviewerScheduler/CustomReports/' + fileName; //// remote pc of Test Server\r\n const fileUrl = basedownloadURL + '/WebviewerScheduler/CustomReports/' + fileName; //// with ip address of Test Server\r\n\r\n\r\n //this.http.get(fileUrl, {\r\n // responseType: \"blob\",\r\n // headers: new HttpHeaders().append(\"Content-Type\", \"application/json\")\r\n //}).subscribe(resp => {\r\n // //Resp: file stream\r\n // const blob = new Blob([resp], { type: 'application/pdf' });\r\n FileSaver.saveAs(fileUrl, fileName);\r\n //})\r\n\r\n\r\n\r\n ////////const a = document.createElement('a');\r\n ////////a.setAttribute('style', 'display:none;');\r\n ////////document.body.appendChild(a);\r\n ////////a.download = fileName;\r\n ////////a.href = fileUrl;//URL.createObjectURL(downloadedFile);\r\n ////////a.target = '_blank';\r\n ////////a.click();\r\n ////////document.body.removeChild(a);\r\n\r\n //this.service.DownloadPDF(fileName);\r\n\r\n },\r\n error => {\r\n //https://stackoverflow.com/questions/46019771/catching-errors-in-angular-httpclient/46019852\r\n console.log('httperr', error);\r\n this.isLoading = false;\r\n });\r\n\r\n //this.ExportReportToPDF_Service();\r\n }\r\n\r\n pdfTest() {\r\n const fileName = \"GLVQTTesting_1_202107121127\" + \".pdf\"; //'1.pdf';\r\n const fileUrl = '/assets/DownloadedReports/' + fileName;\r\n\r\n\r\n //window.open(fileUrl);\r\n\r\n //var a = document.createElement('a');\r\n //a.href = fileUrl;\r\n //a.target = '_blank';\r\n //a.download = 'bill.pdf';\r\n //document.body.appendChild(a);\r\n //a.click();\r\n\r\n FileSaver.saveAs(fileUrl, fileName);\r\n }\r\n\r\n public ExportExcel() {\r\n //debugger;\r\n var datat = [\r\n { \"nameasddsddssdsa\": \"John\", \"city\": \"Seattle\" },\r\n { \"nameasddsddssdsa\": \"Mike\", \"city\": \"Los Angeles\" },\r\n { \"nameasddsddssdsa\": \"Zach\", \"city\": \"New York\" }\r\n ];\r\n var options = {\r\n cellStyles: true\r\n }\r\n\r\n\r\n const workBook = XLSX.utils.book_new(); // create a new blank book\r\n\r\n //const workSheet = XLSX.utils.json_to_sheet(this.exportDataSource);/// 1st sheet \r\n //XLSX.utils.book_append_sheet(workBook, workSheet, 'data'); // add the worksheet to the book\r\n\r\n const workSheet1 = XLSX.utils.json_to_sheet(datat);////2nd sheet\r\n // workSheet1[XLSX.utils.encode_cell({ c: 1, r: 1 })] = cell;\r\n //workSheet1[\"!cols\"] = [{\r\n // wpx: 470\r\n //}, {\r\n // wpx: 70\r\n //}, {\r\n // wpx: 70\r\n //}, {\r\n // wpx: 70\r\n //}, {\r\n // wpx: 150\r\n //}, {\r\n // wpx: 120\r\n //}]; //Cell Column Width\r\n\r\n //workSheet1[\"A1\"].s = { font: { sz: 14, bold: true, color: { rgb: \"FFFFAA00\" } }, fill: { bgColor: { indexed: 64 }, fgColor: { rgb: \"FFFF00\" } }, border: { top: { style: 'medium', color: { rgb: \"FFFFAA00\" } }, left: { style: 'medium', color: { rgb: \"FFFFAA00\" } } } };\r\n\r\n XLSX.utils.book_append_sheet(workBook, workSheet1, 'data1'); // add the worksheet to the book\r\n\r\n XLSX.writeFile(workBook, 'temp.xlsx'); // initiate a file download in browser\r\n }\r\n\r\n ExportToExcel_ExcelJSLib(rows: any, reportName) {\r\n\r\n var json_data = [{\r\n \"name\": \"Raja\",\r\n \"age\": 20,\r\n cit: \"abc\"\r\n },\r\n {\r\n \"name\": \"Mano\",\r\n \"age\": 40,\r\n \"city\": \"abc\"\r\n },\r\n {\r\n \"name\": \"Tom\",\r\n \"age\": 40,\r\n \"city\": \"abc\"\r\n },\r\n {\r\n \"name\": \"Devi\",\r\n \"age\": 40,\r\n \"city\": \"abc\"\r\n },\r\n {\r\n \"name\": \"Mango\",\r\n \"age\": 40,\r\n \"city\": \"abc\"\r\n }\r\n ];\r\n\r\n //this.tableDef = rows[\"ColumnHeader\"];\r\n //this.columnsToDisplay = rows[\"DisplayColumn\"];\r\n //this.exportDataSource = rows[\"ColumnData\"];\r\n\r\n //create new excel work book\r\n let workbook = new Workbook();\r\n debugger;\r\n for (let i = 0; i < rows.length; i++) {\r\n\r\n let sheetName = reportName;\r\n if (this.selectedFilter == \"Group\") {\r\n sheetName = this.groupReportATMainList[i].Name;\r\n }\r\n sheetName = sheetName + \"_\" + (i + 1).toString(); ///to avoid duplicate sheet name.\r\n //add name to sheet\r\n let worksheet = workbook.addWorksheet(sheetName);\r\n //add column name\r\n let header = rows[i].DisplayColumn; //[\"Namejnnkjnjnjknj\", \"Agejhkjhjh\",\"Arealkoiommh\"]\r\n let headerRow = worksheet.addRow(header);\r\n //debugger;\r\n ////// assign data to each cell\r\n for (let x1 of rows[i].ColumnData) {\r\n let x2 = Object.keys(x1);\r\n let temp = []\r\n for (let y of x2) {\r\n temp.push(x1[y])\r\n }\r\n worksheet.addRow(temp)\r\n }\r\n\r\n //first row bgcolor\r\n worksheet.getRow(1).fill = { type: 'pattern', pattern: 'darkTrellis', fgColor: { argb: 'FFFFFF' }, bgColor: { argb: '0000FF' } };\r\n\r\n ///// set width of column autosize\r\n worksheet.columns.forEach(function (column, i) {\r\n var maxLength = 0;\r\n column[\"eachCell\"]({ includeEmpty: true }, function (cell) {\r\n var columnLength = cell.value ? cell.value.toString().length : 10;\r\n if (columnLength > maxLength) {\r\n maxLength = columnLength + 2;\r\n }\r\n\r\n });\r\n column.width = maxLength < 10 ? 10 : maxLength;\r\n\r\n });\r\n }\r\n\r\n //set downloadable file name\r\n let fname = reportName;\r\n let dt = new Date();\r\n let datetimestamp = \"_\" + dt.getDate() + dt.getMonth() + dt.getFullYear();\r\n\r\n //add data and file name and download 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\n workbook.xlsx.writeBuffer().then((data) => {\r\n let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n FileSaver.saveAs(blob, fname + datetimestamp + '.xlsx');\r\n });\r\n\r\n\r\n }\r\n\r\n private saveAsExcelFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n //console.log(buffer);\r\n FileSaver.saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION);\r\n }\r\n\r\n public ExportCSV(data, reportName) {\r\n //debugger;\r\n //let rpName = this.selectedFilter != \"Group\" ? this.reportList.find(m => m.ID_Abs == this.selectedReportID[0]).CriteriaName_Abs : this.groupReportList.find(m => m.id == this.selectedGroupID[0]).name;\r\n //let dt = new Date();\r\n //let datetimestamp =\"_\"+ dt.getDate() + dt.getMonth() + dt.getFullYear();\r\n const wb = XLSX.utils.book_new();\r\n const ws = XLSX.utils.json_to_sheet(data[0].ColumnData);//this.exportDataSource);\r\n XLSX.utils.book_append_sheet(wb, ws, '');\r\n //XLSX.writeFile(wb, 'QueryData.csv');\r\n XLSX.writeFile(wb, reportName + '.csv');\r\n }\r\n\r\n GetFormatedTimesstampSearch(tsSearch) {\r\n //'VQUAD_TIMESTAMP\r\n //'CALL_TIMESTAMP'\r\n //'DCOSS_TIMESTAMP\r\n //'VQT_Timestamp',\r\n if (tsSearch == \"VQUAD_TIMESTAMP\")\r\n return \"VQuad_Timestamp\";\r\n else if (tsSearch == \"CALL_TIMESTAMP\")\r\n return \"Call_TimeStamp\";\r\n else if (tsSearch == \"DCOSS_TIMESTAMP\")\r\n return \"DCOSS_TimeStamp\";\r\n else\r\n return \"VQT_TimeStamp\";\r\n }\r\n\r\n GetExportData(exportType) {\r\n //debugger;\r\n this.isLoading = true;\r\n\r\n\r\n let reportName = this.selectedFilter != \"Group\" ? this.reportList.find(m => m.ID_Abs == this.selectedReportID[0]).CriteriaName_Abs : this.groupReportList.find(m => m.id == this.selectedGroupID[0]).name;\r\n\r\n //let reportName = this.selectedFilter == \"Group\" ? this.reportList.find(m => m.ID_Abs == selectedReportID).CriteriaName_Abs : selectedReportID;\r\n\r\n //debugger;\r\n this.commonFilter = new CommonFilter();\r\n ////sart pagination\r\n //if (event != undefined) {\r\n\r\n // this.currentPage = +event.pageIndex + +1;\r\n // this.commonFilter.PerPage = event.pageSize.toString();\r\n // this.commonFilter.PageNumber = this.currentPage.toString();\r\n\r\n //} else {\r\n // this.commonFilter.PerPage = this.selectedRecordPerPage.toString(); //this.pageSize.toString();\r\n // this.commonFilter.PageNumber = \"1\";\r\n //}\r\n //end pagination\r\n let startDate = \"\";\r\n let endDate = \"\";\r\n\r\n if (this.timeFilter == \"Custom\") {\r\n startDate = this.selectedStartEndTime.startDate;//.format('MM/DD/YYYY HH:mm:ss'); //this.startDate.toDateString();\r\n endDate = this.selectedStartEndTime.endDate;//.format('MM/DD/YYYY HH:mm:ss'); //this.endDate.toDateString();\r\n }\r\n this.commonFilter.MainFilterID = this.MainFilterID;\r\n //////check if loggedIn user has any criteria for filtering data\r\n if (sessionStorage.getItem('SystemSettings') != null)\r\n this.commonFilter.UserCriteria = JSON.parse(sessionStorage.getItem('SystemSettings')).Criteria;\r\n\r\n this.url = this.baseUrl + 'CustomReps/GetExportCustomReport?reportName=' + reportName + '&timeFilter=' + this.timeFilter + '×tampSearch=' + this.timestampSearch + '&filterMethod=' + this.selectedFilter + '&startDate=' + startDate + '&endDate=' + endDate;\r\n //console.log(this.genArr)\r\n let body = JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.genArr });\r\n this.GetCustomReport_Service(body).subscribe((res: any) => {\r\n\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //debugger;\r\n if (rows != null) {\r\n\r\n //this.tableDef = rows[\"ColumnHeader\"];\r\n //this.columnsToDisplay = rows[\"DisplayColumn\"];\r\n\r\n //this.exportDataSource = rows[\"ColumnData\"];\r\n if (exportType == 'CSV')\r\n this.ExportCSV(rows, reportName);\r\n else\r\n this.ExportToExcel_ExcelJSLib(rows, reportName);\r\n this.isLoading = false;\r\n }\r\n else {\r\n this.isLoading = false;\r\n\r\n }\r\n },\r\n error => { console.log('httperr', error); this.isLoading = false; });\r\n }\r\n\r\n //////to take screenshot of bar/line graph by passing the respective div id\r\n //captureScreenshot() {\r\n // const elementToCapture = document.getElementById('DivLineCanvas'); // Replace 'captureDiv' with the actual ID\r\n // if (elementToCapture) {\r\n // html2canvas(elementToCapture).then((canvas) => {\r\n // // Convert the captured canvas to a data URL\r\n // const imageDataUrl = canvas.toDataURL('image/png');\r\n\r\n // // Create a temporary link element to download the image\r\n // const a = document.createElement('a');\r\n // a.href = imageDataUrl;\r\n // a.download = 'screenshot.png';\r\n // document.body.appendChild(a);\r\n // a.click();\r\n // document.body.removeChild(a);\r\n // });\r\n // }\r\n //}\r\n\r\n ///////////////////////////////////// End export file\r\n\r\n //// group\r\n LoadGroupBasedData() {\r\n this.selectedGroupID = [0];\r\n this.modelGrpCRName = \"\";\r\n\r\n this.controlCR.setValue(\"\");\r\n this.selectedReportID = [0];\r\n this.selectedReportName = \"\";\r\n\r\n this.isBarChart = true;\r\n //groupReportList\r\n this.url = this.baseUrl + 'CustomReps/GetGroupReportList';\r\n\r\n this.GetCustomReportByFilterMethod_Service().subscribe((res: any) => {\r\n let rows: any[] = JSON.parse(res) as any[];\r\n\r\n this.groupReportList = this.FillDropDown(rows);//rows[\"groupReportsList\"]\r\n this.getListGrpCR();\r\n\r\n if (rows.length > 0)\r\n this.selectedGroupID = [rows[0].ID];\r\n\r\n //console.log(this.restoreGroupID)\r\n if (this.restoreGroupID > 0 && this.isRefreshClicked) {\r\n this.selectedGroupID = [Number(localStorage.getItem('selectedGroupID'))];\r\n this.isRefreshClicked = false;\r\n }\r\n else if (this.firstTimeFunctionCall && this.restorePreviousReportID > 0 && !this.isRefreshClicked) {\r\n ///this condition is for first time to restore previuos selection after coming from another page\r\n this.firstTimeFunctionCall = false;\r\n this.selectedGroupID = [this.restorePreviousReportID];\r\n this.restorePreviousReportID = 0;///make it zero after assigning as it is for first time call after coming from another page\r\n }\r\n else\r\n this.firstTimeFunctionCall = false;\r\n\r\n localStorage.setItem('selectedGroupID', this.selectedGroupID[0].toString());///this is used when application refresh button is clicked.\r\n this.GetReportListByGroupName();\r\n },\r\n error => console.log('httperr', error));\r\n }\r\n\r\n GetReportListByGroupName() {\r\n if (this.selectedGroupID[0] > 0) {\r\n this.setLimitedOptionsGrpCR = true;\r\n this.grpCRNamesObservable = this.groupReportList;\r\n }\r\n let found = this.groupReportList.find(m => m.id == this.selectedGroupID[0]);\r\n let grpCritName = \"\";\r\n if (found)\r\n grpCritName = found.name;\r\n let grpName = grpCritName;\r\n localStorage.setItem('selectedGroupName', grpCritName);\r\n this.inputLengthGrpCR = grpName.length;\r\n this.controlGrpCR.setValue({ name: grpName });\r\n\r\n ///set selected custom reportid and selected filter method[aggr/timestamp/group] in service so that to load selected custom report config details when configuration screen is opened\r\n this.commonFilterService.SetCustomReportID(this.selectedGroupID[0] + \"@\" + 'Group');\r\n\r\n // groupReportATList=rows[\"reportListByGroupName\"];\r\n this.url = this.baseUrl + 'CustomReps/GetReportListByGroupName?groupName=' + grpName;\r\n\r\n this.GetCustomReportByFilterMethod_Service().subscribe((res: any) => {\r\n //console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n\r\n this.groupReportATMainList = rows;\r\n this.groupReportATList = this.FillDropDown(rows);//rows[\"groupReportsList\"]\r\n if (rows.length > 0)\r\n this.selectedGroupATID = [rows[0].ID];\r\n this.GETCustomReportAT();\r\n\r\n },\r\n error => console.log('httperr', error));\r\n\r\n }\r\n\r\n GetReportListByGrpName(grpName) {\r\n this.url = this.baseUrl + 'CustomReps/GetReportListByGroupName?groupName=' + grpName;\r\n\r\n this.GetCustomReportByFilterMethod_Service().subscribe((res: any) => {\r\n //console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n if (rows.length > 0)\r\n this.selectedGroupID = [rows[0].ID];\r\n localStorage.setItem('selectedGroupID', this.selectedGroupID[0].toString());\r\n this.restoreGroupID = Number(localStorage.getItem('selectedGroupID'));\r\n },\r\n error => console.log('httperr', error));\r\n }\r\n\r\n GETCustomReportAT() {\r\n\r\n let CRName = \"\";\r\n let found = this.groupReportATMainList.find(m => m.ID == this.selectedGroupATID[0]);\r\n if (found) {\r\n CRName = found.Name;\r\n this.crFilterType = found.Value;\r\n }\r\n\r\n this.LoadCustomReport(CRName, true);\r\n }\r\n\r\n onddlChange(ddl, id, clearInput?) {\r\n\r\n switch (ddl) {\r\n case \"Group\":\r\n if (this.CRGrpClose) {\r\n this.CRGrpClose = false;\r\n break;\r\n }\r\n this.selectedGroupID = [id];\r\n localStorage.setItem('selectedGroupID', this.selectedGroupID[0].toString());///this is used when application refresh button is clicked.\r\n this.GetReportListByGroupName();\r\n if (this.myConfigNameGrpCR == \"null\")\r\n this.OpenAutoCompeleteDailogGrpCR(clearInput);\r\n break;\r\n case \"GroupReportAT\":\r\n this.selectedGroupATID = [id];\r\n this.GETCustomReportAT();\r\n break;\r\n case \"TimestampSearch\":\r\n this.selectedtimestampSearch = [id];\r\n this.timestampSearch = id;\r\n\r\n break;\r\n case \"RecordPerPage\":\r\n this.selectedRecordPerPage = [id];\r\n this.RecordPerPage = id;\r\n this.UpdateScreen();\r\n break;\r\n }\r\n }\r\n\r\n FillDropDown(data) {//, grpType: boolean) {\r\n let dll: SelectItem[] = [];\r\n //if (grpType)\r\n // dll.push({ id: undefined, name: '--Select Reports Group--' });\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n dll.push({ id: data[i].ID, name: data[i].Name });\r\n }\r\n return dll;\r\n }\r\n\r\n FillReportDropDown(data) {\r\n let dll: SelectItem[] = [];\r\n //dll.push({ id: undefined, name: '--Select Report--' });\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n dll.push({ id: data[i].ID_Abs, name: data[i].CriteriaName_Abs });\r\n }\r\n return dll;\r\n }\r\n\r\n LoadReportByFilterMethod(filterMethod, isConfigPopupClosed?) {\r\n this.controlGrpCR.setValue(\"\");\r\n this.selectedGroupID = [0];\r\n this.modelGrpCRName = \"\";\r\n\r\n //this.controlCR.setValue(\"\");\r\n this.selectedReportID = [0];\r\n //this.selectedReportName = \"\";\r\n\r\n if (filterMethod.trim() == \"Aggregate\") {\r\n this.url = this.baseUrl + 'CustomReps/GetCustomReportByGroup';\r\n }\r\n else {\r\n this.url = this.baseUrl + 'CustomReps/GetCustomReportByNotGroup';\r\n }\r\n\r\n this.GetCustomReportByFilterMethod_Service().subscribe((res: any) => {\r\n //console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n\r\n this.reportList = rows[\"ReportList\"];\r\n this.customReportList = this.FillReportDropDown(rows[\"ReportList\"]);\r\n this.getListCR();\r\n\r\n //debugger\r\n if (isConfigPopupClosed) {\r\n //use prev selectedReportID\r\n }\r\n else {\r\n if (rows[\"ReportList\"].length > 0)\r\n this.selectedReportID = [rows[\"ReportList\"][0].ID_Abs];\r\n }\r\n\r\n ////if refresh is clicked then\r\n if (this.selectedReportName != \"\" && this.isRefreshClicked) {\r\n let selID = this.reportList.find(m => m.CriteriaName_Abs == this.selectedReportName).ID_Abs;\r\n this.selectedReportID = [selID];\r\n this.isRefreshClicked = false;\r\n }\r\n else if (this.firstTimeFunctionCall && this.restorePreviousReportID > 0 && !this.isRefreshClicked) {\r\n ///this condition is for first time to restore previuos selection after coming from another page\r\n this.firstTimeFunctionCall = false;\r\n this.selectedReportID = [this.restorePreviousReportID];\r\n this.restorePreviousReportID = 0;///make it zero after assigning as it is for first time call after coming from another page\r\n }\r\n else\r\n this.firstTimeFunctionCall = false;\r\n\r\n this.ChangeReportList(this.selectedReportID[0]);\r\n },\r\n error => console.log('httperr', error));\r\n }\r\n\r\n ChangeReportList(selectedReportID, clearInput?, event?: PageEvent) {\r\n //debugger\r\n\r\n if (this.CRClose) {\r\n this.CRClose = false;\r\n return;\r\n }\r\n this.isBarChart = true;\r\n this.isLineChart = false;\r\n if (selectedReportID != null) {\r\n this.setLimitedOptionsCR = true;\r\n this.CRNamesObservable = this.customReportList;\r\n //console.log(this.CRNamesObservable)\r\n this.selectedReportID = [selectedReportID];\r\n this.inputLengthCR = 1;\r\n this.reportID = selectedReportID;\r\n this.LoadCustomReport(this.selectedReportID[0], false, event);\r\n\r\n ///set selected custom reportid and selected filter method[aggr/timestamp/group] in service so that to load selected custom report config details when configuration screen is opened\r\n this.commonFilterService.SetCustomReportID(selectedReportID + \"@\" + this.selectedFilter);\r\n }\r\n else {\r\n this.selectedReportID = [0];\r\n this.inputLengthCR = 0;\r\n if (this.myConfigNameCR == \"null\" && clearInput)\r\n this.OpenAutoCompeleteDailogCR(clearInput);\r\n }\r\n }\r\n\r\n async SetCustomFilters() {\r\n //if (this.MainFilterID != 0) {\r\n this.commonFilterService.DB_BRDiff.subscribe(res => {\r\n this.dbAndBrHrs = res;\r\n });\r\n if (this.dbAndBrHrs == -500) {//query var col table\r\n await this.service.getDBAndBrowserDiffHours('VquadData').then(res => {\r\n //debugger\r\n this.commonFilterService.setDBAndBrowserHrsDiff(res);\r\n this.dbAndBrHrs = res;\r\n });\r\n }\r\n //}\r\n\r\n //debugger - 2\r\n let dates = formatDate(new Date(Date.now() + -1 * 600 * 1000), this.dbTz, this.dbAndBrHrs) + \"^\" + formatDate(new Date(), this.dbTz, this.dbAndBrHrs);//\"06/02/2019 11:00:00^06/02/2019 20:00:00\"; \r\n\r\n this.commonFilterService.TSBetween.subscribe(res => dates = res);//latest dates selected is set here from service\r\n //this.commonFilterService.TSRangeFilter.subscribe(res => { if (res.RangeType !== \"custom\") { dates = lastDateFunc(res.RangeType) } });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n this.commonFilterService.TSRangeFilter.subscribe(res => {\r\n this.SetTimeFilter(res.RangeType)\r\n if (res.RangeType !== \"custom\") { dates = lastDateFunc(res.RangeType, this.dbTz, this.dbAndBrHrs) }\r\n });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n //Save current date selection in service to affected when switched to other screens from here - IMP\r\n\r\n this.commonFilterService.setDatesProperties(dates);\r\n\r\n this.genArr.push({ ColumnName: this.timestampSearch, Operator: 6, Value: dates.split('^')[0], ValueTo: dates.split('^')[1], LoggedInUserName: null });\r\n\r\n //this.commonFilterService.TSRangeFilter.subscribe(res => { this.SetTimeFilter(res.RangeType) });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n }\r\n\r\n SetTimestampSearch(tsSearch) {\r\n //{ id: 'VQUAD_TIMESTAMP', name: 'VQuad Timestamp' },\r\n //{ id: 'CALL_TIMESTAMP', name: 'Call Timestamp' },\r\n //{ id: 'DCOSS_TIMESTAMP', name: 'DCOSS Timestamp' },\r\n //{ id: 'VQT_Timestamp', name: 'VQT Timestamp' }\r\n\r\n this.commonFilter.TimestampType = tsSearch;\r\n switch (tsSearch) {\r\n case 0:\r\n this.timestampSearch = \"CALL_TIMESTAMP\";\r\n break;\r\n case 1:\r\n this.timestampSearch = \"VQUAD_TIMESTAMP\";\r\n break;\r\n case 2:\r\n this.timestampSearch = \"VQT_Timestamp\";\r\n break;\r\n case 3:\r\n this.timestampSearch = \"DCOSS_TIMESTAMP\";\r\n break;\r\n }\r\n\r\n }\r\n\r\n SetTimeFilter(timeFilter) {\r\n ////'year' | 'month' | 'day' | 'hour' | '7days' | '10min' | 'yesterday' | 'today' | 'custom' | '12hours';\r\n //{ id: '10min', name: '10 min' },\r\n //{ id: '1hr', name: '1 Hour' },\r\n //{ id: '12hr', name: '12 Hours' },\r\n //{ id: '24hr', name: '24 Hours' },\r\n //{ id: 'Today', name: 'Today' },\r\n //{ id: 'Yesterday', name: 'Yesterday' },\r\n //{ id: '7days', name: '7 Days' },\r\n //{ id: 'SearchEntiredBase', name: 'Search Entire dBase' },\r\n //{ id: 'Custom', name: 'Custom' }\r\n\r\n //alert(timeFilter);\r\n switch (timeFilter) {\r\n case \"10min\":\r\n this.timeFilter = \"10min\";\r\n break;\r\n case \"hour\":\r\n this.timeFilter = \"1hr\";\r\n break;\r\n case \"12hours\":\r\n this.timeFilter = \"12hr\";\r\n break;\r\n case \"24hours\":\r\n this.timeFilter = \"24hr\";\r\n break;\r\n case \"today\":\r\n this.timeFilter = \"Today\";\r\n break;\r\n case \"yesterday\":\r\n this.timeFilter = \"Yesterday\";\r\n break;\r\n case \"7days\":\r\n this.timeFilter = \"7days\";\r\n break;\r\n case \"month\":\r\n this.timeFilter = \"Month\";\r\n break;\r\n case \"year\":\r\n this.timeFilter = \"Year\";\r\n break;\r\n case \"custom\":\r\n /// 06/07/2021 10:39:47^06/23/2021 10:52:47 \"07/27/2021 12:21:27\"\r\n this.timeFilter = \"Custom\";\r\n this.commonFilterService.TSBetween.subscribe(res => {\r\n let custdate = res;\r\n if (this.selectedStartEndTime) {\r\n this.selectedStartEndTime.startDate = custdate.split('^')[0];\r\n this.selectedStartEndTime.endDate = custdate.split('^')[1];\r\n }\r\n });\r\n\r\n break;\r\n\r\n }\r\n }\r\n\r\n callUpdateScreenViaPaging(event?: PageEvent) {\r\n let myEvent: PageEvent;\r\n this.UpdateScreen(event).then(evt => { myEvent = evt; });\r\n return myEvent;\r\n }\r\n\r\n dbTz = -500;\r\n dbAndBrHrs = -500;\r\n AllGeneralFilter = [];\r\n filtersWithEventID = {};\r\n filters = {};\r\n delFilterColName = '';\r\n async UpdateScreen(event?: PageEvent) {\r\n //debugger\r\n\r\n //this.commonFilterService.ClearAllFilters.subscribe(res => { this.delFilterColName = 'clearAllFilters'; });\r\n\r\n //console.log(this.delFilterColName)\r\n if (this.delFilterColName == 'VQuad_CallID') {\r\n this.filtersWithEventID = {};\r\n for (const key in this.filters) {\r\n if (key == 'VQuad_CallID')\r\n delete this.filters[key];\r\n }\r\n }\r\n else if (this.delFilterColName == 'clearAllFilters') {\r\n this.filtersWithEventID = {};\r\n for (const key in this.filters) {\r\n if (key.toUpperCase() !== this.timestampSearch.toUpperCase())\r\n delete this.filters[key];\r\n }\r\n }\r\n\r\n if (this.delFilterColName != 'clearAllFilters') {\r\n this.genArr = this.AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"].toUpperCase() != this.timestampSearch.toUpperCase();\r\n });\r\n\r\n this.commonFilterService.GeneralFilterDF.subscribe(res => {\r\n //console.log(res)\r\n this.filters = res;\r\n });\r\n }\r\n\r\n if (typeof this.filtersWithEventID == 'object' && Object.keys(this.filtersWithEventID).length > 0) {\r\n this.dataFilter.filters = this.filtersWithEventID;\r\n //console.log(filtersWithEventID)\r\n this.genArr = this.genArr.filter(el => {\r\n return el[\"ColumnName\"] != 'VQuad_CallID';\r\n });\r\n let generalFilterArrayAll = this.dataFilter.getProcessedFiltersArray(\"ALL\");\r\n this.genArr = [...this.genArr, ...generalFilterArrayAll];\r\n\r\n for (const key in this.filters) {\r\n if (key == 'VQuad_CallID')\r\n delete this.filters[key];\r\n }\r\n let generalFilterArrayNew = this.dataFilter.getProcessedFilters(\"\");\r\n this.filters = { ...this.filters, ...generalFilterArrayNew };\r\n }\r\n else if (Object.keys(this.filtersWithEventID).length == 0) {\r\n this.genArr = this.genArr.filter(el => {\r\n return el[\"ColumnName\"] != 'VQuad_CallID';\r\n });\r\n\r\n for (const key in this.filters) {\r\n if (key == 'VQuad_CallID')\r\n delete this.filters[key];\r\n }\r\n\r\n }\r\n //console.log(this.genArr)\r\n //console.log(filters)\r\n\r\n if (this.delFilterColName != '' && this.delFilterColName != 'clearAllFilters') {\r\n //cleared = 1;\r\n this.genArr = this.genArr.filter(el => {\r\n return el[\"ColumnName\"] != this.delFilterColName;\r\n });\r\n\r\n for (const key in this.filters) {\r\n if (key == this.delFilterColName)\r\n delete this.filters[key];\r\n }\r\n }\r\n //console.log(this.genArr)\r\n this.hasFilters = this.genArr.length <= 0 ? false : true;\r\n\r\n if (this.delFilterColName != 'clearAllFilters') {\r\n //let newFilters = {};\r\n //for (const key in this.filters) {\r\n // if (this.filters[key].rsltType == 'call-events' || this.filters[key].rsltType == '') {\r\n // let value = this.filters[key].value;\r\n // let matchMode = this.filters[key].matchMode;\r\n // let valueTo = this.filters[key].valueTo;\r\n // let type = this.filters[key].type;\r\n // let rsltType = this.filters[key].rsltType;\r\n // let title = this.filters[key].title;\r\n // newFilters[key] = { value, matchMode, valueTo, type, rsltType, title };\r\n // }\r\n //}\r\n ////console.log(newFilters)\r\n this.commonFilterService.setGeneralFilterData(this.filters);//(newFilters);\r\n }\r\n else\r\n this.hasFilters = false;\r\n\r\n\r\n if (!this.hasFilters) {\r\n ///if clearfilter is clicked then remove all filters from this.genArr\r\n //debugger;\r\n this.genArr = [];\r\n }\r\n //this.commonFilterService.DB_TZ.subscribe(res => {\r\n // dbTz = res;\r\n //});\r\n //if (dbTz == -500) {//query var col table\r\n // await this.service.getDBTimezoneDiff('VquadData').then(res => {\r\n // this.commonFilterService.setDBTZFromVarCol(res);\r\n // dbTz = res;\r\n // });\r\n //}\r\n ////console.log(dbTz)\r\n\r\n\r\n //debugger;\r\n //this.commonFilterService.mfTZ.subscribe(res => this.MainFilterTZ = res);\r\n //if (this.MainFilterTZ == 0) {\r\n // this.commonFilterService.setDBAndBrowserHrsDiff(-500);\r\n //}\r\n\r\n\r\n\r\n ////debugger;\r\n //await this.SetCustomFilters();\r\n\r\n //this.commonFilter = new CommonFilter();\r\n //this.commonFilterService.TSType.subscribe(res => this.commonFilter.TimestampType = res);//TsType\r\n //alert(this.commonFilter.TimestampType);\r\n //this.commonFilterService.TSBetween.subscribe(res => alert(res));//latest dates selected is set here from service\r\n /////if (res.RangeType !== \"custom\") \r\n //this.commonFilterService.TSRangeFilter.subscribe(res => { this.SetTimeFilter(res.RangeType) });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n\r\n // return;\r\n\r\n this.isLineChart = false;\r\n if ((this.selectedFilter !== \"Group\" && this.selectedReportID[0] == 0) || (this.selectedFilter == \"Group\" && this.selectedGroupATID[0] == 0)) {\r\n //alert(\"Please select report.\");\r\n return;\r\n }\r\n\r\n //debugger\r\n let group = false;\r\n if (this.selectedFilter == \"Group\") {\r\n group = true;\r\n let CRName = this.groupReportATMainList.find(m => m.ID == this.selectedGroupATID[0]).Name;\r\n this.LoadCustomReport(CRName, group, event);\r\n }\r\n else\r\n this.LoadCustomReport(this.selectedReportID[0], group, event);\r\n\r\n if (this.delFilterColName != '' && this.delFilterColName != 'clearAllFilters') {\r\n this.delColSelected = true;\r\n\r\n this.commonFilterService.setDeleteFilterData('');//reset if delete\r\n\r\n if (this.delFilterColName == 'VQuad_CallID') {\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n }\r\n\r\n this.genArrDel = this.AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"] != this.delFilterColName;\r\n });\r\n //console.log(this.genArrDel)\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n else if (this.delFilterColName == 'clearAllFilters') {\r\n this.clearAllFiltersBool = true;\r\n\r\n this.commonFilterService.setClearAllFiltersData();//reset if delete\r\n this.commonFilterService.setGeneralFilterData(this.filters);\r\n\r\n this.filtersWithEventID = {};\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n\r\n this.genArrDel = [];\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n //debugger\r\n\r\n return event;\r\n }\r\n\r\n CheckCustomDate(timeFilterOption) {\r\n this.selectedtimeFilter = [timeFilterOption];\r\n this.timeFilter = timeFilterOption;\r\n\r\n if (timeFilterOption == \"Custom\")\r\n this.isCustomDate = true;\r\n else\r\n this.isCustomDate = false;\r\n }\r\n\r\n ///////////// Bar Chart\r\n\r\n GetDataset(rows) {\r\n let dataset: any[] = [];\r\n\r\n for (let i = 0; i < rows.ChartData.Dataset.length; i++) {\r\n dataset.push({\r\n label: rows.ChartData.Dataset[i].Legend,//\"Europe\",/// label is coloumn Name //rows.ChartData.Dataset[0].Legend\r\n type: \"bar\",\r\n //backgroundColor: this.RandomColorCode(),\r\n backgroundColor: this.colorCodes[i],\r\n data: rows.ChartData.Dataset[i].Data\r\n\r\n });\r\n }\r\n //console.log(dataset)\r\n return dataset;\r\n }\r\n\r\n BindBarChart(rows, reportName) {\r\n //console.log(rows.ChartData);\r\n this.isBarChart = true;\r\n if (rows.ChartData != null) {\r\n //if (rows.ChartData.Labels.length > 0) {\r\n if (rows.ChartData.Labels.length > 0) {\r\n this.isBarChart = true;\r\n this.cdr.detectChanges();\r\n\r\n /////// https://stackoverflow.com/questions/24815851/how-to-clear-a-chart-from-a-canvas-so-that-hover-events-cannot-be-triggered\r\n //if (document.getElementById(\"DivBarCanvas\") != null) {\r\n // document.getElementById(\"DivBarCanvas\").innerHTML = ' ';\r\n // document.getElementById(\"DivBarCanvas\").innerHTML = '
    ';\r\n // document.getElementById(\"DivBarCanvas\").innerHTML = '';\r\n //}\r\n\r\n // destroy bar chart if already exist // != undefined\r\n if (this.barChart != null)\r\n this.barChart.destroy();\r\n \r\n if (document.getElementById(\"canvas\") != null) {\r\n this.barChart = new Chart((document.getElementById(\"canvas\")).getContext(\"2d\"), {\r\n type: \"bar\",\r\n data: {\r\n labels: rows.ChartData.Labels,// [\"Red1\", \"blue\", \"orange\", \"green\"], ////label is no of groupname fetched from data result // rows.ChartData.Labels\r\n datasets: this.GetDataset(rows),\r\n //datasets: [ ///dataset is no of column selected as bar from config screen\r\n // {\r\n // label: \"Europe\",/// label is coloumn Name //rows.ChartData.Dataset[0].Legend\r\n // type: \"bar\",\r\n // backgroundColor: this.RandomColorCode(),\r\n // backgroundColorHover: \"#3e95cd\",\r\n // data: [408, 547, 675, 734],///data is selected column value //rows.ChartData.Dataset[0].Data\r\n // },\r\n //]\r\n },\r\n options: {\r\n scales: {\r\n yAxes: [\r\n {\r\n minBarLength: 3,\r\n ticks: {\r\n beginAtZero: true,\r\n suggestedMin: 0,\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n });\r\n\r\n this.barChart.render();\r\n this.dummyBarChart = this.barChart;\r\n //this.GetLineGraphDataList(reportName);///line graph\r\n }\r\n }\r\n else {\r\n ///////////to show empty graph if od data is found for the configured graph\r\n this.isBarChart = true;\r\n this.cdr.detectChanges();\r\n\r\n //if (document.getElementById(\"DivBarCanvas\") != null) {\r\n // document.getElementById(\"DivBarCanvas\").innerHTML = ' ';\r\n // document.getElementById(\"DivBarCanvas\").innerHTML = '
    ';\r\n // document.getElementById(\"DivBarCanvas\").innerHTML = '';\r\n //}\r\n if (this.barChart != null)\r\n this.barChart.destroy();\r\n\r\n if (document.getElementById(\"canvas\") != null) {\r\n this.barChart = new Chart((document.getElementById(\"canvas\")).getContext(\"2d\"), {\r\n type: \"bar\",\r\n data: {\r\n labels: [],// [\"Red1\", \"blue\", \"orange\", \"green\"], ////label is no of groupname fetched from data result // rows.ChartData.Labels\r\n //datasets: this.GetDataset(rows),\r\n datasets: [ ///dataset is no of column selected as bar from config screen\r\n {\r\n label: \"No Data Found\",/// label is coloumn Name //rows.ChartData.Dataset[0].Legend \r\n data: [],///data is selected column value //rows.ChartData.Dataset[0].Data\r\n },\r\n ]\r\n },\r\n options: {\r\n scales: {\r\n yAxes: [\r\n {\r\n position: 'left',\r\n ticks: {\r\n precision: 0,\r\n beginAtZero: true,\r\n // display: false\r\n }\r\n }\r\n ],\r\n }\r\n }\r\n });\r\n\r\n this.barChart.render();\r\n //this.dummyBarChart = this.barChart;\r\n }\r\n }\r\n }\r\n else\r\n this.isBarChart = false;\r\n }\r\n\r\n //NOT IN USE\r\n BindBarChartTest() {\r\n //this.isBarChart = true;\r\n this.barChart1 = new Chart((document.getElementById(\"dummycanvas\")).getContext(\"2d\"), {\r\n type: \"bar\",\r\n data: {\r\n labels: [], ////label is no of groupname fetched from data result // rows.ChartData.Labels\r\n datasets: [ ///dataset is no of column selected as bar from config screen\r\n {\r\n label: \"No Data Found\",/// label is coloumn Name //rows.ChartData.Dataset[0].Legend\r\n type: \"bar\",\r\n // backgroundColor: \"rgba(151,187,205,1)\",\r\n\r\n data: [],///data is selected column value //rows.ChartData.Dataset[0].Data\r\n }\r\n ]\r\n },\r\n options: {\r\n scales: {\r\n yAxes: [\r\n {\r\n\r\n position: 'left',\r\n ticks: {\r\n precision: 0,\r\n beginAtZero: true,\r\n // display: false\r\n }\r\n }\r\n ],\r\n\r\n }\r\n }\r\n });\r\n }\r\n\r\n RandomColorCode() {\r\n const randomColor = Math.floor(Math.random() * 16777215).toString(16);\r\n return \"#\" + randomColor;\r\n }\r\n\r\n\r\n //NOT IN USE\r\n BindBarChartSample() {\r\n\r\n this.barChart1 = new Chart((document.getElementById(\"dummycanvas\")).getContext(\"2d\"), {\r\n type: 'bar',\r\n data: {\r\n labels: ['Accepted Answer', 'Top rated answer', 'This Answer'],\r\n datasets: [{\r\n data: [0, 40, 100], // This is the important line!\r\n backgroundColor: 'blue',\r\n borderWidth: 5\r\n }]\r\n },\r\n options: {\r\n title: {\r\n display: true,\r\n text: 'helpfulness of answers to this questions'\r\n },\r\n legend: {\r\n display: false\r\n },\r\n scales: {\r\n yAxes: [\r\n {\r\n minBarLength: 3,\r\n ticks: {\r\n beginAtZero: true\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n });\r\n }\r\n\r\n //////////// Line Chart - NOT IN USE\r\n GetLineGraphDataList(reportName) {\r\n\r\n let startDate = \"\";\r\n let endDate = \"\";\r\n\r\n if (this.timeFilter == \"Custom\") {\r\n startDate = this.startDate.toDateString();\r\n endDate = this.endDate.toDateString();\r\n }\r\n\r\n if (this.selectedFilter.trim() == \"Aggregate\")\r\n this.url = this.baseUrl + 'CustomReps/GetCustomReportGroupMainScreenData_LineGragh?reportName=' + reportName + '&timeFilter=' + this.timeFilter + '×tampSearch=' + this.timestampSearch + '&startDate=' + startDate + '&endDate=' + endDate;\r\n else if (this.selectedFilter == \"Timestamp\")\r\n this.url = this.baseUrl + 'CustomReps/GetCustomReportNGpMainScreenData_LineGragh?reportName=' + reportName + '&timeFilter=' + this.timeFilter + '×tampSearch=' + this.timestampSearch + '&startDate=' + startDate + '&endDate=' + endDate;\r\n else {\r\n if (this.crFilterType.trim() == \"Aggregate\")\r\n this.url = this.baseUrl + 'CustomReps/GetCustomReportGroupMainScreenData_LineGragh?reportName=' + reportName + '&timeFilter=' + this.timeFilter + '×tampSearch=' + this.timestampSearch + '&startDate=' + startDate + '&endDate=' + endDate;\r\n else\r\n this.url = this.baseUrl + 'CustomReps/GetCustomReportNGpMainScreenData_LineGragh?reportName=' + reportName + '&timeFilter=' + this.timeFilter + '×tampSearch=' + this.timestampSearch + '&startDate=' + startDate + '&endDate=' + endDate;\r\n }\r\n //console.log(this.genArr)\r\n let body = JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.genArr });\r\n this.GetCustomReport_Service(body).subscribe((res: any) => {\r\n //console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //debugger;\r\n\r\n this.BindLineChart(rows); //bind line chart\r\n\r\n },\r\n error => console.log('httperr', error));\r\n }\r\n\r\n GetDatasetData(rows) {\r\n let data: any[] = [];\r\n for (let x = 0; x < rows.length; x++) {\r\n data.push(rows[x].Data);\r\n }\r\n return data;\r\n }\r\n GetLineGraphDataset(rows) {\r\n let dataset: any[] = [];\r\n //debugger;\r\n //for (let i = 0; i < rows.LineChartData.Dataset.length; i++) {\r\n // data.push(rows.LineChartData.Dataset[i].Data);\r\n //}\r\n\r\n for (let k = 0; k < rows.length; k++) {\r\n dataset.push({\r\n label: rows[k].Dataset[0].Legend,//\"Europe\",/// label is coloumn Name //rows.ChartData.Dataset[0].Legend \r\n backgroundColor: this.RandomColorCode(),\r\n backgroundColorHover: \"#3e95cd\",\r\n borderColor: this.RandomColorCode(),\r\n data: this.GetDatasetData(rows[k].Dataset), //rows.LineChartData.Dataset[i].Data,\r\n lineTension: 0.2,\r\n borderWidth: 1,\r\n pointStyle: \"line\",\r\n fill: false,\r\n });\r\n }\r\n\r\n return dataset;\r\n }\r\n BindLineChart(rows) {\r\n //debugger;\r\n //console.log(rows)\r\n this.isLineChart = false;\r\n if (rows.LineChartData != null) {\r\n if (rows.LineChartData.length > 0) {\r\n this.filterType_LineGraph = this.selectedFilter != \"Group\" ? this.selectedFilter : this.crFilterType;\r\n this.isLineChart = true;\r\n this.lineChartCount = Array(rows.LineChartData.length).fill(0).map((x, i) => i);\r\n this.lineChartData = rows.LineChartData;\r\n\r\n let timeFormat = 'HH:mm:ss';\r\n let colonCnt = -1;\r\n let eiphenCnt = -1;\r\n this.lineChartData.forEach(eachData => {\r\n Object.keys(eachData).forEach(key => {\r\n if (key) {\r\n eachData[key].Labels.forEach((value, i) => {\r\n if (i == 0) {\r\n colonCnt = value.split(\":\").length - 1;\r\n if (colonCnt == 1)\r\n timeFormat = 'HH:mm';\r\n else if (colonCnt == 0)\r\n timeFormat = 'HH:mm';//'HH'\r\n eiphenCnt = value.split(\"-\").length - 1;\r\n }\r\n //eachData[key].Labels[i] = ((value.indexOf('-') == -1 && value.indexOf(':') == -1) || eiphenCnt == 1) ? value.replace(/\\-/g, '/') : this.datepipe.transform(new Date(formatDBTZDateToLocalDate(value.replace(/\\-/g, '/'), this.dbTz, this.dbAndBrHrs, this.MainFilterTZ)), 'MM/dd/yyyy ' + timeFormat);//this.datepipe.transform(new Date(formatDBTZDateToLocalDate(getDateValueViaValue(value, ' '), this.dbTz, this.dbAndBrHrs, this.MainFilterTZ)), 'MM/dd/yyyy ' + timeFormat);\r\n eachData[key].Labels[i] = ((value.indexOf('-') == -1 && value.indexOf(':') == -1) || eiphenCnt == 1) ? new Date(value.replace(/\\-/g, '/')) : new Date(this.datepipe.transform(new Date(formatDBTZDateToLocalDate(value.replace(/\\-/g, '/'), this.dbTz, this.dbAndBrHrs, this.MainFilterTZ)), 'MM/dd/yyyy ' + timeFormat));//this.datepipe.transform(new Date(formatDBTZDateToLocalDate(getDateValueViaValue(value, ' '), this.dbTz, this.dbAndBrHrs, this.MainFilterTZ)), 'MM/dd/yyyy ' + timeFormat);\r\n })\r\n }\r\n });\r\n });\r\n //console.log(this.lineChartData)\r\n }\r\n }\r\n }\r\n\r\n // This method gets called when the chart instance is emitted by the child component\r\n onChartCreated(chart: Chart) {\r\n this.mlineChart.push(chart);\r\n //console.log('Chart instance received:', this.mlineChart);\r\n }\r\n\r\n\r\n //NOT IN USE\r\n BindMultiLineChartTest() {\r\n this.chartID = \"0\";\r\n\r\n //// \r\n this.lineChartTest = new Chart((document.getElementById(\"canvas2\")).getContext(\"2d\"), {\r\n type: \"line\",\r\n data: {\r\n labels: [\"Jan\", \"Feb\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\"], ////label is no of groupname fetched from data result // rows.ChartData.Labels \r\n datasets: [ ///dataset is no of column selected as bar from config screen\r\n {\r\n label: \"A\",/// label is coloumn Name //rows.ChartData.Dataset[0].Legend\r\n fill: false,\r\n //interval: 2,\r\n yAxisID: 'A',\r\n backgroundColor: this.RandomColorCode(),\r\n backgroundColorHover: this.RandomColorCode(),\r\n borderColor: this.RandomColorCode(),\r\n data: [100, 150, 200, 250, 300, 350, 400, 450],///data is selected column value //rows.ChartData.Dataset[0].Data\r\n lineTension: 0.1,\r\n borderWidth: 1,\r\n pointStyle: \"line\"\r\n },\r\n {\r\n label: 'B',\r\n yAxisID: 'B',\r\n fill: false,\r\n data: [1, 1, 1, 1, 0, 2, 3, 4],\r\n lineTension: 0.1,\r\n borderWidth: 1,\r\n pointStyle: \"line\"\r\n }\r\n\r\n ]\r\n },\r\n options: {\r\n responsive: true,\r\n scales: {\r\n yAxes: [\r\n {\r\n id: 'A',\r\n type: 'linear',\r\n position: 'left',\r\n ticks: {\r\n beginAtZero: true\r\n }\r\n },\r\n {\r\n id: 'B',\r\n type: 'linear',\r\n position: 'right',\r\n ticks: {\r\n beginAtZero: true\r\n }\r\n }\r\n ]\r\n },\r\n // Container for pan options\r\n pan: {\r\n // Boolean to enable panning\r\n enabled: true,\r\n\r\n // Panning directions. Remove the appropriate direction to disable \r\n // Eg. 'y' would only allow panning in the y direction\r\n mode: 'xy'\r\n },\r\n\r\n // Container for zoom options\r\n zoom: {\r\n // Boolean to enable zooming\r\n enabled: false,\r\n\r\n // Zooming directions. Remove the appropriate direction to disable \r\n // Eg. 'y' would only allow zooming in the y direction\r\n mode: 'xy',\r\n },\r\n bezierCurve: false\r\n }\r\n });\r\n\r\n\r\n }\r\n //NOT IN USE\r\n BindLineChart1(rows) {\r\n //debugger;/////hard code line chart\r\n this.isLineChart = false;\r\n if (rows.LineChartData != null && rows.LineChartData.length > 0) {\r\n this.isLineChart = true;\r\n\r\n for (let i = 0; i < rows.LineChartData.length; i++) {\r\n this.chartID = \"\";\r\n this.chartID = i.toString();\r\n this.lineChart = new Chart((document.getElementById(this.chartID)).getContext(\"2d\"), {\r\n type: \"line\",\r\n data: {\r\n labels: rows.LineChartData[i][0].Labels,//rows.LineChartData.Labels, ////label is no of groupname fetched from data result // rows.ChartData.Labels\r\n datasets: this.GetLineGraphDataset(rows.LineChartData[i]),\r\n //datasets: [ ///dataset is no of column selected as bar from config screen\r\n // {\r\n // label: rows.LineChartData.Dataset[0].Legend,/// label is coloumn Name //rows.ChartData.Dataset[0].Legend\r\n // fill: false,\r\n // backgroundColor: this.RandomColorCode(),\r\n // backgroundColorHover: \"#3e95cd\",\r\n // data:this.GetLineGraphDataset(rows), //[1, 4, 2, 2, 5, 6, 7, 4, 3, 2, 1, 3, 4, 0, 7,],///data is selected column value //rows.ChartData.Dataset[0].Data\r\n // lineTension: 0.1,\r\n // borderWidth: 1,\r\n // pointStyle: \"line\"\r\n // } \r\n //]\r\n },\r\n options: {\r\n responsive: true,\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n beginAtZero: true\r\n }\r\n }\r\n ]\r\n },\r\n // Container for pan options\r\n pan: {\r\n // Boolean to enable panning\r\n enabled: true,\r\n\r\n // Panning directions. Remove the appropriate direction to disable \r\n // Eg. 'y' would only allow panning in the y direction\r\n mode: 'xy'\r\n },\r\n\r\n // Container for zoom options\r\n zoom: {\r\n // Boolean to enable zooming\r\n enabled: false,\r\n\r\n // Zooming directions. Remove the appropriate direction to disable \r\n // Eg. 'y' would only allow zooming in the y direction\r\n mode: 'xy',\r\n },\r\n bezierCurve: false\r\n }\r\n });\r\n // }\r\n this.mlineChart.push(this.lineChart);\r\n }\r\n }\r\n\r\n }\r\n\r\n /////////////////////////////////////// SERVICE CALL\r\n GetCustomReport_Service(body) {\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n return this.http.post(this.url, body, options);\r\n }\r\n\r\n GetCustomReportByFilterMethod_Service() {\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, options);\r\n }\r\n\r\n ExportReportToPDF_Service() {\r\n //debugger;\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n let reportName = this.selectedFilter != \"Group\" ? this.reportList.find(m => m.ID_Abs == this.selectedReportID[0]).CriteriaName_Abs : this.groupReportList.find(m => m.id == this.selectedGroupID[0]).name;\r\n let webviewJob: Job = new Job();\r\n\r\n let selectedMainFilterCrieriaName = '';\r\n this.commonFilterService.mainFilter_CriteriaName.subscribe(res => selectedMainFilterCrieriaName = res);// set mainfilter ID\r\n webviewJob.FilterFromDB = selectedMainFilterCrieriaName;\r\n //debugger;\r\n\r\n /////check if selected mainfilter has timezone else set dbAndBrHrs to default value -500\r\n //console.log(this.MainFilterTZ)\r\n //this.commonFilterService.mfTZ.subscribe(res => this.MainFilterTZ = res);\r\n if (this.MainFilterTZ == 0) {\r\n this.commonFilterService.setDBAndBrowserHrsDiff(-500);\r\n }\r\n this.commonFilterService.DB_BRDiff.subscribe(res => {\r\n this.dbAndBrHrs = res;\r\n });\r\n webviewJob.DB_BRDiff = this.dbAndBrHrs.toString();\r\n\r\n webviewJob.Title = reportName;\r\n webviewJob.CRName = reportName;\r\n webviewJob.ifToBeRecurred = 0;\r\n webviewJob.TimestampTypeFilter = this.GetFormatedTimesstampSearch(this.timestampSearch);\r\n webviewJob.TimeDiffFilter = this.timeFilter;\r\n\r\n //webviewJob.WebviewConfigUpdated = 0;\r\n //if (this.customReportList.length <= 1)\r\n // webviewJob.WebviewConfigUpdated = 1;\r\n\r\n webviewJob.DataImportOrWebview = 0;\r\n if (this.timeFilter == \"Custom\") {\r\n //webviewJob.startTimestampFilter = this.selectedStartEndTime.startDate.format('MM/DD/YYYY HH:mm:ss'); //this.startDate.toDateString();\r\n //webviewJob.endTimestampFilter = this.selectedStartEndTime.endDate.format('MM/DD/YYYY HH:mm:ss'); //this.endDate.toDateString();\r\n webviewJob.startTimestampFilter = this.selectedStartEndTime.startDate;\r\n webviewJob.endTimestampFilter = this.selectedStartEndTime.endDate;\r\n }\r\n\r\n //if (this.selectedReportID[0] > 0) {\r\n if (this.selectedFilter != \"Group\") {\r\n webviewJob.CRName = reportName;//this.selectedReportID[0].toString();\r\n webviewJob.CRGroupOrNot = this.selectedFilter.trim() == \"Aggregate\" ? \"\" : \"Not\";\r\n }\r\n else {\r\n // webviewJob.CRGroupOrNot = this.selectedGroupID[0].toString();\r\n webviewJob.CRGroupOrNot = \"GROUP\";\r\n }\r\n webviewJob.generalFilterArray = this.genArr;\r\n //console.log(webviewJob)\r\n //console.log(this.genArr)\r\n return this.http.post(this.url, '{\"webviewJob\" : ' + JSON.stringify(webviewJob) + '}', options);\r\n }\r\n\r\n\r\n\r\n\r\n displayFnCR(selectItem: SelectItem): string {\r\n return selectItem && selectItem.name && !selectItem.name.includes('--Select Custom Report--') ? selectItem.name : '';\r\n }\r\n\r\n _CRName(value: any): SelectItem[] {\r\n let CRNameValue = '';\r\n if (typeof value === \"string\") {\r\n this.toHighlightCR = value;\r\n CRNameValue = value.toLowerCase();\r\n }\r\n else {\r\n this.toHighlightCR = value.name;\r\n CRNameValue = value.name.toLowerCase();\r\n }\r\n return this.customReportList.filter(option => option.name.toLowerCase().includes(CRNameValue) || option.name.includes('--Select Custom Report--'));\r\n }\r\n\r\n getListCR() {\r\n this.CRNamesObservable = this.customReportList;\r\n\r\n if (this.myConfigNameCR != \"null\" && this.initCR)\r\n this.setConfigByNameCR(this.myConfigNameCR);\r\n }\r\n setConfigByNameCR(name) {\r\n this.selectedReportName = name;\r\n //this.ResetPage();\r\n //console.log(this.selectedReportName)\r\n let CRConfigName = this.selectedReportName.trim();\r\n //this.resetCritErrors();\r\n if (CRConfigName.length == 0) {\r\n this.ChangeReportList(null);\r\n return;\r\n }\r\n let found = this.customReportList.find(x => x.name == CRConfigName);\r\n if (found) {\r\n let id = found.id;\r\n this.ChangeReportList(id);\r\n }\r\n\r\n this.initCR = false;\r\n }\r\n\r\n inputLengthCR = 0;\r\n setLimitedOptionsCR = true;\r\n onKeydownMainCR($event) {\r\n if (!this.setLimitedOptionsCR) {\r\n this.setLimitedOptionsCR = true;\r\n this.controlCR.valueChanges.subscribe(newValue => {\r\n this.CRNamesObservable = this._CRName(newValue);\r\n })\r\n }\r\n\r\n this.inputLengthCR = $event.target.value.length;\r\n this.selectedReportName = $event.target.value;\r\n if (this.inputLengthCR == 0) {\r\n this.controlCR.setValue(\"\");\r\n this.triggerCollection.forEach((x, i) => {\r\n if (i == 0) {\r\n let firstSelectedOption = x.autocomplete.options.find(o => o.value.id == this.selectedReportID[0]);\r\n if (firstSelectedOption) {\r\n this.CRClose = true;\r\n this.controlCR.setValue(\"\");\r\n firstSelectedOption.deselect();\r\n }\r\n }\r\n });\r\n }\r\n }\r\n clearInputTextCR() {\r\n this.controlCR.setValue(\"\");\r\n this.inputLengthCR = 0;\r\n }\r\n clearInputCR(auto: MatAutocomplete) {\r\n this.controlCR.setValue(\"\");\r\n this.inputLengthCR = 0;\r\n this.selectedReportID = [0];\r\n this.selectedReportName = \"\";\r\n //input.placeholder = '';\r\n //input.value = '';\r\n //auto.options.forEach(option => option.deselect());\r\n //auto.closePanel();\r\n this.ChangeReportList(null, false);\r\n //if (this.myConfigNameCR != \"null\") {\r\n // this.triggerCollection.forEach((x, i) => {\r\n // if (i == 0)\r\n // setTimeout(() => x.openPanel());\r\n // });\r\n //}\r\n }\r\n\r\n openOrCloseCR = false;\r\n CRClose = false;\r\n OpenAutoCompeleteDailogCR(init?, closed?) {\r\n //const input = document.getElementById('message') as HTMLInputElement;\r\n //input.focus();\r\n let tmOut = 0;\r\n if (init)\r\n tmOut = 1000;\r\n else {\r\n this.setLimitedOptionsCR = false;\r\n this.CRNamesObservable = this.customReportList;\r\n }\r\n //console.log(init)\r\n //console.log(this.inputLengthCR)\r\n\r\n this.triggerCollection.forEach((x, i) => {\r\n if (i == 0) {\r\n if (this.openOrCloseCR == true || closed) {\r\n setTimeout(() => x.closePanel());\r\n this.openOrCloseCR = false;\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.inputCtrl.nativeElement.blur();\r\n this.inputCtrl.nativeElement.focus();\r\n this.toHighlightCR = this.inputCtrl.nativeElement.value;\r\n if (this.inputLengthCR > 0) {\r\n let firstSelectedOption = x.autocomplete.options.find(o => o.selected);\r\n if (firstSelectedOption === undefined && this.selectedReportID.length > 0) {\r\n firstSelectedOption = x.autocomplete.options.find(o => o.value.id == this.selectedReportID[0]);\r\n if (firstSelectedOption) {\r\n if (this.initArrow)\r\n this.CRClose = true;\r\n firstSelectedOption.select();\r\n setTimeout(() => {\r\n x.openPanel();\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n });\r\n }\r\n }\r\n if (firstSelectedOption) {\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n }\r\n }\r\n //x.openPanel();\r\n }, tmOut);\r\n this.openOrCloseCR = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n initArrow = true;\r\n SetArrowClick() {\r\n if (this.initArrow) {\r\n this.initArrow = false;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n displayFnGrpCR(selectItem: any): string {\r\n return selectItem && selectItem.name && !selectItem.name.includes('--Select Reports Group--') ? selectItem.name : '';\r\n }\r\n\r\n _GrpCRName(value: any): any[] {\r\n let GrpCRNameValue = '';\r\n if (typeof value === \"string\") {\r\n this.toHighlightGrpCR = value;\r\n GrpCRNameValue = value.toLowerCase();\r\n }\r\n else {\r\n this.toHighlightGrpCR = value.name;\r\n GrpCRNameValue = value.name.toLowerCase();\r\n }\r\n return this.groupReportList.filter(option => option.name.toLowerCase().includes(GrpCRNameValue) || option.name.includes('--Select Reports Group--'));\r\n }\r\n\r\n getListGrpCR() {\r\n this.grpCRNamesObservable = this.groupReportList;\r\n\r\n if (this.myConfigNameGrpCR != \"null\" && this.initGrpCR)\r\n this.setConfigByNameGrpCR(this.myConfigNameGrpCR);\r\n }\r\n setConfigByNameGrpCR(name) {\r\n this.modelGrpCRName = name;\r\n //this.ResetPage();\r\n //console.log(this.modelGrpCRName)\r\n let GrpCRConfigName = this.modelGrpCRName.trim();\r\n //this.resetCritErrors();\r\n if (GrpCRConfigName.length == 0) {\r\n this.onddlChange(\"Group\", 0, false);\r\n return;\r\n }\r\n\r\n let found = this.groupReportList.find(x => x.name == GrpCRConfigName);\r\n if (found) {\r\n let id = found.id;\r\n this.onddlChange(\"Group\", id, false);\r\n }\r\n\r\n this.initGrpCR = false;\r\n }\r\n\r\n inputLengthGrpCR = 0;\r\n setLimitedOptionsGrpCR = true;\r\n onKeydownMainGrpCR($event) {\r\n if (!this.setLimitedOptionsGrpCR) {\r\n this.setLimitedOptionsGrpCR = true;\r\n this.controlGrpCR.valueChanges.subscribe(newValue => {\r\n this.grpCRNamesObservable = this._GrpCRName(newValue);\r\n })\r\n }\r\n this.inputLengthGrpCR = $event.target.value.length;\r\n this.modelGrpCRName = $event.target.value;\r\n if (this.inputLengthGrpCR == 0) {\r\n this.controlGrpCR.setValue(\"\");\r\n this.triggerCollection.forEach((x, i) => {\r\n if (i == 0) {\r\n let firstSelectedOption = x.autocomplete.options.find(o => o.value.id == this.selectedGroupID[0]);\r\n if (firstSelectedOption) {\r\n this.CRGrpClose = true;\r\n this.controlGrpCR.setValue(\"\");\r\n firstSelectedOption.deselect();\r\n }\r\n }\r\n });\r\n }\r\n }\r\n clearInputTextGrpCR() {\r\n this.controlGrpCR.setValue(\"\");\r\n this.inputLengthGrpCR = 0;\r\n }\r\n clearInputGrpCR(auto: MatAutocomplete) {\r\n this.controlGrpCR.setValue(\"\");\r\n this.inputLengthGrpCR = 0;\r\n this.selectedGroupID = [0];\r\n this.modelGrpCRName = \"\";\r\n //input.placeholder = '';\r\n //input.value = '';\r\n //auto.options.forEach(option => option.deselect());\r\n //auto.closePanel();\r\n this.onddlChange(\"Group\", 0, false);\r\n //if (this.myConfigNameGrpCR != \"null\") {\r\n // this.triggerCollection.forEach((x, i) => {\r\n // if (i == 0)\r\n // setTimeout(() => x.openPanel());\r\n // });\r\n //}\r\n }\r\n\r\n openOrCloseGrpCR = false;\r\n CRGrpClose = false;\r\n OpenAutoCompeleteDailogGrpCR(init?, closed?) {\r\n //const input = document.getElementById('message') as HTMLInputElement;\r\n //input.focus();\r\n let tmOut = 0;\r\n if (init)\r\n tmOut = 1000;\r\n else {\r\n this.setLimitedOptionsGrpCR = false;\r\n this.grpCRNamesObservable = this.groupReportList;\r\n }\r\n\r\n this.triggerCollection.forEach((x, i) => {\r\n if (i == 0) {\r\n if (this.openOrCloseGrpCR == true || closed) {\r\n setTimeout(() => x.closePanel());\r\n this.openOrCloseGrpCR = false;\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.inputGrpCtrl.nativeElement.blur();\r\n this.inputGrpCtrl.nativeElement.focus();\r\n this.toHighlightGrpCR = this.inputGrpCtrl.nativeElement.value;\r\n if (this.inputLengthGrpCR > 0) {\r\n let firstSelectedOption = x.autocomplete.options.find(o => o.selected);\r\n if (firstSelectedOption === undefined && this.selectedGroupID.length > 0) {\r\n firstSelectedOption = x.autocomplete.options.find(o => o.value.id == this.selectedGroupID[0]);\r\n if (firstSelectedOption) {\r\n if (this.initArrowGrp)\r\n this.CRGrpClose = true;\r\n firstSelectedOption.select();\r\n setTimeout(() => {\r\n x.openPanel();\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n });\r\n }\r\n }\r\n if (firstSelectedOption) {\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n }\r\n }\r\n //x.openPanel();\r\n }, tmOut);\r\n this.openOrCloseGrpCR = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n initArrowGrp = true;\r\n SetArrowClickGrp() {\r\n if (this.initArrowGrp) {\r\n this.initArrowGrp = false;\r\n }\r\n }\r\n\r\n //////////////////////////////// Default Initial Values\r\n colorCodes: string[] = [\r\n //\"#FF0000\",\r\n //\"#EE9ED9\", \r\n //\"#55FF55\",\r\n //\"#55AAFF\",\r\n //\"#C54F00\",\r\n \"#A1D0D8\", \"#8EB848\", \"#193E4E\", \"#FF0000\", \"#FFFF00\", \"#008000\"\r\n ];\r\n\r\n timeFilterList: SelectItem[] = [\r\n { id: '10min', name: '10 min' },\r\n { id: '1hr', name: '1 Hour' },\r\n { id: '12hr', name: '12 Hours' },\r\n { id: '24hr', name: '24 Hours' },\r\n { id: 'Today', name: 'Today' },\r\n { id: 'Yesterday', name: 'Yesterday' },\r\n { id: '7days', name: '7 Days' },\r\n { id: 'SearchEntiredBase', name: 'Search Entire dBase' },\r\n { id: 'Custom', name: 'Custom' }\r\n ];\r\n\r\n timestampSearchList: SelectItem[] = [\r\n { id: 'VQUAD_TIMESTAMP', name: 'VQuad Timestamp' },\r\n { id: 'CALL_TIMESTAMP', name: 'Call Timestamp' },\r\n { id: 'DCOSS_TIMESTAMP', name: 'DCOSS Timestamp' },\r\n { id: 'VQT_Timestamp', name: 'VQT Timestamp' }\r\n ];\r\n\r\n RecordPerPageList: SelectItem[] = [\r\n { id: '20', name: '20' },\r\n { id: '50', name: '50' },\r\n { id: '100', name: '100' },\r\n { id: '200', name: '200' },\r\n { id: '300', name: '300' },\r\n { id: '500', name: '500' }\r\n ];\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL291dHB1dC1yZXN1bHRzL2N1c3RvbXJlcG9ydGxpbmVjaGFydC9jdXN0b21yZXBvcnRsaW5lY2hhcnQuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Output, EventEmitter, ViewChild, ViewEncapsulation, ElementRef, ChangeDetectorRef, Input } from '@angular/core';\r\nimport { Chart, ChartType, ChartOptions } from 'chart.js';\r\nimport { concat } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-customreportlinechart',\r\n templateUrl: './customreportlinechart.component.html',\r\n styleUrls: ['./customreportlinechart.component.scss']\r\n})\r\nexport class CustomreportlinechartComponent implements OnInit {\r\n\r\n lineChart: Chart;\r\n lineChartTest: Chart;\r\n lineChartCount: any[] = [];\r\n @Input() chartdata: any;\r\n @Input() filterMethod: any;\r\n @Input() chartCount: any;\r\n icount: number = 0;\r\n\r\n @ViewChild(\"stackchartcanvas\", { static: true }) stackchartcanvas: ElementRef;\r\n @Output() chartCreated = new EventEmitter();\r\n\r\n constructor(private cdr: ChangeDetectorRef) { }\r\n\r\n ngOnInit() {\r\n ///alert('line');\r\n //console.log('linegraphpg');\r\n //debugger;\r\n if (this.lineChart != null)\r\n this.lineChart.destroy();\r\n\r\n ///// https://stackoverflow.com/questions/24815851/how-to-clear-a-chart-from-a-canvas-so-that-hover-events-cannot-be-triggered\r\n //document.getElementById(\"DivLineCanvas\").innerHTML = ' ';\r\n //document.getElementById(\"DivLineCanvas\").innerHTML = '
    ';\r\n //document.getElementById(\"DivLineCanvas\").innerHTML = '';\r\n //debugger;\r\n this.BindLineChart();\r\n //this.BindTestLineChart();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n //NOT IN USE\r\n ViewChildChart() {\r\n\r\n //// destroy line chart if already exist\r\n // if (this.lineChart != null)\r\n // this.lineChart.destroy();\r\n\r\n const canvas = this.stackchartcanvas.nativeElement;\r\n //canvas.id = idCount;\r\n const ctx = canvas.getContext(\"2d\");\r\n\r\n this.lineChart = new Chart(ctx, {\r\n type: \"line\",\r\n data: {\r\n labels: [\"Jan\", \"Feb\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\"], ////label is no of groupname fetched from data result // rows.ChartData.Labels \r\n datasets: [ ///dataset is no of column selected as bar from config screen\r\n {\r\n label: \"ABC\",/// label is coloumn Name //rows.ChartData.Dataset[0].Legend\r\n fill: false,\r\n //interval: 2,\r\n backgroundColor: this.RandomColorCode(),\r\n backgroundColorHover: this.RandomColorCode(),\r\n borderColor: this.RandomColorCode(),\r\n data: [1, 4, 2, 2, 5, 6, 7, 4, 3, 2, 1, 3, 4, 0, 7,],///data is selected column value //rows.ChartData.Dataset[0].Data\r\n lineTension: 0.1,\r\n borderWidth: 1,\r\n pointStyle: \"line\"\r\n }\r\n ]\r\n },\r\n options: {\r\n responsive: true,\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n beginAtZero: true\r\n }\r\n }\r\n ]\r\n },\r\n // Container for pan options\r\n pan: {\r\n // Boolean to enable panning\r\n enabled: true,\r\n\r\n // Panning directions. Remove the appropriate direction to disable \r\n // Eg. 'y' would only allow panning in the y direction\r\n mode: 'xy'\r\n },\r\n\r\n // Container for zoom options\r\n zoom: {\r\n // Boolean to enable zooming\r\n enabled: false,\r\n\r\n // Zooming directions. Remove the appropriate direction to disable \r\n // Eg. 'y' would only allow zooming in the y direction\r\n mode: 'xy',\r\n },\r\n bezierCurve: false\r\n }\r\n });\r\n\r\n // Emit the chart instance to the parent\r\n //this.chartCreated.emit(this.lineChart);\r\n\r\n }\r\n\r\n GetDatasetData_Old(rows) {\r\n let data: any[] = [];\r\n for (let x = 0; x < rows.length; x++) {\r\n data.push(rows[x].Data[0]);\r\n }\r\n //console.log(data)\r\n return data;\r\n }\r\n GetDatasetData(Dataset, Labels, currGrp) {\r\n let data: any[] = [];\r\n for (let indx = 0; indx < Dataset.length - 1; indx++) {\r\n if (Dataset[indx].groupByCol === currGrp)\r\n data.push({ x: Labels[indx], y: Dataset[indx].Data[0] });\r\n }\r\n return data;\r\n }\r\n GetLineGraphDataset(rows) {\r\n let dataset: any[] = [];\r\n let color = this.RandomColorCode();\r\n\r\n //backgroundColor: this.RandomColorCode(),\r\n //backgroundColorHover: \"#3e95cd\",\r\n //borderColor: this.RandomColorCode(),\r\n\r\n //for (let k = 0; k < rows.length; k++) {\r\n // color = this.RandomColorCode();\r\n // dataset.push({\r\n // label: rows[k].Dataset[0].Legend,//\"Europe\",/// label is coloumn Name //rows.ChartData.Dataset[0].Legend\r\n // yAxisID: rows[k].Dataset[0].Legend,\r\n // backgroundColor: color,//this.RandomColorCode(),\r\n // borderColor: color,// this.RandomColorCode(),\r\n // data: this.GetDatasetData(rows[k].Dataset), //rows.LineChartData.Dataset[i].Data,\r\n // lineTension: 0.2,\r\n // borderWidth: 1,\r\n // pointStyle: \"line\",\r\n // fill: false,\r\n // });\r\n //}\r\n\r\n //debugger;\r\n if (this.filterMethod == \"Aggregate\") {\r\n for (let m = 0; m < rows.length; m++) {\r\n if (rows[m].Dataset.length > 0) {\r\n for (let k = 0; k < rows[m].GroupNames.split(',').length - 1; k++) {\r\n let currObj = rows[m].Dataset.filter(a => a.groupByCol == rows[m].GroupNames.split(',')[k]);\r\n //console.log(currObj)\r\n if (currObj.length > 0) {\r\n color = this.colorCodes[k];//this.RandomColorCode();\r\n dataset.push({\r\n label: currObj[0].groupByCol + ' (' + currObj[0].Legend+')', //rows[k].Dataset[0].Legend,//\"Europe\",/// label is coloumn Name //rows.ChartData.Dataset[0].Legend\r\n yAxisID: currObj[0].Legend, //rows[k].Dataset[0].Legend,\r\n backgroundColor: color,//this.RandomColorCode(),\r\n borderColor: color,// this.RandomColorCode(),\r\n data: this.GetDatasetData(rows[m].Dataset, rows[m].Labels, rows[m].GroupNames.split(',')[k]),//this.GetDatasetData(currObj), //rows.LineChartData.Dataset[i].Data,\r\n lineTension: 0.2,\r\n borderWidth: 1,\r\n pointStyle: \"line\",\r\n fill: false,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n for (let m = 0; m < rows.length; m++) {\r\n if (rows[m].Dataset.length > 0) {\r\n color = this.colorCodes[m];//this.RandomColorCode();\r\n dataset.push({\r\n label: rows[m].Dataset[0].Legend, //rows[k].Dataset[0].Legend,//\"Europe\",/// label is coloumn Name //rows.ChartData.Dataset[0].Legend\r\n yAxisID: rows[m].Dataset[0].Legend, //rows[k].Dataset[0].Legend,\r\n backgroundColor: color,//this.RandomColorCode(),\r\n borderColor: color,// this.RandomColorCode(),\r\n data: this.GetDatasetData_Old(rows[m].Dataset), //rows.LineChartData.Dataset[i].Data,\r\n lineTension: 0.2,\r\n borderWidth: 1,\r\n pointStyle: \"line\",\r\n fill: false,\r\n });\r\n }\r\n }\r\n }\r\n\r\n return dataset;\r\n }\r\n GetChartOptions(rows) {\r\n let options: any[] = [];\r\n\r\n for (let k = 0; k < rows.length; k++) {\r\n if (rows[k].Dataset.length > 0) {\r\n let position = 'left';\r\n if (k == 1)\r\n position = 'right';\r\n\r\n options.push({\r\n scaleLabel: {\r\n display: true,\r\n labelString: rows[k].Dataset[0].Legend\r\n },\r\n id: rows[k].Dataset[0].Legend,\r\n type: 'linear',\r\n position: position,\r\n ticks: {\r\n beginAtZero: true\r\n }\r\n });\r\n }\r\n }\r\n\r\n return options;\r\n }\r\n //https://stackoverflow.com/questions/67275805/grouping-y-axis-labels-on-multiple-lines-on-a-chartjs-with-an-extra-dimension\r\n BindLineChart() {\r\n //console.log('BindLineChart()-childcomp');\r\n if (this.lineChart != null)\r\n this.lineChart.destroy();\r\n\r\n let isLineGraphEmpty = true;\r\n let labelIndx = 0;\r\n debugger;\r\n for (let i = 0; i < this.chartdata.length; i++) {\r\n isLineGraphEmpty = true;\r\n if (this.chartdata[i].Labels.length > 0) {\r\n labelIndx = i;\r\n isLineGraphEmpty = false;\r\n break;\r\n }\r\n }\r\n\r\n //let labelsArray = [];\r\n //for (let i = 0; i < this.chartdata.length; i++) {\r\n // labelsArray = [...labelsArray, ...this.chartdata[i].Labels];//labelsArray.concat(this.chartdata[i].Labels);\r\n //}\r\n //console.log(labelsArray)\r\n\r\n const canvas = this.stackchartcanvas.nativeElement;\r\n //canvas.id = idCount;\r\n\r\n const ctx = canvas.getContext(\"2d\");\r\n //if (this.chartdata[0].Labels.length > 0) {\r\n if (isLineGraphEmpty==false) {\r\n this.lineChart = new Chart(ctx, {\r\n type: \"line\",\r\n data: {\r\n labels: this.chartdata[labelIndx].Labels.map(x => new Date(x)),//rows.LineChartData.Labels, ////label is no of groupname fetched from data result // rows.ChartData.Labels\r\n datasets: this.GetLineGraphDataset(this.chartdata),\r\n //datasets: [ ///dataset is no of column selected as bar from config screen\r\n // {\r\n // label: rows.LineChartData.Dataset[0].Legend,/// label is coloumn Name //rows.ChartData.Dataset[0].Legend\r\n // fill: false,\r\n // backgroundColor: this.RandomColorCode(),\r\n // backgroundColorHover: \"#3e95cd\",\r\n // data:this.GetLineGraphDataset(rows), //[1, 4, 2, 2, 5, 6, 7, 4, 3, 2, 1, 3, 4, 0, 7,],///data is selected column value //rows.ChartData.Dataset[0].Data\r\n // lineTension: 0.1,\r\n // borderWidth: 1,\r\n // pointStyle: \"line\"\r\n // } \r\n //]\r\n },\r\n options: {\r\n responsive: true,\r\n title: {\r\n display: true,\r\n text: this.GetChartTitle(this.chartdata) //this.chartdata[0].Dataset[0].Legend\r\n },\r\n scales: {\r\n xAxes: [{\r\n type: 'time',\r\n ////display: true,\r\n ////scaleLabel: {\r\n //// display: true,\r\n //// labelString: 'Date'\r\n ////},\r\n time: {\r\n min: new Date(this.chartdata[labelIndx].StartDate),\r\n max: new Date(this.chartdata[labelIndx].EndDate),\r\n ////parser: 'YYYY-MM-DD HH:mm:ss',\r\n unit: this.chartdata[labelIndx].dateUnit,//https://www.chartjs.org/docs/latest/axes/cartesian/time.html#time-units\r\n ////autoSkip: true,\r\n //tooltipFormat: \"MM/DD/YYYY HH:mm:ss\",//https://stackoverflow.com/questions/61474243/change-date-format-in-tooltip-of-chart-js\r\n displayFormats: {\r\n second: \"MM/DD/YYYY HH:mm:ss\",\r\n minute: \"MM/DD/YYYY HH:mm\",\r\n hour: \"MM/DD/YYYY HH:00\",\r\n day: \"MM/DD/YYYY\",\r\n month: \"MM/YYYY\",\r\n year: \"YYYY\"\r\n }\r\n },\r\n ticks: {\r\n ////major: {\r\n //// fontStyle: 'bold',\r\n //// fontColor: '#FF0000'\r\n ////}\r\n //autoSkip: false,\r\n maxRotation: 45,\r\n minRotation: 45\r\n }\r\n }],\r\n yAxes: this.GetChartOptions(this.chartdata),\r\n //yAxes: [\r\n // {\r\n // ticks: {\r\n // beginAtZero: true\r\n // }\r\n // }\r\n //]\r\n },\r\n // Container for pan options\r\n pan: {\r\n // Boolean to enable panning\r\n enabled: false,\r\n\r\n // Panning directions. Remove the appropriate direction to disable \r\n // Eg. 'y' would only allow panning in the y direction\r\n mode: 'xy'\r\n },\r\n\r\n // Container for zoom options\r\n zoom: {\r\n // Boolean to enable zooming\r\n enabled: false,\r\n\r\n // Zooming directions. Remove the appropriate direction to disable \r\n // Eg. 'y' would only allow zooming in the y direction\r\n mode: 'xy',\r\n },\r\n bezierCurve: false\r\n }\r\n });\r\n }\r\n else {\r\n //////////////////// NO Data Found emty graph\r\n this.lineChart = new Chart(ctx, {\r\n type: \"line\",\r\n data: {\r\n labels: [],// [\"Red1\", \"blue\", \"orange\", \"green\"], ////label is no of groupname fetched from data result // rows.ChartData.Labels\r\n //datasets: this.GetDataset(rows),\r\n datasets: [ ///dataset is no of column selected as bar from config screen\r\n {\r\n label: \"No Data Found\",/// label is coloumn Name //rows.ChartData.Dataset[0].Legend \r\n data: [],///data is selected column value //rows.ChartData.Dataset[0].Data\r\n },\r\n ]\r\n },\r\n options: {\r\n responsive: true,\r\n title: {\r\n display: true,\r\n text: this.GetChartTitle(this.chartdata) //this.chartdata[0].Dataset[0].Legend\r\n },\r\n scales: {\r\n yAxes: [\r\n {\r\n position: 'left',\r\n ticks: {\r\n precision: 0,\r\n beginAtZero: true,\r\n // display: false\r\n }\r\n }\r\n ],\r\n },\r\n // Container for pan options\r\n pan: {\r\n // Boolean to enable panning\r\n enabled: true,\r\n\r\n // Panning directions. Remove the appropriate direction to disable \r\n // Eg. 'y' would only allow panning in the y direction\r\n mode: 'xy'\r\n },\r\n\r\n // Container for zoom options\r\n zoom: {\r\n // Boolean to enable zooming\r\n enabled: false,\r\n\r\n // Zooming directions. Remove the appropriate direction to disable \r\n // Eg. 'y' would only allow zooming in the y direction\r\n mode: 'xy',\r\n },\r\n bezierCurve: false\r\n }\r\n });\r\n\r\n }\r\n ///} //end if\r\n\r\n this.lineChart.update();\r\n this.cdr.detectChanges();\r\n //// Emit the chart instance to the parent\r\n this.chartCreated.emit(this.lineChart);\r\n }\r\n\r\n GetChartTitle(rows) {\r\n let title = \"\";\r\n for (let k = 0; k < rows.length; k++) {\r\n //let position = '';\r\n //if (k == 1)\r\n // position = ' AND ';\r\n //title = title + position + rows[k].Dataset[0].Legend;\r\n title = rows[k].LineGraphName;\r\n\r\n }\r\n return title;\r\n }\r\n\r\n //NOT IN USE\r\n BindTestLineChart() {\r\n const canvas = this.stackchartcanvas.nativeElement;\r\n //canvas.id = idCount;\r\n const ctx = canvas.getContext(\"2d\");\r\n\r\n this.lineChart = new Chart(ctx, {\r\n type: \"line\",\r\n //plugins: [{\r\n // afterLayout: chart => {\r\n // var ctx = chart.chart.ctx;\r\n // var xAxis = chart.scales['x-axis-0'];\r\n // var gradientStroke = ctx.createLinearGradient(xAxis.left, 0, xAxis.right, 0);\r\n // var dataset = chart.data.datasets[0];\r\n // dataset.colors.forEach((c, i) => {\r\n // var stop = 1 / (dataset.colors.length - 1) * i;\r\n // gradientStroke.addColorStop(stop, dataset.colors[i]);\r\n // });\r\n // dataset.backgroundColor = gradientStroke;\r\n // dataset.borderColor = gradientStroke;\r\n // dataset.pointBorderColor = gradientStroke;\r\n // dataset.pointBackgroundColor = gradientStroke;\r\n // dataset.pointHoverBorderColor = gradientStroke;\r\n // dataset.pointHoverBackgroundColor = gradientStroke;\r\n // }\r\n //}],\r\n data: {\r\n labels: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],//this.chartdata[0].Labels,//rows.LineChartData.Labels, ////label is no of groupname fetched from data result // rows.ChartData.Labels\r\n //datasets: this.GetLineGraphDataset(this.chartdata),\r\n //datasets: [ ///dataset is no of column selected as bar from config screen\r\n // {\r\n // label: \"ABC\",///rows.LineChartData.Dataset[0].Legend,/// label is coloumn Name //rows.ChartData.Dataset[0].Legend\r\n // fill: false,\r\n // backgroundColor: this.RandomColorCode(),\r\n // backgroundColorHover: \"#3e95cd\",\r\n // data:[1, 4, 2, 2, 5, 6, 7, 4, 3, 2, 1, 3, 4, 0, 7,],///data is selected column value //rows.ChartData.Dataset[0].Data\r\n // lineTension: 0.1,\r\n // borderWidth: 1,\r\n // pointStyle: \"line\"\r\n // } \r\n //]\r\n //datasets: [{\r\n // label: 'Cubic interpolation (monotone)',\r\n // data: [0, 20, 20, 60, 60, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN],\r\n // borderColor: \"red\",\r\n // backgroundColor: 'rgba(0, 0, 0, 0)',\r\n // fill: false,\r\n // cubicInterpolationMode: 'monotone'\r\n //}, {\r\n // label: 'Cubic interpolation (default)',\r\n // data: [NaN, NaN, NaN, NaN, 60, 120, 140, 180, 120, NaN, NaN, NaN, NaN],\r\n // borderColor: \"blue\",\r\n // backgroundColor: 'rgba(0, 0, 0, 0)',\r\n // fill: false,\r\n //}, {\r\n // label: 'Linear interpolation',\r\n // data: [NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 120, 125, 105, 110, 170,200,300,400],\r\n // borderColor: \"yellow\",\r\n // backgroundColor: 'rgba(0, 0, 0, 0)',\r\n // fill: false,\r\n // lineTension: 0\r\n //}]\r\n\r\n datasets: [{\r\n label: 'Cubic interpolation (monotone)',\r\n data: [1, 2, 3, 4, 5, 6, 7, 1, 2, 3],\r\n fill: false,\r\n //colors: ['red', 'red', 'red', 'red', 'red', 'red', 'red', 'red', 'red', 'red'],\r\n borderColor: \"yellow\",\r\n lineTension: 0.1,\r\n borderWidth: 1,\r\n pointStyle: \"line\"\r\n },\r\n {\r\n label: 'Cubic ',\r\n data: [10, 20, 30, 40, 50, 60, 70, 40, 20, 30],\r\n fill: false,\r\n //colors: ['yellow'],\r\n borderColor: \"blue\",\r\n lineTension: 0.1,\r\n borderWidth: 1,\r\n pointStyle: \"line\"\r\n }\r\n ]\r\n },\r\n options: {\r\n responsive: true,\r\n scales: {\r\n yAxes: [\r\n {\r\n ticks: {\r\n beginAtZero: true\r\n }\r\n }\r\n ]\r\n },\r\n // Container for pan options\r\n pan: {\r\n // Boolean to enable panning\r\n enabled: true,\r\n\r\n // Panning directions. Remove the appropriate direction to disable \r\n // Eg. 'y' would only allow panning in the y direction\r\n mode: 'xy'\r\n },\r\n\r\n // Container for zoom options\r\n zoom: {\r\n // Boolean to enable zooming\r\n enabled: false,\r\n\r\n // Zooming directions. Remove the appropriate direction to disable \r\n // Eg. 'y' would only allow zooming in the y direction\r\n mode: 'xy',\r\n },\r\n bezierCurve: false\r\n }\r\n });\r\n // }\r\n\r\n this.lineChart.update();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n RandomColorCode() {\r\n const randomColor = Math.floor(Math.random() * 16777215).toString(16);\r\n return \"#\" + randomColor;\r\n }\r\n\r\n colorCodes: string[] = [\r\n //\"#FF0000\",\r\n //\"#EE9ED9\",\r\n //\"#55FF55\",\r\n //\"#55AAFF\",\r\n //\"#C54F00\",\r\n \"#EE9ED9\", \"#FF0000\", \"#55FF55\", \"#55AAFF\", \"#C54F00\", \"#AA55FF\", \"#003B6D\", \"#FFA500\"\r\n ];\r\n\r\n}\r\n","module.exports = \".containerColor {\\n background-color: white;\\n}\\n\\n.container {\\n display: -ms-flexbox;\\n display: flex;\\n}\\n\\nagm-map {\\n /*height: 600px;*/\\n height: 1200px;\\n width: 1100px;\\n}\\n\\n.sideHeaderLabel {\\n font: 12px Verdana, Arial, Helvetica, sans-serif;\\n font-size: 12px;\\n margin-left: 5px;\\n margin-right: 5px;\\n}\\n\\n.labelMarginRight {\\n margin-right: 5px;\\n}\\n\\n.sidenavDropDown {\\n width: 150px;\\n font-size: 12px;\\n}\\n\\n.labelFont {\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n}\\n\\n.disableControl {\\n pointer-events: none;\\n}\\n\\n.popupButton {\\n cursor: pointer;\\n color: white;\\n font-size: 10px;\\n font-weight: bold;\\n font-family: Verdana;\\n background-color: #6D96D6;\\n padding-left: 3px;\\n padding-right: 3px;\\n}\\n\\n.btnToggle1 {\\n background-color: cornflowerblue;\\n color: white;\\n font-family: Verdana;\\n}\\n\\n.btnToggle2 {\\n background-color: red;\\n color: white;\\n font-family: Verdana;\\n}\\n\\n.disableSection {\\n color: darkgray;\\n}\\n\\n/*start checkbox*/\\n\\n/*.checkboxsize .defaultMat .mat-checkbox-inner-container {\\n width: 17px;\\n height: 17px;\\n}\\n\\n::ng-deep .mat-checkbox .mat-checkbox-frame {\\n border-color: black;\\n width: 17px;\\n height: 17px;\\n}\\n\\n::ng-deep .mat-checkbox-checked .mat-checkbox-background,\\n::ng-deep .mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: #2196F3 !important;\\n width: 17px;\\n height: 17px;\\n}*/\\n\\n/*end checkbox*/\\n\\n.checkboxlabelMargin {\\n margin-left: 0;\\n /*-15px;*/\\n}\\n\\n/*toggle div*/\\n\\n.toggleIcon {\\n -ms-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n/*start Legend css*/\\n\\n.Label {\\n color: Black;\\n font-size: 11px;\\n font-weight: bold;\\n font-family: Verdana;\\n height: 13px;\\n padding-left: 10px;\\n padding-right: 10px;\\n}\\n\\n/*end Legend css*/\\n\\n/*start Legend popup css*/\\n\\n.legendPopup {\\n position: absolute;\\n display: inline;\\n z-index: 10000;\\n}\\n\\n/*end Legend popup css*/\\n\\ninput[type=radio] {\\n height: 12px;\\n}\\n\\n/*https: //codepen.io/a7med-hussien/pen/PNbxNZ*/\\n\\n.open {\\n left: 0 !important;\\n transition: all 0.4s ease;\\n}\\n\\nheader {\\n left: -300px;\\n position: relative;\\n transition: all 0.4s ease;\\n}\\n\\ndiv#toggle1, div#toggle2 {\\n -ms-transform: rotate(-90deg);\\n transform: rotate(-90deg);\\n position: absolute;\\n top: 60px;\\n left: 234px;\\n background: #62778d;\\n padding: 10px;\\n text-align: center;\\n width: 150px;\\n color: #fff;\\n cursor: pointer;\\n border-bottom-left-radius: 6px;\\n border-bottom-right-radius: 6px;\\n box-shadow: -4px 5px 20px -5px #787979;\\n}\\n\\n.menuPane {\\n position: relative;\\n width: 300px;\\n background-color: #fff;\\n border-radius: 6px 0;\\n box-shadow: 0 6px 20px -9px #263238;\\n /*top: 100px;*/\\n}\\n\\n/*https: //codepen.io/StephenScaff/pen/bVbEbJ*/\\n\\n/*https: //codepen.io/Loonz206/pen/gpRmja*/\\n\\n.dt-toolbar-row-GM {\\n display: -ms-flexbox;\\n display: flex;\\n /*margin-right: -5px;\\n margin-left: -5px;\\n margin-bottom: 1rem;*/\\n}\\n\\n.dt-toolbar-col-GM {\\n padding-right: 5px;\\n padding-left: 5px;\\n position: relative;\\n}\\n\\n.dt-toolbar-col-GM .dt-context-menu {\\n width: 170px;\\n display: none;\\n}\\n\\n.dt-toolbar-col-GM.open .dt-context-menu {\\n display: block;\\n}\\n\\n.dt-toolbar-col-GM .dt-list-menu-item.disabled,\\n.dt-toolbar-col-GM .dt-list-menu-item.disabled:hover {\\n color: silver;\\n background-color: transparent;\\n border: 0;\\n box-shadow: 0 0 0;\\n cursor: default;\\n}\\n\\n/*start loader*/\\n\\n#spinner {\\n -webkit-animation: frames 1s infinite linear;\\n animation: frames 1s infinite linear;\\n background: transparent;\\n border: 0.75vw solid #FFF;\\n border-radius: 100%;\\n border-top-color: #DF691A;\\n width: 5vw;\\n height: 5vw;\\n opacity: 0.6;\\n padding: 0;\\n position: absolute;\\n z-index: 999;\\n}\\n\\n@-webkit-keyframes frames {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(359deg);\\n }\\n}\\n\\n@keyframes frames {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(359deg);\\n }\\n}\\n\\n#pause {\\n display: block;\\n background: rgba(0, 0, 0, 0.66) no-repeat 0 0;\\n width: 100%;\\n height: 100%;\\n position: fixed;\\n bottom: 0;\\n left: 0;\\n z-index: 1000;\\n}\\n\\n/*end loader*/\\n\\n.spinner_overlay {\\n position: fixed;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #fff;\\n opacity: 0.5;\\n z-index: 1000;\\n}\\n\\n.spinner {\\n position: absolute;\\n left: 50%;\\n top: 20%;\\n height: 60px;\\n width: 60px;\\n margin: 0px auto;\\n -webkit-animation: rotation 0.6s infinite linear;\\n animation: rotation 0.6s infinite linear;\\n border-left: 6px solid rgba(0, 174, 239, 0.15);\\n border-right: 6px solid rgba(0, 174, 239, 0.15);\\n border-bottom: 6px solid rgba(0, 174, 239, 0.15);\\n border-top: 6px solid rgba(0, 174, 239, 0.8);\\n border-radius: 100%;\\n}\\n\\n/*input[type=\\\"checkbox\\\"]*/\\n\\n.sch-chks {\\n width: 14px;\\n /*Desired width*/\\n height: 14px;\\n /*Desired height*/\\n position: relative;\\n top: 5px;\\n vertical-align: top;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvb3V0cHV0LXJlc3VsdHMvZ29vZ2xlLW1hcC9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvc3JjXFxhcHBcXG91dHB1dC1yZXN1bHRzXFxnb29nbGUtbWFwXFxnb29nbGUtbWFwLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9vdXRwdXQtcmVzdWx0cy9nb29nbGUtbWFwL2dvb2dsZS1tYXAuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSx1QkFBQTtBQ0NGOztBRENBO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0FDRUY7O0FEQ0E7RUFDRSxpQkFBQTtFQUNBLGNBQUE7RUFDQSxhQUFBO0FDRUY7O0FEQ0E7RUFDRSxnREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0FDRUY7O0FEQ0E7RUFDRSxpQkFBQTtBQ0VGOztBRENBO0VBQ0UsWUFBQTtFQUNBLGVBQUE7QUNFRjs7QURDQTtFQUNFLGtEQUFBO0FDRUY7O0FEQ0E7RUFDRSxvQkFBQTtBQ0VGOztBRENBO0VBQ0UsZUFBQTtFQUNBLFlBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLHlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtBQ0VGOztBRENBO0VBQ0UsZ0NBQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7QUNFRjs7QURDQTtFQUNFLHFCQUFBO0VBQ0EsWUFBQTtFQUNBLG9CQUFBO0FDRUY7O0FEQ0E7RUFDRSxlQUFBO0FDRUY7O0FERUEsaUJBQUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7RUFBQTs7QUFpQkEsZUFBQTs7QUFFQTtFQUNFLGNBQUE7RUFBZSxTQUFBO0FDQ2pCOztBREdBLGFBQUE7O0FBQ0E7RUFDRSw0QkFBQTtNQUFBLHdCQUFBO0FDQUY7O0FER0EsbUJBQUE7O0FBQ0E7RUFDRSxZQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0Esb0JBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtBQ0FGOztBREdBLGlCQUFBOztBQUVBLHlCQUFBOztBQUNBO0VBQ0Usa0JBQUE7RUFDQSxlQUFBO0VBQ0EsY0FBQTtBQ0RGOztBRElBLHVCQUFBOztBQUVBO0VBQ0UsWUFBQTtBQ0ZGOztBREtBLCtDQUFBOztBQUNBO0VBQ0Usa0JBQUE7RUFHQSx5QkFBQTtBQ0ZGOztBREtBO0VBQ0UsWUFBQTtFQUNBLGtCQUFBO0VBR0EseUJBQUE7QUNGRjs7QURLQTtFQUNFLDZCQUFBO01BQUEseUJBQUE7RUFDQSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGVBQUE7RUFDQSw4QkFBQTtFQUNBLCtCQUFBO0VBQ0Esc0NBQUE7QUNGRjs7QURLQTtFQUNFLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLHNCQUFBO0VBQ0Esb0JBQUE7RUFDQSxtQ0FBQTtFQUNBLGNBQUE7QUNGRjs7QURLQSw4Q0FBQTs7QUFDQSwwQ0FBQTs7QUFFQTtFQUNFLG9CQUFBO0VBQUEsYUFBQTtFQUNBOzt5QkFBQTtBQ0RGOztBRE1BO0VBQ0Usa0JBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0FDSEY7O0FETUE7RUFDRSxZQUFBO0VBQ0EsYUFBQTtBQ0hGOztBRE1BO0VBQ0UsY0FBQTtBQ0hGOztBRE1BOztFQUVFLGFBQUE7RUFDQSw2QkFBQTtFQUNBLFNBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7QUNIRjs7QURPQSxlQUFBOztBQUNBO0VBQ0UsNENBQUE7RUFDQSxvQ0FBQTtFQUNBLHVCQUFBO0VBQ0EseUJBQUE7RUFDQSxtQkFBQTtFQUNBLHlCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtBQ0pGOztBRE9BO0VBQ0U7SUFFRSx1QkFBQTtFQ0pGO0VET0E7SUFFRSx5QkFBQTtFQ0xGO0FBQ0Y7O0FESkE7RUFDRTtJQUVFLHVCQUFBO0VDSkY7RURPQTtJQUVFLHlCQUFBO0VDTEY7QUFDRjs7QURRQTtFQUNFLGNBQUE7RUFDQSw2Q0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLFNBQUE7RUFDQSxPQUFBO0VBQ0EsYUFBQTtBQ05GOztBRFNBLGFBQUE7O0FBRUE7RUFDRSxlQUFBO0VBQ0EsT0FBQTtFQUNBLE1BQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLHNCQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7QUNQRjs7QURVQTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsZ0RBQUE7RUFHQSx3Q0FBQTtFQUNBLDhDQUFBO0VBQ0EsK0NBQUE7RUFDQSxnREFBQTtFQUNBLDRDQUFBO0VBQ0EsbUJBQUE7QUNQRjs7QURVQSx5QkFBQTs7QUFDQTtFQUNFLFdBQUE7RUFBYSxnQkFBQTtFQUNiLFlBQUE7RUFBYyxpQkFBQTtFQUNkLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLG1CQUFBO0FDTEYiLCJmaWxlIjoic3JjL2FwcC9vdXRwdXQtcmVzdWx0cy9nb29nbGUtbWFwL2dvb2dsZS1tYXAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuY29udGFpbmVyQ29sb3Ige1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG59XHJcbi5jb250YWluZXJ7XHJcbiAgZGlzcGxheTpmbGV4O1xyXG59XHJcblxyXG5hZ20tbWFwIHtcclxuICAvKmhlaWdodDogNjAwcHg7Ki9cclxuICBoZWlnaHQ6IDEyMDBweDtcclxuICB3aWR0aDogMTEwMHB4O1xyXG59XHJcblxyXG4uc2lkZUhlYWRlckxhYmVsIHtcclxuICBmb250OiAxMnB4IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIG1hcmdpbi1sZWZ0OiA1cHg7XHJcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbn1cclxuXHJcbi5sYWJlbE1hcmdpblJpZ2h0IHtcclxuICBtYXJnaW4tcmlnaHQ6IDVweDtcclxufVxyXG5cclxuLnNpZGVuYXZEcm9wRG93biB7XHJcbiAgd2lkdGg6IDE1MHB4O1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxufVxyXG5cclxuLmxhYmVsRm9udCB7XHJcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbn1cclxuXHJcbi5kaXNhYmxlQ29udHJvbCB7XHJcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbn1cclxuXHJcbi5wb3B1cEJ1dHRvbiB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBmb250LXNpemU6IDEwcHg7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmE7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZEOTZENjtcclxuICBwYWRkaW5nLWxlZnQ6IDNweDtcclxuICBwYWRkaW5nLXJpZ2h0OiAzcHg7XHJcbn1cclxuXHJcbi5idG5Ub2dnbGUxIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb3JuZmxvd2VyYmx1ZTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmE7XHJcbn1cclxuXHJcbi5idG5Ub2dnbGUyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hO1xyXG59XHJcblxyXG4uZGlzYWJsZVNlY3Rpb24ge1xyXG4gIGNvbG9yOiBkYXJrZ3JheTtcclxufVxyXG5cclxuXHJcbi8qc3RhcnQgY2hlY2tib3gqL1xyXG4vKi5jaGVja2JveHNpemUgLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXIge1xyXG4gIHdpZHRoOiAxN3B4O1xyXG4gIGhlaWdodDogMTdweDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtY2hlY2tib3ggLm1hdC1jaGVja2JveC1mcmFtZSB7XHJcbiAgYm9yZGVyLWNvbG9yOiBibGFjaztcclxuICB3aWR0aDogMTdweDtcclxuICBoZWlnaHQ6IDE3cHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLFxyXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMyAhaW1wb3J0YW50O1xyXG4gIHdpZHRoOiAxN3B4O1xyXG4gIGhlaWdodDogMTdweDtcclxufSovXHJcbi8qZW5kIGNoZWNrYm94Ki9cclxuXHJcbi5jaGVja2JveGxhYmVsTWFyZ2luIHtcclxuICBtYXJnaW4tbGVmdDogMDsvKi0xNXB4OyovXHJcbn1cclxuXHJcblxyXG4vKnRvZ2dsZSBkaXYqL1xyXG4udG9nZ2xlSWNvbiB7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xyXG59XHJcblxyXG4vKnN0YXJ0IExlZ2VuZCBjc3MqL1xyXG4uTGFiZWwge1xyXG4gIGNvbG9yOiBCbGFjaztcclxuICBmb250LXNpemU6IDExcHg7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmE7XHJcbiAgaGVpZ2h0OiAxM3B4O1xyXG4gIHBhZGRpbmctbGVmdDogMTBweDtcclxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG4vKmVuZCBMZWdlbmQgY3NzKi9cclxuXHJcbi8qc3RhcnQgTGVnZW5kIHBvcHVwIGNzcyovXHJcbi5sZWdlbmRQb3B1cCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGRpc3BsYXk6IGlubGluZTtcclxuICB6LWluZGV4OiAxMDAwMDtcclxufVxyXG5cclxuLyplbmQgTGVnZW5kIHBvcHVwIGNzcyovXHJcblxyXG5pbnB1dFt0eXBlPXJhZGlvXSB7XHJcbiAgaGVpZ2h0OiAxMnB4O1xyXG59XHJcblxyXG4vKmh0dHBzOiAvL2NvZGVwZW4uaW8vYTdtZWQtaHVzc2llbi9wZW4vUE5ieE5aKi9cclxuLm9wZW4ge1xyXG4gIGxlZnQ6IDAhaW1wb3J0YW50O1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcclxuICAtby10cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XHJcbn1cclxuXHJcbmhlYWRlciB7XHJcbiAgbGVmdDogLTMwMHB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XHJcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcclxuICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xyXG59XHJcblxyXG5kaXYjdG9nZ2xlMSwgZGl2I3RvZ2dsZTIge1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogNjBweDtcclxuICBsZWZ0OiAyMzRweDtcclxuICBiYWNrZ3JvdW5kOiAjNjI3NzhkO1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHdpZHRoOiAxNTBweDtcclxuICBjb2xvcjogI2ZmZjtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNnB4O1xyXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA2cHg7XHJcbiAgYm94LXNoYWRvdzogLTRweCA1cHggMjBweCAtNXB4ICM3ODc5Nzk7XHJcbn1cclxuXHJcbi5tZW51UGFuZSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHdpZHRoOiAzMDBweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gIGJvcmRlci1yYWRpdXM6IDZweCAwO1xyXG4gIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggLTlweCAjMjYzMjM4O1xyXG4gIC8qdG9wOiAxMDBweDsqL1xyXG59XHJcblxyXG4vKmh0dHBzOiAvL2NvZGVwZW4uaW8vU3RlcGhlblNjYWZmL3Blbi9iVmJFYkoqL1xyXG4vKmh0dHBzOiAvL2NvZGVwZW4uaW8vTG9vbnoyMDYvcGVuL2dwUm1qYSovXHJcblxyXG4uZHQtdG9vbGJhci1yb3ctR00ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgLyptYXJnaW4tcmlnaHQ6IC01cHg7XHJcbiAgICBtYXJnaW4tbGVmdDogLTVweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDFyZW07Ki9cclxufVxyXG5cclxuLmR0LXRvb2xiYXItY29sLUdNIHtcclxuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4uZHQtdG9vbGJhci1jb2wtR00gLmR0LWNvbnRleHQtbWVudSB7XHJcbiAgd2lkdGg6IDE3MHB4O1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5kdC10b29sYmFyLWNvbC1HTS5vcGVuIC5kdC1jb250ZXh0LW1lbnUge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4uZHQtdG9vbGJhci1jb2wtR00gLmR0LWxpc3QtbWVudS1pdGVtLmRpc2FibGVkLFxyXG4uZHQtdG9vbGJhci1jb2wtR00gLmR0LWxpc3QtbWVudS1pdGVtLmRpc2FibGVkOmhvdmVyIHtcclxuICBjb2xvcjogc2lsdmVyO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlcjogMDtcclxuICBib3gtc2hhZG93OiAwIDAgMDtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbn1cclxuXHJcblxyXG4vKnN0YXJ0IGxvYWRlciovXHJcbiNzcGlubmVyIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogZnJhbWVzIDFzIGluZmluaXRlIGxpbmVhcjtcclxuICBhbmltYXRpb246IGZyYW1lcyAxcyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyOiAwLjc1dncgc29saWQgI0ZGRjtcclxuICBib3JkZXItcmFkaXVzOiAxMDAlO1xyXG4gIGJvcmRlci10b3AtY29sb3I6ICNERjY5MUE7XHJcbiAgd2lkdGg6IDV2dztcclxuICBoZWlnaHQ6IDV2dztcclxuICBvcGFjaXR5OiAuNjtcclxuICBwYWRkaW5nOiAwO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB6LWluZGV4OiA5OTk7XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgZnJhbWVzIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgfVxyXG5cclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XHJcbiAgfVxyXG59XHJcblxyXG4jcGF1c2Uge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42Nikgbm8tcmVwZWF0IDAgMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHotaW5kZXg6IDEwMDA7XHJcbn1cclxuXHJcbi8qZW5kIGxvYWRlciovXHJcblxyXG4uc3Bpbm5lcl9vdmVybGF5IHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgb3BhY2l0eTogMC41O1xyXG4gIHotaW5kZXg6IDEwMDA7XHJcbn1cclxuXHJcbi5zcGlubmVyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogNTAlO1xyXG4gIHRvcDogMjAlO1xyXG4gIGhlaWdodDogNjBweDtcclxuICB3aWR0aDogNjBweDtcclxuICBtYXJnaW46IDBweCBhdXRvO1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiByb3RhdGlvbiAuNnMgaW5maW5pdGUgbGluZWFyO1xyXG4gIC1tb3otYW5pbWF0aW9uOiByb3RhdGlvbiAuNnMgaW5maW5pdGUgbGluZWFyO1xyXG4gIC1vLWFuaW1hdGlvbjogcm90YXRpb24gLjZzIGluZmluaXRlIGxpbmVhcjtcclxuICBhbmltYXRpb246IHJvdGF0aW9uIC42cyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCByZ2JhKDAsMTc0LDIzOSwuMTUpO1xyXG4gIGJvcmRlci1yaWdodDogNnB4IHNvbGlkIHJnYmEoMCwxNzQsMjM5LC4xNSk7XHJcbiAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkIHJnYmEoMCwxNzQsMjM5LC4xNSk7XHJcbiAgYm9yZGVyLXRvcDogNnB4IHNvbGlkIHJnYmEoMCwxNzQsMjM5LC44KTtcclxuICBib3JkZXItcmFkaXVzOiAxMDAlO1xyXG59XHJcblxyXG4vKmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSovXHJcbi5zY2gtY2hrcyB7XHJcbiAgd2lkdGg6IDE0cHg7IC8qRGVzaXJlZCB3aWR0aCovXHJcbiAgaGVpZ2h0OiAxNHB4OyAvKkRlc2lyZWQgaGVpZ2h0Ki9cclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgdG9wOiA1cHg7XHJcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4iLCIuY29udGFpbmVyQ29sb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cblxuLmNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbmFnbS1tYXAge1xuICAvKmhlaWdodDogNjAwcHg7Ki9cbiAgaGVpZ2h0OiAxMjAwcHg7XG4gIHdpZHRoOiAxMTAwcHg7XG59XG5cbi5zaWRlSGVhZGVyTGFiZWwge1xuICBmb250OiAxMnB4IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi5sYWJlbE1hcmdpblJpZ2h0IHtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi5zaWRlbmF2RHJvcERvd24ge1xuICB3aWR0aDogMTUwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmxhYmVsRm9udCB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xufVxuXG4uZGlzYWJsZUNvbnRyb2wge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnBvcHVwQnV0dG9uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNkQ5NkQ2O1xuICBwYWRkaW5nLWxlZnQ6IDNweDtcbiAgcGFkZGluZy1yaWdodDogM3B4O1xufVxuXG4uYnRuVG9nZ2xlMSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvcm5mbG93ZXJibHVlO1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hO1xufVxuXG4uYnRuVG9nZ2xlMiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJlZDtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LWZhbWlseTogVmVyZGFuYTtcbn1cblxuLmRpc2FibGVTZWN0aW9uIHtcbiAgY29sb3I6IGRhcmtncmF5O1xufVxuXG4vKnN0YXJ0IGNoZWNrYm94Ki9cbi8qLmNoZWNrYm94c2l6ZSAuZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxN3B4O1xuICBoZWlnaHQ6IDE3cHg7XG59XG5cbjo6bmctZGVlcCAubWF0LWNoZWNrYm94IC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6IGJsYWNrO1xuICB3aWR0aDogMTdweDtcbiAgaGVpZ2h0OiAxN3B4O1xufVxuXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCxcbjo6bmctZGVlcCAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMyAhaW1wb3J0YW50O1xuICB3aWR0aDogMTdweDtcbiAgaGVpZ2h0OiAxN3B4O1xufSovXG4vKmVuZCBjaGVja2JveCovXG4uY2hlY2tib3hsYWJlbE1hcmdpbiB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICAvKi0xNXB4OyovXG59XG5cbi8qdG9nZ2xlIGRpdiovXG4udG9nZ2xlSWNvbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn1cblxuLypzdGFydCBMZWdlbmQgY3NzKi9cbi5MYWJlbCB7XG4gIGNvbG9yOiBCbGFjaztcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmE7XG4gIGhlaWdodDogMTNweDtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxuXG4vKmVuZCBMZWdlbmQgY3NzKi9cbi8qc3RhcnQgTGVnZW5kIHBvcHVwIGNzcyovXG4ubGVnZW5kUG9wdXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgei1pbmRleDogMTAwMDA7XG59XG5cbi8qZW5kIExlZ2VuZCBwb3B1cCBjc3MqL1xuaW5wdXRbdHlwZT1yYWRpb10ge1xuICBoZWlnaHQ6IDEycHg7XG59XG5cbi8qaHR0cHM6IC8vY29kZXBlbi5pby9hN21lZC1odXNzaWVuL3Blbi9QTmJ4TloqL1xuLm9wZW4ge1xuICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcbn1cblxuaGVhZGVyIHtcbiAgbGVmdDogLTMwMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcbn1cblxuZGl2I3RvZ2dsZTEsIGRpdiN0b2dnbGUyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDYwcHg7XG4gIGxlZnQ6IDIzNHB4O1xuICBiYWNrZ3JvdW5kOiAjNjI3NzhkO1xuICBwYWRkaW5nOiAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxNTBweDtcbiAgY29sb3I6ICNmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNnB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xuICBib3gtc2hhZG93OiAtNHB4IDVweCAyMHB4IC01cHggIzc4Nzk3OTtcbn1cblxuLm1lbnVQYW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMzAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDZweCAwO1xuICBib3gtc2hhZG93OiAwIDZweCAyMHB4IC05cHggIzI2MzIzODtcbiAgLyp0b3A6IDEwMHB4OyovXG59XG5cbi8qaHR0cHM6IC8vY29kZXBlbi5pby9TdGVwaGVuU2NhZmYvcGVuL2JWYkViSiovXG4vKmh0dHBzOiAvL2NvZGVwZW4uaW8vTG9vbnoyMDYvcGVuL2dwUm1qYSovXG4uZHQtdG9vbGJhci1yb3ctR00ge1xuICBkaXNwbGF5OiBmbGV4O1xuICAvKm1hcmdpbi1yaWdodDogLTVweDtcbiAgICBtYXJnaW4tbGVmdDogLTVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyovXG59XG5cbi5kdC10b29sYmFyLWNvbC1HTSB7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmR0LXRvb2xiYXItY29sLUdNIC5kdC1jb250ZXh0LW1lbnUge1xuICB3aWR0aDogMTcwcHg7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kdC10b29sYmFyLWNvbC1HTS5vcGVuIC5kdC1jb250ZXh0LW1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmR0LXRvb2xiYXItY29sLUdNIC5kdC1saXN0LW1lbnUtaXRlbS5kaXNhYmxlZCxcbi5kdC10b29sYmFyLWNvbC1HTSAuZHQtbGlzdC1tZW51LWl0ZW0uZGlzYWJsZWQ6aG92ZXIge1xuICBjb2xvcjogc2lsdmVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBib3gtc2hhZG93OiAwIDAgMDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKnN0YXJ0IGxvYWRlciovXG4jc3Bpbm5lciB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmcmFtZXMgMXMgaW5maW5pdGUgbGluZWFyO1xuICBhbmltYXRpb246IGZyYW1lcyAxcyBpbmZpbml0ZSBsaW5lYXI7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDAuNzV2dyBzb2xpZCAjRkZGO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBib3JkZXItdG9wLWNvbG9yOiAjREY2OTFBO1xuICB3aWR0aDogNXZ3O1xuICBoZWlnaHQ6IDV2dztcbiAgb3BhY2l0eTogMC42O1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDk5OTtcbn1cblxuQGtleWZyYW1lcyBmcmFtZXMge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcbiAgfVxufVxuI3BhdXNlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42Nikgbm8tcmVwZWF0IDAgMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG59XG5cbi8qZW5kIGxvYWRlciovXG4uc3Bpbm5lcl9vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIG9wYWNpdHk6IDAuNTtcbiAgei1pbmRleDogMTAwMDtcbn1cblxuLnNwaW5uZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiAyMCU7XG4gIGhlaWdodDogNjBweDtcbiAgd2lkdGg6IDYwcHg7XG4gIG1hcmdpbjogMHB4IGF1dG87XG4gIC13ZWJraXQtYW5pbWF0aW9uOiByb3RhdGlvbiAwLjZzIGluZmluaXRlIGxpbmVhcjtcbiAgLW1vei1hbmltYXRpb246IHJvdGF0aW9uIDAuNnMgaW5maW5pdGUgbGluZWFyO1xuICAtby1hbmltYXRpb246IHJvdGF0aW9uIDAuNnMgaW5maW5pdGUgbGluZWFyO1xuICBhbmltYXRpb246IHJvdGF0aW9uIDAuNnMgaW5maW5pdGUgbGluZWFyO1xuICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHJnYmEoMCwgMTc0LCAyMzksIDAuMTUpO1xuICBib3JkZXItcmlnaHQ6IDZweCBzb2xpZCByZ2JhKDAsIDE3NCwgMjM5LCAwLjE1KTtcbiAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkIHJnYmEoMCwgMTc0LCAyMzksIDAuMTUpO1xuICBib3JkZXItdG9wOiA2cHggc29saWQgcmdiYSgwLCAxNzQsIDIzOSwgMC44KTtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbn1cblxuLyppbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0qL1xuLnNjaC1jaGtzIHtcbiAgd2lkdGg6IDE0cHg7XG4gIC8qRGVzaXJlZCB3aWR0aCovXG4gIGhlaWdodDogMTRweDtcbiAgLypEZXNpcmVkIGhlaWdodCovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiA1cHg7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59Il19 */\"","///// \r\nimport { Component, OnInit, Output, EventEmitter, ViewChild, Sanitizer, SimpleChanges, OnChanges, ElementRef, ChangeDetectionStrategy, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { request } from 'http';\r\n//import { RequestMetadata, PagedResult } from '../../../../lib/ng-crud-table';\r\nimport { MatTableDataSource, fadeInContent } from '@angular/material';\r\nimport { DataSource } from '@angular/cdk/table';\r\nimport { MatDialog, MatDialogConfig, PageEvent, MatPaginator } from '@angular/material';\r\nimport { Row } from 'lib/ng-data-table';\r\nimport { BrowserModule, DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { sanitizeIdentifier } from '@angular/compiler';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\nimport { lastDateFunc, formatDate, formatDBTZDateToLocalDate } from 'lib/common/utils';\r\nimport { VquadbtfxoComponent } from 'src/app/statistics/network-status/vquadbtfxo/vquadbtfxo.component';\r\nimport { GooglemapstatuspopupComponent } from 'src/app/output-results/googlemapstatuspopup/googlemapstatuspopup.component';\r\nimport { AbsMapDisplayOptions } from 'src/app/shared/models/Configuration/GoogleMap/MapConfig';\r\nimport { AgmMap, MapsAPILoader, LatLngBounds } from '@agm/core';\r\nimport { GooglemaplegendpopupComponent } from 'src/app/output-results/googlemaplegendpopup/googlemaplegendpopup.component';\r\nimport { BasicComponent } from 'src/app/shared/basic/basic.component';\r\nimport { ResultsService } from 'src/app/shared/services/master/results/results.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { rsltTypeInTitle } from 'src/app/shared/functions/title';\r\nimport { Cluster } from 'cluster';\r\nimport { map } from 'rxjs/operators';\r\nimport { DemoService } from 'src/app/shared/demo.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { DataFilter } from 'lib/ng-data-table/base';\r\nimport { debug } from 'util';\r\nimport { stream } from 'exceljs';\r\n//import { OverlappingMarkerSpiderfier } from 'ts-overlapping-marker-spiderfier';\r\ndeclare var google: any;\r\n//https://stackoverflow.com/questions/42173662/typescript-error-cannot-find-name-google-in-ionic2-when-using-googlemaps-javas\r\n\r\n//https://stackoverflow.com/questions/63349140/getting-error-while-build-angular-google-mapsagm - 1.1.0v\r\n\r\n//https://github.com/DefinitelyTyped/DefinitelyTyped/issues/48574\r\n//for agm/core - maps above this version is - imp\r\n\r\n\r\n@Component({\r\n selector: 'app-google-map',\r\n templateUrl: './google-map.component.html',\r\n styleUrls: ['./google-map.component.scss', '../../graphics/analysis/analysis.component.scss'],\r\n //changeDetection: ChangeDetectionStrategy.OnPush,\r\n //encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class GoogleMapComponent implements OnInit, OnDestroy {\r\n clearAllFiltersAction: boolean = true;\r\n actionsMessage: string = 'Actions';\r\n modifyFiltersMessage: string = 'Modify filters';\r\n clearFiltersMessage: string = 'Clear all filters';\r\n hasFilters: boolean = false;\r\n\r\n rsltType: string = \"GoogleMap\";\r\n\r\n rsltTypeTS = '-1';\r\n TSSelected: number = 1;\r\n\r\n AutoRefreshInfo: any;\r\n isFilters: boolean = true;\r\n interval;\r\n\r\n title: string = \"Google Maps\";\r\n staticScreen = false; //true;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n isLoading = false;\r\n\r\n baseUrl: string;\r\n url: string;\r\n //lat = 42.536652; // lat: 37.422918, lng: -122.0854212\r\n //lng = -77.216;\r\n //a GPS Below Algeria(-13.410994,17.050781) as default center \r\n lat = 40.4230;//12.9264;// india\r\n lng = -98.7372;//77.6012;//india\r\n\r\n ///for polygon\r\n polyLat: number;\r\n polyLng: number;\r\n lat1: number = 14.4673;\r\n lng1: number = 78.8242;\r\n lat2: number = 16.5062;\r\n lng2: number = 80.6480;\r\n //iurl: string = \"https://chart.googleapis.com/chart?chst=d_bubble_texts_big&chld=bb|000000|FFFFFF|Bubb\";\r\n iurl: string = \"./assets/images/Marks/GreenMark.png\";\r\n iurl_b: string = \"https://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=|000000\";\r\n // google maps zoom level\r\n zoom: number = 4;//4; \r\n clulster_max_zoom = 12;\r\n minClusterSize = 5;\r\n\r\n usePredefinedConfig: string = \"OFF\";\r\n showAnalysis = true;\r\n showNetTest = true;\r\n showMobileInfo = true;\r\n showErrorEvents = true;\r\n showTypes = true;\r\n showResults = true;\r\n count: number = 0;\r\n infoWindowbody: any;\r\n previous: any;\r\n Loading: string;\r\n DrawRoute: string = \"ON\";\r\n DrawLine: string = \"1\";\r\n rsltTypeEach: any;\r\n bluetoothText: string;\r\n isBlutoothButton: boolean = false;\r\n mapRegionSelected: string = \"0\";\r\n btnRegioncolor: string = \"btnToggle1\";\r\n toggleMapRegion: boolean = false;\r\n infoRegionbody: any;\r\n analysisEnabled: string = \"ON\";\r\n netTestEnabled: string = \"ON\";\r\n mobileInfoEnabled: string = \"ON\";\r\n errorEventsEnabled: string = \"ON\";\r\n mapConfigID: number = 0;\r\n divPinLegends: any;\r\n showPopupLegend: boolean = false;\r\n currentPinLocation: any;\r\n\r\n thresholdLegends: string = \"\";\r\n thresholdLegendsCount: string = \"\";\r\n callIDLegends: string = \"\";//susheel\r\n devIDLegends: string = \"\";\r\n callEventsLegends: string = \"\";\r\n\r\n disableSection: string = \"\";\r\n showDrawRouteDirection: boolean = false;\r\n map: any;\r\n origin: any;\r\n destination: any;\r\n commonFilterDates: string;\r\n resultTypeID: string;\r\n leftPanel: boolean = false;\r\n limitPinCount: boolean = true;\r\n totalNetTestPassCount: number = 0;\r\n totalNetTestFailCount: number = 0;\r\n totalMobInfoPassCount: number = 0;\r\n totalMobInfoFailCount: number = 0;\r\n\r\n mapData = [];\r\n latlngValMainAgain = [];\r\n LatLongOriginal = [];\r\n mapFilterConfigList = [];\r\n infowindowArray = [];\r\n bluetoothData = [];\r\n mapRegionList = [];\r\n tempMarker = [];\r\n DisplayResultList1 = [];\r\n pinLegends = [];\r\n dynamicPinLegends = [];\r\n dynamicLegendPopupData = [];\r\n legendPopupData = [];\r\n appliedLegendThreshold = [];\r\n routeLatLng: any[] = [];\r\n PredefinedConfigOff = [];\r\n markerCollection: marker[];\r\n\r\n options = {\r\n suppressMarkers: true,\r\n polylineOptions: { strokeColor: 'red', strokeWeight: 2, strokeOpacity: 1.0, geodesic: true }\r\n };\r\n\r\n //// \"../assets/images/Map/ClusterMarker_Circle.png\"\r\n //,\r\n //hide: [\r\n // {\r\n // featureType: \"poi\",//poi.business\r\n // stylers: [{ visibility: \"off\" }],\r\n // },\r\n // {\r\n // featureType: \"transit\",\r\n // elementType: \"labels.icon\",\r\n // stylers: [{ visibility: \"off\" }],\r\n // },\r\n //],\r\n\r\n mapOptions = {\r\n styles: [\r\n {\r\n url: \"./assets/images/Map/ClusterMarker_Circle.png\",\r\n width: 53,\r\n height: 53,\r\n textColor: '#fff',\r\n }\r\n ],\r\n };\r\n\r\n ///// to hide default googlemap pin marker like restaurant,pertol bunks etc. Transit is like public transport icon like train bus as of now it is visible \r\n public customMapStyles = [\r\n {\r\n featureType: \"poi\",//poi.business\r\n stylers: [{ visibility: \"off\" }],\r\n },\r\n {\r\n featureType: \"transit\",\r\n elementType: \"labels.icon\",\r\n stylers: [{ visibility: \"on\" }],\r\n },\r\n ];\r\n\r\n pinMarker: marker;\r\n mapDisplayOptions = new AbsMapDisplayOptions();\r\n preDefinedConfigParam = new PredefinedConfig();\r\n //oms;//susheel\r\n\r\n dbTz = -500;\r\n dbAndBrHrs = -500;\r\n MainFilterID = 0;\r\n MainFilterTZ = 0;\r\n private subscriptions: Subscription[] = [];\r\n genArrDel = [];\r\n genArr = [];\r\n private dataFilter: DataFilter;\r\n filterEventIDSelected = false;\r\n delColSelected = false;\r\n constructor(private _Activatedroute: ActivatedRoute, private _router: Router, private http: HttpClient, private dialog: MatDialog, private sanitizer: DomSanitizer, private elRef: ElementRef, private mapsAPILoader: MapsAPILoader, private service: DemoService, private commonFilterService: CommonFilterService, private resultsService: ResultsService, private cd: ChangeDetectorRef) {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n this.dataFilter = new DataFilter();\r\n\r\n this.commonFilterService.TSType.subscribe(res => { this.TSSelected = res; });//TsType\r\n\r\n //this.commonFilterService.DB_TZ.subscribe(res => {\r\n // this.dbTz = res;\r\n //});\r\n //if (this.dbTz == -500) {//query var col table\r\n // this.service.getDBTimezoneDiff('VquadData').then(res => {\r\n // this.commonFilterService.setDBTZFromVarCol(res);\r\n // this.dbTz = res;\r\n // });\r\n //}\r\n this.commonFilterService.mainFilterID.subscribe(res => {\r\n this.MainFilterID = res;\r\n\r\n this.commonFilterService.mfTZ.subscribe(res => {\r\n this.MainFilterTZ = res;\r\n });\r\n });\r\n\r\n this.commonFilterService.setNonFiltersScreen(this.staticScreen);//false\r\n\r\n this.Loading = \"\";\r\n\r\n _Activatedroute.params.subscribe(val => {\r\n this.rsltType = _Activatedroute.snapshot.url[1].path;\r\n this.parentEvent();\r\n });\r\n\r\n const _broadSublisten = this.commonFilterService.listen.subscribe(res => {\r\n\r\n //// to set default value for all checkboxes of display option sections\r\n this.ResetDispalyOptionsList();\r\n //alert(1);\r\n if (res === 'onlyGMapInit' && !this.filterEventIDSelected) {\r\n if (this.usePredefinedConfig == \"OFF\")\r\n this.GetMapConfigData();\r\n else\r\n this.GetMapConfigByID(this.selMapConfig);\r\n }\r\n\r\n if (this.filterEventIDSelected)\r\n this.filterEventIDSelected = false;\r\n });\r\n this.subscriptions.push(_broadSublisten);\r\n\r\n this.commonFilterService.isFilters$.subscribe(res => {\r\n this.isFilters = res;\r\n });\r\n\r\n //Do Refresh\r\n const _broadSubRefresh = this.commonFilterService.componentMethodCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n\r\n //console.log('refreshed') \r\n //debugger;\r\n //alert(2);\r\n if (this.usePredefinedConfig == \"OFF\")\r\n this.GetMapConfigData();\r\n else\r\n this.GetMapConfigByID(this.selMapConfig);\r\n }\r\n );\r\n this.subscriptions.push(_broadSubRefresh);\r\n\r\n const _broadSubAllGeneralFilter = this.commonFilterService.AllGeneralFilter.subscribe(res => {\r\n this.AllGeneralFilter = res;\r\n //alert(3);\r\n if (!this.delColSelected && !this.clearAllFiltersBool && this.AllGeneralFilter.length > 0)\r\n this.GetMapConfigData();\r\n\r\n //reset here\r\n if (this.delColSelected)\r\n this.delColSelected = false;\r\n if (this.clearAllFiltersBool)\r\n this.clearAllFiltersBool = false;\r\n\r\n this.delFilterColName = '';//reset if delete or clear all filters\r\n });\r\n this.subscriptions.push(_broadSubAllGeneralFilter);\r\n\r\n const _broadSubDeleteFilter = this.commonFilterService.DeleteFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n if (res !== '') {//IMP IMP\r\n //alert(4);\r\n this.delFilterColName = res;\r\n this.GetMapConfigData();\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubDeleteFilter);\r\n\r\n //const _broadSubGeneralDFFilter = this.commonFilterService.GeneralFilterDF.subscribe(res => {\r\n // //console.log('GeneralDFFilter')\r\n // this.filters = res;\r\n //});\r\n //this.subscriptions.push(_broadSubGeneralDFFilter);\r\n const _broadSubGeneralFilter = this.commonFilterService.GeneralFilter.subscribe(res => {\r\n //console.log('GeneralFilter')\r\n //console.log(res) \r\n debugger;\r\n this.filters = res;\r\n });\r\n this.subscriptions.push(_broadSubGeneralFilter);\r\n\r\n const _broadSubEventIDFilter = this.commonFilterService.GeneralEventIDFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log(res)\r\n //console.log('filtersWithEventID')\r\n this.filterEventIDSelected = true;\r\n this.filtersWithEventID = res;\r\n //alert(5);\r\n if (!this.delColSelected && !this.clearAllFiltersBool && (typeof this.filtersWithEventID == 'object' && Object.keys(this.filtersWithEventID).length > 0))\r\n this.GetMapConfigData();\r\n });\r\n this.subscriptions.push(_broadSubEventIDFilter);\r\n\r\n //Do Auto-refresh - start/stop\r\n const _broadSubAutoRefresh = this.commonFilterService.componentMethodWithArgCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //debugger;\r\n\r\n this.AutoRefreshInfo = res;\r\n\r\n if (this.AutoRefreshInfo.AutoRefStop) {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n }\r\n }\r\n else {\r\n this.interval = setInterval(() => {\r\n //console.log(this.AutoRefreshInfo.AutoRefStop);\r\n //alert(6);\r\n this.GetMapConfigData();\r\n }, this.AutoRefreshInfo.AutoRefSelected);\r\n }\r\n\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAutoRefresh);\r\n\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.paths = [];\r\n this.GetAllMapRegion();\r\n this.GetPredefinedConfig();\r\n // this.GetMapConfigByID(42);\r\n // this.GetAllMapRegion();\r\n //this.DynamicHtmlEvent();\r\n //this.SetPinLegnd();\r\n\r\n //https://github.com/SebastianM/angular-google-maps/issues/1378\r\n this.cd.detectChanges();\r\n }\r\n\r\n ResetDispalyOptionsList() {\r\n this.DisplayResultList.forEach(item => item.Checked = true);\r\n this.AnalysisList.forEach(item => item.Checked = true);\r\n this.NetTestList.forEach(item => item.Checked = true);\r\n this.MobileInfoList.forEach(item => item.Checked = true);\r\n this.ErrorEventList.forEach(item => item.Checked = true);\r\n this.TypeList.forEach(item => item.Checked = false);\r\n this.ResultList.forEach(item => item.Checked = false);\r\n }\r\n\r\n modifyFilter() {\r\n //this._router.navigate([{ outlets: { filterPopup: ['filters'], configPopup: null } }]);\r\n let selectedMainFilterCrieriaName = 'null';\r\n this.commonFilterService.mainFilter_CriteriaName.subscribe(res => selectedMainFilterCrieriaName = res);\r\n this._router.navigate([{ outlets: { filterPopup: ['filters', selectedMainFilterCrieriaName], configPopup: null } }]);\r\n\r\n /////// when calling modify search set mainfilter to initial values\r\n //this.commonFilterService.SetMainFilter(0);// set selected mainfilter id\r\n //this.commonFilterService.setMFCustDT(\"\");\r\n //this.commonFilterService.setMFTZON(0);\r\n ////this.commonFilterService.basicRefresh();\r\n }\r\n\r\n LimitChangeEvent() {\r\n if (this.usePredefinedConfig == \"OFF\")\r\n this.GetMapConfigData();\r\n else\r\n this.GetMapConfigByID(this.selMapConfig);\r\n }\r\n\r\n clearAllFiltersBool = false;\r\n clearAllFilters() {\r\n this.delFilterColName = 'clearAllFilters';\r\n //this.hasFilters = false;\r\n this.GetMapConfigData();\r\n //this.table.sorter.sortMeta = [];\r\n //this.table.events.onSort();//IMP- to reset sorting sel cols to none\r\n\r\n //if (this.table.dataFilter.hasFilters()) {\r\n // this.table.dataFilter.clear();\r\n // //console.log(this.table.dataFilter.hasFilters())\r\n // this.table.events.onFilter();\r\n // //this.table.events.onFilterClear();\r\n // this.clearFilters.emit();\r\n //}\r\n }\r\n\r\n ngOnDestroy() {\r\n // Clear out the old markers.\r\n this.markers = [];\r\n this.markerCollection = [];\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n parentEvent() {\r\n //debugger;\r\n this.title = rsltTypeInTitle(this.rsltType);\r\n this.childTitleEvent.emit(this.title);\r\n }\r\n\r\n status1: boolean = false;\r\n status2: boolean = false;\r\n togglePanes(type) {\r\n this.leftPanel = true;\r\n if (type == 1) {\r\n this.status1 = !this.status1;\r\n this.status2 = false;\r\n }\r\n else if (type == 2) {\r\n this.status2 = !this.status2;\r\n this.status1 = false;\r\n }\r\n }\r\n\r\n //legendList: any\r\n SetPinLegnd(legendList: any) {\r\n this.dynamicPinLegends = [];\r\n let legList = legendList.split('#');\r\n //console.log(legendList)\r\n for (let i = 1; i < legList.length; i++) {\r\n let item = legList[i].split('@');\r\n //console.log(item[5])\r\n this.dynamicPinLegends.push(\r\n {\r\n queryCount: item[0].split('-')[1],\r\n imgSrc: item[1].split('-')[1],\r\n resultType: item[2].split('-')[1],\r\n thresholdType: item[3].indexOf('- -') != -1 ? item[3].split('- -')[1].split(',')[0].trim() : item[3].split('-')[1].split(',')[0].trim(),//susheel - pass fail test-fail\r\n pinType: item[4].split('-')[1],\r\n //condVal: item[5].indexOf(' -') != -1 ? item[5].split('-')[1] + '-' + item[5].split('-')[2] : item[5].split('-')[1],//susheel - check if filter value is -ve\r\n condVal: item[5].replace(/::true/gi, '').replace(/::false/gi, '').replace(/condVal-/gi, ''),//susheel\r\n noOfRows: item[6].split('-')[1]\r\n }\r\n );\r\n }\r\n //console.log(this.dynamicPinLegends)\r\n\r\n //this.dynamicPinLegends = [\r\n // {\r\n // queryCount:'100',\r\n // imgSrc:'https://chart.googleapis.com/chart?chst=d_map_xpin_letter&chld=pin||00FF00|FFFFFF',\r\n // resultType: 'LegAll',\r\n // thresholdType : 'PASS',\r\n // pinType: 'Threshold Type',\r\n // condVal: 'Battery Level() >= 90 < font style = color: green > AND < /font>
    RSSI(dBm) <= 100',\r\n // noOfRows:'0'\r\n // }\r\n //];\r\n }\r\n\r\n\r\n DynamicHtmlEvent() {\r\n //var body = \"\";\r\n //this.test = this.sanitizer.bypassSecurityTrustHtml(body);\r\n }\r\n\r\n ngAfterViewInit() {\r\n //debugger;\r\n\r\n //var el = document.getElementById(\"img12\");\r\n //el.onclick = this.ShowMapLegendWin;\r\n\r\n //this.elRef.nativeElement.querySelector('img').addEventListner('click', this.ShowMapLegendWin.bind(this));\r\n //this.elRef.nativeElement.querySelector('button').addEventListner('click', this.ShowMapLegendWin.bind(this));\r\n // setTimeout(() => { this.map.triggerResize(); }, 500)\r\n\r\n }\r\n\r\n ///private event: MouseEvent;\r\n\r\n // initial center position for the map///////////////////////////////// start Pin Marker\r\n clickedMarker(infowindow, index: number) {\r\n debugger;\r\n this.resultTypeID = \"\";\r\n this.isLoading = true;\r\n try {\r\n //this.resultTypeID = this.infowindowArray[index].split('@')[0];\r\n //this.previous = null;\r\n //console.log(this.previous)\r\n\r\n ///// close previous window\r\n //index = index + 1; ///elumalai\r\n if (this.previous) {\r\n //console.log(this.previous[\"isOpen\"])\r\n if (this.previous[\"isOpen\"] == true)\r\n this.previous.close();\r\n }\r\n this.previous = infowindow;\r\n\r\n //console.log(index);//susheel\r\n //if (index != 11) {\r\n if (this.bluetoothData[index].indexOf('IGNORETS-VQUAD') > -1) {\r\n //console.log(this.bluetoothData[index])//susheel\r\n this.bluetoothText = this.bluetoothData[index].split('$')[1];//this.bluetoothData[index].split('(')[2].split(')')[0];\r\n this.isBlutoothButton = true;\r\n }\r\n else\r\n this.isBlutoothButton = false;\r\n\r\n let latlng = {\r\n lat: infowindow.hostMarker.latitude,\r\n lng: infowindow.hostMarker.longitude\r\n }\r\n\r\n this.resultTypeID = this.infowindowArray[index].split('@')[0];\r\n\r\n this.geocode(latlng).then(place => {\r\n this.currentPinLocation = place.formatted_address;\r\n let pinInfo = this.infowindowArray[index].split('@')[1].replace('Loading...', this.currentPinLocation)\r\n this.infoWindowbody = this.sanitizer.bypassSecurityTrustHtml(pinInfo);\r\n this.previous.open();\r\n this.previous[\"isOpen\"] = true;//susheel\r\n\r\n this.isLoading = false;\r\n\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n });\r\n\r\n //}\r\n //else {\r\n\r\n // this.infoWindowbody = this.sanitizer.bypassSecurityTrustHtml(\"fsf\");\r\n //}\r\n //console.log(this.infowindowArray[index]);\r\n }\r\n catch (ex) {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n //mapClicked($event: MouseEvent) {\r\n // alert();\r\n //}\r\n\r\n\r\n // //markerDragEnd(m: marker, $event: MouseEvent) \r\n markerDragEnd() {\r\n //alert(1);\r\n console.log('dragEnd');\r\n }\r\n\r\n markers: marker[] = [\r\n {\r\n lat: this.lat.toString(),\r\n lng: this.lng.toString(),\r\n //lat: this.lat,\r\n //lng: this.lng,\r\n label: '', //'A',\r\n draggable: true,\r\n iconurl: '',// this.iurl,\r\n widthImg: 0,\r\n heightImg: 0,\r\n resultType: '',\r\n popUpRsltType: '',\r\n itemID: ''\r\n },\r\n\r\n ]\r\n\r\n\r\n ///////to get address based on lat n lng\r\n geocode(latlng: any): Promise {\r\n const geocoder = new google.maps.Geocoder();\r\n return new Promise((resolve, reject) => {\r\n geocoder.geocode(\r\n {\r\n 'location': latlng\r\n },\r\n (results, status) => {\r\n if (status === google.maps.GeocoderStatus.OK) {\r\n resolve(results[0]);\r\n } else {\r\n reject(new Error(status));\r\n }\r\n }\r\n );\r\n });\r\n }\r\n\r\n\r\n //*********** Marker Cluster\r\n zoomChanged(event: any) {\r\n \r\n try {\r\n this.zoom = event;\r\n //alert('zoom');\r\n\r\n //this.isLoading = true;\r\n debugger;\r\n if (this.markers.length > 0) {\r\n this.markerCollection = this.markers;\r\n this.markers = [];\r\n }\r\n }\r\n catch (ex) {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n OnTilesLoaded() {\r\n try {\r\n this.isLoading = false;\r\n debugger;\r\n if (this.markers.length <= 0)\r\n this.markers = this.markerCollection;\r\n }\r\n catch (ex) {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n dragEndMap() {\r\n //console.log(event);\r\n debugger;\r\n try {\r\n //if (!this.leftPanel) {\r\n\r\n \r\n // this.isLoading = true;\r\n\r\n\r\n // setTimeout(() => { this.isLoading = false; }, 15000);\r\n //}\r\n //else\r\n // this.leftPanel = false;\r\n }\r\n catch (ex) {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n onBoundChanged() {\r\n //console.log(event);\r\n debugger;\r\n try {\r\n //this.isLoading = true;\r\n //debugger;\r\n //if (this.markers != undefined && this.markers.length > 0) {\r\n // this.markerCollection = this.markers;\r\n // this.markers = [];\r\n //}\r\n }\r\n catch (ex) {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n CalCluster() {\r\n //console.log(this.markers);\r\n }\r\n //***********\r\n\r\n\r\n /////////////////////////////////// End Pin Marker\r\n\r\n /////////////// start Polygon\r\n\r\n paths = [\r\n [\r\n { lat: this.lat, lng: this.lng },\r\n { lat: this.lat, lng: this.lng + 0.1 },\r\n { lat: this.lat + 0.1, lng: this.lng + 0.1 },\r\n { lat: this.lat + 0.1, lng: this.lng },\r\n { lat: this.lat, lng: this.lng },\r\n ], [\r\n { lat: this.lat1, lng: this.lng1 },\r\n { lat: this.lat1, lng: this.lng1 + 0.1 },\r\n { lat: this.lat1 + 0.1, lng: this.lng1 + 0.1 },\r\n { lat: this.lat1 + 0.1, lng: this.lng1 },\r\n { lat: this.lat1, lng: this.lng1 },\r\n ], [\r\n { lat: this.lat2, lng: this.lng2 },\r\n { lat: this.lat2, lng: this.lng2 + 0.1 },\r\n { lat: this.lat2 + 0.1, lng: this.lng2 + 0.1 },\r\n { lat: this.lat2 + 0.1, lng: this.lng2 },\r\n { lat: this.lat2, lng: this.lng2 },\r\n ]\r\n ];\r\n\r\n ToggleMapRegion() {\r\n if (!this.toggleMapRegion) {\r\n this.btnRegioncolor = \"btnToggle2\";\r\n this.tempMarker = this.markers;\r\n this.markers = [];\r\n }\r\n else {\r\n this.btnRegioncolor = \"btnToggle1\";\r\n this.markers = this.tempMarker;\r\n this.tempMarker = [];\r\n }\r\n this.toggleMapRegion = !this.toggleMapRegion;\r\n\r\n }\r\n\r\n onMouseOver($event, infoWindow, path) {\r\n if (this.previous) {\r\n this.previous.close();\r\n }\r\n this.previous = infoWindow;\r\n // alert($event.latLng.lat());\r\n //console.log($event.coords.lat)//-susheel\r\n this.polyLat = $event.coords.lat;\r\n this.polyLng = $event.coords.lng;\r\n this.infoRegionbody = path.label;\r\n infoWindow.open();\r\n }\r\n\r\n onMouseOut($event, infoWindow) {\r\n //infoWindow.close();\r\n }\r\n\r\n GetAllMapRegion() {\r\n\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapRegion';\r\n\r\n this.GetMapConfigData_Service().subscribe((res: any) => {\r\n //console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n\r\n this.mapRegionList = rows;\r\n //this.GetMapConfigData();\r\n });\r\n }\r\n\r\n GetMapRegionDetail(criteriaName) {\r\n\r\n if (criteriaName == \"0\") {\r\n this.paths = [];\r\n }\r\n\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapRegion?criteriaName=' + criteriaName;\r\n\r\n this.GetMapConfigData_Service().subscribe((res: any) => {\r\n //console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n\r\n this.BindMapRegion(rows);\r\n });\r\n }\r\n\r\n BindMapRegion(mapRegion) {\r\n //debugger;\r\n this.paths = [];\r\n if (mapRegion.length > 0) {\r\n // if ($(hiddenArrayRegs[ha] + txtId).val().length > 0) {//hidden field of dataquery.aspx page\r\n var province = \";\";\r\n for (let h = 0; h < mapRegion.split('()').length - 1; h++) {\r\n var splitEachReg = ((mapRegion.split('()'))[h].split('~'))[0].split(';');\r\n var chosenColorLoad = \"#\" + ((mapRegion.split('()'))[h].split('~'))[1];\r\n var polyLabel = ((mapRegion.split('()'))[h].split('~'))[2];\r\n var regionArr = [];\r\n for (let i = 0; i <= splitEachReg.length - 2; i++) {\r\n\r\n if ((splitEachReg[i].split('^'))[1] != 3) {//place, Degrees or co-ordinates\r\n var Lat = parseFloat(((splitEachReg[i].split('^'))[0].split(','))[0]);\r\n var Lng = parseFloat(((splitEachReg[i].split('^'))[0].split(','))[1]);\r\n\r\n //var latLng = new google.maps.LatLng(Lat, Lng);//parseFloat(\r\n regionArr.push({ lat: Lat, lng: Lng, label: polyLabel, polyColor: chosenColorLoad });\r\n\r\n }\r\n else {//Province\r\n province += ((splitEachReg[i].split('^'))[0].split(','))[1] + \"@\" + polyLabel + \"@\" + chosenColorLoad + \";\";\r\n }\r\n }\r\n this.paths.push(regionArr);\r\n //if (regionArr.length > 0) {\r\n // if (splitEachReg.length >= 4) {\r\n // var flightPath = makePolygon(regionArr, chosenColorLoad, polyLabel);\r\n // arrPolys.push(flightPath);\r\n // }\r\n // else\r\n // drawCircle(regionArr, map, chosenColorLoad, polyLabel);\r\n //}\r\n }\r\n // }\r\n }\r\n }\r\n\r\n /////////////// end Polygon\r\n\r\n /// start Toggle Div\r\n DivToggle(controlName) {\r\n\r\n switch (controlName) {\r\n case 'showAnalysis':\r\n this.showAnalysis = !this.showAnalysis;\r\n break;\r\n case 'showNetTest':\r\n this.showNetTest = !this.showNetTest;\r\n break;\r\n case 'showMobileInfo':\r\n this.showMobileInfo = !this.showMobileInfo;\r\n break;\r\n case 'showErrorEvents':\r\n this.showErrorEvents = !this.showErrorEvents;\r\n break;\r\n case 'showTypes':\r\n this.showTypes = !this.showTypes;\r\n break;\r\n case 'showResults':\r\n this.showResults = !this.showResults;\r\n break;\r\n }\r\n\r\n }\r\n /// end toggle div\r\n\r\n //////////////////// start Check ALL / UnCheck ALL\r\n CheckBox(event) {\r\n const checked = event.target.checked;\r\n //this.nontrade.forEach(item => item.selected = checked);\r\n }\r\n\r\n GetMapChanges(controlName = '') {//shoukd be similar to below GetMapConfigByID function\r\n this.isLoading = true;\r\n if (controlName != '')\r\n this.DivToggle(controlName);\r\n\r\n this.GetDispaylOption();\r\n ////\r\n this.preDefinedConfigParam = new PredefinedConfig();\r\n this.preDefinedConfigParam.strStartDate = this.commonFilterDates.split('^')[0];\r\n this.preDefinedConfigParam.strEndDate = this.commonFilterDates.split('^')[1];\r\n this.preDefinedConfigParam.strLastRecord = '';\r\n this.preDefinedConfigParam.TimeStamp_Type = this.TSSelected.toString();\r\n //console.log(this.TSSelected)\r\n this.preDefinedConfigParam.FilterOnOff = 1;\r\n this.mapDisplayOptions.PredefinedConfig = this.preDefinedConfigParam;\r\n\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapOnChangeEvent';\r\n\r\n this.preDefinedConfigParam.generalFilter = this.genArr;\r\n\r\n this.GetMapDispayOptions_Service().subscribe((res: any) => {\r\n let rows: any[] = JSON.parse(res) as any[];\r\n ////console.log(rows)\r\n //if (rows != null)\r\n // this.BindMapDetails(rows);\r\n debugger;\r\n if (rows != null) {\r\n if (rows.length > 1) {\r\n\r\n if (this.usePredefinedConfig == 'ON')\r\n this.SetPinLegnd(rows[rows.length - 2]);\r\n\r\n //// legend popup data\r\n this.dynamicLegendPopupData = [];\r\n this.dynamicLegendPopupData.push(JSON.parse(rows[rows.length - 1]));\r\n //console.log(this.dynamicLegendPopupData);\r\n //this.legendPopupData = this.dynamicLegendPopupData;\r\n\r\n if (this.usePredefinedConfig == \"ON\") {\r\n rows.pop();\r\n rows.pop();\r\n }\r\n\r\n this.BindMapDetails(rows);////elumalai\r\n\r\n\r\n //this.BindMapDetails(rows);//susheel\r\n }\r\n }\r\n else {\r\n this.markers = [];\r\n this.markerCollection = [];\r\n }\r\n\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n GetDispaylOption() {\r\n\r\n this.mapDisplayOptions.mapConfigID = this.mapConfigID;\r\n this.mapDisplayOptions.usePredefinedConfig = this.usePredefinedConfig == \"OFF\" ? 0 : 1;\r\n this.mapDisplayOptions.analysisEnabled = this.analysisEnabled;\r\n this.mapDisplayOptions.netTestEnabled = this.netTestEnabled;\r\n this.mapDisplayOptions.mobileInfoEnabled = this.mobileInfoEnabled;\r\n this.mapDisplayOptions.errorEventsEnabled = this.errorEventsEnabled;\r\n this.mapDisplayOptions.DisplayResultList = this.DisplayResultList;//DisplayResultList\r\n this.mapDisplayOptions.AnalysisList = this.AnalysisList;\r\n this.mapDisplayOptions.NetTestList = this.NetTestList;\r\n this.mapDisplayOptions.MobileInfoList = this.MobileInfoList;\r\n this.mapDisplayOptions.ErrorEventList = this.ErrorEventList;\r\n this.mapDisplayOptions.TypeList = this.TypeList;\r\n this.mapDisplayOptions.ResultList = this.ResultList;\r\n }\r\n\r\n //////////////////// end Check ALL / UnCheck ALL\r\n\r\n ////////////////// start Get PageLoad Data\r\n test: string;\r\n selMapConfig: string;\r\n GetPredefinedConfig(prevConfigID?) {\r\n //alert();\r\n if (this.previous) {\r\n //console.log(this.previous[\"isOpen\"])\r\n if (this.previous[\"isOpen\"] == true)\r\n this.previous[\"isOpen\"] = false;\r\n }\r\n\r\n this.commonFilterService.setUsePredefinedConfigData(this.usePredefinedConfig);\r\n\r\n if (this.usePredefinedConfig == \"ON\") {\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapFilter';\r\n\r\n this.GetMapConfigData_Service().subscribe((res: any) => {\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //console.log(rows)\r\n\r\n //debugger;\r\n this.mapFilterConfigList = rows;\r\n if (rows.length > 0)//susheel\r\n {\r\n //console.log(prevConfigID)\r\n if (!prevConfigID)\r\n this.selMapConfig = rows[0].ID;\r\n this.GetMapConfigByID(this.selMapConfig);\r\n }\r\n\r\n this.GetAllMapRegion();\r\n });\r\n }\r\n else {\r\n this.GetMapConfigData();\r\n }\r\n }\r\n\r\n AllGeneralFilter = [];\r\n filtersWithEventID = {};\r\n filters = {};\r\n delFilterColName = '';\r\n async GetMapConfigData() {\r\n\r\n\r\n this.Loading = \"Loading ...\"\r\n this.isLoading = true;\r\n\r\n //console.log(this.delFilterColName)\r\n if (this.delFilterColName == 'VQuad_CallID') {\r\n this.filtersWithEventID = {};\r\n for (const key in this.filters) {\r\n if (key == 'VQuad_CallID')\r\n delete this.filters[key];\r\n }\r\n }\r\n else if (this.delFilterColName == 'clearAllFilters') {\r\n this.filtersWithEventID = {};\r\n for (const key in this.filters) {\r\n if (key.toUpperCase() !== this.SetTimestampSearch(this.TSSelected).toUpperCase())\r\n delete this.filters[key];\r\n }\r\n }\r\n\r\n if (this.delFilterColName != 'clearAllFilters') {\r\n this.genArr = this.AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"].toUpperCase() != this.SetTimestampSearch(this.TSSelected).toUpperCase();\r\n });\r\n\r\n this.commonFilterService.GeneralFilterDF.subscribe(res => {\r\n //console.log(res)\r\n this.filters = res;\r\n });\r\n }\r\n\r\n if (typeof this.filtersWithEventID == 'object' && Object.keys(this.filtersWithEventID).length > 0) {\r\n this.dataFilter.filters = this.filtersWithEventID;\r\n //console.log(filtersWithEventID)\r\n this.genArr = this.genArr.filter(el => {\r\n return el[\"ColumnName\"] != 'VQuad_CallID';\r\n });\r\n let generalFilterArrayAll = this.dataFilter.getProcessedFiltersArray(\"ALL\");\r\n this.genArr = [...this.genArr, ...generalFilterArrayAll];\r\n\r\n for (const key in this.filters) {\r\n if (key == 'VQuad_CallID')\r\n delete this.filters[key];\r\n }\r\n let generalFilterArrayNew = this.dataFilter.getProcessedFilters(\"\");\r\n this.filters = { ...this.filters, ...generalFilterArrayNew };\r\n }\r\n //console.log(genArr)\r\n //console.log(filters)\r\n\r\n if (this.delFilterColName != '' && this.delFilterColName != 'clearAllFilters') {\r\n //cleared = 1;\r\n this.genArr = this.genArr.filter(el => {\r\n return el[\"ColumnName\"] != this.delFilterColName;\r\n });\r\n\r\n for (const key in this.filters) {\r\n if (key == this.delFilterColName)\r\n delete this.filters[key];\r\n }\r\n }\r\n //console.log(this.genArr)\r\n this.hasFilters = this.genArr.length <= 0 ? false : true;\r\n\r\n if (this.delFilterColName != 'clearAllFilters') {\r\n //let newFilters = {};\r\n //for (const key in this.filters) {\r\n // if (this.filters[key].rsltType == 'call-events' || this.filters[key].rsltType == '') {\r\n // let value = this.filters[key].value;\r\n // let matchMode = this.filters[key].matchMode;\r\n // let valueTo = this.filters[key].valueTo;\r\n // let type = this.filters[key].type;\r\n // let rsltType = this.filters[key].rsltType;\r\n // let title = this.filters[key].title;\r\n // newFilters[key] = { value, matchMode, valueTo, type, rsltType, title };\r\n // }\r\n //}\r\n ////console.log(newFilters)\r\n this.commonFilterService.setGeneralFilterData(this.filters);//(newFilters);\r\n }\r\n else\r\n this.hasFilters = false;\r\n debugger;\r\n\r\n //if (this.MainFilterID != 0) {\r\n this.commonFilterService.DB_BRDiff.subscribe(res => {\r\n this.dbAndBrHrs = res;\r\n });\r\n if (this.dbAndBrHrs == -500) {//query var col table\r\n await this.service.getDBAndBrowserDiffHours('VquadData').then(res => {\r\n this.commonFilterService.setDBAndBrowserHrsDiff(res);\r\n this.dbAndBrHrs = res;\r\n this.commonFilterDates = formatDate(new Date(Date.now() + -1 * 600 * 1000), this.dbTz, this.dbAndBrHrs) + \"^\" + formatDate(new Date(), this.dbTz, this.dbAndBrHrs);//\"06/02/2019 11:00:00^06/02/2019 20:00:00\";\r\n });\r\n }\r\n //}\r\n\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapConfigData';\r\n\r\n ////// Common filter dates \r\n //let dates = formatDate(new Date(Date.now() + -1 * 600 * 1000)) + \"^\" + formatDate(new Date());//\"06/02/2019 11:00:00^06/02/2019 20:00:00\"; \r\n this.commonFilterService.TSBetween.subscribe(res => this.commonFilterDates = res);//latest dates selected is set here from service\r\n //Added to set proper dates here based on range selection\r\n this.commonFilterService.TSRangeFilter.subscribe(res => {\r\n if (res.RangeType !== \"custom\") { this.commonFilterDates = lastDateFunc(res.RangeType, this.dbTz, this.dbAndBrHrs) }\r\n });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n\r\n this.commonFilterService.setDatesProperties(this.commonFilterDates);\r\n\r\n\r\n //// common filter date range\r\n //let dates = formatDate(new Date(Date.now() + -1 * 600 * 1000)) + \"^\" + formatDate(new Date());//\"06/02/2019 11:00:00^06/02/2019 20:00:00\"; \r\n //this.commonFilterService.TSBetween.subscribe(res => dates = res);//latest dates selected is set here from service\r\n ////Added to set proper dates here based on range selection\r\n //this.commonFilterService.TSRangeFilter.subscribe(res => { if (res.RangeType !== \"custom\") { dates = lastDateFunc(res.RangeType) } });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n //this.PredefinedConfigOff.push({\r\n debugger;\r\n this.preDefinedConfigParam = new PredefinedConfig();\r\n this.preDefinedConfigParam.limitPinCount = this.limitPinCount;\r\n this.preDefinedConfigParam.strStartDate = this.commonFilterDates.split('^')[0];\r\n this.preDefinedConfigParam.strEndDate = this.commonFilterDates.split('^')[1];\r\n this.preDefinedConfigParam.strLastRecord = '';\r\n\r\n this.preDefinedConfigParam.TimeStamp_Type = this.TSSelected.toString();\r\n\r\n this.preDefinedConfigParam.FilterOnOff = 1;\r\n this.preDefinedConfigParam.MainFilterID = this.MainFilterID;\r\n if (this.preDefinedConfigParam.MainFilterID > 0)\r\n this.preDefinedConfigParam.FilterOnOff = 0;\r\n // //});\r\n\r\n if (this.genArr.length > 0)\r\n this.preDefinedConfigParam.FilterOnOff = 0;\r\n\r\n this.preDefinedConfigParam.generalFilter = this.genArr;\r\n\r\n this.GetMapConfigData_Service().subscribe((res: any) => {\r\n //console.log(res);// - susheel\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //let data = rows;\r\n debugger;\r\n //if (this.usePredefinedConfig == \"OFF\") {\r\n // if (rows != null) {\r\n // if (rows.length > 0) {\r\n // this.pinLegends = rows[rows.length - 1].replace('[', '').replace(']', '').split(',');\r\n // rows.pop();\r\n // }\r\n // }\r\n //}\r\n //else {\r\n // //this.divPinLegends = this.sanitizer.bypassSecurityTrustHtml(rows[rows.length - 1]);\r\n // //rows.pop();\r\n //}\r\n\r\n //this.bluetoothData = rows;\r\n //console.log(rows);// - susheel\r\n //debugger;\r\n if (rows != null) {\r\n\r\n this.BindMapDetails(rows);\r\n\r\n }\r\n else {\r\n this.markers = [];\r\n this.markerCollection = [];\r\n }\r\n this.Loading = \"\";\r\n\r\n this.isLoading = false;\r\n //let str = \"1,2,3\"; \r\n //console.log(str.split(\",\"));\r\n //this.cd.detectChanges();\r\n });\r\n //setTimeout(() => { this.map.triggerResize(); }, 500)\r\n if (this.delFilterColName != '' && this.delFilterColName != 'clearAllFilters') {\r\n this.delColSelected = true;\r\n\r\n this.commonFilterService.setDeleteFilterData('');//reset if delete\r\n\r\n if (this.delFilterColName == 'VQuad_CallID') {\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n }\r\n\r\n this.genArrDel = this.AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"] != this.delFilterColName;\r\n });\r\n //console.log(this.genArrDel)\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n else if (this.delFilterColName == 'clearAllFilters') {\r\n this.clearAllFiltersBool = true;\r\n\r\n this.commonFilterService.setClearAllFiltersData();//reset if delete\r\n this.commonFilterService.setGeneralFilterData(this.filters);\r\n\r\n this.filtersWithEventID = {};\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n\r\n this.genArrDel = [];\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n }\r\n\r\n async updateMarkers(newBounds: LatLngBounds) {\r\n //debugger;\r\n\r\n //this.cd.detectChanges();\r\n\r\n //this.markers = [];\r\n //setTimeout(() => {\r\n // //this.markers = this.markerCollection.filter(marker => newBounds.contains(new google.maps.LatLng(marker.lat, marker.lng)));\r\n //}, 1000);\r\n\r\n // setTimeout(() => { this.map.triggerResize(); }, 500)\r\n }\r\n\r\n\r\n\r\n BindMapDetails(mapData) {\r\n this.mapData = mapData;\r\n this.markers = [];\r\n this.markerCollection = [];\r\n //debugger;\r\n if (this.usePredefinedConfig == \"OFF\") {\r\n if (this.mapData != null) {\r\n if (this.mapData.length > 0) {\r\n this.pinLegends = this.mapData[this.mapData.length - 1].replace('[', '').replace(']', '').split(',');\r\n ///// for total nettest and Mobile info count\r\n if (this.pinLegends.length > 0) {\r\n debugger;\r\n this.totalNetTestPassCount = parseInt(this.pinLegends[26]) + parseInt(this.pinLegends[28]) + parseInt(this.pinLegends[30]) + parseInt(this.pinLegends[32]) + parseInt(this.pinLegends[34]) + parseInt(this.pinLegends[36]) + parseInt(this.pinLegends[38]) + parseInt(this.pinLegends[40]) + parseInt(this.pinLegends[42]);\r\n this.totalNetTestFailCount = parseInt(this.pinLegends[29]) + parseInt(this.pinLegends[31]) + parseInt(this.pinLegends[33]) + parseInt(this.pinLegends[35]) + parseInt(this.pinLegends[37]) + parseInt(this.pinLegends[39]) + parseInt(this.pinLegends[41]) + parseInt(this.pinLegends[43]);\r\n this.totalMobInfoPassCount = parseInt(this.pinLegends[45]) + parseInt(this.pinLegends[47]) + parseInt(this.pinLegends[49]);\r\n this.totalMobInfoFailCount = parseInt(this.pinLegends[46]) + parseInt(this.pinLegends[48]) + parseInt(this.pinLegends[50]);\r\n\r\n }\r\n this.mapData.pop();\r\n }\r\n }\r\n }\r\n\r\n this.bluetoothData = this.mapData;\r\n\r\n //if (this.usePredefinedConfig == \"ON\")\r\n // this.mapData.pop();\r\n\r\n if (this.mapData != null) {\r\n this.Initialize(this.mapData, \"VQuad \", 1);\r\n }\r\n\r\n //console.log(this.markers);\r\n\r\n //for (let i = 0; i < this.mapData.length; i++) {\r\n // var data = this.mapData[i].MERGED.split(\",\");\r\n //this.pinMarker = new marker();GetMapRegion\r\n //this.pinMarker.lat = data[0];\r\n //this.pinMarker.lng = data[1];\r\n //this.pinMarker.label = \"Z\" + i;\r\n //this.pinMarker.iconurl = this.iurl_b;\r\n\r\n //this.markers.push(this.pinMarker);\r\n //}\r\n }\r\n\r\n //////////////// end Get pageload data\r\n\r\n ///////////////////////////////// start get map config byID\r\n\r\n GetMapConfigByID(mapConfigID, mapLegendApplied = 0) {\r\n\r\n if (this.previous) {\r\n //console.log(this.previous[\"isOpen\"])\r\n if (this.previous[\"isOpen\"] == true)\r\n this.previous[\"isOpen\"] = false;\r\n }\r\n\r\n this.Loading = \"Loading ...\";\r\n this.isLoading = true;\r\n\r\n this.mapConfigID = mapConfigID;\r\n this.GetDispaylOption();\r\n\r\n let dRoute = this.DrawRoute == \"ON\" ? 1 : 0;\r\n\r\n this.preDefinedConfigParam = new PredefinedConfig();\r\n this.preDefinedConfigParam.limitPinCount = this.limitPinCount;\r\n this.preDefinedConfigParam.strStartDate = this.commonFilterDates.split('^')[0];\r\n this.preDefinedConfigParam.strEndDate = this.commonFilterDates.split('^')[1];\r\n this.preDefinedConfigParam.strLastRecord = '';\r\n\r\n this.preDefinedConfigParam.TimeStamp_Type = this.TSSelected.toString();\r\n\r\n this.preDefinedConfigParam.FilterOnOff = 1;\r\n this.preDefinedConfigParam.gMapConfigID = mapConfigID;\r\n this.preDefinedConfigParam.drawRoute = dRoute;\r\n this.preDefinedConfigParam.MainFilterID = this.MainFilterID;\r\n if (this.preDefinedConfigParam.MainFilterID > 0)\r\n this.preDefinedConfigParam.FilterOnOff = 0;\r\n //debugger;\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapConfigDataByID';\r\n if (mapLegendApplied == 1) {\r\n this.preDefinedConfigParam.thresholdLegends = this.thresholdLegends;\r\n this.preDefinedConfigParam.thresholdLegendsCount = this.thresholdLegendsCount;\r\n this.preDefinedConfigParam.callIDLegends = this.callIDLegends;//susheel\r\n this.preDefinedConfigParam.devIDLegends = this.devIDLegends;\r\n this.preDefinedConfigParam.callEventsLegends = this.callEventsLegends;\r\n\r\n }\r\n\r\n this.mapDisplayOptions.PredefinedConfig = this.preDefinedConfigParam;\r\n\r\n this.preDefinedConfigParam.generalFilter = this.genArr;\r\n\r\n this.GetMapConfigDataByID_Service().subscribe((res: any) => {\r\n //console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //console.log(rows);\r\n\r\n //debugger;\r\n this.infowindowArray = [];\r\n //this.divPinLegends = this.sanitizer.bypassSecurityTrustHtml(rows[rows.length - 1]);\r\n if (rows != null) {\r\n if (rows.length > 1) {\r\n if (this.usePredefinedConfig == 'ON')\r\n this.SetPinLegnd(rows[rows.length - 2]);\r\n debugger;\r\n //// legend popup data\r\n this.dynamicLegendPopupData = [];\r\n this.dynamicLegendPopupData.push(JSON.parse(rows[rows.length - 1]));\r\n //console.log(this.dynamicLegendPopupData);\r\n //this.legendPopupData = this.dynamicLegendPopupData;\r\n debugger;\r\n rows.pop();\r\n rows.pop();\r\n this.BindMapDetails(rows);//susheel\r\n }\r\n }\r\n else {\r\n this.markers = [];\r\n this.markerCollection = [];\r\n }\r\n this.Loading = \"\";\r\n this.isLoading = false;\r\n });\r\n }\r\n //////////////////////////////// end get map config byID\r\n\r\n\r\n /////////////////////////// Start Initialize Map From old webviewer function\r\n Initialize(latlngValMain, timestampTypeMain, outputGPS) {//provides array of locations\r\n //debugger;\r\n this.cd.detectChanges();\r\n this.latlngValMainAgain = latlngValMain;\r\n this.infowindowArray = [];\r\n\r\n var arrPolys = 0;///selectedRegConfigApply(1, map);//Draw polygons commented by elumalai\r\n ////ZOOM LIMIT\r\n ////Changes zoom levels when the projection is available.\r\n //google.maps.event.addListenerOnce(map, \"projection_changed\", function () {\r\n // map.setMapTypeId(google.maps.MapTypeId.HYBRID); //Changes the MapTypeId in short time.\r\n // setZoomLimit(map, google.maps.MapTypeId.ROADMAP);\r\n // setZoomLimit(map, google.maps.MapTypeId.HYBRID);\r\n // setZoomLimit(map, google.maps.MapTypeId.SATELLITE);\r\n // setZoomLimit(map, google.maps.MapTypeId.TERRAIN);\r\n // map.setMapTypeId(google.maps.MapTypeId.ROADMAP); //Sets the MapTypeId to original.\r\n //});\r\n\r\n\r\n /////////Get zoom and position\r\n //google.maps.event.addListener(map, \"bounds_changed\", function () {\r\n // document.getElementById(\"boundHid\").value = latlngZoomCenter;\r\n // document.getElementById(\"zoomHid\").value = map.getZoom();\r\n // var bounds = map.getBounds();\r\n\r\n //});\r\n\r\n\r\n ////////Set marker position to center when Zoom changed\r\n //google.maps.event.addListener(map, \"zoom_changed\", function () {\r\n // map.setCenter(latlngZoomCenter);\r\n // if (map.getZoom() == 3)\r\n // map.setCenter(new google.maps.LatLng(40.4230, -98.7372));\r\n //});\r\n\r\n //codeLatLng('N39º08\\'36\\'\\' W077º12\\'57\\'\\'');\r\n //let rsltTypeEach = new Array();\r\n this.rsltTypeEach = new Array();\r\n //debugger\r\n //console.log(latlngValMain)\r\n var loopcnt = 0\r\n var loopInterval = 1000;\r\n this.count = 0;\r\n //console.log(latlngValMain.length);\r\n //console.log(latlngValMain);\r\n\r\n for (var varLatLong = 0; varLatLong < latlngValMain.length; varLatLong++)//add marker for each location\r\n {\r\n loopcnt = varLatLong;\r\n //if (latlngValMain.length > 1000 && loopcnt == loopInterval) {\r\n // setTimeout(() => {\r\n // //// delay map binding by 5 secs for large data\r\n // }, 15000);\r\n // loopInterval = loopInterval + 1000;\r\n //}\r\n\r\n this.pinMarker = new marker();\r\n if (latlngValMain[varLatLong] != null) {\r\n if (latlngValMain[varLatLong].length > 0) {\r\n //console.log(latlngValMain[varLatLong])\r\n var latlngValMainSplit = latlngValMain[varLatLong].split(\"^\");// split to seperate orig value - Co-or^Rslt^Device ID#DateTime^(imgPath#Thresh-Params/VQLoc/VQPhID/CallEvents-COND button)^Threshold Type^RSLT btn\r\n //console.log(latlngValMainSplit)// - susheel\r\n if (latlngValMainSplit[0].length > 0)//check for NULL latlong\r\n {\r\n\r\n var typeNameMain = latlngValMainSplit[1].indexOf('_') != -1 ? (latlngValMainSplit[1].split('_'))[0] : latlngValMainSplit[1];//Type of result\r\n var typeName = latlngValMainSplit[1].indexOf('_') != -1 ? (latlngValMainSplit[1].split('_'))[0] : latlngValMainSplit[1];//Type of result\r\n if (typeName == 'VQUAD')\r\n typeName = 'CALL EVENTS';\r\n else if (typeName == 'TDM')\r\n typeName = 'Audio and Delay';\r\n else if (typeName.indexOf('GENERAL') != -1)\r\n typeName = typeName.replace('GENERAL', 'PHONEINFO');\r\n else if (typeName.indexOf('VQT') != -1)\r\n typeName = typeName.replace('VQT', 'PESQ');\r\n else if (typeName.indexOf('VQUADAPP') != -1)\r\n typeName = 'VQUAD NODE';\r\n else if (typeName.indexOf('MOBILEAPP') != -1)\r\n typeName = 'MOBILE';\r\n\r\n this.rsltTypeEach[this.count] = latlngValMainSplit[1].indexOf('_') != -1 ? (latlngValMainSplit[1].split('_'))[1] : latlngValMainSplit[1];//add results into results array\r\n\r\n var TSPhID = \"\";\r\n if (latlngValMainSplit.length > 2)\r\n TSPhID = latlngValMainSplit[2];//Device ID#Timestamp\r\n\r\n var pinImgSrc = \"\";\r\n if (latlngValMainSplit.length > 3)\r\n pinImgSrc = (latlngValMainSplit[3].split(\"@\"))[0];//imgSrcMain+Param + (@COND btn - not required)\r\n //alert(pinImgSrc); \r\n var rsltBtn = \"\";\r\n var rsltHead = \"\";\r\n var rsltVals = \"\";\r\n var ThresholdType = \"\";\r\n\r\n if (latlngValMainSplit.length == 5)//RSLT btn for other than Threshold(because no Pass/Fail val in split) \r\n {\r\n rsltVals = (latlngValMainSplit[4].split('@'))[1];\r\n rsltHead = (latlngValMainSplit[4].split('@'))[0];\r\n }\r\n else if (latlngValMainSplit.length == 6)//RSLT btn for Threshold \r\n {\r\n if (latlngValMainSplit[4].indexOf(\"PASS\") != -1)\r\n ThresholdType = \"PASS\";\r\n else if (latlngValMainSplit[4].indexOf(\"FAILED\") != -1)\r\n ThresholdType = \"TEST FAILED\";\r\n else if (latlngValMainSplit[4].indexOf(\"FAIL\") != -1)\r\n ThresholdType = \"FAIL\";\r\n typeName = typeName + latlngValMainSplit[4];// add pass / fail to rsltType \r\n rsltVals = (latlngValMainSplit[5].split('@'))[1];\r\n rsltHead = (latlngValMainSplit[5].split('@'))[0];\r\n }\r\n //rsltVals = rsltVals.replace(/\\'/g,\"'\"); \r\n //rsltVals = rsltVals.replace(/º/g,\"°\");\r\n if (latlngValMainSplit.length > 4) {\r\n rsltVals = rsltVals.replace(/\\s/g, \" \");\r\n rsltBtn = rsltHead + \"@\" + rsltVals + '\\\"); class=popupButton>Result Display

    ';\r\n }\r\n\r\n //rsltBtn = rsltBtn.replace(/\\'/g,\"'\"); \r\n //rsltBtn = rsltBtn.replace(/º/g,\"°\");\r\n //alert(rsltBtn);\r\n var startLatLang = \"0,0,\";\r\n var endLatLang = latlngValMainSplit[0];\r\n\r\n //French\r\n if (endLatLang.split(\",\").length > 3) {\r\n var arrGPS = endLatLang.split(\",\");\r\n endLatLang = \"\";\r\n for (var x = 0; x < arrGPS.length; x++) {\r\n var delim = \",\";\r\n if (x % 2 == 0 && x < 3)\r\n delim = \".\";\r\n endLatLang += arrGPS[x] + delim;\r\n }\r\n if (endLatLang != \"\")\r\n endLatLang = endLatLang.substring(0, endLatLang.length - 1);\r\n }\r\n\r\n var routeColor;\r\n if (latlngValMainSplit[0].indexOf(\"@\") != -1) {//start information\r\n startLatLang = (latlngValMainSplit[0].split(\"@\"))[1].trim();\r\n endLatLang = (latlngValMainSplit[0].split(\"@\"))[0];\r\n routeColor = (latlngValMainSplit[0].split(\"@\"))[2].trim();\r\n }\r\n //debugger;\r\n /////// to get result id from each array item to pass in popup model\r\n\r\n\r\n if (this.usePredefinedConfig == \"ON\") {\r\n //console.log(rsltVals.split('!')[0]);\r\n rsltVals = rsltVals != \"\" ? rsltVals.split('!')[0] : latlngValMain[varLatLong].split('$')[1]; //rsltVals.split('!')[0];\r\n }\r\n else\r\n rsltVals = latlngValMain[varLatLong].split('$')[1];\r\n //debugger;\r\n this.CodeLatLng(endLatLang, typeNameMain, this.count, endLatLang, TSPhID, pinImgSrc, rsltBtn, ThresholdType, startLatLang, routeColor, arrPolys, timestampTypeMain, outputGPS, rsltVals);//end GPS location, result-type, coutVal, again end GPS, PhID+TS, ImgPath+Params+COND btn, RSLT btn, start GPS\r\n this.count++;\r\n }\r\n }\r\n }\r\n\r\n //if (varLatLong == latlngValMain.length - 1) {\r\n\r\n // //alert(latlngValMain.length);\r\n // ///lat = 12.9264;// 42.536652;//39.143 ///12.9264;\r\n // ///lng = 77.6012;//\r\n // const bounds: LatLngBounds = new google.maps.LatLngBounds(new google.maps.LatLng(startLatLang, endLatLang));\r\n // this.updateMarkers(bounds);\r\n //}\r\n }\r\n //console.log(this.markers)// - susheel\r\n //this.cd.detectChanges();\r\n\r\n }\r\n //else {\r\n // __doPostBack(\"btnRefresh\", \"OnClick\");\r\n //}\r\n // end of initialize function\r\n\r\n CodeLatLng(latlngVal, rsltType, myCount, LatLongOrig1, TimeStamp, NewImgSrc, FinalRsltBtn, ThresholdType, startLatLang, routeColor, arrPolys, timestampTypeMain, outputGPS, rsltVals) {\r\n\r\n //loc, result type, count val, GPS Co-orditanes, PhID+TS, Image path+Params+COND btn, RSLT btn, start GPS\r\n //console.log(latlngVal + \",\" + rsltType + \",\" + myCount + \",\" + LatLongOrig1 + \",\" + TimeStamp + \",\" + NewImgSrc + \",\" + FinalRsltBtn + \",\" + ThresholdType + \",\" + startLatLang);\r\n\r\n //if (ThresholdType != \"\") // susheel\r\n //debugger\r\n\r\n var input = latlngVal;\r\n var NewTS = TimeStamp.split('#'); //Split Phone ID and TS\r\n NewImgSrc = NewImgSrc.replace('Call Control Event', 'Call Control Event ')\r\n var extrSpacesThreshold = \"                \";\r\n if (NewTS[2] == \"DUMMY\")\r\n extrSpacesThreshold = \" \"\r\n if (ThresholdType.length > 0)\r\n ThresholdType = \"
    THRESHOLD \" + extrSpacesThreshold + \"             \" + ThresholdType + \"
    \";\r\n\r\n if (input.length > 0) {\r\n var latlngStr = input.split(',', 3); //GPS co-or\r\n var latConvert = latlngStr[0].length > 0 ? latlngStr[0] : \"0\";\r\n var lngConvert = latlngStr[1].length > 0 ? latlngStr[1] : \"0\";\r\n var displayEndGPS = latlngStr[2];\r\n\r\n var startlatlngStr = startLatLang.split(',', 3); //start GPS co-or\r\n var startlatConvert = startlatlngStr[0].length > 0 ? startlatlngStr[0] : \"0\";\r\n var startlngConvert = startlatlngStr[1].length > 0 ? startlatlngStr[1] : \"0\";\r\n\r\n if (latConvert == \"0\" && lngConvert == \"0\")//check for 0 latlong\r\n {\r\n this.count--;\r\n return;\r\n }\r\n\r\n\r\n var splitNewImg = NewImgSrc.split(\"#\"); //Pin img path + Params + COND btn\r\n if (displayEndGPS == \"NONE\")\r\n displayEndGPS = LatLongOrig1.replace(',NONE', '');\r\n var latDecimalSpaces = \"                    \";//20\r\n var lngDecimalSpaces = \"                \";//16\r\n if (outputGPS == 0) {\r\n var newLatLongOrig1 = \"
    \" + \"VQuad GPS               \" + displayEndGPS + \"
    \"; //End GPS Loc\r\n if ((startlatConvert + \",\" + startlngConvert) != \"0,0\" && startlatlngStr[2] != displayEndGPS)\r\n newLatLongOrig1 = \"
    \" + \"Device GPS (Start)                 \" + startlatlngStr[2] + \"
    \" + newLatLongOrig1.replace('VQuad GPS            ', 'Device GPS (End)                '); //Start and End GPS Loc\r\n if (NewImgSrc.length > 0)//new info added\r\n newLatLongOrig1 = splitNewImg[1] + newLatLongOrig1; //(Params + COND btn) + GPS Loc + RSLT btn\r\n this.LatLongOriginal[this.count] = newLatLongOrig1; //GPS InfoBubble\r\n }\r\n else {\r\n var newLatLongOrig1 = \"
    \" + \"Latitude \" + latDecimalSpaces + \" \" + latConvert + \"
    \"; //End GPS Lat\r\n newLatLongOrig1 += \"
    \" + \"Longitude \" + lngDecimalSpaces + \" \" + lngConvert + \"
    \"; //End GPS Long\r\n if ((startlatConvert + \",\" + startlngConvert) != \"0,0\" && startlatlngStr[2] != displayEndGPS)\r\n newLatLongOrig1 = \"
    \" + \"Device Latitude (Start) \" + latDecimalSpaces + \" \" + startlatConvert + \"
    \"\r\n + \"
    \" + \"Device Longitude (Start) \" + lngDecimalSpaces + \" \" + startlngConvert + \"
    \"\r\n + newLatLongOrig1.replace('Latitude ' + latDecimalSpaces, 'Device Latitude (End) ' + latDecimalSpaces).replace('Longitude ' + lngDecimalSpaces, 'Device Longitude (End) ' + lngDecimalSpaces); //Start and End GPS Loc\r\n if (NewImgSrc.length > 0)//new info added\r\n newLatLongOrig1 = splitNewImg[1] + newLatLongOrig1; //(Params + COND btn) + GPS Loc + RSLT btn\r\n this.LatLongOriginal[this.count] = newLatLongOrig1; //GPS InfoBubble\r\n }\r\n //debugger;\r\n var lat = parseFloat(latConvert);\r\n var lng = parseFloat(lngConvert);\r\n var ImgRslt = \"Yellow\";\r\n var rsltTypePopUp = \"pesq\";\r\n var timestampNameRsltType = timestampTypeMain;//\"VQuad \";\r\n if (rsltType == \"VQT\" || rsltType == \"POLQA\") {\r\n ImgRslt = \"Yellow\";\r\n if (rsltType == \"POLQA\")\r\n rsltTypePopUp = \"polqa\";\r\n }\r\n else {\r\n if (timestampNameRsltType == \"VQT \")\r\n timestampNameRsltType = \"VQuad \";\r\n\r\n rsltTypePopUp = rsltType.toLowerCase();\r\n if (rsltType.indexOf(\"VQUAD\") != -1 || rsltType.indexOf(\"TDM\") != -1 || rsltType.indexOf(\"RTD\") != -1 || rsltType.indexOf(\"SNR\") != -1 || rsltType.indexOf(\"OWD\") != -1 || rsltType.indexOf(\"PDD\") != -1) {\r\n ImgRslt = \"Green\";\r\n rsltTypePopUp = \"audio-delay\";\r\n if (rsltType.indexOf(\"VQUAD\") != -1)\r\n rsltTypePopUp = \"call-events\";\r\n }\r\n else if (rsltType == \"VBA\")\r\n ImgRslt = \"Pink\";\r\n else if (rsltType == \"EMU\")\r\n ImgRslt = \"Orange\";\r\n //else if (rsltType == \"POLQA\")\r\n // ImgRslt = \"Red\";\r\n else if (rsltType.indexOf(\"FAX\") != -1)\r\n ImgRslt = \"Black\";\r\n else if (rsltType.indexOf(\"VAC\") != -1) {\r\n ImgRslt = \"Purple\";\r\n timestampNameRsltType = \"Device \";\r\n }\r\n else if (rsltType == \"CONNDROP\") {\r\n ImgRslt = \"Red\";\r\n timestampNameRsltType = \"Device \";\r\n }\r\n else if (rsltType.indexOf(\"GENERAL\") != -1 || rsltType.indexOf(\"SIM\") != -1 || rsltType.indexOf(\"UE\") != -1) {\r\n ImgRslt = \"GreenNew\";\r\n timestampNameRsltType = \"Device \";\r\n rsltTypePopUp = \"mobileinfo-\" + rsltType;\r\n }\r\n else//NetTest\r\n {\r\n ImgRslt = \"Blue\";\r\n timestampNameRsltType = \"Device \";\r\n rsltTypePopUp = \"nettest-\" + rsltType;\r\n }\r\n }\r\n\r\n if (rsltType.indexOf(\"-FAIL\") != -1)\r\n ImgRslt = \"Red\";\r\n\r\n var image = './assets/images/Marks/' + ImgRslt + 'Mark.png';\r\n\r\n if (rsltType.indexOf(\"-ERROR\") != -1 && rsltType.indexOf(\"FAX\") != -1) {\r\n image = 'https://chart.googleapis.com/chart?chst=d_map_xpin_letter&chld=pin|E|000000|FFFFFF';\r\n rsltTypePopUp = \"fax\";\r\n }\r\n else if (rsltType.indexOf(\"-ERROR\") != -1 && (rsltType.indexOf(\"VQUAD\") != -1 || rsltType.indexOf(\"RTD\") != -1 || rsltType.indexOf(\"SNR\") != -1 || rsltType.indexOf(\"OWD\") != -1 || rsltType.indexOf(\"PDD\") != -1)) {\r\n image = 'https://chart.googleapis.com/chart?chst=d_map_xpin_letter&chld=pin|E|009900|000000';\r\n rsltTypePopUp = \"audio-delay\";\r\n if (rsltType.indexOf(\"VQUAD\") != -1)\r\n rsltTypePopUp = \"call-events\";\r\n }\r\n else if (rsltType.indexOf(\"-FAIL\") != -1) {\r\n image = 'https://chart.googleapis.com/chart?chst=d_map_xpin_letter&chld=pin|F|BC1E1E|000000';\r\n if (rsltType.indexOf(\"VAC\") != -1)\r\n rsltTypePopUp = \"vac\";\r\n else if (rsltType.indexOf(\"GENERAL\") != -1 || rsltType.indexOf(\"SIM\") != -1 || rsltType.indexOf(\"UE\") != -1)\r\n rsltTypePopUp = \"mobileinfo-\" + (rsltType.split('-'))[0];\r\n else\r\n rsltTypePopUp = \"nettest-\" + (rsltType.split('-'))[0];\r\n }\r\n\r\n //for image size vary dynamically based on pin / bubble\r\n var widthImg = 24;\r\n var heightImg = 30;\r\n\r\n //for mobile and vquad status\r\n if (rsltType.indexOf(\"MOBILEAPP\") != -1) {\r\n image = './assets/images/Marks/Apps/' + (rsltType.split(\"-\"))[1] + '.png';\r\n rsltTypePopUp = \"mobileapp\";\r\n }\r\n else if (rsltType.indexOf(\"VQUADAPP\") != -1) {\r\n widthImg = 40;\r\n heightImg = 25;\r\n image = './assets/images/Marks/Apps/' + (rsltType.split(\"-\"))[1] + '.png';\r\n rsltTypePopUp = \"vquadapp\";\r\n }\r\n if (NewImgSrc.length > 0)//new image\r\n image = splitNewImg[0];\r\n\r\n /////// start new code elumalai bind lat lng to marker array\r\n //this.pinMarker = new marker();\r\n this.pinMarker.lat = lat.toString();\r\n this.pinMarker.lng = lng.toString();\r\n this.pinMarker.label = \"\";//(rsltType.split(\"-\"))[1];\r\n this.pinMarker.iconurl = image; //this.iurl_b;\r\n this.pinMarker.widthImg = widthImg;//susheel\r\n this.pinMarker.heightImg = heightImg;\r\n this.pinMarker.resultType = rsltType.replace(\"GENERAL\", \"PHONEINFO\");//susheel\r\n this.pinMarker.popUpRsltType = rsltTypePopUp;\r\n this.pinMarker.itemID = rsltVals;\r\n\r\n this.markers.push(this.pinMarker); ///commented by elumalai for performance purpose\r\n\r\n //this.markerCollection.push(this.pinMarker); //elumalai for boundchange event \r\n\r\n\r\n\r\n var lat_lng_mine = new Array();\r\n //https://roufid.com/angular-uncaught-referenceerror-google-not-defined/ - refer to region config component getloc \r\n //https://www.digitalocean.com/community/tutorials/angular-angular-google-maps\r\n //https://stackoverflow.com/questions/47198904/angular-google-is-not-defined\r\n this.mapsAPILoader.load().then(() => {// - susheel\r\n\r\n var latlngNewMain = new google.maps.LatLng(lat, lng);\r\n\r\n //// commented by elumalai\r\n var startlatlngNewMain = new google.maps.LatLng(parseFloat(startlatConvert), parseFloat(startlngConvert));\r\n lat_lng_mine.push(startlatlngNewMain);//start\r\n lat_lng_mine.push(latlngNewMain);//end\r\n\r\n if ((startlatConvert + \",\" + startlngConvert) != \"0,0\" && (latConvert + \",\" + lngConvert) != \"0,0\" && (startlatlngStr[2] != displayEndGPS))\r\n this.routeLatLng.push({ origin: startlatlngNewMain, destination: latlngNewMain, color: routeColor });// to draw followpath route by elumalai\r\n\r\n\r\n //this.cd.detectChanges();\r\n });\r\n\r\n var resu = \"Loading...\";\r\n var finalResu = resu;\r\n //map.setZoom(myZoom);\r\n\r\n //set and open windows\r\n var TSandPhID = \"\";\r\n if (TimeStamp.length > 0) {\r\n var phoneIDHead = \"VQuad Device ID \";\r\n var locHead = \"VQuad Call ID  \";\r\n var extrSpaceVQuadTS = \"\";\r\n var infoWindowWidth = 300;\r\n var VQuadNodeSpaces = \"       \";\r\n var VQuadNodeGPSSpaces = this.LatLongOriginal[myCount];\r\n var phoneIDValue = NewTS[0];\r\n var locValue = NewTS[1];\r\n if (NewTS[2].indexOf('IGNORETS') != 0) {\r\n if (timestampNameRsltType == \"Device \") {\r\n extrSpaceVQuadTS = \"                 \";\r\n infoWindowWidth = 400;\r\n phoneIDHead += extrSpaceVQuadTS.replace(extrSpaceVQuadTS, '           ');\r\n locHead += extrSpaceVQuadTS.replace(extrSpaceVQuadTS, '           ');\r\n TSandPhID = \"
    \" + timestampNameRsltType + \"Timestamp (Start)  \" + NewTS[2] + \"
    \";\r\n TSandPhID += \"
    \" + timestampNameRsltType + \"Timestamp (End)     \" + NewTS[3] + \"
    \";\r\n if (VQuadNodeGPSSpaces !== undefined) {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('PARAMETERS  ', 'PARAMETERS ' + extrSpaceVQuadTS);\r\n if (outputGPS == 0) {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('VQuad GPS        ', 'VQuad GPS ' + extrSpaceVQuadTS + '       ');\r\n }\r\n else {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Latitude ' + latDecimalSpaces, 'Latitude ' + extrSpaceVQuadTS + latDecimalSpaces);\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Longitude ' + lngDecimalSpaces, 'Longitude ' + extrSpaceVQuadTS + lngDecimalSpaces);\r\n }\r\n }\r\n }\r\n else {\r\n var endTS = NewTS[2];\r\n if (NewTS[2] == \"DUMMY\")\r\n endTS = NewTS[3];\r\n extrSpaceVQuadTS = \" \";\r\n TSandPhID = \"
    \" + timestampNameRsltType + \"Timestamp  \" + endTS + \"
    \";\r\n if (VQuadNodeGPSSpaces !== undefined) {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('PARAMETERS  ', 'PARAMETERS ' + extrSpaceVQuadTS);\r\n if (outputGPS == 0) {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('VQuad GPS        ', 'VQuad GPS ' + extrSpaceVQuadTS + '       ');\r\n }\r\n else {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Latitude ' + latDecimalSpaces, 'Latitude ' + extrSpaceVQuadTS + latDecimalSpaces);\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Longitude ' + lngDecimalSpaces, 'Longitude ' + extrSpaceVQuadTS + lngDecimalSpaces);\r\n }\r\n }\r\n }\r\n TSandPhID += ThresholdType;\r\n phoneIDValue = \" \" + phoneIDValue;\r\n }\r\n else if (NewTS[2].indexOf('IGNORETS') == 0)//VQuad Or Mobile App\r\n {\r\n FinalRsltBtn = (NewTS[2].split(\"-\"))[2];\r\n if (NewTS[2].indexOf('-VQUAD') != -1)//VQUAD\r\n {\r\n phoneIDHead = \"IP Address\";\r\n locHead = \"Node Name\";\r\n phoneIDValue = \"        \" + phoneIDValue;\r\n //locValue = \"        \" + locValue;\r\n VQuadNodeSpaces = \"\";\r\n finalResu = resu.replace(/       /g, '
    ');//have to be done only once\r\n if (VQuadNodeGPSSpaces !== undefined) {\r\n if (outputGPS == 0) {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('VQuad GPS        ', 'VQuad GPS ');\r\n }\r\n else {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Latitude ' + latDecimalSpaces, 'Latitude          ');\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Longitude ' + lngDecimalSpaces, 'Longitude        ');\r\n }\r\n }\r\n }\r\n else//MOBILE\r\n {\r\n locValue = (locValue.split(\"-\"))[1];\r\n phoneIDHead = \"Device PhoneID   \";\r\n locHead = \"Device Name \";\r\n locValue = \"  \" + locValue;\r\n if (VQuadNodeGPSSpaces !== undefined) {\r\n if (outputGPS == 0) {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('VQuad GPS        ', 'Device GPS      ');\r\n }\r\n else {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Latitude ' + latDecimalSpaces, 'Device Latitude' + '    ' + ' ');\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Longitude ' + lngDecimalSpaces, 'Device Longitude' + '  ' + ' ');\r\n }\r\n }\r\n }\r\n }\r\n if (NewTS[0] != \"IGNOREDEVICE\")\r\n TSandPhID += \"
    \" + phoneIDHead + \"  \" + phoneIDValue + \"
    \";\r\n if (NewTS[1] != \"IGNORELOCATION\")\r\n TSandPhID += \"
    \" + locHead + \"        \" + locValue + \"
    \";\r\n\r\n if (NewTS[4] != undefined && NewTS[4].indexOf('Result Display') != -1)\r\n FinalRsltBtn = NewTS[4];\r\n }\r\n\r\n var substrResu = finalResu.substring(0, finalResu.indexOf(\"
     \"));\r\n var chkWidthResu = infoWindowWidth;\r\n if (substrResu.length > 30)\r\n chkWidthResu = infoWindowWidth + (substrResu.length - 30) * 10;\r\n this.infowindowArray.push(rsltVals + \"@
    RESULT \" + extrSpaceVQuadTS + \"               \" + VQuadNodeSpaces + this.rsltTypeEach[myCount].replace('TDM', 'Audio and Delay') + \"
    \" + TSandPhID + VQuadNodeGPSSpaces + \"
    LOCATION \" + extrSpaceVQuadTS + \"         \" + VQuadNodeSpaces + finalResu + \"
    \" + \"
    \");\r\n\r\n //console.log(rsltType + rsltVals);\r\n //console.log(\"modified\");\r\n //console.log(rsltTypePopUp);\r\n //console.log(\"**********\");\r\n\r\n //this.pinMarker.itemID = rsltVals;\r\n //this.markers.push(this.pinMarker); ///commented by elumalai for performance purpose\r\n // this.markerCollection.push(this.pinMarker); //elumalai for boundchange event\r\n\r\n } //end return \r\n\r\n ////// commeneted by elumalai drawroute\r\n if ((startlatConvert + \",\" + startlngConvert) != \"0,0\" && (latConvert + \",\" + lngConvert) != \"0,0\" && (startlatlngStr[2] != displayEndGPS))\r\n this.DrawMapRoute(lat_lng_mine, routeColor);\r\n\r\n //this.cd.detectChanges();\r\n }// end of codelatlng function N12º55'35'' E77º36'04''\r\n\r\n /////////////////////////// End Initialize Map From old webviewer function\r\n\r\n /////////////////////////// Start Draw Route\r\n onMapReady(map: any) {\r\n //console.log(map);\r\n\r\n //const bounds: LatLngBounds = new google.maps.LatLngBounds();\r\n //for (const mm of this.markers) {\r\n // bounds.extend(new google.maps.LatLng(mm.lat, mm.lng));\r\n //}\r\n //map.fitBounds(bounds);\r\n\r\n\r\n\r\n //const bounds: LatLngBounds = new google.maps.LatLngBounds(new google.maps.LatLng(this.lat, this.lng));\r\n // this.updateMarkers(bounds);\r\n //// dragend idle\r\n //map.addListener(\"idle\", this.updateMarkers(bounds));\r\n //this.map.addListener(\"idle\", function () {\r\n // //do what you want\r\n\r\n //});\r\n\r\n\r\n\r\n this.map = map;\r\n //this.DrawMapRoute();\r\n }\r\n\r\n DrawMapRoute(lat_lng, routeColor) {\r\n // DrawMapRoute() {\r\n //debugger;\r\n if (this.DrawRoute == \"OFF\")\r\n return;\r\n\r\n //var lineSymbol = {\r\n // path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW\r\n //};\r\n\r\n if (this.DrawLine == \"1\") { ///Draw short parabola route or Plane/sea routes\r\n\r\n //const flightPlanCoordinates = [\r\n // { lat: this.lat1, lng: this.lng1 },\r\n // // { lat: this.lat1, lng: this.lng1},\r\n // { lat: this.lat2, lng: this.lng2 },\r\n //];\r\n\r\n const line = new google.maps.Polyline({\r\n strokeOpacity: 0.5,\r\n path: lat_lng, //[],\r\n map: this.map\r\n });\r\n\r\n }\r\n else {// //Draw road route in actual way google mentioned road ways\r\n if (this.routeLatLng.length > 0)\r\n this.showDrawRouteDirection = true\r\n }\r\n\r\n\r\n }\r\n\r\n ////////////////////////// End Draw Route\r\n\r\n /////////////////////////// start Popup Section bluetooth and status display\r\n //VQuad node Bluetooth List \r\n OpenBTFXODialog() {\r\n\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"40%\";\r\n //debugger;\r\n\r\n\r\n dailogConfig.data = { pageValue: this.bluetoothText, nodeStatus: true };\r\n\r\n this.dialog.open(VquadbtfxoComponent, dailogConfig);\r\n }\r\n\r\n //VQuad or Mobile Nodes N/W status\r\n OpenStatusDialog(itemID, resultType) {\r\n /// alert(resultType);\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"70%\";\r\n //debugger;\r\n\r\n let vquadID = \"\";\r\n //itemID = \"21\";\r\n //resultType = \"call-events\";\r\n\r\n if (this.usePredefinedConfig == \"OFF\")\r\n vquadID = itemID + \"@true\" + \"$\" + this.usePredefinedConfig; // for testing itemid =21\r\n else\r\n vquadID = itemID + \"@\" + resultType + \"$\" + this.usePredefinedConfig; // for testing itemid =37014543 and resultype=\"call-events\"\r\n\r\n dailogConfig.data = { pageValue: vquadID };\r\n\r\n let dialogRef = this.dialog.open(GooglemapstatuspopupComponent, dailogConfig);\r\n dialogRef.afterClosed().subscribe(\r\n data => {\r\n //debugger;\r\n this.commonFilterService.setNonFiltersScreen(this.staticScreen);\r\n }\r\n );\r\n }\r\n\r\n //Results window\r\n OpenBasicDialog(requestID, rsltType) {\r\n //debugger;\r\n //if (this.resultTypeID != \"\")\r\n // requestID = this.resultTypeID;\r\n\r\n //console.log(requestID + ',' + rsltType)\r\n const dailogConfig = new MatDialogConfig();\r\n //dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"40%\";\r\n let newRsltType = rsltType;\r\n let selectedSubResults = \"\";\r\n if (rsltType.indexOf(\"mobileinfo\") != -1 || rsltType.indexOf(\"nettest\") != -1) {\r\n newRsltType = (rsltType.split('-'))[0];\r\n\r\n selectedSubResults = (rsltType.split('-'))[1];\r\n\r\n //got from sub-results-selection component\r\n let netTestData = [\r\n { id: 1, name: 'TCP' },\r\n { id: 2, name: 'UDP' },\r\n { id: 3, name: 'VOIP' },\r\n { id: 4, name: 'ROUTE' },\r\n { id: 5, name: 'HTTP' },\r\n { id: 6, name: 'FTP' },\r\n { id: 7, name: 'DNS' },\r\n { id: 8, name: 'SMS' },\r\n { id: 9, name: 'EMAIL' }\r\n ];\r\n let mobileInfoData = [\r\n { id: 1, name: 'GENERAL' },\r\n { id: 2, name: 'SIM' },\r\n { id: 3, name: 'UE' }\r\n ];\r\n let rsltIndex = -1;\r\n if (newRsltType == \"nettest\")\r\n rsltIndex = netTestData.find(x => x.name == selectedSubResults).id;\r\n else\r\n rsltIndex = mobileInfoData.find(x => x.name == selectedSubResults).id;\r\n this.resultsService.setNetTestOrMobInfoByID(rsltIndex);\r\n\r\n selectedSubResults += newRsltType == \"nettest\" ? \"DATA\" : \"INFO\";\r\n }\r\n\r\n dailogConfig.data = { popupOrNot: true, requestID: requestID, rsltType: newRsltType, TSSelected: this.TSSelected };\r\n\r\n //https://stackoverflow.com/questions/41357021/passing-input-values-to-dialog-component\r\n let dialogRef = this.dialog.open(BasicComponent, dailogConfig);\r\n let instance = dialogRef.componentInstance;\r\n instance.selectedSubResults = selectedSubResults;\r\n\r\n //dialogRef.afterClosed().subscribe(\r\n // data => { this.successMsgBasic = data; }\r\n //);\r\n }\r\n\r\n ShowMapLegendWin(rsltType, condVal, pinType) {\r\n\r\n if (rsltType.trim() == \"Audio and Delay\")\r\n rsltType = \"TDM\";\r\n\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"50%\";\r\n //debugger;\r\n this.legendPopupData = this.dynamicLegendPopupData;\r\n //console.log(this.legendPopupData[0])\r\n this.legendPopupData = this.legendPopupData[0].filter(m => m.ConditionValue.replace(/::true/gi, '').replace(/::false/gi, '') == condVal && m.RsltType == rsltType);\r\n\r\n let currPinRsltIndx = this.legendPopupData[0].RsltIndex; //-1;\r\n //let currListEachRsltCondVal = \"\";\r\n //this.dynamicLegendPopupData[0].every(item => {\r\n // if (currListEachRsltCondVal != item.ConditionValue) {\r\n // currListEachRsltCondVal = item.ConditionValue;\r\n // currPinRsltIndx++;\r\n\r\n // if (currListEachRsltCondVal == this.legendPopupData[0].ConditionValue)\r\n // return false; \r\n // }\r\n // return true;\r\n //});\r\n //console.log(currListEachRsltCondVal)\r\n\r\n if (this.legendPopupData.length <= 0) {\r\n return;\r\n }\r\n else {\r\n /// mark threshold.isapplied =1 if already applied\r\n for (let i = 0; i < this.appliedLegendThreshold.length; i++) {\r\n if (this.appliedLegendThreshold[i].replace(/::true/gi, '').replace(/::false/gi, '') == condVal) {\r\n //debugger\r\n this.legendPopupData[0].IsApplied = 1;//as fetched from orig list, set isApplied again everytime\r\n this.appliedLegendThreshold.splice(i);//if already applied remove and add freshly condVal below again everytime\r\n }\r\n }\r\n }\r\n //console.log(this.legendPopupData)\r\n\r\n dailogConfig.data = { pageValue: this.legendPopupData, pinType: pinType };\r\n\r\n let dialogResult = this.dialog.open(GooglemaplegendpopupComponent, dailogConfig);\r\n\r\n dialogResult.afterClosed().subscribe((resultData) => {\r\n\r\n if (resultData) {\r\n let tLegends = resultData;\r\n //debugger;\r\n\r\n if (tLegends[0].IsApplied == 1)//susheel\r\n this.appliedLegendThreshold.push(tLegends[0].ConditionValue.replace(/::true/gi, '').replace(/::false/gi, ''));//add or re-add applied new threshold\r\n\r\n if (pinType == \"Threshold Type\") {\r\n let allTRs = \";\" + this.thresholdLegendsCount;//document.getElementById(\"hidMapLegendsApplyOrNot\").value;//All applied TRs\r\n let entireThresholds = \";\" + this.thresholdLegends; // document.getElementById(\"hidMapLegendsThresholds\").value;\r\n\r\n if (allTRs.indexOf(';' + currPinRsltIndx + ';') != -1) {//leg each pin index\r\n allTRs = allTRs.replace(';' + currPinRsltIndx + ';', ';');//remove existing pin index applied\r\n\r\n var subVal = entireThresholds.substring(entireThresholds.indexOf(';' + currPinRsltIndx + '@'), entireThresholds.indexOf('@' + currPinRsltIndx + ';') + 3); //entireThresholds.substring(entireThresholds.indexOf(';' + document.getElementById(\"hidMapLegends\").value + '@'), entireThresholds.indexOf('@' + document.getElementById(\"hidMapLegends\").value + ';') + 3);\r\n entireThresholds = entireThresholds.replace(subVal, ';');//empty existing pin index's threshold val applied\r\n }\r\n else//Current applied tr newly\r\n {\r\n allTRs += currPinRsltIndx + ';'; //add pin index\r\n entireThresholds += currPinRsltIndx + \"@\"; //Indicating respective pin Index\r\n\r\n for (let i = 0; i < tLegends.length; i++) {\r\n //console.log(tLegends[i].OperatorDropDown)\r\n // $('#trMapLeg' + document.getElementById(\"hidMapLegends\").value).find(\"input\").each(function () {\r\n var x = \"\";\r\n //if (this.id.indexOf('DevID') != -1) //Device ID ^ as start\r\n // x = this.value + \"$\";\r\n //else if (this.id.indexOf('txtMapLeg') != -1)//Operator ~ threshold ~ AND/OR of each parameter\r\n // x = (document.getElementById(this.id.replace('txt', 'ddl')) != null ? document.getElementById(this.id.replace('txt', 'ddl')).selectedIndex : \"0\") + \"-\" + this.value + \"^\" + (document.getElementById(this.id.replace('txtMapLeg', 'ddlAndOrMapLeg')) != null ? document.getElementById(this.id.replace('txtMapLeg', 'ddlAndOrMapLeg')).value : \"AND\") + \",\";\r\n if (tLegends[i].IsVquadData == 1) {\r\n x = tLegends[i].Text + \"$\";\r\n }\r\n else {\r\n x = tLegends[i].newOperatorIndex + \"-\" + tLegends[i].Text + \"^\" + (tLegends[i].AndORDropDown != null ? tLegends[i].AndORDropDown : \"AND\") + \",\";\r\n }\r\n\r\n entireThresholds += x;//single or multi thresholds set here\r\n // });\r\n }\r\n entireThresholds += \"@\" + currPinRsltIndx + \";\"; //closing with respective pin Index\r\n\r\n }\r\n ///document.getElementById(\"hidMapLegendsThresholds\").value = entireThresholds.substring(1, entireThresholds.length);//Remove first and last ;'s\r\n ///document.getElementById(\"hidMapLegendsApplyOrNot\").value = allTRs.substring(1, allTRs.length);//Remove first and last ;'s\r\n this.thresholdLegends = entireThresholds.substring(1, entireThresholds.length);//Remove first and last ;'s\r\n this.thresholdLegendsCount = allTRs.substring(1, allTRs.length);//Remove first and last ;'s\r\n //console.log(this.thresholdLegends)\r\n //console.log(this.thresholdLegendsCount)\r\n }\r\n else if (pinType == \"VQuad Call ID Type\") {\r\n let allTRs = \";\" + this.thresholdLegendsCount;\r\n if (allTRs.indexOf(';' + currPinRsltIndx + ';') == -1)\r\n allTRs += currPinRsltIndx + ';'; //add rslt index\r\n\r\n let entireCallIDs = \";\" + this.callIDLegends;\r\n\r\n entireCallIDs += tLegends[0].currCritListValue;\r\n\r\n //entireCallIDs += \"@\" + currPinRsltIndx + \";\";\r\n this.callIDLegends = entireCallIDs;\r\n\r\n this.thresholdLegendsCount = allTRs.substring(1, allTRs.length);//Remove first and last ;'s\r\n //console.log(entireCallIDs)\r\n //console.log(this.thresholdLegendsCount)\r\n }\r\n else if (pinType == \"VQuad Device ID Type\") {\r\n let allTRs = \";\" + this.thresholdLegendsCount;\r\n if (allTRs.indexOf(';' + currPinRsltIndx + ';') == -1)\r\n allTRs += currPinRsltIndx + ';'; //add rslt index\r\n\r\n let entireDevIDs = \";\" + this.devIDLegends;\r\n\r\n entireDevIDs += tLegends[0].currCritListValue;\r\n\r\n //entireDevIDs += \"@\" + currPinRsltIndx + \";\";\r\n this.devIDLegends = entireDevIDs;\r\n\r\n this.thresholdLegendsCount = allTRs.substring(1, allTRs.length);//Remove first and last ;'s\r\n //console.log(entireDevIDs)\r\n //console.log(this.thresholdLegendsCount)\r\n }\r\n else if (pinType == \"Call Control Event Type\") {\r\n let allTRs = \";\" + this.thresholdLegendsCount;\r\n if (allTRs.indexOf(';' + currPinRsltIndx + ';') == -1)\r\n allTRs += currPinRsltIndx + ';'; //add rslt index\r\n\r\n let entireCCEs = \";\" + this.callEventsLegends;\r\n\r\n entireCCEs += tLegends[0].currCritListValue;\r\n\r\n //entireCCEs += \"@\" + currPinRsltIndx + \";\";\r\n this.callEventsLegends = entireCCEs;\r\n\r\n this.thresholdLegendsCount = allTRs.substring(1, allTRs.length);//Remove first and last ;'s\r\n //console.log(entireDevIDs)\r\n //console.log(this.thresholdLegendsCount)\r\n }\r\n\r\n this.GetMapConfigByID(this.mapConfigID, 1);\r\n\r\n } else {\r\n //this.pinColor = 'Nothing...';\r\n }\r\n });\r\n\r\n\r\n\r\n //this.showPopupLegend = true;\r\n }\r\n\r\n CloseMapLegendWin() {\r\n // this.showPopupLegend = false;\r\n }\r\n\r\n /////////////////////////// end Popup Section bluetooth and status display\r\n\r\n ////////////////// left panel Checkbox list\r\n\r\n SpiralClicked() {\r\n //alert();\r\n }\r\n\r\n\r\n DisplayResultList = [\r\n {\r\n Name: \"Results\",\r\n Value: \"0\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"Failures\",\r\n Value: \"1\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"VQuad Nodes\",\r\n Value: \"2\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"Mobile Devices\",\r\n Value: \"3\",\r\n Checked: true\r\n }\r\n ];\r\n\r\n AnalysisList = [\r\n //{\r\n // Name: \"Check/UnCheck All\",\r\n // Value: \"1\",\r\n // Checked: true\r\n //},\r\n {\r\n Name: \"Failures\",\r\n Value: \"2\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"Call Events\",\r\n Value: \"3\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"PESQ\",\r\n Value: \"4\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"POLQA\",\r\n Value: \"5\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"RTD\",\r\n Value: \"6\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"OWD\",\r\n Value: \"7\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"PDD\",\r\n Value: \"8\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"SNR\",\r\n Value: \"9\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"EModule\",\r\n Value: \"10\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"EMU\",\r\n Value: \"11\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"FAX\",\r\n Value: \"12\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"VAC\",\r\n Value: \"13\",\r\n Checked: true\r\n },\r\n ];\r\n\r\n NetTestList = [\r\n //{\r\n // Name: \"Check/UnCheck All\",\r\n // Value: \"0\",\r\n // Checked: true\r\n //},\r\n {\r\n Name: \"Failures\",\r\n Value: \"1\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"Connection Drop\",\r\n Value: \"2\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"TCP\",\r\n Value: \"3\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"UDP\",\r\n Value: \"4\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"VOIP\",\r\n Value: \"5\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"ROUTE\",\r\n Value: \"6\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"HTTP\",\r\n Value: \"7\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"FTP\",\r\n Value: \"8\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"DNS\",\r\n Value: \"9\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"SMS\",\r\n Value: \"10\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"EMAIL\",\r\n Value: \"11\",\r\n Checked: true\r\n }\r\n ];\r\n\r\n MobileInfoList = [\r\n //{\r\n // Name: \"Check/UnChecl All\",\r\n // Value: \"0\",\r\n // Checked: true\r\n //},\r\n {\r\n Name: \"Failures\",\r\n Value: \"1\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"PHONEINFO\",\r\n Value: \"2\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"SIM\",\r\n Value: \"3\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"UE\",\r\n Value: \"4\",\r\n Checked: true\r\n }\r\n ];\r\n\r\n ErrorEventList = [\r\n //{\r\n // Name: \"Check/UnCheck All\",\r\n // Value: \"0\",\r\n // Checked: true\r\n //},\r\n {\r\n Name: \"Call Events\",\r\n Value: \"1\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"RTD\",\r\n Value: \"2\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"OWD\",\r\n Value: \"3\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"PDD\",\r\n Value: \"4\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"SNR\",\r\n Value: \"5\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"FAX\",\r\n Value: \"6\",\r\n Checked: true\r\n }\r\n ];\r\n\r\n TypeList = [\r\n {\r\n Name: \"Threshold Settings\",\r\n Value: \"0\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"VQuad Call ID\",\r\n Value: \"1\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"VQuad Devcie ID\",\r\n Value: \"2\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"Call Events\",\r\n Value: \"3\",\r\n Checked: false\r\n }\r\n ];\r\n\r\n ResultList = [\r\n {\r\n Name: \"VQT PESQ\",\r\n Value: \"VQTDATA|0|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"VQT POLQA\",\r\n Value: \"VQTPOLQA|1|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"VQuad Call Events\",\r\n Value: \"VQUADDATA|2|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"Audio and Delay Analysis\",\r\n Value: \"VQUADDATA|3|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"TCP\",\r\n Value: \"TCPDATA|4|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"UDP\",\r\n Value: \"UDPDATA|5|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"VOIP\",\r\n Value: \"VOIPDATA|6|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"ROUTE\",\r\n Value: \"ROUTEDATA|7|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"HTTP\",\r\n Value: \"HTTPDATA|8|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"FTP\",\r\n Value: \"FTPDATA|9|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"DNS\",\r\n Value: \"DNSDATA|10|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"SMS\",\r\n Value: \"SMSDATA|11|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"EMAIL\",\r\n Value: \"EMAILDATA|12|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"Phone Info\",\r\n Value: \"GENERALINFO|13|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"SIM\",\r\n Value: \"SIMINFO|14|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"UE\",\r\n Value: \"UEINFO|15|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"EMU\",\r\n Value: \"EMUDATA|16|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"FAX\",\r\n Value: \"FAXDATA|17|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"EModule\",\r\n Value: \"EModule|18|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"Connection Drop\",\r\n Value: \"CONNDROPDATA|19|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"VAC\",\r\n Value: \"VACDATA|20|\",\r\n Checked: false\r\n }\r\n ];\r\n\r\n ////////////////// left panel Checkbox list\r\n\r\n ////////////////////////////////////////////////////////////// SERVICES /////////////////////////////////////////////////////\r\n\r\n GetMapConfigData_Service() {\r\n //debugger\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, this.preDefinedConfigParam, options);\r\n\r\n }\r\n\r\n GetMapConfigDataByID_Service() {\r\n //debugger\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, this.mapDisplayOptions, options);\r\n\r\n }\r\n\r\n GetMapDispayOptions_Service() {\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, this.mapDisplayOptions, options);\r\n\r\n }\r\n\r\n SetTimestampSearch(tsSearch) {\r\n switch (tsSearch) {\r\n case 0:\r\n return \"CALL_TIMESTAMP\";\r\n case 1:\r\n return \"VQUAD_TIMESTAMP\";\r\n case 2:\r\n return \"VQT_Timestamp\";\r\n case 3:\r\n return \"DCOSS_TIMESTAMP\";\r\n }\r\n\r\n }\r\n\r\n parentRef(TSSelected) {\r\n this.TSSelected = parseInt(TSSelected);\r\n //this.setRsltType();\r\n //debugger;\r\n //////// Common filter dates \r\n ////let dates = formatDate(new Date(Date.now() + -1 * 600 * 1000)) + \"^\" + formatDate(new Date());//\"06/02/2019 11:00:00^06/02/2019 20:00:00\"; \r\n //this.commonFilterService.TSBetween.subscribe(res => this.commonFilterDates = res);//latest dates selected is set here from service\r\n ////Added to set proper dates here based on range selection\r\n //this.commonFilterService.TSRangeFilter.subscribe(res => {\r\n // if (res.RangeType !== \"custom\")\r\n // { this.commonFilterDates = lastDateFunc(res.RangeType) }\r\n //});//sets start and end dates to latest timestamps based on range type selection - IMP\r\n\r\n //this.commonFilterService.setDatesProperties(this.commonFilterDates);\r\n\r\n this.commonFilterService.usePredefinedConfig.subscribe(res => this.usePredefinedConfig = res);\r\n this.GetPredefinedConfig(this.selMapConfig);\r\n }\r\n parentAutoRef(AutoRefreshInfo) {\r\n this.TSSelected = parseInt(AutoRefreshInfo.TSSelected);\r\n this.AutoRefreshInfo = AutoRefreshInfo;\r\n }\r\n\r\n}\r\n\r\n// just an interface for type safety.\r\nclass marker {\r\n lat: string;\r\n lng: string;\r\n label?: string;\r\n draggable: boolean;\r\n iconurl: string;\r\n widthImg: number;\r\n heightImg: number;\r\n resultType: string;\r\n popUpRsltType: string;\r\n itemID: string;\r\n}\r\nclass markerDisplay {\r\n lat: number;\r\n lng: number;\r\n label?: string;\r\n draggable: boolean;\r\n iconurl: string;\r\n widthImg: number;\r\n heightImg: number;\r\n resultType: string;\r\n popUpRsltType: string;\r\n itemID: string;\r\n}\r\n\r\nclass PredefinedConfig {\r\n getINISettings: string = \"\";\r\n strStartDate: string = \"\";\r\n strEndDate: string = \"\";\r\n strLastRecord: string = \"\";\r\n TimeStamp_Type: string = \"\";\r\n FilterOnOff: number = 1;\r\n drawRoute: number = 0;\r\n\r\n thresholdLegends: string = \"\";\r\n thresholdLegendsCount: string = \"\";\r\n callIDLegends: string = \"\";//susheel\r\n devIDLegends: string = \"\";\r\n callEventsLegends: string = \"\";\r\n\r\n gMapConfigID: number = 0;\r\n MainFilterID: number = 0;\r\n limitPinCount: boolean = true;\r\n\r\n generalFilter = [];\r\n}\r\n","module.exports = \".btnApplyColor {\\n background-color: green;\\n border-color: green;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvb3V0cHV0LXJlc3VsdHMvZ29vZ2xlbWFwbGVnZW5kcG9wdXAvRDpcXFNyY3dlYlxcVlMyMDE3IFByb2plY3RzXFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3L3NyY1xcYXBwXFxvdXRwdXQtcmVzdWx0c1xcZ29vZ2xlbWFwbGVnZW5kcG9wdXBcXGdvb2dsZW1hcGxlZ2VuZHBvcHVwLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9vdXRwdXQtcmVzdWx0cy9nb29nbGVtYXBsZWdlbmRwb3B1cC9nb29nbGVtYXBsZWdlbmRwb3B1cC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHVCQUFBO0VBQ0EsbUJBQUE7QUNDRiIsImZpbGUiOiJzcmMvYXBwL291dHB1dC1yZXN1bHRzL2dvb2dsZW1hcGxlZ2VuZHBvcHVwL2dvb2dsZW1hcGxlZ2VuZHBvcHVwLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmJ0bkFwcGx5Q29sb3Ige1xyXG4gIGJhY2tncm91bmQtY29sb3I6IGdyZWVuO1xyXG4gIGJvcmRlci1jb2xvcjpncmVlblxyXG59XHJcbiIsIi5idG5BcHBseUNvbG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47XG4gIGJvcmRlci1jb2xvcjogZ3JlZW47XG59Il19 */\"","import { Component, OnInit, Optional, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { FilterOperator } from 'lib/ng-data-table/base';\r\nimport { DtMessages, DtMessagesEn } from 'lib/dt-translate';\r\n\r\n@Component({\r\n selector: 'app-googlemaplegendpopup',\r\n templateUrl: './googlemaplegendpopup.component.html',\r\n styleUrls: ['./googlemaplegendpopup.component.scss']\r\n})\r\nexport class GooglemaplegendpopupComponent implements OnInit {\r\n\r\n popupTitle: string = \"Legend\";\r\n btnApply: string = \"btn btn-primary\";\r\n ApplyOrNot: string = \"Apply\";\r\n legendData = [];\r\n operAndCritList: any[];\r\n pinType = \"Threshold Type\";//Threshold, VQuad Call ID, VQuad Device ID, Call Events\r\n\r\n //susheel\r\n stringOperators: any[];\r\n rangeOperators: any[];\r\n messages: DtMessages = new DtMessagesEn({});\r\n\r\n constructor(private http: HttpClient, public dialogBox: MatDialogRef, @Optional() @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.legendData = data.pageValue;\r\n this.pinType = data.pinType;\r\n }\r\n\r\n ngOnInit() {\r\n //susheel\r\n this.stringOperators = [\r\n { value: FilterOperator.STARTS_WITH, text: this.messages.startsWith },\r\n { value: FilterOperator.ENDS_WITH, text: this.messages.endsWith },\r\n { value: FilterOperator.CONTAINS, text: this.messages.contains },//2 - standard index for old webviewer data\r\n { value: FilterOperator.NOT_CONTAINS, text: this.messages.notContains },\r\n { value: FilterOperator.EQUALS, text: this.messages.equals },\r\n { value: FilterOperator.NOT_EQUAL, text: this.messages.notEqual },\r\n //{ value: FilterOperator.IS_EMPTY, text: this.messages.isEmpty },\r\n //{ value: FilterOperator.IS_NOT_EMPTY, text: this.messages.isNotEmpty },\r\n ];\r\n this.rangeOperators = [\r\n { value: FilterOperator.GREATER_THAN_OR_EQUAL, text: this.messages.greaterThanOrEqual },//0 - standard index for old webviewer data\r\n { value: FilterOperator.LESS_THAN_OR_EQUAL, text: this.messages.lessThanOrEqual },//1 - standard index for old webviewer data\r\n { value: FilterOperator.EQUALS, text: this.messages.equals },//2 - standard index for old webviewer data\r\n { value: FilterOperator.NOT_EQUAL, text: this.messages.notEqual },\r\n { value: FilterOperator.GREATER_THAN, text: this.messages.greaterThan },\r\n { value: FilterOperator.LESS_THAN, text: this.messages.lessThan },\r\n //{ value: FilterOperator.IN_RANGE, text: this.messages.inRange },\r\n //{ value: FilterOperator.IS_EMPTY, text: this.messages.isEmpty },\r\n //{ value: FilterOperator.IS_NOT_EMPTY, text: this.messages.isNotEmpty },\r\n ];\r\n\r\n //console.log(this.legendData[0].IsApplied)\r\n if (this.legendData[0].IsApplied == 1)//susheel\r\n {\r\n this.ApplyOrNot = \"Revert\";\r\n this.btnApply = \"btnApplyColor\";\r\n }\r\n else {\r\n this.ApplyOrNot = \"Apply\";\r\n this.btnApply = \"btn btn-primary\";\r\n }\r\n\r\n if (this.pinType == \"Threshold Type\") {\r\n this.legendData.forEach((item) => {\r\n item[\"newOperator\"] = FilterOperator.GREATER_THAN_OR_EQUAL;\r\n //Set the type of input - number or string\r\n item[\"isValueFilter\"] = false;\r\n item[\"critNeeded\"] = true;\r\n\r\n if (item.Label.indexOf('::true') != -1) {\r\n item[\"selParamOperators\"] = this.rangeOperators;\r\n switch (item.OperatorDropDown) {\r\n case \">=\":\r\n item[\"newOperator\"] = FilterOperator.GREATER_THAN_OR_EQUAL;\r\n break;\r\n case \"<=\":\r\n item[\"newOperator\"] = FilterOperator.LESS_THAN_OR_EQUAL;\r\n break;\r\n case \"=\":\r\n item[\"newOperator\"] = FilterOperator.EQUALS;\r\n break;\r\n case \"NOT EQUALS\":\r\n item[\"newOperator\"] = FilterOperator.NOT_EQUAL;\r\n break;\r\n case \">\":\r\n item[\"newOperator\"] = FilterOperator.GREATER_THAN;\r\n break;\r\n case \"<\":\r\n item[\"newOperator\"] = FilterOperator.LESS_THAN;\r\n break;\r\n }\r\n }\r\n else {\r\n item[\"selParamOperators\"] = this.stringOperators;\r\n item[\"isValueFilter\"] = true;\r\n item[\"critNeeded\"] = true;\r\n switch (item.OperatorDropDown) {\r\n case \"STARTS WITH\":\r\n item[\"newOperator\"] = FilterOperator.STARTS_WITH;\r\n break;\r\n case \"ENDS WITH\":\r\n item[\"newOperator\"] = FilterOperator.ENDS_WITH;\r\n break;\r\n case \"LIKE\":\r\n item[\"newOperator\"] = FilterOperator.CONTAINS;\r\n break;\r\n case \"NOT LIKE\":\r\n item[\"newOperator\"] = FilterOperator.NOT_CONTAINS;\r\n break;\r\n case \"=\":\r\n item[\"newOperator\"] = FilterOperator.EQUALS;\r\n break;\r\n case \"NOT EQUALS\":\r\n item[\"newOperator\"] = FilterOperator.NOT_EQUAL;\r\n break;\r\n case \"IS NULL\":\r\n item[\"newOperator\"] = FilterOperator.IS_EMPTY;\r\n item[\"critNeeded\"] = false;\r\n break;\r\n case \"IS NOT NULL\":\r\n item[\"newOperator\"] = FilterOperator.IS_NOT_EMPTY;\r\n item[\"critNeeded\"] = false;\r\n break;\r\n }\r\n }\r\n //https://dmitripavlutin.com/replace-all-string-occurrences-javascript/\r\n item[\"LabelHtml\"] = item[\"Label\"].replace(/::true/gi, '').replace(/::false/gi, '');\r\n });\r\n }\r\n else {\r\n this.operAndCritList = [];\r\n this.legendData.forEach((item, i) => {\r\n //debugger\r\n if (item.Label == \"VQuad Device ID\" && this.legendData.length == 2 && i == 0) {//call events dev id handled here\r\n let conditionValue = (item.ConditionValue.split(' 0) {\r\n let condVal = item.ConditionValue;\r\n if (i == 1)\r\n condVal = (condVal.split('
    '))[1];//Remove this Dev ID for following call events crit list \r\n let conditionValueArr = condVal.split(',');\r\n let idVal = 1;\r\n conditionValueArr.forEach((conditionValue, critIndx) => {\r\n let defaultStringMatchMode = FilterOperator.STARTS_WITH;\r\n let critDisplay = true;\r\n let value = '';\r\n if (conditionValue.indexOf(\"STARTS WITH\") != -1) {\r\n defaultStringMatchMode = FilterOperator.STARTS_WITH;\r\n value = (conditionValue.split(\"STARTS WITH \"))[1];\r\n }\r\n else if (conditionValue.indexOf(\"ENDS WITH\") != -1) {\r\n defaultStringMatchMode = FilterOperator.ENDS_WITH;\r\n value = (conditionValue.split(\"ENDS WITH \"))[1];\r\n }\r\n else if (conditionValue.indexOf(\"NOT LIKE\") != -1) {\r\n defaultStringMatchMode = FilterOperator.NOT_CONTAINS;\r\n value = (conditionValue.split(\"NOT LIKE \"))[1];\r\n }\r\n else if (conditionValue.indexOf(\"LIKE\") != -1) {\r\n defaultStringMatchMode = FilterOperator.CONTAINS;\r\n value = (conditionValue.split(\"LIKE \"))[1];\r\n }\r\n else if (conditionValue.indexOf(\"=\") != -1) {\r\n defaultStringMatchMode = FilterOperator.EQUALS;\r\n value = (conditionValue.split(\"= \"))[1];\r\n }\r\n else if (conditionValue.indexOf(\"NOT EQUALS\") != -1) {\r\n defaultStringMatchMode = FilterOperator.NOT_EQUAL;\r\n value = (conditionValue.split(\"NOT EQUALS \"))[1];\r\n }\r\n else if (conditionValue.indexOf(\"IS NULL\") != -1) {\r\n defaultStringMatchMode = FilterOperator.IS_EMPTY;\r\n value = \"\";\r\n critDisplay = false;\r\n }\r\n else if (conditionValue.indexOf(\"IS NOT NULL\") != -1) {\r\n defaultStringMatchMode = FilterOperator.IS_NOT_EMPTY;\r\n value = \"\";\r\n critDisplay = false;\r\n }\r\n\r\n let currAndOr = \"\";\r\n if (critIndx < conditionValueArr.length - 1)\r\n currAndOr = \"OR\";\r\n this.operAndCritList.push({ id: item.Label + (idVal++), oper: defaultStringMatchMode, critVal: value, critInputDisable: false, critInputDisplay: critDisplay, andOr: currAndOr });\r\n });\r\n }\r\n });\r\n //console.log(this.operAndCritList)\r\n }\r\n\r\n //console.log(this.legendData)\r\n }\r\n\r\n\r\n ClosePopup() {\r\n this.dialogBox.close();\r\n }\r\n ApplyPopup() {\r\n this.legendData.forEach((item) => {\r\n this.validateCriteria(item.Text, item.isValueFilter, item.critNeeded);\r\n item[\"critErrorDesc\"] = this.critErrorDesc;\r\n });\r\n\r\n if (this.critErrors == true)\r\n return false;\r\n\r\n let newCondVal = \"\";\r\n if (this.pinType == \"Threshold Type\") {\r\n this.legendData.forEach((item, indx) => {\r\n if (item[\"isValueFilter\"] == false) {\r\n switch (item[\"newOperator\"]) {\r\n case FilterOperator.GREATER_THAN_OR_EQUAL:\r\n item.OperatorDropDown = \">=\";\r\n item[\"newOperatorIndex\"] = 0;\r\n break;\r\n case FilterOperator.LESS_THAN_OR_EQUAL:\r\n item.OperatorDropDown = \"<=\";\r\n item[\"newOperatorIndex\"] = 1;\r\n break;\r\n case FilterOperator.EQUALS:\r\n item.OperatorDropDown = \"=\";\r\n item[\"newOperatorIndex\"] = 2;\r\n break;\r\n case FilterOperator.NOT_EQUAL:\r\n item.OperatorDropDown = \"NOT EQUALS\";\r\n item[\"newOperatorIndex\"] = 3;\r\n break;\r\n case FilterOperator.GREATER_THAN:\r\n item.OperatorDropDown = \">\";\r\n item[\"newOperatorIndex\"] = 4;\r\n break;\r\n case FilterOperator.LESS_THAN:\r\n item.OperatorDropDown = \"<\";\r\n item[\"newOperatorIndex\"] = 5;\r\n break;\r\n }\r\n }\r\n else {\r\n switch (item[\"newOperator\"]) {\r\n case FilterOperator.STARTS_WITH:\r\n item.OperatorDropDown = \"STARTS WITH\";\r\n item[\"newOperatorIndex\"] = 0;\r\n break;\r\n case FilterOperator.ENDS_WITH:\r\n item.OperatorDropDown = \"ENDS WITH\";\r\n item[\"newOperatorIndex\"] = 1;\r\n break;\r\n case FilterOperator.CONTAINS:\r\n item.OperatorDropDown = \"LIKE\";\r\n item[\"newOperatorIndex\"] = 2;\r\n break;\r\n case FilterOperator.NOT_CONTAINS:\r\n item.OperatorDropDown = \"NOT LIKE\";\r\n item[\"newOperatorIndex\"] = 3;\r\n break;\r\n case FilterOperator.EQUALS:\r\n item.OperatorDropDown = \"=\";\r\n item[\"newOperatorIndex\"] = 4;\r\n break;\r\n case FilterOperator.NOT_EQUAL:\r\n item.OperatorDropDown = \"NOT EQUALS\";\r\n item[\"newOperatorIndex\"] = 5;\r\n break;\r\n case FilterOperator.IS_EMPTY:\r\n item.OperatorDropDown = \"IS NULL\";\r\n item[\"newOperatorIndex\"] = 6;\r\n break;\r\n case FilterOperator.IS_NOT_EMPTY:\r\n item.OperatorDropDown = \"IS NOT NULL\";\r\n item[\"newOperatorIndex\"] = 7;\r\n break;\r\n }\r\n\r\n newCondVal += item.Label + ' ' + item.OperatorDropDown + ' ' + item.Text;//susheel\r\n if (indx <= this.legendData.length - 1) {\r\n if (item.AndORDropDown == 'AND' || item.AndORDropDown == null)//null for VQuuad Dev ID, if there in cond\r\n newCondVal += ' AND
    ';\r\n else\r\n newCondVal += ' OR
    ';\r\n }\r\n }\r\n });\r\n\r\n this.legendData.forEach(item => { item.ConditionValue = newCondVal });\r\n }\r\n else {\r\n let currCritListValue = \"\";\r\n this.operAndCritList.forEach((eachOperAndCrit, indx) => {\r\n if (eachOperAndCrit.critVal.trim().length > 0 || eachOperAndCrit.critInputDisable == true || eachOperAndCrit.oper == FilterOperator.IS_EMPTY || eachOperAndCrit.oper == FilterOperator.IS_NOT_EMPTY) {\r\n let operNew = \"=\";\r\n if (eachOperAndCrit.oper == FilterOperator.EQUALS) {\r\n currCritListValue += '*' + eachOperAndCrit.critVal.trim() + '*';\r\n operNew = \"=\";\r\n }\r\n else if (eachOperAndCrit.oper == FilterOperator.NOT_EQUAL) {\r\n currCritListValue += '^' + eachOperAndCrit.critVal.trim() + '^';\r\n operNew = \"NOT EQUALS\";\r\n }\r\n else if (eachOperAndCrit.oper == FilterOperator.STARTS_WITH) {\r\n currCritListValue += eachOperAndCrit.critVal.trim() + '%';\r\n operNew = \"STARTS WITH\";\r\n }\r\n else if (eachOperAndCrit.oper == FilterOperator.ENDS_WITH) {\r\n currCritListValue += '%' + eachOperAndCrit.critVal.trim();\r\n operNew = \"ENDS WITH\";\r\n }\r\n else if (eachOperAndCrit.oper == FilterOperator.NOT_CONTAINS) {\r\n currCritListValue += '!' + eachOperAndCrit.critVal.trim() + '!';\r\n operNew = \"NOT LIKE\";\r\n }\r\n else if (eachOperAndCrit.oper == FilterOperator.CONTAINS) {\r\n currCritListValue += eachOperAndCrit.critVal.trim();\r\n operNew = \"LIKE\";\r\n }\r\n else if (eachOperAndCrit.oper == FilterOperator.IS_NOT_EMPTY) {\r\n operNew = \"IS NOT NULL\";\r\n }\r\n else if (eachOperAndCrit.oper == FilterOperator.IS_EMPTY) {\r\n operNew = \"IS NULL\";\r\n }\r\n\r\n //console.log(eachOperAndCrit.id + '::' + indx)\r\n //debugger\r\n if (eachOperAndCrit.id == \"VQuad Device ID\" && this.legendData.length == 2 && indx == 0) { //call events dev id handled here\r\n newCondVal += eachOperAndCrit.id + ' ' + operNew + ' ' + eachOperAndCrit.critVal.trim() + ' AND
    ';\r\n currCritListValue = currCritListValue + '$';\r\n }\r\n else if (this.legendData.length == 1 || eachOperAndCrit.id.indexOf(\"Call Control Event\") != -1 && this.legendData.length == 2 && indx > 0) {\r\n newCondVal += eachOperAndCrit.id + ' ' + operNew + ' ' + eachOperAndCrit.critVal.trim();//susheel\r\n if (indx <= this.operAndCritList.length - 1) {\r\n newCondVal += ',';\r\n\r\n currCritListValue += '|';\r\n }\r\n }\r\n }\r\n });\r\n\r\n currCritListValue = currCritListValue.substring(0, currCritListValue.length - 1);\r\n this.legendData[0][\"currCritListValue\"] = currCritListValue;\r\n this.legendData.forEach(item => { item.ConditionValue = newCondVal });\r\n }\r\n\r\n //console.log(this.legendData)\r\n\r\n this.legendData[0].IsApplied = this.legendData[0].IsApplied == 0 ? 1 : 0;//susheel\r\n //console.log(this.legendData[0].IsApplied)\r\n this.dialogBox.close(this.legendData);\r\n }\r\n\r\n\r\n //onKeyPressFilterInput(event: KeyboardEvent) {\r\n // if (event.which === Keys.ENTER) {\r\n // //this.onClickOk();\r\n // }\r\n //}\r\n\r\n //When oper selected as Is Empty or Is Not Empty then no need of crit input-susheel\r\n onThresholdModeChange(item) {\r\n //console.log(isValueFilter + \"::\" + this.value)\r\n item[\"critNeeded\"] = true;\r\n if (item.newOperator == FilterOperator.IS_EMPTY || item.newOperator == FilterOperator.IS_NOT_EMPTY) {\r\n item[\"critNeeded\"] = false;\r\n }\r\n }\r\n onNonThresholdModeChange(item) {\r\n //console.log(isValueFilter + \"::\" + this.value)\r\n item[\"critNeeded\"] = true;\r\n if (item.oper == FilterOperator.IS_EMPTY || item.oper == FilterOperator.IS_NOT_EMPTY) {\r\n item[\"critNeeded\"] = false;\r\n }\r\n }\r\n\r\n\r\n critErrors: boolean = false;\r\n critErrorDesc = \"\";\r\n validateCriteria(mainValue: any, isValueFilter: boolean, critNeeded: boolean) {\r\n this.critErrorDesc = \"\";\r\n\r\n //when input empty\r\n if (mainValue.length === 0 && critNeeded == true) {\r\n this.critErrors = true;\r\n this.critErrorDesc = \"*Required\";\r\n }\r\n else if (this.pinType == \"Threshold Type\" && !isValueFilter) {//when input type is numeric and pasted alpha numeric with threshold type\r\n if (isNaN(mainValue)) {\r\n this.critErrors = true;\r\n this.critErrorDesc = \"*Invalid number\";\r\n }\r\n }\r\n }\r\n\r\n\r\n //andOrs: SelectItem[] = [\r\n // { id: 1, name: 'AND' },\r\n // { id: 2, name: 'OR' },\r\n //];\r\n //selectedAndOrs: number[] = [1];\r\n\r\n //onAndOrChange(event) {\r\n // let selID = parseInt(event);\r\n // this.selectedAndOrs = [selID];\r\n //}\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL291dHB1dC1yZXN1bHRzL2dvb2dsZW1hcHN0YXR1c3BvcHVwL2dvb2dsZW1hcHN0YXR1c3BvcHVwLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, Optional, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-googlemapstatuspopup',\r\n templateUrl: './googlemapstatuspopup.component.html',\r\n styleUrls: ['./googlemapstatuspopup.component.scss']\r\n})\r\nexport class GooglemapstatuspopupComponent implements OnInit {\r\n fromPage: string[];\r\n url: string;\r\n requestID: string;\r\n showScreen: string = \"vquad\";\r\n rsltType: string = \"call-events\";\r\n\r\n constructor(private http: HttpClient, public dialogBox: MatDialogRef, @Optional() @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.fromPage = data.pageValue;\r\n //debugger;\r\n if (data.pageValue.split('$')[1] == \"OFF\") {//predefined config off\r\n let eventdata = data.pageValue.split('$')[0];\r\n this.requestID = eventdata.split('@')[0];\r\n if (eventdata.split('@')[1] == \"mobileapp\")\r\n this.showScreen = \"mobileapp\";//eventdata.split('@')[1] == \"true\" ? true : false;\r\n else if (eventdata.split('@')[1] == \"vmobileapp\")////vmobileapp\r\n this.showScreen = \"vmobileapp\"; //eventdata.split('@')[1] == \"true\" ? true : false;\r\n else\r\n this.showScreen = \"vquad\";\r\n }\r\n else {\r\n let eventdata = data.pageValue.split('$')[0];\r\n this.requestID = eventdata.split('@')[0];\r\n this.rsltType = eventdata.split('@')[1];\r\n this.showScreen = \"vquad\";\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n Close() {\r\n this.dialogBox.close();\r\n }\r\n\r\n BindVquadStatusDisplay(ID: number) {\r\n\r\n this.url = environment.urlAddress + '/api/' + 'GoogleMaps/GetMapVquadDataByID?vquadID=' + ID;\r\n\r\n this.GetVQuadStatus_Service(ID).subscribe((res: any) => {\r\n // console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //debugger;\r\n console.log(rows);\r\n\r\n\r\n });\r\n }\r\n\r\n ///////////////////////////////// Services\r\n GetVQuadStatus_Service(nodeID: number) {\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(this.url, { headers: headerOptions });\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","module.exports = \"table {\\n width: 100%;\\n overflow: auto;\\n /*table-layout:auto;*/\\n}\\n\\n/*th, td {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}*/\\n\\ntr.example-detail-row {\\n height: 0;\\n}\\n\\ntr.example-element-row:not(.example-expanded-row):hover {\\n background: whitesmoke;\\n}\\n\\ntr.example-element-row:not(.example-expanded-row):active {\\n background: #efefef;\\n}\\n\\n.example-element-row td {\\n border-bottom-width: 0;\\n}\\n\\n.example-element-detail {\\n overflow: hidden;\\n /*display: flex;*/\\n}\\n\\n.example-element-diagram {\\n min-width: 80px;\\n border: 2px solid black;\\n padding: 8px;\\n font-weight: lighter;\\n margin: 8px 0;\\n height: 104px;\\n}\\n\\n.example-element-symbol {\\n font-weight: bold;\\n font-size: 40px;\\n line-height: normal;\\n}\\n\\n.example-element-description {\\n padding: 16px;\\n}\\n\\n.example-element-description-attribution {\\n opacity: 0.5;\\n}\\n\\nth {\\n background-color: #5B9BD5;\\n}\\n\\n.th_expanded {\\n background-color: #C9DFF4;\\n padding: 4px 3px;\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n}\\n\\n.theader {\\n color: white;\\n padding: 4px 3px;\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n /*border-top: 1px solid #c6c6c6;*/\\n}\\n\\n.td_expanded {\\n padding: 4px 3px;\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n border-top: 1px solid #c6c6c6;\\n border-left: 1px solid #c6c6c6;\\n}\\n\\n.divHearder {\\n margin-left: 200px;\\n font-size: large;\\n}\\n\\n.td_Main {\\n padding: 4px 3px;\\n border-bottom: 1px solid #c6c6c6;\\n border-top: 1px solid #c6c6c6;\\n}\\n\\n.highlight {\\n color: blueviolet;\\n}\\n\\n.footer {\\n position: fixed;\\n left: 0;\\n bottom: 0;\\n width: 100%;\\n background-color: red;\\n color: white;\\n text-align: center;\\n}\\n\\n.export:hover {\\n color: black;\\n}\\n\\n/*start Radio Button*/\\n\\n/*.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}*/\\n\\n/*END Radio Button*/\\n\\n/*start checkbox*/\\n\\n/*.checkboxsize .defaultMat .mat-checkbox-inner-container {\\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n::ng-deep .mat-checkbox .mat-checkbox-frame {\\n border-color: violet;\\n top: 10px;\\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n\\n::ng-deep .mat-checkbox-checked .mat-checkbox-background,\\n::ng-deep .mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: blue !important;\\n top: 10px;\\n width: 20px;\\n height: 20px;\\n}*/\\n\\n/*::ng-deep .mat-checkbox-checked .mat-checkbox-background {\\n background-color: blue !important;\\n top: 10px;\\n width: 20px;\\n height: 20px;\\n}*/\\n\\n/*end checkbox*/\\n\\n.lineSpaceDiv {\\n height: 3px;\\n}\\n\\n/*start loader*/\\n\\n#spinner {\\n -webkit-animation: frames 1s infinite linear;\\n animation: frames 1s infinite linear;\\n background: transparent;\\n border: 0.75vw solid #FFF;\\n border-radius: 100%;\\n border-top-color: #DF691A;\\n width: 5vw;\\n height: 5vw;\\n opacity: 0.6;\\n padding: 0;\\n position: absolute;\\n z-index: 999;\\n}\\n\\n@-webkit-keyframes frames {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(359deg);\\n }\\n}\\n\\n@keyframes frames {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(359deg);\\n }\\n}\\n\\n#pause {\\n display: block;\\n background: rgba(0, 0, 0, 0.66) no-repeat 0 0;\\n width: 100%;\\n height: 100%;\\n position: fixed;\\n bottom: 0;\\n left: 0;\\n z-index: 1000;\\n}\\n\\n/*end loader*/\\n\\n.spinner_overlay {\\n position: fixed;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #fff;\\n opacity: 0.5;\\n z-index: 1000;\\n}\\n\\n.spinner {\\n position: absolute;\\n left: 50%;\\n top: 20%;\\n height: 60px;\\n width: 60px;\\n margin: 0px auto;\\n -webkit-animation: rotation 0.6s infinite linear;\\n animation: rotation 0.6s infinite linear;\\n border-left: 6px solid rgba(0, 174, 239, 0.15);\\n border-right: 6px solid rgba(0, 174, 239, 0.15);\\n border-bottom: 6px solid rgba(0, 174, 239, 0.15);\\n border-top: 6px solid rgba(0, 174, 239, 0.8);\\n border-radius: 100%;\\n}\\n\\n.labelfontweight {\\n font-weight: 500;\\n}\\n\\n.labelClass {\\n font-size: 12px;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n width: 300px;\\n white-space: nowrap;\\n}\\n\\n.dt-toolbar-row-CR {\\n display: -ms-flexbox;\\n display: flex;\\n /*margin-right: -5px;\\n margin-left: -5px;\\n margin-bottom: 1rem;*/\\n}\\n\\n.dt-toolbar-col-CR {\\n padding-right: 5px;\\n padding-left: 5px;\\n position: relative;\\n}\\n\\n.dt-toolbar-col-CR .dt-context-menu {\\n width: 170px;\\n display: none;\\n}\\n\\n.dt-toolbar-col-CR.open .dt-context-menu {\\n display: block;\\n}\\n\\n.dt-toolbar-col-CR .dt-list-menu-item.disabled,\\n.dt-toolbar-col-CR .dt-list-menu-item.disabled:hover {\\n color: silver;\\n background-color: transparent;\\n border: 0;\\n box-shadow: 0 0 0;\\n cursor: default;\\n}\\n\\n.labelClass {\\n font-size: 12px;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n font-weight: bold;\\n white-space: nowrap;\\n}\\n\\n.custom-icon::before {\\n content: none;\\n}\\n\\n.the-legend {\\n border-style: none;\\n border-width: 0;\\n font-size: 14px;\\n line-height: 20px;\\n margin-bottom: 0;\\n width: auto;\\n padding: 0 10px;\\n border: 1px solid #e0e0e0;\\n}\\n\\n.the-fieldset {\\n border: 1px solid #e0e0e0;\\n padding: 10px;\\n}\\n\\n.rowGap {\\n display: -ms-flexbox;\\n display: flex;\\n /*gap: 8px; */\\n}\\n\\n/*https: //codepen.io/a7med-hussien/pen/PNbxNZ*/\\n\\n.open {\\n left: 0 !important;\\n transition: all 0.4s ease;\\n}\\n\\nheader {\\n left: -300px;\\n position: relative;\\n transition: all 0.4s ease;\\n}\\n\\ndiv#toggle1, div#toggle2 {\\n -ms-transform: rotate(-90deg);\\n transform: rotate(-90deg);\\n position: absolute;\\n top: 60px;\\n left: 234px;\\n background: #62778d;\\n padding: 10px;\\n text-align: center;\\n width: 150px;\\n color: #fff;\\n cursor: pointer;\\n border-bottom-left-radius: 6px;\\n border-bottom-right-radius: 6px;\\n box-shadow: -4px 5px 20px -5px #787979;\\n}\\n\\n.menuPane {\\n position: relative;\\n width: 300px;\\n background-color: #fff;\\n border-radius: 6px 0;\\n box-shadow: 0 6px 20px -9px #263238;\\n /*top: 100px;*/\\n}\\n\\n::ng-deep.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination {\\n display: none !important;\\n}\\n\\n::ng-deep .mat-tab-list .mat-tab-labels .mat-tab-label-active {\\n color: #5000FE;\\n background-color: white;\\n font-weight: bolder;\\n font-size: 14px;\\n}\\n\\n::ng-deep .mat-tab-list .mat-tab-labels {\\n color: #5000FE;\\n font-weight: bolder;\\n font-size: 14px;\\n}\\n\\n.ng-waveform {\\n height: 300px;\\n /* Adjust the height as needed */\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvb3V0cHV0LXJlc3VsdHMvaXRzdmlld2VyL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9zcmNcXGFwcFxcb3V0cHV0LXJlc3VsdHNcXGl0c3ZpZXdlclxcaXRzdmlld2VyLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9vdXRwdXQtcmVzdWx0cy9pdHN2aWV3ZXIvaXRzdmlld2VyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsV0FBQTtFQUNBLGNBQUE7RUFDQSxxQkFBQTtBQ0NGOztBRENBOzs7O0VBQUE7O0FBS0E7RUFDRSxTQUFBO0FDRUY7O0FEQ0E7RUFDRSxzQkFBQTtBQ0VGOztBRENBO0VBQ0UsbUJBQUE7QUNFRjs7QURDQTtFQUNFLHNCQUFBO0FDRUY7O0FEQ0E7RUFDRSxnQkFBQTtFQUNBLGlCQUFBO0FDRUY7O0FEQ0E7RUFDRSxlQUFBO0VBQ0EsdUJBQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7RUFDQSxhQUFBO0VBQ0EsYUFBQTtBQ0VGOztBRENBO0VBQ0UsaUJBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7QUNFRjs7QURDQTtFQUNFLGFBQUE7QUNFRjs7QURDQTtFQUNFLFlBQUE7QUNFRjs7QURDQTtFQUNFLHlCQUFBO0FDRUY7O0FEQ0E7RUFDRSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0EsK0JBQUE7RUFDQSxnQ0FBQTtBQ0VGOztBRENBO0VBQ0UsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsK0JBQUE7RUFDQSxnQ0FBQTtFQUNBLGlDQUFBO0FDRUY7O0FER0E7RUFDRSxnQkFBQTtFQUNBLCtCQUFBO0VBQ0EsZ0NBQUE7RUFDQSw2QkFBQTtFQUNBLDhCQUFBO0FDQUY7O0FER0E7RUFDRSxrQkFBQTtFQUNBLGdCQUFBO0FDQUY7O0FER0E7RUFDRSxnQkFBQTtFQUNBLGdDQUFBO0VBQ0EsNkJBQUE7QUNBRjs7QURH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QUE7RUFDQSxlQUFBO0FDZEY7O0FEa0JBO0VBQ0UsYUFBQTtFQUFlLGdDQUFBO0FDZGpCIiwiZmlsZSI6InNyYy9hcHAvb3V0cHV0LXJlc3VsdHMvaXRzdmlld2VyL2l0c3ZpZXdlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbInRhYmxlIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBvdmVyZmxvdzogYXV0bztcclxuICAvKnRhYmxlLWxheW91dDphdXRvOyovXHJcbn1cclxuLyp0aCwgdGQge1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufSovXHJcbnRyLmV4YW1wbGUtZGV0YWlsLXJvdyB7XHJcbiAgaGVpZ2h0OiAwO1xyXG59XHJcblxyXG50ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1leHBhbmRlZC1yb3cpOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiB3aGl0ZXNtb2tlO1xyXG59XHJcblxyXG50ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1leHBhbmRlZC1yb3cpOmFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZDogI2VmZWZlZjtcclxufVxyXG5cclxuLmV4YW1wbGUtZWxlbWVudC1yb3cgdGQge1xyXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XHJcbn1cclxuXHJcbi5leGFtcGxlLWVsZW1lbnQtZGV0YWlsIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIC8qZGlzcGxheTogZmxleDsqL1xyXG59XHJcblxyXG4uZXhhbXBsZS1lbGVtZW50LWRpYWdyYW0ge1xyXG4gIG1pbi13aWR0aDogODBweDtcclxuICBib3JkZXI6IDJweCBzb2xpZCBibGFjaztcclxuICBwYWRkaW5nOiA4cHg7XHJcbiAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XHJcbiAgbWFyZ2luOiA4cHggMDtcclxuICBoZWlnaHQ6IDEwNHB4O1xyXG59XHJcblxyXG4uZXhhbXBsZS1lbGVtZW50LXN5bWJvbCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zaXplOiA0MHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbn1cclxuXHJcbi5leGFtcGxlLWVsZW1lbnQtZGVzY3JpcHRpb24ge1xyXG4gIHBhZGRpbmc6IDE2cHg7XHJcbn1cclxuXHJcbi5leGFtcGxlLWVsZW1lbnQtZGVzY3JpcHRpb24tYXR0cmlidXRpb24ge1xyXG4gIG9wYWNpdHk6IDAuNTtcclxufVxyXG5cclxudGgge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM1QjlCRDU7XHJcbn1cclxuXHJcbi50aF9leHBhbmRlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0M5REZGNDtcclxuICBwYWRkaW5nOiA0cHggM3B4O1xyXG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjNmM2YzY7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNmM2YzY7XHJcbn1cclxuXHJcbi50aGVhZGVyIHtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgcGFkZGluZzogNHB4IDNweDtcclxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYzZjNmM2O1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzZjNmM2O1xyXG4gIC8qYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjNmM2YzY7Ki9cclxufVxyXG5cclxuXHJcblxyXG4udGRfZXhwYW5kZWQge1xyXG4gIHBhZGRpbmc6IDRweCAzcHg7XHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2M2YzZjNjtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M2YzZjNjtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2M2YzZjNjtcclxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjNmM2YzY7XHJcbn1cclxuXHJcbi5kaXZIZWFyZGVyIHtcclxuICBtYXJnaW4tbGVmdDogMjAwcHg7XHJcbiAgZm9udC1zaXplOiBsYXJnZTtcclxufVxyXG5cclxuLnRkX01haW4ge1xyXG4gIHBhZGRpbmc6IDRweCAzcHg7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNmM2YzY7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjNmM2YzY7XHJcbn1cclxuXHJcbi5oaWdobGlnaHQge1xyXG4gIGNvbG9yOiBibHVldmlvbGV0O1xyXG59XHJcblxyXG4uZm9vdGVyIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgbGVmdDogMDtcclxuICBib3R0b206IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5leHBvcnQ6aG92ZXIge1xyXG4gIGNvbG9yOiBibGFjaztcclxufVxyXG5cclxuLypzdGFydCBSYWRpbyBCdXR0b24qL1xyXG4vKi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xyXG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xyXG59Ki9cclxuLypFTkQgUmFkaW8gQnV0dG9uKi9cclxuXHJcbi8qc3RhcnQgY2hlY2tib3gqL1xyXG4vKi5jaGVja2JveHNpemUgLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXIge1xyXG4gIHdpZHRoOiAyMHB4O1xyXG4gIGhlaWdodDogMjBweDtcclxufVxyXG5cclxuXHJcbjo6bmctZGVlcCAubWF0LWNoZWNrYm94IC5tYXQtY2hlY2tib3gtZnJhbWUge1xyXG4gIGJvcmRlci1jb2xvcjogdmlvbGV0O1xyXG4gIHRvcDogMTBweDtcclxuICB3aWR0aDogMjBweDtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbn1cclxuXHJcblxyXG5cclxuOjpuZy1kZWVwIC5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsXHJcbjo6bmctZGVlcCAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlICFpbXBvcnRhbnQ7XHJcbiAgdG9wOiAxMHB4O1xyXG4gIHdpZHRoOiAyMHB4O1xyXG4gIGhlaWdodDogMjBweDtcclxufSovXHJcblxyXG5cclxuXHJcblxyXG4vKjo6bmctZGVlcCAubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlICFpbXBvcnRhbnQ7XHJcbiAgdG9wOiAxMHB4O1xyXG4gIHdpZHRoOiAyMHB4O1xyXG4gIGhlaWdodDogMjBweDtcclxufSovXHJcbi8qZW5kIGNoZWNrYm94Ki9cclxuXHJcbi5saW5lU3BhY2VEaXYge1xyXG4gIGhlaWdodDogM3B4O1xyXG59XHJcblxyXG4vKnN0YXJ0IGxvYWRlciovXHJcbiNzcGlubmVyIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogZnJhbWVzIDFzIGluZmluaXRlIGxpbmVhcjtcclxuICBhbmltYXRpb246IGZyYW1lcyAxcyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyOiAwLjc1dncgc29saWQgI0ZGRjtcclxuICBib3JkZXItcmFkaXVzOiAxMDAlO1xyXG4gIGJvcmRlci10b3AtY29sb3I6ICNERjY5MUE7XHJcbiAgd2lkdGg6IDV2dztcclxuICBoZWlnaHQ6IDV2dztcclxuICBvcGFjaXR5OiAuNjtcclxuICBwYWRkaW5nOiAwO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB6LWluZGV4OiA5OTk7XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgZnJhbWVzIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgfVxyXG5cclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XHJcbiAgfVxyXG59XHJcblxyXG4jcGF1c2Uge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42Nikgbm8tcmVwZWF0IDAgMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIGJvdHRvbTogMDtcclxuICBsZWZ0OiAwO1xyXG4gIHotaW5kZXg6IDEwMDA7XHJcbn1cclxuXHJcbi8qZW5kIGxvYWRlciovXHJcblxyXG4uc3Bpbm5lcl9vdmVybGF5IHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgb3BhY2l0eTogMC41O1xyXG4gIHotaW5kZXg6IDEwMDA7XHJcbn1cclxuXHJcbi5zcGlubmVyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogNTAlO1xyXG4gIHRvcDogMjAlO1xyXG4gIGhlaWdodDogNjBweDtcclxuICB3aWR0aDogNjBweDtcclxuICBtYXJnaW46IDBweCBhdXRvO1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiByb3RhdGlvbiAuNnMgaW5maW5pdGUgbGluZWFyO1xyXG4gIC1tb3otYW5pbWF0aW9uOiByb3RhdGlvbiAuNnMgaW5maW5pdGUgbGluZWFyO1xyXG4gIC1vLWFuaW1hdGlvbjogcm90YXRpb24gLjZzIGluZmluaXRlIGxpbmVhcjtcclxuICBhbmltYXRpb246IHJvdGF0aW9uIC42cyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCByZ2JhKDAsMTc0LDIzOSwuMTUpO1xyXG4gIGJvcmRlci1yaWdodDogNnB4IHNvbGlkIHJnYmEoMCwxNzQsMjM5LC4xNSk7XHJcbiAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkIHJnYmEoMCwxNzQsMjM5LC4xNSk7XHJcbiAgYm9yZGVyLXRvcDogNnB4IHNvbGlkIHJnYmEoMCwxNzQsMjM5LC44KTtcclxuICBib3JkZXItcmFkaXVzOiAxMDAlO1xyXG59XHJcblxyXG4ubGFiZWxmb250d2VpZ2h0IHtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG59XHJcblxyXG4ubGFiZWxDbGFzcyB7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xyXG4gIHdpZHRoOiAzMDBweDtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcblxyXG4uZHQtdG9vbGJhci1yb3ctQ1Ige1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgLyptYXJnaW4tcmlnaHQ6IC01cHg7XHJcbiAgICBtYXJnaW4tbGVmdDogLTVweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDFyZW07Ki9cclxufVxyXG5cclxuLmR0LXRvb2xiYXItY29sLUNSIHtcclxuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4uZHQtdG9vbGJhci1jb2wtQ1IgLmR0LWNvbnRleHQtbWVudSB7XHJcbiAgd2lkdGg6IDE3MHB4O1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5kdC10b29sYmFyLWNvbC1DUi5vcGVuIC5kdC1jb250ZXh0LW1lbnUge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4uZHQtdG9vbGJhci1jb2wtQ1IgLmR0LWxpc3QtbWVudS1pdGVtLmRpc2FibGVkLFxyXG4uZHQtdG9vbGJhci1jb2wtQ1IgLmR0LWxpc3QtbWVudS1pdGVtLmRpc2FibGVkOmhvdmVyIHtcclxuICBjb2xvcjogc2lsdmVyO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlcjogMDtcclxuICBib3gtc2hhZG93OiAwIDAgMDtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbn1cclxuXHJcbi5sYWJlbENsYXNzIHtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG5cclxuXHJcbi5jdXN0b20taWNvbjo6YmVmb3JlIHtcclxuICBjb250ZW50OiBub25lO1xyXG59XHJcblxyXG5cclxuLnRoZS1sZWdlbmQge1xyXG4gIGJvcmRlci1zdHlsZTogbm9uZTtcclxuICBib3JkZXItd2lkdGg6IDA7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgd2lkdGg6IGF1dG87XHJcbiAgcGFkZGluZzogMCAxMHB4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XHJcbn1cclxuXHJcbi50aGUtZmllbGRzZXQge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XHJcbiAgcGFkZGluZzogMTBweDtcclxufVxyXG5cclxuLnJvd0dhcCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICAvKmdhcDogOHB4OyAgKi9cclxuXHJcbn1cclxuXHJcblxyXG4vKmh0dHBzOiAvL2NvZGVwZW4uaW8vYTdtZWQtaHVzc2llbi9wZW4vUE5ieE5aKi9cclxuLm9wZW4ge1xyXG4gIGxlZnQ6IDAgIWltcG9ydGFudDtcclxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XHJcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcclxuICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xyXG59XHJcblxyXG5oZWFkZXIge1xyXG4gIGxlZnQ6IC0zMDBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xyXG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcclxufVxyXG5cclxuZGl2I3RvZ2dsZTEsIGRpdiN0b2dnbGUyIHtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDYwcHg7XHJcbiAgbGVmdDogMjM0cHg7XHJcbiAgYmFja2dyb3VuZDogIzYyNzc4ZDtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB3aWR0aDogMTUwcHg7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDtcclxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xyXG4gIGJveC1zaGFkb3c6IC00cHggNXB4IDIwcHggLTVweCAjNzg3OTc5O1xyXG59XHJcblxyXG4ubWVudVBhbmUge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogMzAwcHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBib3JkZXItcmFkaXVzOiA2cHggMDtcclxuICBib3gtc2hhZG93OiAwIDZweCAyMHB4IC05cHggIzI2MzIzODtcclxuICAvKnRvcDogMTAwcHg7Ki9cclxufVxyXG5cclxuXHJcbjo6bmctZGVlcC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNvbnRyb2xzLWVuYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xyXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgIFxyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC10YWItbGlzdCAubWF0LXRhYi1sYWJlbHMgLm1hdC10YWItbGFiZWwtYWN0aXZlIHtcclxuICBjb2xvcjogIzUwMDBGRTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICBmb250LXdlaWdodDpib2xkZXI7XHJcbiAgZm9udC1zaXplOjE0cHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXRhYi1saXN0IC5tYXQtdGFiLWxhYmVscyB7XHJcbiAgY29sb3I6ICM1MDAwRkU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcclxuICBmb250LXNpemU6IDE0cHg7XHJcbn1cclxuXHJcblxyXG4ubmctd2F2ZWZvcm0ge1xyXG4gIGhlaWdodDogMzAwcHg7IC8qIEFkanVzdCB0aGUgaGVpZ2h0IGFzIG5lZWRlZCAqL1xyXG59XHJcbiIsInRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAvKnRhYmxlLWxheW91dDphdXRvOyovXG59XG5cbi8qdGgsIHRkIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59Ki9cbnRyLmV4YW1wbGUtZGV0YWlsLXJvdyB7XG4gIGhlaWdodDogMDtcbn1cblxudHIuZXhhbXBsZS1lbGVtZW50LXJvdzpub3QoLmV4YW1wbGUtZXhwYW5kZWQtcm93KTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHdoaXRlc21va2U7XG59XG5cbnRyLmV4YW1wbGUtZWxlbWVudC1yb3c6bm90KC5leGFtcGxlLWV4cGFuZGVkLXJvdyk6YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI2VmZWZlZjtcbn1cblxuLmV4YW1wbGUtZWxlbWVudC1yb3cgdGQge1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xufVxuXG4uZXhhbXBsZS1lbGVtZW50LWRldGFpbCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8qZGlzcGxheTogZmxleDsqL1xufVxuXG4uZXhhbXBsZS1lbGVtZW50LWRpYWdyYW0ge1xuICBtaW4td2lkdGg6IDgwcHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrO1xuICBwYWRkaW5nOiA4cHg7XG4gIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xuICBtYXJnaW46IDhweCAwO1xuICBoZWlnaHQ6IDEwNHB4O1xufVxuXG4uZXhhbXBsZS1lbGVtZW50LXN5bWJvbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDQwcHg7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi5leGFtcGxlLWVsZW1lbnQtZGVzY3JpcHRpb24ge1xuICBwYWRkaW5nOiAxNnB4O1xufVxuXG4uZXhhbXBsZS1lbGVtZW50LWRlc2NyaXB0aW9uLWF0dHJpYnV0aW9uIHtcbiAgb3BhY2l0eTogMC41O1xufVxuXG50aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1QjlCRDU7XG59XG5cbi50aF9leHBhbmRlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDOURGRjQ7XG4gIHBhZGRpbmc6IDRweCAzcHg7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjNmM2YzY7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzZjNmM2O1xufVxuXG4udGhlYWRlciB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogNHB4IDNweDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2M2YzZjNjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNmM2YzY7XG4gIC8qYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjNmM2YzY7Ki9cbn1cblxuLnRkX2V4cGFuZGVkIHtcbiAgcGFkZGluZzogNHB4IDNweDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2M2YzZjNjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNmM2YzY7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYzZjNmM2O1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjNmM2YzY7XG59XG5cbi5kaXZIZWFyZGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDIwMHB4O1xuICBmb250LXNpemU6IGxhcmdlO1xufVxuXG4udGRfTWFpbiB7XG4gIHBhZGRpbmc6IDRweCAzcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzZjNmM2O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2M2YzZjNjtcbn1cblxuLmhpZ2hsaWdodCB7XG4gIGNvbG9yOiBibHVldmlvbGV0O1xufVxuXG4uZm9vdGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZXhwb3J0OmhvdmVyIHtcbiAgY29sb3I6IGJsYWNrO1xufVxuXG4vKnN0YXJ0IFJhZGlvIEJ1dHRvbiovXG4vKi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn0qL1xuLypFTkQgUmFkaW8gQnV0dG9uKi9cbi8qc3RhcnQgY2hlY2tib3gqL1xuLyouY2hlY2tib3hzaXplIC5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn1cblxuXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgYm9yZGVyLWNvbG9yOiB2aW9sZXQ7XG4gIHRvcDogMTBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn1cblxuXG5cbjo6bmctZGVlcCAubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLFxuOjpuZy1kZWVwIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlICFpbXBvcnRhbnQ7XG4gIHRvcDogMTBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn0qL1xuLyo6Om5nLWRlZXAgLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsdWUgIWltcG9ydGFudDtcbiAgdG9wOiAxMHB4O1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufSovXG4vKmVuZCBjaGVja2JveCovXG4ubGluZVNwYWNlRGl2IHtcbiAgaGVpZ2h0OiAzcHg7XG59XG5cbi8qc3RhcnQgbG9hZGVyKi9cbiNzcGlubmVyIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGZyYW1lcyAxcyBpbmZpbml0ZSBsaW5lYXI7XG4gIGFuaW1hdGlvbjogZnJhbWVzIDFzIGluZmluaXRlIGxpbmVhcjtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMC43NXZ3IHNvbGlkICNGRkY7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGJvcmRlci10b3AtY29sb3I6ICNERjY5MUE7XG4gIHdpZHRoOiA1dnc7XG4gIGhlaWdodDogNXZ3O1xuICBvcGFjaXR5OiAwLjY7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogOTk5O1xufVxuXG5Aa2V5ZnJhbWVzIGZyYW1lcyB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICB9XG59XG4jcGF1c2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjY2KSBuby1yZXBlYXQgMCAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTAwMDtcbn1cblxuLyplbmQgbG9hZGVyKi9cbi5zcGlubmVyX292ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgb3BhY2l0eTogMC41O1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG4uc3Bpbm5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDIwJTtcbiAgaGVpZ2h0OiA2MHB4O1xuICB3aWR0aDogNjBweDtcbiAgbWFyZ2luOiAwcHggYXV0bztcbiAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0aW9uIDAuNnMgaW5maW5pdGUgbGluZWFyO1xuICAtbW96LWFuaW1hdGlvbjogcm90YXRpb24gMC42cyBpbmZpbml0ZSBsaW5lYXI7XG4gIC1vLWFuaW1hdGlvbjogcm90YXRpb24gMC42cyBpbmZpbml0ZSBsaW5lYXI7XG4gIGFuaW1hdGlvbjogcm90YXRpb24gMC42cyBpbmZpbml0ZSBsaW5lYXI7XG4gIGJvcmRlci1sZWZ0OiA2cHggc29saWQgcmdiYSgwLCAxNzQsIDIzOSwgMC4xNSk7XG4gIGJvcmRlci1yaWdodDogNnB4IHNvbGlkIHJnYmEoMCwgMTc0LCAyMzksIDAuMTUpO1xuICBib3JkZXItYm90dG9tOiA2cHggc29saWQgcmdiYSgwLCAxNzQsIDIzOSwgMC4xNSk7XG4gIGJvcmRlci10b3A6IDZweCBzb2xpZCByZ2JhKDAsIDE3NCwgMjM5LCAwLjgpO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuXG4ubGFiZWxmb250d2VpZ2h0IHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLmxhYmVsQ2xhc3Mge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICB3aWR0aDogMzAwcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5kdC10b29sYmFyLXJvdy1DUiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qbWFyZ2luLXJpZ2h0OiAtNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07Ki9cbn1cblxuLmR0LXRvb2xiYXItY29sLUNSIHtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZHQtdG9vbGJhci1jb2wtQ1IgLmR0LWNvbnRleHQtbWVudSB7XG4gIHdpZHRoOiAxNzBweDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmR0LXRvb2xiYXItY29sLUNSLm9wZW4gLmR0LWNvbnRleHQtbWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZHQtdG9vbGJhci1jb2wtQ1IgLmR0LWxpc3QtbWVudS1pdGVtLmRpc2FibGVkLFxuLmR0LXRvb2xiYXItY29sLUNSIC5kdC1saXN0LW1lbnUtaXRlbS5kaXNhYmxlZDpob3ZlciB7XG4gIGNvbG9yOiBzaWx2ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGJveC1zaGFkb3c6IDAgMCAwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5sYWJlbENsYXNzIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5jdXN0b20taWNvbjo6YmVmb3JlIHtcbiAgY29udGVudDogbm9uZTtcbn1cblxuLnRoZS1sZWdlbmQge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIGJvcmRlci13aWR0aDogMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcbn1cblxuLnRoZS1maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5yb3dHYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICAvKmdhcDogOHB4OyAgKi9cbn1cblxuLypodHRwczogLy9jb2RlcGVuLmlvL2E3bWVkLWh1c3NpZW4vcGVuL1BOYnhOWiovXG4ub3BlbiB7XG4gIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xuICAtby10cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xufVxuXG5oZWFkZXIge1xuICBsZWZ0OiAtMzAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xuICAtby10cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xufVxuXG5kaXYjdG9nZ2xlMSwgZGl2I3RvZ2dsZTIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNjBweDtcbiAgbGVmdDogMjM0cHg7XG4gIGJhY2tncm91bmQ6ICM2Mjc3OGQ7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDE1MHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA2cHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA2cHg7XG4gIGJveC1zaGFkb3c6IC00cHggNXB4IDIwcHggLTVweCAjNzg3OTc5O1xufVxuXG4ubWVudVBhbmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAzMDBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogNnB4IDA7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggLTlweCAjMjYzMjM4O1xuICAvKnRvcDogMTAwcHg7Ki9cbn1cblxuOjpuZy1kZWVwLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY29udHJvbHMtZW5hYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuOjpuZy1kZWVwIC5tYXQtdGFiLWxpc3QgLm1hdC10YWItbGFiZWxzIC5tYXQtdGFiLWxhYmVsLWFjdGl2ZSB7XG4gIGNvbG9yOiAjNTAwMEZFO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG46Om5nLWRlZXAgLm1hdC10YWItbGlzdCAubWF0LXRhYi1sYWJlbHMge1xuICBjb2xvcjogIzUwMDBGRTtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubmctd2F2ZWZvcm0ge1xuICBoZWlnaHQ6IDMwMHB4O1xuICAvKiBBZGp1c3QgdGhlIGhlaWdodCBhcyBuZWVkZWQgKi9cbn0iXX0= */\"","import { Component, OnInit, Output, EventEmitter, ViewChild, ViewChildren, ViewEncapsulation, ElementRef, ChangeDetectorRef, OnDestroy, Renderer2, HostListener, QueryList, AfterViewInit } from '@angular/core';\r\nimport { animate, state, style, transition, trigger, group } from '@angular/animations';\r\nimport { DemoService } from '../../shared/demo.service';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\n//import { request } from 'http';\r\n//import { MatTableDataSource } from '@angular/material';\r\n//import { DataSource } from '@angular/cdk/table';\r\nimport { MatDialog, MatDialogConfig, PageEvent, MatPaginator, fadeInContent } from '@angular/material';\r\n//import { VquadbtfxoComponent } from 'src/app/statistics/network-status/vquadbtfxo/vquadbtfxo.component';\r\nimport { CommonFilter } from 'src/app/shared/models/Common/common-filter';\r\n//import { parse } from 'querystring';\r\n//import { NWSTAT_VQUAD } from 'src/app/shared/models/NWSTAT_VQUAD';\r\n//import { NWSTAT_VQUAD_CENTRALIPS } from 'src/app/shared/models/NWSTAT_VQUAD_CENTRALIPS';\r\n//import { SelectionModel } from '@angular/cdk/collections';\r\n//import { ConfirmDialogComponent } from 'src/app/shared/components/confirm-dialog/confirm-dialog.component';\r\nimport { environment } from 'src/environments/environment';\r\n//import { Chart, ChartType, ChartOptions } from 'chart.js';\r\n//import { ChartsModule } from 'ng2-charts';\r\n//import { strictEqual } from 'assert';\r\n//import { E } from '@angular/cdk/keycodes';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n//import { SelectItem, Keys } from 'lib/common';\r\nimport { rsltTypeInTitle } from 'src/app/shared/functions/title';\r\nimport { fromEvent, Observable, Subscription } from 'rxjs';\r\nimport { DataFilter } from 'lib/ng-data-table/base';\r\nimport { DatePipe } from '@angular/common';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\nimport html2canvas from 'html2canvas';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\n//import WaveSurfer from 'wavesurfer.js';\r\n//import { saveAs } from 'file-saver';\r\n//import * as fs from 'fs';\r\n//import { catchError } from 'rxjs/operators';\r\nimport { setTime } from 'ngx-bootstrap/chronos/utils/date-setters';\r\nimport { ITimeUpdateEvent, NgWaveformComponent, IRegionPositions } from 'ng-waveform';\r\nimport { AudioPlayerPopupComponent } from '../audio-player-popup/audio-player-popup.component';\r\nimport { SelectItem } from 'lib/common';\r\nimport { parse } from 'querystring';\r\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\r\nimport { MatAutocomplete, MatAutocompleteTrigger } from '@angular/material';\r\nimport { FormControl } from '@angular/forms';\r\nimport { catchError } from 'rxjs/operators';\r\n//import { Path } from 'leaflet';\r\n\r\n//declare var WaveSurfer;\r\n\r\n@Component({\r\n selector: 'app-itsviewer',\r\n templateUrl: './itsviewer.component.html',\r\n styleUrls: ['./itsviewer.component.scss']\r\n})\r\nexport class ITSViewerComponent implements OnInit {\r\n pcmData: ArrayBuffer;\r\n wavUrl: SafeUrl;\r\n audioURL: string = \"/Webviewer/assets/audio/audioTemp.wav\";\r\n\r\n clearAllFiltersAction: boolean = true;\r\n actionsMessage: string = 'Actions';\r\n modifyFiltersMessage: string = 'Modify filters';\r\n clearFiltersMessage: string = 'Clear all filters';\r\n isFilters: boolean = true;\r\n hasFilters: boolean;\r\n // boolean variable to track mouse state\r\n isMouseOver = false;\r\n\r\n //susheel \r\n rsltType: string = \"itsviewer\";\r\n rsltTypeTS = '-1';\r\n TSSelected: number;\r\n AutoRefreshInfo: any;\r\n title: string = \"ITS Viewer\";\r\n staticScreen = true;\r\n @Output() childTitleEvent = new EventEmitter();\r\n xaxis: any;\r\n yaxis: any;\r\n dx: any;\r\n dy: any;\r\n distsqrt: any;\r\n distsqrtxy: any;\r\n\r\n baseUrl: string;\r\n url: string;\r\n isLoading = false;\r\n noRecordFound = false;\r\n private commonFilter: CommonFilter;\r\n private dataFilter: DataFilter;\r\n private subscriptions: Subscription[] = [];\r\n filterEventIDSelected = false;\r\n delColSelected = false;\r\n AllGeneralFilter = [];\r\n clearAllFiltersBool = false;\r\n delFilterColName = '';\r\n filters = {};\r\n //delFilterColName = '';\r\n filtersWithEventID = {};\r\n interval;\r\n\r\n name = 'Angular';\r\n pointSize = 8;\r\n element: Element;\r\n root: Element;\r\n ctx: any;\r\n canvas: any;\r\n selectedIVQFile: File = null;\r\n fileUPImage: File = null;\r\n fileUPRTS: File = null;\r\n fileUPIVQ: File = null;\r\n fileUPPCM: File = null;\r\n selectedRTSFileToUpload: File = null;\r\n selectedAllPCMFiles: File[] = [];\r\n imageURL: any;\r\n showITSMap: boolean = false;\r\n showImageError: boolean = false;\r\n ShowImageErrorMsg: string = \"\";\r\n showRTSFileError: boolean = false;\r\n ShowRTSFileErrorMsg: string = \"\";\r\n showIVQFileError: boolean = false;\r\n ShowIVQFileErrorMsg: string = \"\";\r\n showPCMFileError: boolean = false;\r\n ShowPCMFileErrorMsg: string = \"\";\r\n selectedImageFile: File = null;\r\n modelPinColorExcellent: string = \"#008040\";\r\n modelPinColorGood: string = \"#00FF00\";\r\n modelPinColorFair: string = \"#004080\";\r\n modelPinColorPoor: string = \"#FF0000\";\r\n modelPinColorPass: string = \"#008040\";\r\n modelPinColorFail: string = \"#004080\";\r\n editingPinColor: boolean = true;\r\n excellentScore: number = 4;\r\n goodScrore: number = 3;\r\n fairScore: number = 2;\r\n poorScore: number = 1;\r\n daqScore: number = 0;\r\n filteredDAQPesqScore: any;\r\n selectedTab: string = \"VQT\";\r\n selectedTabIndex: string = \"0\"\r\n showRating: boolean = false;\r\n showVQT: boolean = true;\r\n showLeftPanel: boolean = true;\r\n colorRatingError: string = \"\";\r\n imageFileName: string = \"\";\r\n rtsFileName: string = \"\";\r\n ivqFileName: string = \"\";\r\n firstTimeFunctionCall: boolean = false;\r\n daqScoreResult: string = \"\";\r\n windowMinimized: boolean = false;\r\n pcmFolderName: string = \"\";// \"C:\\\\Users\\\\Elumalai\\\\Desktop\\\\ICON\\\\POLQANB\";\r\n selectedSampleRate: string[] = ['8000'];\r\n selectedFilter: string = \"Remote\";\r\n isRemoteSystem: boolean = true;\r\n isAudioChecked: boolean = false;\r\n isSaveITSFilePath: boolean = false;\r\n isPCMFolderPath: boolean = false;\r\n\r\n isPlaying: boolean = false;\r\n SelectedImageFileIUpload_RemoteSystem: File = null;\r\n SelectedIVQFileUpload_RemoteSystem: File = null;\r\n SelectedImageFile_RemoteSystem: string = \"\";\r\n SelectedRTSFile_RemoteSystem: string = \"\";\r\n SelectedIVQFile_RemoteSystem: string = \"\";\r\n imageFileName_RemoteSystem: string = \"\\\\\\\\192.168.1.41\\\\Shared WvSQL\\\\ITS\\\\ITS\\\\POLQA\\\\Industrial Style Office.jpg\";\r\n rtsFileName_RemoteSystem: string = \"\\\\\\\\192.168.1.41\\\\Shared WvSQL\\\\ITS\\\\ITS\\\\POLQA\\\\Office3Dimage032120231756.rts\";\r\n ivqFileName_RemoteSystem: string = \"\\\\\\\\192.168.1.41\\\\Shared WvSQL\\\\ITS\\\\ITS\\\\POLQA\\\\Office3Dimage032120231756.ivq\";\r\n pcmFolderName_RemoteSystem: string = \"C:\\\\VQT_Degraded\"; /// C:\\\\VQT_Degraded -- default server path\r\n showGeneralError: boolean = false;\r\n ShowGeneralErrorMsg: string = \"\";\r\n rtsFileData_RemoteSystem: any = [];\r\n showLoader: boolean = false;\r\n resultType = \"\";\r\n folderPath_RemoteSystem: string = \"C:\\\\Program Files (x86)\\\\GL Communications Inc\\\\VQT\\\\ITS\"; /// C:\\\\Program Files (x86)\\\\GL Communications Inc\\\\VQT\\\\ITS -- default server path\r\n imagePlaceholder = 'Select Image File';\r\n rtsPlaceholder = 'Select RTS File';\r\n ivqPlaceholder = 'Select IVQ File';\r\n pcmPlaceholder = 'Select PCM Folder';\r\n critErrorDesc: string = \"\";\r\n\r\n //@ViewChild('waveform', { static: true }) waveformElement: ElementRef;\r\n //private wavesurfer: WaveSurfer;\r\n\r\n ///////////////////////////////Region names section ------------------------- dropdown\r\n ///////// Image\r\n @ViewChild('inputImage', { static: false }) inputCtrlImage;\r\n controlImage = new FormControl();\r\n\r\n toHighlightImage: string = '';\r\n imageNamesObservable: string[];\r\n imageNames: string[] = [];\r\n selectedImageNames: string[] = [];\r\n imageNameDetailList = [];\r\n\r\n modelImageName: string = \"\";\r\n editingImageName: boolean = true;\r\n critErrorsImageName: boolean = false;\r\n\r\n modelImageColor: string = \"#ffffff\";\r\n editingImageColor: boolean = true;\r\n\r\n ////////// RTS\r\n @ViewChild('inputRTS', { static: false }) inputCtrlRTS;\r\n controlRTS = new FormControl();\r\n\r\n toHighlightRTS: string = '';\r\n rtsNamesObservable: string[];\r\n rtsNames: string[] = [];\r\n selectedRTSNames: string[] = [];\r\n rtsNameDetailList = [];\r\n\r\n modelRTSName: string = \"\";\r\n editingRTSName: boolean = true;\r\n critErrorsRTSName: boolean = false;\r\n\r\n modelRTSColor: string = \"#ffffff\";\r\n editingRTSColor: boolean = true;\r\n\r\n ///////// IVQ\r\n @ViewChild('inputIVQ', { static: false }) inputCtrlIVQ;\r\n controlIVQ = new FormControl();\r\n\r\n toHighlightIVQ: string = '';\r\n ivqNamesObservable: string[];\r\n ivqNames: string[] = [];\r\n selectedIVQNames: string[] = [];\r\n ivqNameDetailList = [];\r\n\r\n modelIVQName: string = \"\";\r\n editingIVQName: boolean = true;\r\n critErrorsIVQName: boolean = false;\r\n\r\n modelIVQColor: string = \"#ffffff\";\r\n editingIVQColor: boolean = true;\r\n\r\n ///////// PCM\r\n @ViewChild('inputPCM', { static: false }) inputCtrlPCM;\r\n controlPCM = new FormControl();\r\n\r\n toHighlightPCM: string = '';\r\n pcmNamesObservable: string[];\r\n pcmNames: string[] = [];\r\n selectedPCMNames: string[] = [];\r\n pcmNameDetailList = [];\r\n\r\n modelPCMName: string = \"\";\r\n editingPCMName: boolean = true;\r\n critErrorsPCMName: boolean = false;\r\n\r\n modelPCMColor: string = \"#ffffff\";\r\n editingPCMColor: boolean = true;\r\n\r\n ///////////////////////////////////////////end dropdown\r\n\r\n rtsData: RTSFileData[];\r\n ivqData: IVQFileData[];\r\n //=[\r\n // {\r\n // xAxis: 0,\r\n // yAxis: 0,\r\n // eventDate: '',\r\n // iconColor: 'blue',\r\n // iconType: ''\r\n // },\r\n //]\r\n //@ViewChild('waveForm', { static: true }) audioRef: ElementRef;\r\n\r\n @ViewChild('title', { static: true }) titleRef: ElementRef;\r\n @ViewChild('fileInputImage', { static: false }) fileInputImage: ElementRef;\r\n @ViewChild('fileInputRTS', { static: false }) fileInputRTS: ElementRef;\r\n @ViewChild('fileInputIVQ', { static: false }) fileInputIVQ: ElementRef;\r\n @ViewChild('fileInputPCM', { static: false }) fileInputPCM: ElementRef;\r\n @ViewChild('legend', { static: false }) captureDiv: ElementRef;\r\n @ViewChildren(MatAutocompleteTrigger) autocompleteTriggerCollection: QueryList;\r\n\r\n //@ViewChild('waveform', { static: false }) waveform: NgWaveformComponent;\r\n\r\n ////////////////////////// Symbol info\r\n /// 30 = small triangle symbol with blue color on top rightside of square symbol\r\n /// -1 = small star symbol with blue color on top of rightside of square symbol\r\n /// 0 = only square symbol\r\n /// Inbound = big traingle symbol\r\n /// Outbound = big circle symbol\r\n /// pause = big traingle ontop of square and bigcirle on bottom of square and small traingle ontop rightside of square\r\n ///\r\n\r\n isDeskTop = true;\r\n\r\n constructor(private sanitizer: DomSanitizer, private _Activatedroute: ActivatedRoute, private windowelementRef: ElementRef, private renderer: Renderer2, private _router: Router, private http: HttpClient, private service: DemoService, public datepipe: DatePipe, private commonFilterService: CommonFilterService, private dialog: MatDialog, private cdr: ChangeDetectorRef, private responsive: BreakpointObserver) {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n\r\n\r\n\r\n _Activatedroute.params.subscribe(val => {\r\n this.rsltType = _Activatedroute.snapshot.url[1].path;\r\n this.parentEvent();\r\n });\r\n\r\n this.commonFilterService.TSType.subscribe(res => {\r\n this.commonFilter = new CommonFilter();\r\n //this.SetTimestampSearch(res);\r\n });//TsType\r\n\r\n\r\n const _broadSublisten = this.commonFilterService.listen.subscribe(res => {\r\n if (res === 'onlyCRInit' && !this.filterEventIDSelected)\r\n // this.UpdateScreen();\r\n\r\n if (this.filterEventIDSelected)\r\n this.filterEventIDSelected = false;\r\n });\r\n this.subscriptions.push(_broadSublisten);\r\n\r\n this.commonFilterService.isFilters$.subscribe(res => {\r\n this.isFilters = res;\r\n });\r\n\r\n //Do Refresh\r\n const _broadSubRefresh = this.commonFilterService.componentMethodCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //this.UpdateScreen();\r\n }\r\n );\r\n this.subscriptions.push(_broadSubRefresh);\r\n\r\n //https://stackoverflow.com/questions/57909492/does-the-subscribe-function-execute-synchronously\r\n //return this.commonFilterService.AllGeneralFilter.pipe(map(res => {\r\n //https://stackoverflow.com/questions/53741079/filter-with-json-in-angular-6\r\n const _broadSubAllGeneralFilter = this.commonFilterService.AllGeneralFilter.subscribe(res => {\r\n this.AllGeneralFilter = res;\r\n if (!this.delColSelected && !this.clearAllFiltersBool && this.AllGeneralFilter.length > 0)\r\n //this.UpdateScreen();\r\n\r\n //reset here\r\n if (this.delColSelected)\r\n this.delColSelected = false;\r\n if (this.clearAllFiltersBool)\r\n this.clearAllFiltersBool = false;\r\n\r\n this.delFilterColName = '';//reset if delete or clear all filters\r\n });\r\n this.subscriptions.push(_broadSubAllGeneralFilter);\r\n\r\n //https://medium.com/cp-massive-programming/angular-user-inheritance-to-unsubscribe-from-observables-f5617fbbd8f2\r\n //https://stackoverflow.com/questions/42951400/angular-2-behaviorsubject-avoid-with-multiple-subscription\r\n const _broadSubDeleteFilter = this.commonFilterService.DeleteFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n if (res !== '') {//IMP IMP\r\n this.delFilterColName = res;\r\n //this.UpdateScreen();\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubDeleteFilter);\r\n\r\n //const _broadSubGeneralDFFilter = this.commonFilterService.GeneralFilterDF.subscribe(res => {\r\n // //console.log('GeneralDFFilter')\r\n // this.filters = res;\r\n //});\r\n //this.subscriptions.push(_broadSubGeneralDFFilter);\r\n const _broadSubGeneralFilter = this.commonFilterService.GeneralFilter.subscribe(res => {\r\n //console.log('GeneralFilter')\r\n //console.log(res)\r\n this.filters = res;\r\n });\r\n this.subscriptions.push(_broadSubGeneralFilter);\r\n\r\n const _broadSubEventIDFilter = this.commonFilterService.GeneralEventIDFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log(res)\r\n //console.log('filtersWithEventID')\r\n //this.filterEventIDSelected = true;\r\n this.filtersWithEventID = res;\r\n //if (!this.delColSelected && !this.clearAllFiltersBool && (typeof this.filtersWithEventID == 'object' && Object.keys(this.filtersWithEventID).length > 0)) {\r\n // this.UpdateScreen();\r\n //}\r\n });\r\n this.subscriptions.push(_broadSubEventIDFilter);\r\n\r\n //Do Auto-refresh - start/stop\r\n const _broadSubAutoRefresh = this.commonFilterService.componentMethodWithArgCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.AutoRefreshInfo = res;\r\n //console.log(this.AutoRefreshInfo);\r\n\r\n if (this.AutoRefreshInfo.AutoRefStop) {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n }\r\n }\r\n else {\r\n this.interval = setInterval(() => {\r\n //console.log(this.AutoRefreshInfo.AutoRefStop);\r\n //this.UpdateScreen();\r\n }, this.AutoRefreshInfo.AutoRefSelected);\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAutoRefresh);\r\n\r\n ///// Load ITS canvas first time\r\n this.firstTimeFunctionCall = true;\r\n\r\n\r\n this.responsive.observe(['(min-width: 960px)', '(max-width: 1279.99px)', '(min-width: 1280px)', Breakpoints.Web, Breakpoints.WebLandscape, Breakpoints.WebPortrait,\r\n Breakpoints.Tablet, Breakpoints.TabletPortrait, Breakpoints.TabletLandscape,\r\n Breakpoints.Handset, Breakpoints.HandsetLandscape, Breakpoints.HandsetPortrait,\r\n Breakpoints.XSmall, Breakpoints.Small, Breakpoints.Medium, Breakpoints.Large, Breakpoints.XLarge\r\n ])\r\n .subscribe(result => {\r\n\r\n const breakpoints = result.breakpoints;\r\n if (breakpoints[Breakpoints.Tablet] || breakpoints[Breakpoints.TabletPortrait] || breakpoints[Breakpoints.TabletLandscape]\r\n || breakpoints[Breakpoints.Handset] || breakpoints[Breakpoints.HandsetPortrait] || breakpoints[Breakpoints.HandsetLandscape]\r\n || breakpoints[Breakpoints.XSmall] || breakpoints[Breakpoints.Small]) {\r\n this.isDeskTop = false;\r\n if ((breakpoints['(min-width: 960px)'] && breakpoints['(max-width: 1279.99px)']) || breakpoints['(min-width: 1280px)']) {\r\n this.isDeskTop = true;\r\n }\r\n }\r\n else if (breakpoints[Breakpoints.Medium]) {\r\n this.isDeskTop = false;\r\n }\r\n else {\r\n this.isDeskTop = true;\r\n }\r\n });\r\n\r\n }\r\n\r\n parentEvent() {\r\n ////debugger;\r\n this.title = rsltTypeInTitle(this.rsltType);\r\n this.title = \"ITS Viewer\";\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n parentRef(TSSelected) {\r\n this.TSSelected = parseInt(TSSelected);\r\n }\r\n\r\n parentAutoRef(AutoRefreshInfo) {\r\n this.TSSelected = parseInt(AutoRefreshInfo.TSSelected);\r\n this.AutoRefreshInfo = AutoRefreshInfo;\r\n }\r\n\r\n LoadExistingConfig() {\r\n /// Load ITS canvas\r\n\r\n const _itsFiles = this.commonFilterService.ITSValue.subscribe(res => {\r\n debugger;\r\n ///FirstTimecall is to check whether call is from inside the function or first time from the contructor when page loaded\r\n if (this.firstTimeFunctionCall) {\r\n this.firstTimeFunctionCall = false;\r\n if (res != null) {\r\n if (res[3] == 'Local') {\r\n this.isLoading = true;\r\n this.selectedImageFile = res[0];\r\n this.selectedRTSFileToUpload = res[1];\r\n this.selectedIVQFile = res[2];\r\n this.pcmFolderName = res[4];\r\n this.imageFileName = this.selectedImageFile.name;\r\n this.rtsFileName = this.selectedRTSFileToUpload.name;\r\n this.ivqFileName = this.selectedIVQFile.name;\r\n this.LoadImageInCanvas(this.selectedImageFile, true);\r\n this.LoadRTSInCanvas(this.selectedRTSFileToUpload, true);\r\n this.isLoading = false;\r\n }\r\n else {\r\n //this.selectedImageFile = res[0];\r\n this.isLoading = true;\r\n this.SelectedImageFileIUpload_RemoteSystem = res[0];\r\n this.rtsFileData_RemoteSystem = res[1];\r\n this.SelectedIVQFileUpload_RemoteSystem = res[2];\r\n this.imageFileName_RemoteSystem = res[3];\r\n this.SelectedImageFile_RemoteSystem = res[3].split('\\\\')[res[3].split('\\\\').length - 1];///extract only file name\r\n this.rtsFileName_RemoteSystem = res[4];/// rts file name along with full path\r\n this.SelectedRTSFile_RemoteSystem = res[4].split('\\\\')[res[4].split('\\\\').length - 1];///extract only file name\r\n this.ivqFileName_RemoteSystem = res[5];\r\n this.SelectedIVQFile_RemoteSystem = res[5].split('\\\\')[res[5].split('\\\\').length - 1];///extract only file name\r\n this.pcmFolderName_RemoteSystem = res[6];\r\n this.imageNames = res[7];\r\n this.rtsNames = res[8];\r\n this.ivqNames = res[9];\r\n this.modelImageName = res[10];\r\n this.modelRTSName = res[11];\r\n this.modelIVQName = res[12];\r\n this.selectedImageNames = [res[10]];\r\n this.selectedRTSNames = [res[11]];\r\n this.selectedIVQNames = [res[12]];\r\n\r\n if (res[13] != undefined) {\r\n this.pcmNames = res[13];\r\n this.modelPCMName = res[14];\r\n this.selectedPCMNames = [res[14]];\r\n this.isAudioChecked = true;\r\n }\r\n\r\n this.SetDefaultDropdownValue_RemoteSystem();\r\n\r\n //this.GetImageFromRemoteServerPath();\r\n this.LoadImageInCanvas(this.SelectedImageFileIUpload_RemoteSystem, true);\r\n this.FormatRTSData(this.rtsFileData_RemoteSystem, true);\r\n //this.ShowITSMap();\r\n setTimeout(() => {\r\n this.ShowITSMap();\r\n }, 1000);\r\n\r\n this.isLoading = false;\r\n\r\n }\r\n }\r\n else {\r\n this.GetITSFiles();\r\n this.GetPCMFolders();\r\n }\r\n }\r\n });\r\n this.subscriptions.push(_itsFiles);\r\n\r\n }\r\n\r\n SetDefaultDropdownValue_RemoteSystem() {\r\n\r\n this.imageNamesObservable = this.imageNames;\r\n const defaultFile = this.imageNamesObservable.find(item => item === this.modelImageName); // Set your logic here to find the default\r\n this.controlImage.setValue(defaultFile);\r\n\r\n ///// rts dropdown\r\n this.rtsNamesObservable = this.rtsNames;\r\n const defaultRTSFile = this.rtsNamesObservable.find(item => item === this.modelRTSName); // Set your logic here to find the default\r\n this.controlRTS.setValue(defaultRTSFile);\r\n\r\n ///// ivq dropdown\r\n this.ivqNamesObservable = this.ivqNames;\r\n const defaultIVQFile = this.ivqNamesObservable.find(item => item === this.modelIVQName); // Set your logic here to find the default\r\n this.controlIVQ.setValue(defaultIVQFile);\r\n if (this.modelPCMName != \"\") {\r\n ///// pcm dropdown\r\n this.pcmNamesObservable = this.pcmNames;\r\n const defaultPCMFile = this.pcmNamesObservable.find(item => item === this.modelPCMName); // Set your logic here to find the default\r\n this.controlPCM.setValue(defaultPCMFile);\r\n }\r\n }\r\n ///////////////////////////////////////////////// Start PCM to WAV\r\n\r\n //pcmFile: File;\r\n //onPCMFileChange(event) {\r\n\r\n // this.pcmFile = event.target.files[0];\r\n\r\n // this.ConvertPCMToWAV(event);\r\n // // this.convertToWav();\r\n\r\n\r\n //}\r\n\r\n //async convertToWav() {\r\n // try {\r\n // // Read PCM file as ArrayBuffer\r\n // const pcmArrayBuffer = await this.readFileAsArrayBuffer(this.pcmFile);\r\n\r\n // // Convert PCM to WAV\r\n // const wavArrayBuffer = this.convertPcmToWav(pcmArrayBuffer);\r\n\r\n // // Create Blob from WAV ArrayBuffer\r\n // const wavBlob = new Blob([wavArrayBuffer], { type: 'audio/wav' });\r\n\r\n // ////Create download link\r\n // const downloadLink = document.createElement('a');\r\n // downloadLink.href = URL.createObjectURL(wavBlob);\r\n // downloadLink.download = 'audio.wav';\r\n\r\n // // Trigger download\r\n // downloadLink.click();\r\n\r\n // // Path where you want to save the WAV file\r\n // // const filePath = '/Webviewer/assets/audio/audio444.wav';\r\n // // saveAs(wavBlob, filePath);\r\n\r\n // // Save the WAV Blob as a file\r\n\r\n // // Write the WAV data to the file\r\n // //fs.writeFile(filePath, Buffer.from(wavArrayBuffer), (err) => {\r\n // // if (err) {\r\n // // console.error('Error saving WAV file:', err);\r\n // // return;\r\n // // }\r\n // //});\r\n\r\n // } catch (error) {\r\n // console.error('Error converting to WAV:', error);\r\n // }\r\n //}\r\n\r\n //readFileAsArrayBuffer(file: File): Promise {\r\n // return new Promise((resolve, reject) => {\r\n // const reader = new FileReader();\r\n // reader.onload = () => {\r\n // resolve(reader.result as ArrayBuffer);\r\n // };\r\n // reader.onerror = reject;\r\n // reader.readAsArrayBuffer(file);\r\n // });\r\n //}\r\n\r\n //convertPcmToWav(pcmData: ArrayBuffer): ArrayBuffer {\r\n // // Implement PCM to WAV conversion logic here\r\n // // You can find JavaScript code snippets or libraries for PCM to WAV conversion\r\n // // For example, you can prepend a WAV file header to the PCM data\r\n // // Return the resulting WAV ArrayBuffer\r\n\r\n // ////sampleRate: number, This will be provided by customer either 8000, 16000 or 48000.\r\n // ////numChannels: number, This is 1 Channel(Mono) -> fixed\r\n // ////bitsPerSample: number, Signed 16 bit PCM -> fixed\r\n // ////Byte Order -> Little ending -> fixed\r\n\r\n\r\n // const pcmDataView = new DataView(pcmData);\r\n // const numChannels = 1; // Assuming mono audio\r\n // const sampleRate = 8000;//44100; // Sample rate in Hz\r\n // const bitDepth = 16; // Bits per sample\r\n // const dataSize = pcmData.byteLength;\r\n // const dataOffset = 44; // Size of the WAV header\r\n\r\n // // Create a new ArrayBuffer for the WAV data\r\n // const wavData = new ArrayBuffer(dataOffset + dataSize);\r\n // const wavDataView = new DataView(wavData);\r\n\r\n // // Write WAV header\r\n // // Chunk ID: \"RIFF\"\r\n // this.writeString(wavDataView, 0, 'RIFF');\r\n // // File size (excluding Chunk ID and Chunk Size fields)\r\n // wavDataView.setUint32(4, dataSize + 36, true);\r\n // // Format: \"WAVE\"\r\n // this.writeString(wavDataView, 8, 'WAVE');\r\n // // Subchunk 1 ID: \"fmt \"\r\n // this.writeString(wavDataView, 12, 'fmt ');\r\n // // Subchunk 1 size (16 for PCM)\r\n // wavDataView.setUint32(16, 16, true);\r\n // // Audio format (1 for PCM)\r\n // wavDataView.setUint16(20, 1, true);\r\n // // Number of channels\r\n // wavDataView.setUint16(22, numChannels, true);\r\n // // Sample rate\r\n // wavDataView.setUint32(24, sampleRate, true);\r\n // // Byte rate (SampleRate * NumChannels * BitsPerSample / 8)\r\n // wavDataView.setUint32(28, sampleRate * numChannels * (bitDepth / 8), true);\r\n // // Block align (NumChannels * BitsPerSample / 8)\r\n // wavDataView.setUint16(32, numChannels * (bitDepth / 8), true);\r\n // // Bits per sample\r\n // wavDataView.setUint16(34, bitDepth, true);\r\n // // Subchunk 2 ID: \"data\"\r\n // this.writeString(wavDataView, 36, 'data');\r\n // // Subchunk 2 size (dataSize)\r\n // wavDataView.setUint32(40, dataSize, true);\r\n\r\n // // Copy PCM data to WAV data\r\n // const pcmDataUint8 = new Uint8Array(pcmData);\r\n // const wavDataUint8 = new Uint8Array(wavData, dataOffset);\r\n // wavDataUint8.set(pcmDataUint8);\r\n\r\n // return wavData;\r\n //}\r\n\r\n //writeString(view: DataView, offset: number, str: string) {\r\n // for (let i = 0; i < str.length; i++) {\r\n // view.setUint8(offset + i, str.charCodeAt(i));\r\n // }\r\n //}\r\n\r\n //togglePlayback() {\r\n // this.isPlaying = !this.isPlaying;\r\n // if (this.isPlaying) {\r\n // // Start playback\r\n // this.onAudioPlay();\r\n // } else {\r\n // // Pause playback\r\n // this.onAudioPause();\r\n // }\r\n //}\r\n\r\n //onAudioPlay() {\r\n // //this.audio = new Audio('/Webviewer/assets/audio/audioTest.wav');\r\n // //this.audio.play();\r\n // this.waveform.play(); \r\n //}\r\n\r\n //onAudioPause() {\r\n // //this.audio.pause();\r\n // this.waveform.pause();\r\n //}\r\n\r\n //onAudioStop() {\r\n // //this.audio.pause();\r\n // //this.audio.currentTime = 0;\r\n // // Seek to the start of the audio\r\n\r\n\r\n //}\r\n\r\n ///////////////////////////////////////////////// End PCM to WAV\r\n\r\n ngOnInit() {\r\n\r\n //setTimeout(() => {\r\n // this.GetITSRating();\r\n //}, 1000);\r\n\r\n this.GetITSRating();\r\n this.InitializeITSMap();\r\n\r\n //this.cdr.detectChanges();\r\n\r\n }\r\n\r\n LoadSystem(system) {\r\n //this.cdr.detectChanges();\r\n this.showITSMap = false;\r\n this.showRating = false;\r\n this.isRemoteSystem = true;\r\n if (system == 'Remote')\r\n this.isRemoteSystem = true;\r\n else {\r\n this.isRemoteSystem = false;\r\n this.LoadImageInCanvas(this.selectedImageFile, false);\r\n this.LoadRTSInCanvas(this.selectedRTSFileToUpload, false);\r\n }\r\n\r\n //this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\r\n //this.InitializeITSMap();\r\n //this.showITSMap = false;\r\n\r\n ///this.firstTimeFunctionCall = true;\r\n ///to load existing config while toggling between Remote n Local switch button\r\n ///this.LoadExistingConfig();\r\n\r\n }\r\n\r\n InitializeITSMap() {\r\n this.element = this.root;\r\n this.canvas = document.getElementById(\"canvas\");\r\n this.ctx = this.canvas.getContext(\"2d\");\r\n }\r\n\r\n SetITSCoordinate() {\r\n //this.getPosition(240, 150, 90);\r\n //this.getPosition(185, 270, 170);\r\n //this.DrawCoordinatesWithTilte(223, 302, 170);//circle with title\r\n ////this.DrawTrianglewithImage(295, 350, 170);///triangle image\r\n ////this.DrawTrianglewithImage(95, 350, 170); //triangle image\r\n //this.DrawSquareWithColor(195, 350, 170); //square\r\n //this.DrawSquareWithTitle(185, 250, 170); //square with title\r\n //this.DrawSquareWithTitle(115, 50, 170); //square with title\r\n\r\n\r\n //this.DrawTriangleWith2Corodinates(335, 250, 170); //triangle\r\n //this.DrawTriangleWithTitle(435, 250, 170); //triangle with title\r\n //this.DrawTriangleWithSmalSize(200, 270, 170);//small size triangle \r\n //this.DrawStartWithColor(285, 250, 170); //star\r\n //this.DrawSmallStartWithTitle(100, 270, 170);//small star with title\r\n ////this.DrawCoordinatesWithTilte(435, 350, 170);//circle with title\r\n //this.DrawCoordinatesBetween2Point(50, 50, 170);\r\n //this.DrawMultiSymbolAtSameCordinate_Pause(550, 300, 170);\r\n\r\n //this.DrawMultiSymbolAtSameCordinate_SquareStar_Stop(400, 300, 170);\r\n //this.DrawMultiSymbolAtSameCordinate_SquareTriangle(320, 300, 170);\r\n }\r\n\r\n //////// Send PCM Filename to sever\r\n\r\n //ConvertPCMToWAV(event) {\r\n // //debugger;\r\n // let sampleRate = 8000;\r\n // this.pcmFile = event.target.files[0];\r\n // const formData = new FormData();\r\n // formData.append('pcmFile', this.pcmFile);\r\n\r\n // this.url = this.baseUrl + 'ITS/ConvertPCMToWAV';\r\n // this.ConvertPCMToWav_Service(formData, sampleRate).subscribe((res: any) => {\r\n // //console.log(res);\r\n // let rows: any = JSON.parse(res) as any;\r\n\r\n // });\r\n\r\n //}\r\n\r\n ConvertPCMToWAV(pcmFileName) {\r\n debugger;\r\n this.showPCMFileError = false;\r\n this.ShowPCMFileErrorMsg = \"\"\r\n\r\n let sampleRate = parseInt(this.selectedSampleRate[0]);\r\n pcmFileName = pcmFileName.split('\\\\')[3];\r\n let pcmFolderName = \"\";\r\n if (this.isRemoteSystem) {\r\n if (this.pcmFolderName_RemoteSystem.trim() == \"\") {\r\n this.showPCMFileError = true;\r\n this.ShowPCMFileErrorMsg = \"pcm file cannot be empty.\"\r\n return false;\r\n }\r\n if (this.modelPCMName.trim() == \"\") {\r\n this.showPCMFileError = true;\r\n this.ShowPCMFileErrorMsg = \"select pcm folder.\"\r\n return false;\r\n }\r\n pcmFolderName = this.pcmFolderName_RemoteSystem + \"\\\\\" + this.modelPCMName;\r\n //////check path contains drive name or ip address to add blackslash at front of the path.\r\n //if (this.containsDriveName(this.pcmFolderName_RemoteSystem))\r\n // pcmFolderName = this.pcmFolderName_RemoteSystem;\r\n //else\r\n // pcmFolderName = \"\\\\\" + this.pcmFolderName_RemoteSystem;\r\n }\r\n else {\r\n if (this.pcmFolderName.trim() == \"\") {\r\n this.showPCMFileError = true;\r\n this.ShowPCMFileErrorMsg = \"please enter shared pcm files folder path.\"\r\n return false;\r\n }\r\n pcmFolderName = this.pcmFolderName;\r\n }\r\n\r\n this.url = this.baseUrl + 'ITS/ConvertPCMToWAV';\r\n debugger;\r\n if (this.dialog.openDialogs.length > 0) {\r\n return;\r\n }\r\n this.ConvertPCMToWav_Service(pcmFolderName, pcmFileName, sampleRate).subscribe((res: any) => {\r\n //console.log(res);\r\n //let rows: any = JSON.parse(res) as any;\r\n\r\n if (res == \"success\") {\r\n this.OpenPcmAudioDialog(res, pcmFileName);\r\n }\r\n else {\r\n this.OpenPcmAudioDialog(res, pcmFileName);\r\n }\r\n\r\n\r\n });\r\n\r\n }\r\n\r\n ////open audio popup to play pcm file\r\n OpenPcmAudioDialog(message: string, pcmFileName: string) {\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"40%\";\r\n ////debugger;\r\n\r\n\r\n dailogConfig.data = { audioURL: this.audioURL, nodeName: pcmFileName, message: message };\r\n if (this.dialog.openDialogs.length == 0) {\r\n this.dialog.open(AudioPlayerPopupComponent, dailogConfig);\r\n }\r\n }\r\n\r\n containsDriveName(path: string): boolean {\r\n // Regular expression to match drive letter (e.g., C: or D:)\r\n const driveRegex = /^[A-Z]:\\\\/i;\r\n return driveRegex.test(path);\r\n }\r\n\r\n //////////////////////////////////////////////////////// Event\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event) {\r\n //console.log(event.currentTarget.window.innerWidth);\r\n //console.log(event.currentTarget.window.innerHeight);\r\n if (event.currentTarget.window.innerWidth < 1307)\r\n this.windowMinimized = true;\r\n else\r\n this.windowMinimized = false;\r\n\r\n }\r\n\r\n openFileBrowseDialog(InputType) {\r\n this.isLoading = true;\r\n if (InputType == \"IMAGE\")\r\n this.fileInputImage.nativeElement.click();\r\n else if (InputType == \"RTS\")\r\n this.fileInputRTS.nativeElement.click();\r\n else if (InputType == \"IVQ\")\r\n this.fileInputIVQ.nativeElement.click();\r\n else\r\n this.fileInputPCM.nativeElement.click();\r\n }\r\n\r\n CheckValidation_RemoteSystem() {\r\n this.showImageError = false;\r\n this.ShowImageErrorMsg = \"\";\r\n this.showRTSFileError = false;\r\n this.ShowRTSFileErrorMsg = \"\";\r\n this.showIVQFileError = false;\r\n this.ShowIVQFileErrorMsg = \"\";\r\n this.showGeneralError = false;\r\n this.ShowGeneralErrorMsg = \"\";\r\n debugger;\r\n if (this.modelImageName.trim() == \"\" || this.modelImageName.includes(\"Select\")) {\r\n this.showImageError = true;\r\n this.ShowImageErrorMsg = \"please select image filepath.\";\r\n return false;\r\n }\r\n if (this.modelRTSName.trim() == \"\" || this.modelRTSName.includes(\"Select\")) {\r\n this.showRTSFileError = true;\r\n this.ShowRTSFileErrorMsg = \"please select RTS filepath.\";\r\n return false;\r\n }\r\n if (this.modelIVQName.trim() == \"\" || this.modelIVQName.includes(\"Select\")) {\r\n this.showIVQFileError = true;\r\n this.ShowIVQFileErrorMsg = \"please select IVQ filepath.\";\r\n return false;\r\n }\r\n\r\n //if (!this.imageFileName_RemoteSystem.startsWith(\"\\\\\\\\\")) {\r\n // this.showImageError = true;\r\n // this.ShowImageErrorMsg = \"filepath should always start with '\\\\\\\\'\";\r\n // return false;\r\n //}\r\n //if (!this.rtsFileName_RemoteSystem.startsWith(\"\\\\\\\\\")) {\r\n // this.showRTSFileError = true;\r\n // this.ShowRTSFileErrorMsg = \"filepath should always start with '\\\\\\\\'\";\r\n // return false;\r\n //}\r\n //if (!this.ivqFileName_RemoteSystem.startsWith(\"\\\\\\\\\")) {\r\n // this.showIVQFileError = true;\r\n // this.ShowIVQFileErrorMsg = \"filepath should always start with '\\\\\\\\'\";\r\n // return false;\r\n //}\r\n return true;\r\n }\r\n\r\n ////// Remote Server System\r\n ShowITSMap_RemoteSystem() {\r\n\r\n if (!this.CheckValidation_RemoteSystem())\r\n return;\r\n debugger;\r\n this.imageFileName_RemoteSystem = this.folderPath_RemoteSystem + \"\\\\\" + this.modelImageName;\r\n this.rtsFileName_RemoteSystem = this.folderPath_RemoteSystem + \"\\\\\" + this.modelRTSName;\r\n this.ivqFileName_RemoteSystem = this.folderPath_RemoteSystem + \"\\\\\" + this.modelIVQName;\r\n\r\n this.GetImageFromRemoteServerPath();\r\n\r\n ////if (this.modelPCMName.trim() == \"\") {\r\n //// this.GetPCMFolders();\r\n ////}\r\n\r\n }\r\n\r\n onCheckboxChange(event) {\r\n this.isAudioChecked = (event.target as HTMLInputElement).checked;\r\n }\r\n\r\n GetITSFiles() {\r\n debugger;\r\n this.modelImageName = \"\";\r\n this.modelRTSName = \"\";\r\n this.modelIVQName = \"\";\r\n this.imageNames = [];\r\n this.rtsNames = [];\r\n this.ivqNames = [];\r\n this.selectedImageNames = [];\r\n this.selectedRTSNames = [];\r\n this.selectedIVQNames = [];\r\n this.imageNamesObservable = [];\r\n this.rtsNamesObservable = [];\r\n this.ivqNamesObservable = [];\r\n\r\n let folderPath = this.folderPath_RemoteSystem.replace(/\\\\/g, \"\\\\\\\\\");\r\n //let fileName = folderPath.split('\\\\')[folderPath.split('\\\\').length - 1]; ///extract only file name\r\n\r\n this.isLoading = true;\r\n debugger;\r\n this.url = this.baseUrl + 'ITS/GetITSFiles';\r\n this.GetITSFiles_Service(folderPath, this.isSaveITSFilePath).subscribe((res) => {\r\n debugger;\r\n const rows = JSON.parse(res);\r\n if (rows == 'failed') {\r\n this.imagePlaceholder = \"No File Found\";\r\n this.rtsPlaceholder = \"No File Found\";\r\n this.ivqPlaceholder = \"No File Found\";\r\n this.controlImage.setValue('');\r\n this.controlRTS.setValue('');\r\n this.controlIVQ.setValue('');\r\n this.isLoading = false;\r\n return false;\r\n }\r\n //console.log(rows);\r\n //let img = rows[0];\r\n this.isSaveITSFilePath = false;\r\n\r\n ////// fill image dropdown\r\n rows[0].forEach((rw, i) => {\r\n //console.log(rw);\r\n this.imageNames.push(rw);//fill reg dropdown \r\n });\r\n //////// add default --Select-- at top of all element\r\n this.imageNames.unshift('--Select--');\r\n\r\n ////// fill RTS dropdown\r\n rows[1].forEach((rw, i) => {\r\n //console.log(rw);\r\n this.rtsNames.push(rw);//fill reg dropdown \r\n });\r\n //////// add default --Select-- at top of all element\r\n this.rtsNames.unshift('--Select--');\r\n\r\n ////// fill IVQ dropdown\r\n rows[2].forEach((rw, i) => {\r\n //console.log(rw);\r\n this.ivqNames.push(rw);//fill reg dropdown \r\n });\r\n //////// add default --Select-- at top of all element\r\n this.ivqNames.unshift('--Select--');\r\n\r\n this.setList(false);\r\n this.isLoading = false;\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n GetImageFromRemoteServerPath() {\r\n //let filePath = \"\\\\192.168.1.41\\\\Shared WvSQL\\\\officefloormap.jpg\"; //// filepath should have double backslash'\\\\' mandatory\r\n //let filePath = \"\\\\GLIN-164\\\\Shared WvSQL\\\\ITS\\\\ITS\\\\POLQA\\\\Industrial Style Office.jpg\";\r\n debugger;\r\n let filePath = this.imageFileName_RemoteSystem.replace(/\\\\/g, \"\\\\\\\\\");\r\n let fileName = filePath.split('\\\\')[filePath.split('\\\\').length - 1]; ///extract only file name\r\n this.SelectedImageFile_RemoteSystem = fileName;\r\n /// filePath = \"\\\\\" + filePath;/// add backslash'\\\\' at front then only in server side it will consider as filepath.\r\n debugger;\r\n this.url = this.baseUrl + 'ITS/GetImageFromRemoteServerPath';\r\n this.GetImageFromRemoteServerPath_Service(filePath).subscribe({\r\n next: (response: Blob) => {\r\n //console.log(response);\r\n debugger;\r\n //// Create a File object from the response Blob\r\n //this.selectedImageFile = new File([response], fileName, { type: response.type, });\r\n this.SelectedImageFileIUpload_RemoteSystem = new File([response], fileName, { type: response.type, });\r\n\r\n //console.log('File downloaded:', this.selectedImageFile);\r\n ////////////////////////////////////////////////////////////////////////\r\n //this.imageFileName = this.selectedImageFile.name;\r\n //var reader = new FileReader();\r\n //reader.readAsDataURL(this.selectedImageFile);\r\n //reader.onload = (event: any) => {\r\n // this.imageURL = reader.result;\r\n\r\n // //var ctxt = this.canvas.getContext(\"2d\"); ////elumalai as ctx is defined globally so no need to create new canvas object\r\n // var backgroundImage = new Image();\r\n // backgroundImage.src = this.imageURL;\r\n // backgroundImage.onload = () => {\r\n // this.canvas.width = backgroundImage.width;\r\n // this.canvas.height = backgroundImage.height;\r\n\r\n // this.ctx.drawImage(backgroundImage, 0, 0);\r\n\r\n // };\r\n // this.showITSMap = true;\r\n //}\r\n ///////////////////////////////////\r\n this.LoadRTSFileFromRemoteServerPath();\r\n //this.showITSMap = true;\r\n },\r\n error: (error) => {\r\n debugger;\r\n // Handle error: Show the error message\r\n this.showGeneralError = true;\r\n this.ShowGeneralErrorMsg = \"*The network path was not found.\";\r\n }\r\n });\r\n }\r\n\r\n LoadRTSFileFromRemoteServerPath() {\r\n //let filePath = \"\\\\192.168.1.41\\\\Shared WvSQL\\\\officefloormap.jpg\"; //// filepath should have double backslash'\\\\' mandatory\r\n let filePath = this.rtsFileName_RemoteSystem.replace(/\\\\/g, \"\\\\\\\\\"); //\"\\\\GLIN-164\\\\Shared WvSQL\\\\ITS\\\\ITS\\\\POLQA\\\\Office3Dimage032120231756.rts\";\r\n this.SelectedRTSFile_RemoteSystem = filePath.split('\\\\')[filePath.split('\\\\').length - 1];\r\n ///filePath = \"\\\\\" + filePath;/// add backslash'\\\\' at front then only in server side it will consider as filepath.\r\n debugger;\r\n this.url = this.baseUrl + 'ITS/LoadRTSFileFromRemoteServerPath';\r\n this.LoadRTSFileFromRemoteServerPath_Service(filePath).subscribe((res: any) => {\r\n debugger;\r\n //console.log(res);\r\n if (res != null) {\r\n let rows: any = JSON.parse(res) as any;\r\n this.FormatRTSData(rows);\r\n this.rtsFileData_RemoteSystem = rows;\r\n //// Create a File object from the response Blob\r\n //this.selectedRTSFileToUpload = new File([response], fileName, { type: response.type, });\r\n\r\n this.GetIVQFileFromRemoteServerPath();\r\n }\r\n else {\r\n this.showGeneralError = true;\r\n this.ShowGeneralErrorMsg = \"*The network path was not found.\";\r\n }\r\n });\r\n }\r\n\r\n GetIVQFileFromRemoteServerPath() {\r\n\r\n let filePath = this.ivqFileName_RemoteSystem.replace(/\\\\/g, \"\\\\\\\\\"); //\"\\\\GLIN-164\\\\Shared WvSQL\\\\ITS\\\\ITS\\\\POLQA\\\\Office3Dimage032120231756.ivq\";\r\n let fileName = filePath.split('\\\\')[filePath.split('\\\\').length - 1];\r\n this.SelectedIVQFile_RemoteSystem = fileName;\r\n /// filePath = \"\\\\\" + filePath; /// add backslash'\\\\' at front then only in server side it will consider as filepath.\r\n debugger;\r\n this.url = this.baseUrl + 'ITS/GetIVQFileFromRemoteServerPath';\r\n this.GetIVQFileFromRemoteServerPath_Service(filePath).subscribe({\r\n next: (response: Blob) => {\r\n // console.log(response);\r\n debugger;\r\n //// Create a File object from the response Blob\r\n this.SelectedIVQFileUpload_RemoteSystem = new File([response], fileName, { type: response.type, });\r\n\r\n this.ShowITSMap();\r\n\r\n ////SET ALL 3 INFO FILE IN SUBCRIPTION\r\n const itsFiles: any[] = [];\r\n itsFiles.push(this.SelectedImageFileIUpload_RemoteSystem);\r\n itsFiles.push(this.rtsFileData_RemoteSystem);\r\n itsFiles.push(this.SelectedIVQFileUpload_RemoteSystem);\r\n //itsFiles.push(this.selectedFilter);//not in use \r\n itsFiles.push(this.imageFileName_RemoteSystem);\r\n itsFiles.push(this.rtsFileName_RemoteSystem);\r\n itsFiles.push(this.ivqFileName_RemoteSystem);\r\n itsFiles.push(this.pcmFolderName_RemoteSystem);\r\n\r\n itsFiles.push(this.imageNamesObservable);\r\n itsFiles.push(this.rtsNamesObservable);\r\n itsFiles.push(this.ivqNamesObservable);\r\n itsFiles.push(this.modelImageName);\r\n itsFiles.push(this.modelRTSName);\r\n itsFiles.push(this.modelIVQName);\r\n if (this.modelPCMName != \"\") {\r\n itsFiles.push(this.pcmNamesObservable);\r\n itsFiles.push(this.modelPCMName);\r\n }\r\n\r\n this.firstTimeFunctionCall = false;\r\n this.commonFilterService.SetITSFile(itsFiles); //store files in subcription\r\n\r\n },\r\n error: (error) => {\r\n debugger;\r\n // Handle error: Show the error message\r\n this.showGeneralError = true;\r\n this.ShowGeneralErrorMsg = \"*The network path was not found.\";\r\n }\r\n });\r\n }\r\n\r\n ControlFocusOut() {\r\n //alert();\r\n this.isLoading = false;\r\n }\r\n\r\n onPCMFileChange(event) {\r\n debugger;\r\n let pcmFile = \"femrecNB_20230321175504_N12$55'35''_E77$36'3''_000000_I_NBSide2_IN105Test2_20230321175446_1.pcm\";\r\n //console.log(event.target.files);\r\n this.selectedAllPCMFiles = Array.from(event.target.files);\r\n //console.log(this.selectedAllPCMFiles);\r\n\r\n if (this.selectedAllPCMFiles.length > 0) {\r\n this.fileUPPCM = this.selectedAllPCMFiles.filter(m => m.name == pcmFile)[0];//filteredpcmFile\r\n\r\n let sampleRate = parseInt(this.selectedSampleRate[0]);\r\n const formData = new FormData();\r\n formData.append('file', this.fileUPPCM);\r\n\r\n this.url = this.baseUrl + 'ITS/ConvertPCMFile';\r\n this.SendPCMFile_Service(formData, sampleRate).subscribe((res: any) => {\r\n //console.log(res);\r\n if (res != \"InvalidFile\") {\r\n let rows: any = JSON.parse(res) as any;\r\n ////debugger;\r\n //console.log(rows);\r\n\r\n }\r\n });\r\n\r\n\r\n }\r\n }\r\n\r\n onImageFileChange(event) {\r\n ////debugger;\r\n\r\n this.isLoading = false;\r\n if (event.target.files.length <= 0) {\r\n\r\n return false;\r\n }\r\n\r\n this.showITSMap = false;\r\n this.showRating = false;\r\n this.showImageError = false;\r\n this.ShowImageErrorMsg = \"\";\r\n this.titleRef.nativeElement.style.display = 'none';\r\n this.ivqData = [];\r\n\r\n this.selectedImageFile = event.target.files[0];\r\n this.LoadImageInCanvas(this.selectedImageFile);\r\n //this.imageFileName = this.selectedImageFile.name;\r\n //var reader = new FileReader();\r\n //reader.readAsDataURL(this.selectedImageFile);\r\n //reader.onload = (event: any) => {\r\n // this.imageURL = reader.result;\r\n\r\n // var ctxt = this.canvas.getContext(\"2d\");\r\n // var backgroundImage = new Image();\r\n // backgroundImage.src = this.imageURL;\r\n // backgroundImage.onload = () => {\r\n // this.canvas.width = backgroundImage.width;\r\n // this.canvas.height = backgroundImage.height;\r\n // ctxt.drawImage(backgroundImage, 0, 0);\r\n\r\n // this.ngOnInit();\r\n // };\r\n\r\n //}\r\n\r\n }\r\n\r\n LoadImageInCanvas(selectedImageFile, isPageload = false) {\r\n debugger;\r\n if (selectedImageFile != null) {\r\n if (!this.isRemoteSystem)\r\n this.imageFileName = selectedImageFile.name;\r\n var reader = new FileReader();\r\n reader.readAsDataURL(selectedImageFile);\r\n reader.onload = (event: any) => {\r\n this.imageURL = reader.result;\r\n\r\n //var ctxt = this.canvas.getContext(\"2d\"); ////elumalai as ctx is defined globally so no need to create new canvas object\r\n var backgroundImage = new Image();\r\n backgroundImage.src = this.imageURL;\r\n backgroundImage.onload = () => {\r\n this.canvas.width = backgroundImage.width;\r\n this.canvas.height = backgroundImage.height;\r\n // ctxt.drawImage(backgroundImage, 0, 0); //elumalai\r\n\r\n this.ctx.drawImage(backgroundImage, 0, 0);\r\n\r\n //////this.ngOnInit();\r\n ////// if (!isPageload)\r\n // this.InitializeITSMap();///elumalai 13/07/2023\r\n };\r\n\r\n }\r\n }\r\n }\r\n\r\n onRTSFileChange(event) {\r\n ////debugger;\r\n this.isLoading = false;\r\n if (event.target.files.length <= 0) {\r\n return false;\r\n }\r\n this.showITSMap = false;\r\n this.showRating = false;\r\n this.showRTSFileError = false;\r\n this.ShowRTSFileErrorMsg = \"\";\r\n this.titleRef.nativeElement.style.display = 'none';\r\n this.selectedRTSFileToUpload = event.target.files[0]; //files;\r\n this.LoadRTSInCanvas(this.selectedRTSFileToUpload);\r\n\r\n //this.rtsFileName = this.selectedRTSFileToUpload.name;\r\n\r\n //if (this.selectedRTSFileToUpload.name.split('.')[1] != \"rts\") {\r\n // //this.selectedRTSFileToUpload = null\r\n // this.showRTSFileError = true;\r\n // this.ShowRTSFileErrorMsg = \"Invalid image format\";\r\n // return false;\r\n //}\r\n\r\n //const formData = new FormData();\r\n //formData.append('file', this.selectedRTSFileToUpload);\r\n\r\n //this.url = this.baseUrl + 'ITS/ITSRTSCheck';\r\n //this.GetRTSData_Service(formData).subscribe((res: any) => {\r\n // //console.log(res);\r\n // if (res != \"InvalidFile\") {\r\n // let rows: any = JSON.parse(res) as any;\r\n // ////debugger;\r\n // //console.log(rows);\r\n // this.FormatRTSData(rows); \r\n // }\r\n //});\r\n }\r\n\r\n LoadRTSInCanvas(selectedRTSFile, isPageLoad = false) {\r\n\r\n if (selectedRTSFile.name.split('.')[1] != \"rts\") {\r\n this.showRTSFileError = true;\r\n this.ShowRTSFileErrorMsg = \"Invalid image format\";\r\n return false;\r\n }\r\n this.rtsFileName = this.selectedRTSFileToUpload.name;\r\n const formData = new FormData();\r\n formData.append('file', selectedRTSFile);\r\n\r\n this.url = this.baseUrl + 'ITS/ITSRTSCheck';\r\n this.GetRTSData_Service(formData).subscribe((res: any) => {\r\n //console.log(res);\r\n if (res != \"InvalidFile\") {\r\n let rows: any = JSON.parse(res) as any;\r\n ////debugger;\r\n //console.log(rows);\r\n this.FormatRTSData(rows, isPageLoad);\r\n\r\n ////// below function will only be called when called from subscription\r\n if (isPageLoad) {\r\n this.ShowITSMap(true);\r\n }\r\n\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n CheckValidation(IVQDataList, ivqFileName) {\r\n ////debugger;\r\n this.showImageError = false;\r\n this.ShowImageErrorMsg = \"\";\r\n this.showRTSFileError = false;\r\n this.ShowRTSFileErrorMsg = \"\";\r\n this.showIVQFileError = false;\r\n this.ShowIVQFileErrorMsg = \"\";\r\n ////debugger;\r\n if (IVQDataList == undefined || IVQDataList.length == 0) {\r\n this.showRTSFileError = true;\r\n this.ShowRTSFileErrorMsg = \"IVQ file is empty.\";\r\n return false;\r\n }\r\n if (!this.isRemoteSystem && this.selectedImageFile == undefined) {\r\n this.showImageError = true;\r\n this.ShowImageErrorMsg = \"please select RTS image.\";\r\n return false;\r\n }\r\n if (this.rtsData == undefined || this.rtsData.length == 0) {\r\n this.showRTSFileError = true;\r\n this.ShowRTSFileErrorMsg = \"RTS file is empty.\";\r\n return false;\r\n }\r\n if (!this.isRemoteSystem && this.selectedImageFile.name.toLowerCase() != IVQDataList[0].split('=')[1].replace(\"\\r\", \"\").toLowerCase()) {\r\n this.showImageError = true;\r\n this.ShowImageErrorMsg = \"Please select correct Image file as mentioned in IVQ file(\" + ivqFileName + \").\"\r\n return false;\r\n }\r\n if (this.isRemoteSystem && this.SelectedImageFileIUpload_RemoteSystem.name.toLowerCase() != IVQDataList[0].split('=')[1].replace(\"\\r\", \"\").toLowerCase()) {\r\n this.showImageError = true;\r\n this.ShowImageErrorMsg = \"Please select correct Image file as mentioned in IVQ file(\" + ivqFileName + \").\"\r\n return false;\r\n }\r\n\r\n if (!this.isRemoteSystem && this.selectedRTSFileToUpload.name.toLowerCase() != IVQDataList[1].split('=')[1].replace(\"\\r\", \"\").toLowerCase()) {\r\n this.showRTSFileError = true;\r\n this.ShowRTSFileErrorMsg = \"Please select correct (RTS) file as mentioned in IVQ file(\" + ivqFileName + \").\"\r\n return false;\r\n }\r\n\r\n if (this.isRemoteSystem && this.SelectedRTSFile_RemoteSystem.toLowerCase() != IVQDataList[1].split('=')[1].replace(\"\\r\", \"\").toLowerCase()) {\r\n this.showRTSFileError = true;\r\n this.ShowRTSFileErrorMsg = \"Please select correct (RTS) file as mentioned in IVQ file(\" + ivqFileName + \").\"\r\n return false;\r\n }\r\n\r\n\r\n return true;\r\n }\r\n\r\n onIVQFileChange(event) {\r\n ////debugger;\r\n this.isLoading = false;\r\n if (event.target.files.length <= 0) {\r\n return false;\r\n }\r\n this.showRating = false;\r\n this.showITSMap = false;\r\n this.showIVQFileError = false;\r\n this.ShowIVQFileErrorMsg = \"\";\r\n this.titleRef.nativeElement.style.display = 'none';\r\n\r\n const file: File = event.target.files[0];\r\n this.ivqFileName = file.name;\r\n\r\n if (file.name.split('.')[1] != \"ivq\") {\r\n this.showIVQFileError = true;\r\n this.ShowIVQFileErrorMsg = \"Invalid image format\";\r\n return false;\r\n }\r\n else\r\n this.selectedIVQFile = file;\r\n\r\n ////set all 3 file in subcription\r\n\r\n const itsFiles: any[] = []; //File[] = [];\r\n itsFiles.push(this.selectedImageFile);\r\n itsFiles.push(this.selectedRTSFileToUpload);\r\n itsFiles.push(this.selectedIVQFile);\r\n itsFiles.push(this.selectedFilter);\r\n itsFiles.push(this.pcmFolderName);\r\n this.firstTimeFunctionCall = false;\r\n this.commonFilterService.SetITSFile(itsFiles); //store 3 files in subcription\r\n\r\n //const itsFilesTest: File = this.selectedImageFile;\r\n // Convert the file to a string representation\r\n //const fileString = JSON.stringify(itsFiles);\r\n\r\n //// Save the file string in the local storage\r\n //localStorage.setItem('fileData', fileString);\r\n\r\n }\r\n\r\n\r\n ////// Format IVQ file data\r\n FormatIVQData(ivqdataList) {\r\n //debugger;\r\n this.ivqData = [];\r\n let ivqItems: IVQFileData;\r\n let rsType = ivqdataList[3].split(';')[1] != \"N/A\" ? \"POLQA\" : \"PESQ\";\r\n this.resultType = rsType;\r\n for (let i = 3; i < ivqdataList.length - 1; i++) {\r\n //console.log(i);\r\n ivqItems = new IVQFileData();\r\n let item = ivqdataList[i].split(';');\r\n ivqItems.score = item[1] != \"N/A\" ? item[1] : item[3];\r\n ivqItems.rating = item[15];\r\n ivqItems.xAxis = item[17].split(',')[0].split('&')[0];\r\n ivqItems.yAxis = item[17].split(',')[0].split('&')[1];\r\n ivqItems.eventDate = item[16];\r\n ivqItems.inoutbound = item[18].includes(\"I_\") ? \"I\" : \"O\";\r\n ivqItems.pcmFileName = item[11];//// PCM file name\r\n\r\n //ivqItems.iconType = parseInt(item[3]).toString();\r\n this.daqScoreResult = \"Fail\";\r\n if (this.selectedTab == \"DAQ\" && this.filteredDAQPesqScore != undefined) {\r\n ////debugger;\r\n if (Number(ivqItems.score) >= Number(this.filteredDAQPesqScore.pesqScoreRange.split('-')[0])) {\r\n ivqItems.iconColor = this.modelPinColorPass; //\"green\";//Pass\r\n this.daqScoreResult = \"Pass\";\r\n ivqItems.daqScoreResult = \"Pass\";\r\n }\r\n else {\r\n ivqItems.iconColor = this.modelPinColorFail;//\"red\"; //Fail\r\n this.daqScoreResult = \"Fail\";\r\n ivqItems.daqScoreResult = \"Fail\";\r\n }\r\n\r\n }\r\n else\r\n ivqItems.iconColor = item[1] != \"N/A\" ? this.GetColorBasedOnScore(item[1]) : this.GetColorBasedOnScore(item[3]);\r\n\r\n\r\n this.ivqData.push(ivqItems);\r\n }\r\n //debugger;\r\n /////////// filter out ivq file data based on rts file data\r\n for (let i = 0; i < this.rtsData.length; i++) {\r\n\r\n let ivqFilteredData = this.ivqData.filter(m => m.xAxis.includes(this.rtsData[i].xAxis) && m.yAxis.includes(this.rtsData[i].yAxis));\r\n //console.log(ivqFilteredData);\r\n //// to sort data as per datetime\r\n ivqFilteredData.sort((a, b) => Date.parse(a.eventDate) - Date.parse(b.eventDate));\r\n\r\n if (this.rtsData[i].iconType == \"0\") {\r\n if (this.rtsData[i + 1] != undefined)\r\n this.DrawMultiSymolBetween2CoordinatePoint(this.rtsData[i].xAxis, this.rtsData[i].yAxis, this.rtsData[i + 1].xAxis, this.rtsData[i + 1].yAxis, ivqFilteredData, rsType);\r\n else {\r\n //////if end point coordinate is not avaible in ivq file then plot the excluded points\r\n //for (let j = 0; j < ivqFilteredData.length; j++) {\r\n // if (ivqFilteredData[j].inoutbound == \"O\")//outbound\r\n // this.DrawCoordinatesWithTilte(this.rtsData[i].xAxis + 15, this.rtsData[i].yAxis + 15, ivqFilteredData[j].iconColor, rsType, ivqFilteredData[j].eventDate, ivqFilteredData[j].score);\r\n // else///Inbound\r\n // this.DrawTriangleWithTitle(this.rtsData[i].xAxis + 30, this.rtsData[i].yAxis - 15, ivqFilteredData[j].iconColor, rsType, ivqFilteredData[j].eventDate, ivqFilteredData[j].score);\r\n //}\r\n }\r\n }\r\n else if (this.rtsData[i].iconType != \"0\" && this.rtsData[i].iconType != \"-1\") {\r\n this.DrawMultiSymbolAtSameCordinate_PauseTimer(this.rtsData[i].xAxis, this.rtsData[i].yAxis, 'blue', ivqFilteredData, rsType);\r\n }\r\n else if (this.rtsData[i].iconType == \"-1\") {\r\n // already plotter in rts section\r\n }\r\n\r\n ////debugger;\r\n //console.log(ivqFilteredData);\r\n }\r\n\r\n this.DrawITSMap(this.rtsData);/// this function is called again to show rts pin on top of ivq pins\r\n //if (this.ivqData.length > 0)\r\n //this.DrawITSMap(this.ivqData);\r\n }\r\n\r\n GetColorBasedOnScore(score) {\r\n\r\n let color = \"red\";\r\n\r\n\r\n //// DAQ tab is selected or not\r\n this.daqScoreResult = \"Fail\";\r\n if (this.selectedTab == \"DAQ\" && this.filteredDAQPesqScore != undefined) {\r\n ////debugger;\r\n if (Number(score) >= Number(this.filteredDAQPesqScore.pesqScoreRange.split('-')[0])) {\r\n color = this.modelPinColorPass;//\"green\"; GREEN\r\n this.daqScoreResult = \"Pass\";\r\n }\r\n else {\r\n color = this.modelPinColorFail;//\"red\"; FAIL\r\n this.daqScoreResult = \"Fail\";\r\n }\r\n\r\n }\r\n else if (this.selectedTab == \"DAQ\" && this.filteredDAQPesqScore == undefined) {\r\n color = this.modelPinColorFail;//\"red\"; FAIL\r\n this.daqScoreResult = \"Fail\";\r\n }\r\n else {\r\n\r\n if (score >= this.excellentScore)\r\n color = this.modelPinColorExcellent;\r\n else if (score >= this.goodScrore && score < this.excellentScore)\r\n color = this.modelPinColorGood;\r\n else if (score >= this.fairScore && score < this.goodScrore)\r\n color = this.modelPinColorFair;\r\n else\r\n color = this.modelPinColorPoor;\r\n }\r\n return color;\r\n }\r\n\r\n ////// Format RTS file data\r\n FormatRTSData(rtsdataList, isPageLoad = false) {\r\n //RTSFileData\r\n this.rtsData = [];\r\n let rtsItems: RTSFileData;\r\n for (let i = 0; i < rtsdataList.length; i++) {\r\n rtsItems = new RTSFileData();\r\n let item = rtsdataList[i].split(',');\r\n rtsItems.xAxis = Number(item[0]);\r\n rtsItems.yAxis = Number(item[1]);\r\n rtsItems.eventDate = item[2];\r\n rtsItems.iconType = parseInt(item[3]).toString();\r\n rtsItems.iconColor = 'blue';\r\n\r\n this.rtsData.push(rtsItems);\r\n }\r\n\r\n if (this.rtsData.length > 0) {\r\n debugger\r\n //this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\r\n ///below condition is to avoid overwriting of marker i.e if 2 or more rts and ivq files are there to plot on same jpg image\r\n ///then we need to clear the previous marks from jpg file in canvas\r\n if (!this.isRemoteSystem && this.selectedImageFile != null && !isPageLoad) {\r\n //this.canvas.width = this.canvas.clientWidth;\r\n //this.canvas.height = this.canvas.clientHeight;\r\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\r\n\r\n this.LoadImageInCanvas(this.selectedImageFile); ///Need to check when coming back from other screen previous markers should be retain\r\n }\r\n if (this.isRemoteSystem && this.SelectedImageFileIUpload_RemoteSystem != null && !isPageLoad) {\r\n //this.canvas.width = this.canvas.clientWidth;\r\n //this.canvas.height = this.canvas.clientHeight;\r\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\r\n\r\n this.LoadImageInCanvas(this.SelectedImageFileIUpload_RemoteSystem); ///Need to check when coming back from other screen previous markers should be retain\r\n }\r\n\r\n this.DrawITSMap(this.rtsData);\r\n\r\n }\r\n }\r\n\r\n DrawITSMap(data: any) {\r\n ////debugger;\r\n let symbol = \"SQUARE\";\r\n let title = \"\";\r\n for (let i = 0; i < data.length; i++) {\r\n switch (data[i].iconType) {\r\n case \"0\":\r\n symbol = \"SQUARE\";\r\n title = data[i].eventDate;//this.rtsData[i].eventDate;\r\n this.DrawSquareWithTitle(data[i].xAxis, data[i].yAxis, 'Red', i + 1, title, \"\", data[i].xAxis, data[i].yAxis);\r\n break;\r\n case \"30\":\r\n symbol = \"SQUARE_WITH_SMALLTRIANGLE\";\r\n title = data[i].eventDate;//this.rtsData[i].eventDate;\r\n this.DrawMultiSymbolAtSameCordinate_SquareTriangle(data[i].xAxis, data[i].yAxis, 'blue', i + 1, title, data[i].iconType);\r\n break;\r\n case \"-1\":\r\n symbol = \"SQUARE_WITH_SMALLSTAR\";\r\n title = data[i].eventDate;//this.rtsData[i].eventDate;\r\n this.DrawMultiSymbolAtSameCordinate_SquareStar_Stop(data[i].xAxis, data[i].yAxis, 'blue', i + 1, title);\r\n break;\r\n case \"I\"://inbound\r\n symbol = \"TRIANGLE\";\r\n title = data[i].eventDate;//this.rtsData[i].eventDate;\r\n //this.DrawTriangleWithTitle(data[i].xAxis, data[i].yAxis, 'blue');\r\n break;\r\n case \"O\"://outbound\r\n symbol = \"CIRCLE\";\r\n title = data[i].eventDate;//this.rtsData[i].eventDate;\r\n //this.DrawCoordinatesWithTilte(data[i].xAxis, data[i].yAxis, 'blue');\r\n break;\r\n case \"PAUSE\"://outbound\r\n symbol = \"TRAINGLE_SQUARE_CIRCLE_SMALLTRIANGLE\";\r\n title = data[i].eventDate;//this.rtsData[i].eventDate;\r\n this.DrawMultiSymbolAtSameCordinate_Pause(data[i].xAxis, data[i].yAxis, 'blue');\r\n break;\r\n default:\r\n symbol = \"SQUARE_WITH_SMALLTRIANGLE\"; /// time other than 0 and-1 i.e 30,100,\r\n title = data[i].eventDate;//this.rtsData[i].eventDate;\r\n this.DrawMultiSymbolAtSameCordinate_SquareTriangle(data[i].xAxis, data[i].yAxis, 'blue', i + 1, title, data[i].iconType);\r\n break;\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n ClearAll() {\r\n this.showITSMap = false;\r\n this.showImageError = false;\r\n this.ShowImageErrorMsg = \"\";\r\n this.showRTSFileError = false;\r\n this.ShowRTSFileErrorMsg = \"\";\r\n this.showIVQFileError = false;\r\n this.ShowIVQFileErrorMsg = \"\";\r\n this.showRating = false;\r\n this.imageFileName = \"\";\r\n this.rtsFileName = \"\";\r\n this.ivqFileName = \"\";\r\n this.imageFileName_RemoteSystem = \"\";\r\n this.rtsFileName_RemoteSystem = \"\";\r\n this.ivqFileName_RemoteSystem = \"\";\r\n this.pcmFolderName_RemoteSystem = \"\";\r\n this.pcmFolderName = \"\";\r\n\r\n this.fileUPImage = null;\r\n this.fileUPRTS = null\r\n this.fileUPIVQ = null;\r\n this.selectedIVQFile = null;\r\n this.selectedRTSFileToUpload = null;\r\n this.selectedImageFile = null;\r\n this.SelectedIVQFileUpload_RemoteSystem = null;\r\n this.ivqData = [];\r\n\r\n this.commonFilterService.SetITSFile(null); //store 3 files in subcription\r\n ////debugger;\r\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\r\n }\r\n\r\n ClearAllServerSystem() {\r\n\r\n this.showITSMap = false;\r\n this.showRating = false;\r\n\r\n this.showImageError = false;\r\n this.ShowImageErrorMsg = \"\";\r\n this.showRTSFileError = false;\r\n this.ShowRTSFileErrorMsg = \"\";\r\n this.showIVQFileError = false;\r\n this.ShowIVQFileErrorMsg = \"\";\r\n this.showPCMFileError = false;\r\n this.ShowPCMFileErrorMsg = \"\";\r\n\r\n this.imageFileName_RemoteSystem = \"\";\r\n this.rtsFileName_RemoteSystem = \"\";\r\n this.ivqFileName_RemoteSystem = \"\";\r\n ///this.pcmFolderName_RemoteSystem = \"\";\r\n this.isAudioChecked = false;\r\n this.setList(false);\r\n this.setList(true);\r\n\r\n this.ivqData = [];\r\n this.commonFilterService.SetITSFile(null); //store 3 files in subcription\r\n ////debugger;\r\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\r\n }\r\n\r\n ShowITSMap(isPageLoad = false) {\r\n debugger;\r\n this.showITSMap = false;\r\n this.showIVQFileError = false;\r\n this.ShowIVQFileErrorMsg = \"\";\r\n this.showPCMFileError = false;\r\n this.ShowPCMFileErrorMsg = \"\";\r\n\r\n if (!this.isRemoteSystem && (this.selectedIVQFile == undefined || this.selectedIVQFile == null)) {\r\n this.showIVQFileError = true;\r\n this.ShowIVQFileErrorMsg = \"Please select files.\";\r\n return false;\r\n }\r\n const file: File = this.isRemoteSystem == false ? this.selectedIVQFile : this.SelectedIVQFileUpload_RemoteSystem; //event.target.files[0];\r\n const reader = new FileReader();\r\n\r\n if (file.name.split('.')[1] != \"ivq\") {\r\n this.showIVQFileError = true;\r\n this.ShowIVQFileErrorMsg = \"Invalid image format\";\r\n return false;\r\n }\r\n //if (!this.isRemoteSystem && this.pcmFolderName == \"\") {\r\n // this.showPCMFileError = true;\r\n // this.ShowPCMFileErrorMsg = \"please enter pcm files folder path\";\r\n // return false;\r\n //}\r\n if (this.isRemoteSystem && this.pcmFolderName_RemoteSystem == \"\") {\r\n this.showPCMFileError = true;\r\n this.ShowPCMFileErrorMsg = \"please enter pcm files folder path\";\r\n return false;\r\n }\r\n if (!this.isRemoteSystem)\r\n this.ivqFileName = file.name;\r\n\r\n reader.readAsText(file);\r\n reader.onload = () => {\r\n const IVQDataList = reader.result.toString().split('\\n');\r\n //console.log(lines);\r\n if (this.CheckValidation(IVQDataList, file.name)) {\r\n this.FormatIVQData(IVQDataList);\r\n this.showITSMap = true;\r\n this.showRating = true;\r\n\r\n ////debugger;\r\n\r\n }\r\n };\r\n\r\n }\r\n\r\n GetITSRating() {\r\n\r\n this.url = this.baseUrl + 'ITS/GetITSRating';\r\n this.GetITSRating_Service().subscribe((res: any) => {\r\n //console.log(res);\r\n let rows: any = JSON.parse(res) as any;\r\n debugger;\r\n if (rows.length > 0) {\r\n this.modelPinColorExcellent = rows[0].Color.split('@')[0];\r\n this.modelPinColorGood = rows[0].Color.split('@')[1];\r\n this.modelPinColorFair = rows[0].Color.split('@')[2];\r\n this.modelPinColorPoor = rows[0].Color.split('@')[3];\r\n\r\n this.excellentScore = rows[0].Rating.split('@')[0];\r\n this.goodScrore = rows[0].Rating.split('@')[1];\r\n this.fairScore = rows[0].Rating.split('@')[2];\r\n this.poorScore = rows[0].Rating.split('@')[3];\r\n //console.log(rows[0].DAQ.split('@')[0]);\r\n this.daqScore = Number(rows[0].DAQ.split('@')[0]);\r\n this.modelPinColorPass = rows[0].DAQ.split('@')[1];\r\n this.modelPinColorFail = rows[0].DAQ.split('@')[2];\r\n\r\n if (rows[0].ITSFilePath != null || rows[0].ITSFilePath == '')\r\n this.folderPath_RemoteSystem = rows[0].ITSFilePath;\r\n if (rows[0].PCMFolderPath != null || rows[0].PCMFolderPath == '')\r\n this.pcmFolderName_RemoteSystem = rows[0].PCMFolderPath;\r\n\r\n ///to load existing config after returning from another page\r\n this.LoadExistingConfig();\r\n\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n SaveITSRating() {\r\n\r\n let color = this.modelPinColorExcellent + \"@\" + this.modelPinColorGood + \"@\" + this.modelPinColorFair + \"@\" + this.modelPinColorPoor;\r\n let rating = this.excellentScore + \"@\" + this.goodScrore + \"@\" + this.fairScore + \"@\" + this.poorScore;\r\n let daqData = this.daqScore + \"@\" + this.modelPinColorPass + \"@\" + this.modelPinColorFail;\r\n const params = {\r\n Rating: rating,\r\n Color: color,\r\n DAQ: daqData\r\n };\r\n\r\n this.url = this.baseUrl + 'ITS/SaveITSRating';\r\n this.SaveITSRating_Service(params).subscribe((res: any) => {\r\n //console.log(res);\r\n let rows: any = JSON.parse(res) as any;\r\n\r\n });\r\n }\r\n\r\n ApplyScore() {\r\n //this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\r\n //this.InitializeITSMap();\r\n //this.LoadImageInCanvas(this.selectedImageFile); /// add set timeout function to load image\r\n if (this.CheckColorRatingValidation()) {\r\n this.ShowITSMap();\r\n this.SaveITSRating();\r\n }\r\n }\r\n\r\n\r\n CheckColorRatingValidation() {\r\n this.colorRatingError = \"\";\r\n if (this.excellentScore <= this.goodScrore || this.excellentScore <= this.fairScore || this.excellentScore <= this.poorScore) {\r\n this.colorRatingError = \"excellent score should be greater than good,fair and poor.\"\r\n return false;\r\n }\r\n if (this.goodScrore >= this.excellentScore || this.goodScrore <= this.fairScore || this.goodScrore <= this.poorScore) {\r\n this.colorRatingError = \"good score should be greater than fair and poor and less than excellent score.\"\r\n return false;\r\n }\r\n if (this.fairScore >= this.excellentScore || this.fairScore >= this.goodScrore || this.fairScore <= this.poorScore) {\r\n this.colorRatingError = \"fair score should be less than excellent, good and greater than poor.\"\r\n return false;\r\n }\r\n if (this.poorScore >= this.excellentScore || this.poorScore >= this.goodScrore || this.poorScore >= this.fairScore) {\r\n this.colorRatingError = \"poor score should be greater than execllent,good,fair. \"\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n ApplyColor() {\r\n\r\n // Clear the canvas\r\n //this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\r\n //this.InitializeITSMap();\r\n //this.LoadImageInCanvas(this.selectedImageFile); /// add set timeout function to load image\r\n\r\n this.ShowITSMap();\r\n this.SaveITSRating();\r\n\r\n }\r\n\r\n ApplyDAQ() {\r\n //debugger;\r\n ////const roundedNum1 = Number(num1.toFixed(1)); // Output: from 2.15 to 2.1 or 2.16 to 2.2\r\n this.filteredDAQPesqScore = this.DAQScoreTable.filter(m => m.daq == Number(this.daqScore.toFixed(1)))[0];\r\n\r\n this.ShowITSMap();\r\n this.SaveITSRating();\r\n }\r\n\r\n // Methods to handle tab toggling\r\n selectTab(index): void {\r\n this.showVQT = false;\r\n this.selectedTab = index;\r\n if (this.selectedTab != \"DAQ\") {\r\n this.showVQT = true;\r\n this.ShowITSMap();\r\n }\r\n else {\r\n this.ApplyDAQ();\r\n }\r\n\r\n\r\n\r\n\r\n }\r\n\r\n status1: boolean = true;\r\n status2: boolean = false;\r\n togglePanes(type) {\r\n //this.leftPanel = true;\r\n if (type == 1) {\r\n this.showLeftPanel = !this.showLeftPanel;\r\n this.status1 = !this.status1;\r\n this.status2 = false;\r\n }\r\n else if (type == 2) {\r\n this.status2 = !this.status2;\r\n this.status1 = false;\r\n }\r\n }\r\n\r\n downloadCanvas1() {\r\n // get canvas data \r\n var image = this.canvas.toDataURL();\r\n //console.log(this.selectedImageFile);\r\n // create temporary link \r\n var tmpLink = document.createElement('a');\r\n tmpLink.download = this.selectedImageFile.name; // 'image.jpg'; // set the name of the download file \r\n tmpLink.href = image;\r\n\r\n // temporarily add link to body and initiate the download \r\n document.body.appendChild(tmpLink);\r\n tmpLink.click();\r\n document.body.removeChild(tmpLink);\r\n }\r\n\r\n downloadCanvas() {\r\n ////debugger;\r\n let fileNameSaveas = this.ivqFileName.split('.')[0] + \".jpg\"; //this.selectedImageFile.name.toString();\r\n const fileNamePanelElement = document.getElementById('hidFilePanel');\r\n const hidDownlaodVQTElement = document.getElementById('hidDownlaodVQT');\r\n const hidDownlaodDAQElement = document.getElementById('hidDownlaodDAQ');\r\n const divColorPanelElement = document.getElementById('hidColorPanel');\r\n const divElementDownload = document.getElementById('download');\r\n const divElementhidHelp = document.getElementById('hidHelp');\r\n\r\n // Make the div visible by removing the 'display' property\r\n this.renderer.setStyle(divColorPanelElement, 'display', '');\r\n this.renderer.setStyle(divElementDownload, 'display', 'none');\r\n this.renderer.setStyle(fileNamePanelElement, 'display', 'none');\r\n this.renderer.setStyle(divElementhidHelp, 'display', 'none');\r\n\r\n\r\n if (this.selectedTab == \"VQT\") {\r\n this.renderer.setStyle(hidDownlaodVQTElement, 'display', 'block');\r\n this.renderer.setStyle(hidDownlaodDAQElement, 'display', 'none');\r\n }\r\n else {\r\n this.renderer.setStyle(hidDownlaodVQTElement, 'display', 'none');\r\n this.renderer.setStyle(hidDownlaodDAQElement, 'display', 'block');\r\n }\r\n\r\n var container = document.getElementById(\"mainDiv\"); /* full page */\r\n\r\n // Get the dimensions of the div\r\n const width = container.offsetWidth;\r\n const height = container.offsetHeight;\r\n\r\n // Get the current scroll position\r\n const scrollX = container.scrollWidth;\r\n const scrollY = container.scrollHeight;\r\n\r\n setTimeout(() => {\r\n //container.setAttribute(\"style\", \"width: 1200px; height: 1200 px;\");\r\n\r\n }, 1000)\r\n //container.setAttribute(\"style\", \"width: \" + scrollX + \"px; height: \" + scrollY+\"px;\");\r\n\r\n //window.scrollTo(0, 0);\r\n\r\n\r\n //https://www.studentstutorial.com/javascript/convert-html-div-element\r\n //https://codepedia.info/convert-html-to-image-in-jquery-div-or-table-to-jpg-png\r\n\r\n html2canvas(container, { allowTaint: true, width: container.scrollWidth, height: container.scrollHeight + 100, }).then(function (canvas) {\r\n\r\n // Restore the 'display' property back to 'none'\r\n // this.renderer.setStyle(divElement, 'display', 'none');\r\n //canvas.Width = 1500;\r\n //canvas.Height = 800;\r\n\r\n var link = document.createElement(\"a\");\r\n document.body.appendChild(link);\r\n link.download = fileNameSaveas;//\"html_image.jpg\";\r\n link.href = canvas.toDataURL();\r\n link.target = '_blank';\r\n link.click();\r\n\r\n });\r\n // Restore the original scroll position\r\n //container.setAttribute(\"style\", \"width: \" + width + \"px; height: \" + height + \"px;\");\r\n\r\n //https://stackoverflow.com/questions/20605269/screenshot-of-hidden-div-using-html2canvas\r\n // Restore the 'display' property back to 'none'\r\n this.renderer.setStyle(divColorPanelElement, 'display', 'none');\r\n this.renderer.setStyle(divElementDownload, 'display', 'block');\r\n this.renderer.setStyle(hidDownlaodVQTElement, 'display', 'none');\r\n this.renderer.setStyle(hidDownlaodDAQElement, 'display', 'none');\r\n this.renderer.setStyle(fileNamePanelElement, 'display', 'block');\r\n this.renderer.setStyle(divElementhidHelp, 'display', 'block');\r\n\r\n }\r\n\r\n pdfFilePathNew = \"/Webviewer/assets/images/ITS/ITSHelp.pdf?v=6.4.2\";//http://localhost:4200/assets/images/ITS/ITSHelp.pdf?v=6.4.2\r\n\r\n OpenHelp() {\r\n\r\n let pdfFilePath = '/Webviewer/assets/images/ITS/ITSHelp.pdf?v=6.4.2';\r\n //https://stackoverflow.com/questions/40647182/how-to-open-a-browser-window-at-25-of-its-default-size\r\n //https://stackoverflow.com/questions/10297168/how-to-open-maximized-window-with-javascript\r\n const windowFeatures = 'menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=yes,height = ' + screen.height * .66 + ',width=' + screen.width * .66;\r\n // Open the popup window\r\n //const popupWindow = window.open('', '_blank', 'top=0,left=0,height=100%,width=auto');\r\n const popupWindow = window.open('', '_blank', windowFeatures);\r\n\r\n popupWindow.document.open();\r\n popupWindow.document.write(`\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tITS Configuration and Operation Help\r\n\t\t\t\t\t\t\r\n \r\n \r\n \r\n `)\r\n popupWindow.document.close();\r\n\r\n \r\n // Write the HTML content to the popup window\r\n // popupWindow.document.write(`\r\n // \r\n // \r\n // \r\n // \r\n // \r\n //`);\r\n\r\n // // Make sure to close the document write operation\r\n // popupWindow.document.close();\r\n\r\n }\r\n\r\n //////////////////////////////////////////////////////////////////AUTOCOMPLETE DROPDOWN\r\n\r\n displayFn(selectItem: SelectItem): string {\r\n return '';//selectItem && selectItem.name && !selectItem.name.includes('--Select--') ? selectItem.name : '';\r\n }\r\n\r\n EditFilePath(filepathType) {\r\n if (filepathType == \"itsFilepath\") {\r\n this.isSaveITSFilePath = true;\r\n }\r\n else {\r\n this.isPCMFolderPath = true;\r\n }\r\n }\r\n\r\n GetPCMFolders() {\r\n debugger;\r\n\r\n this.isLoading = true;\r\n this.modelPCMName = \"\";\r\n this.pcmNames = [];\r\n this.selectedPCMNames = [];\r\n\r\n let folderPath = this.pcmFolderName_RemoteSystem.replace(/\\\\/g, \"\\\\\\\\\");\r\n //let fileName = folderPath.split('\\\\')[folderPath.split('\\\\').length - 1]; ///extract only file name\r\n\r\n debugger;\r\n this.url = this.baseUrl + 'ITS/GetPCMFolderList';\r\n \r\n this.GetITSFiles_Service(folderPath, this.isPCMFolderPath).subscribe((res) => {\r\n debugger;\r\n //console.log(res);\r\n //console.log('res');\r\n const rows = JSON.parse(res);\r\n if (rows == 'failed') {\r\n this.pcmPlaceholder = \"No File Found\";\r\n this.controlPCM.setValue('');\r\n this.isLoading = false;\r\n return false;\r\n }\r\n\r\n this.isPCMFolderPath = false;\r\n ////// fill pcmfolder dropdown\r\n rows.forEach((rw, i) => {\r\n //console.log(rw);\r\n this.pcmNames.push(rw);//fill reg dropdown \r\n });\r\n //////// add default --Select-- at top of all element\r\n this.pcmNames.unshift('--Select--');\r\n\r\n this.setList(true);\r\n this.isLoading = false;\r\n },\r\n (error) => {\r\n this.isLoading = false;\r\n // Handle the error here\r\n console.error(\"Error in component:\", error.message);\r\n });\r\n \r\n\r\n }\r\n\r\n setList(isPCMFolder: boolean) {\r\n\r\n let defaultValue = \"--Select--\";\r\n if (!isPCMFolder) {\r\n /// image dropdown\r\n this.imageNamesObservable = this.imageNames;\r\n const defaultFile = this.imageNamesObservable.find(item => item === defaultValue); // Set your logic here to find the default\r\n this.controlImage.setValue(defaultFile);\r\n\r\n ///// rts dropdown\r\n this.rtsNamesObservable = this.rtsNames;\r\n const defaultRTSFile = this.rtsNamesObservable.find(item => item === defaultValue); // Set your logic here to find the default\r\n this.controlRTS.setValue(defaultRTSFile);\r\n\r\n ///// ivq dropdown\r\n this.ivqNamesObservable = this.ivqNames;\r\n const defaultIVQFile = this.ivqNamesObservable.find(item => item === defaultValue); // Set your logic here to find the default\r\n this.controlIVQ.setValue(defaultIVQFile);\r\n }\r\n else {\r\n ///// pcm dropdown\r\n this.pcmNamesObservable = this.pcmNames;\r\n const defaultPCMFile = this.pcmNamesObservable.find(item => item === defaultValue); // Set your logic here to find the default\r\n this.controlPCM.setValue(defaultPCMFile);\r\n }\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ///////////////////////////// Image Dropdown\r\n inputLengthImage = 0;\r\n setLimitedOptionsImage = true;\r\n openOrCloseImage = false;\r\n\r\n onKeydownImage($event) {\r\n if (!this.setLimitedOptionsImage) {\r\n this.setLimitedOptionsImage = true;\r\n this.controlImage.valueChanges.subscribe(newValue => {\r\n //this.regConfigNamesObservable = this._regName(newValue);\r\n this.imageNamesObservable = this._imageNameOnKeyDown(newValue);\r\n })\r\n }\r\n\r\n this.inputLengthImage = $event.target.value.length;\r\n //this.modelRegConfigName = $event.target.value;\r\n this.modelImageName = $event.target.value;\r\n if (this.inputLengthImage == 0) {\r\n this.controlImage.setValue(\"\");\r\n //let firstSelectedOption = this.autocompleteTrigger.autocomplete.options.find(o => o.value.id == this.selectedRegNames[0]);\r\n //if (firstSelectedOption) {\r\n // this.RegConfigClose_Region = true;\r\n // this.controlRegion.setValue(\"\");\r\n // firstSelectedOption.deselect();\r\n //}\r\n this.autocompleteTriggerCollection.forEach((x, i) => {\r\n if (i == 0) {\r\n let firstSelectedOption = x.autocomplete.options.find(o => o.value == this.selectedImageNames[0]);\r\n if (firstSelectedOption) {\r\n this.openOrCloseImage = true;\r\n this.controlImage.setValue(\"\");\r\n firstSelectedOption.deselect();\r\n }\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n _imageNameOnKeyDown(value: any): string[] {\r\n let imageNameValue = '';\r\n if (typeof value === \"string\") {\r\n this.toHighlightImage = value;\r\n imageNameValue = value.toLowerCase();\r\n }\r\n else {\r\n this.toHighlightImage = value.name;\r\n imageNameValue = value.name.toLowerCase();\r\n }\r\n return this.imageNames.filter(option => option.toLowerCase().includes(imageNameValue) || option.includes('--Select--'));\r\n }\r\n\r\n OpenAutoCompeleteDailogImage(init?, closed?) {\r\n debugger;\r\n let tmOut = 0;\r\n if (init)\r\n tmOut = 1000;\r\n else {\r\n this.setLimitedOptionsImage = false;\r\n this.imageNamesObservable = this.imageNames;\r\n }\r\n\r\n this.autocompleteTriggerCollection.forEach((x, i) => {\r\n if (i == 0) {\r\n if (this.openOrCloseImage == true || closed) {\r\n setTimeout(() => x.closePanel());\r\n this.openOrCloseImage = false;\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.inputCtrlImage.nativeElement.blur();\r\n this.inputCtrlImage.nativeElement.focus();\r\n this.toHighlightImage = this.inputCtrlImage.nativeElement.value;\r\n //debugger\r\n if (this.inputLengthImage > 0) {\r\n let firstSelectedOption = x.autocomplete.options.find(o => o.selected);\r\n if (firstSelectedOption === undefined && this.selectedImageNames.length > 0) {\r\n firstSelectedOption = x.autocomplete.options.find(o => o.value == this.selectedImageNames[0]);\r\n if (firstSelectedOption) {\r\n if (this.initArrowImage)\r\n this.openOrCloseImage = true;\r\n firstSelectedOption.select();\r\n setTimeout(() => {\r\n x.openPanel();\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n });\r\n }\r\n }\r\n if (firstSelectedOption) {\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n }\r\n }\r\n //x.openPanel();\r\n }, tmOut);\r\n this.openOrCloseImage = true;\r\n }\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n initArrowImage = true;\r\n SetArrowClickImage() {\r\n if (this.initArrowImage) {\r\n this.initArrowImage = false;\r\n }\r\n }\r\n\r\n async onImageNameChange(event) {\r\n debugger;\r\n if (event !== undefined && event !== null) {\r\n\r\n this.setLimitedOptionsImage = true;\r\n this.imageNamesObservable = this.imageNames;\r\n\r\n let selID = event;// parseInt(event);\r\n this.selectedImageNames = [selID];\r\n this.modelImageName = this.imageNames.find(item => item == selID.toString()).toString();\r\n //this.inputLengthRegion = this.modelRegName.length;\r\n\r\n /////////below code is to set default fisrt value of region names in inputbox for autocomplete when config region is selected\r\n //if (this.regNames.length > 0) {\r\n // const defaultValue = this.regionNamesObservable.find(item => item.id === selID); // Set your logic here to find the default\r\n // this.controlRegion.setValue(defaultValue);\r\n //}\r\n\r\n }\r\n else {\r\n this.resetImage(null);\r\n }\r\n\r\n }\r\n\r\n resetImage(event) {\r\n if (event == null) {\r\n //Reset reg name and list to default\r\n this.selectedImageNames = [];\r\n this.modelImageName = \"\";\r\n this.modelImageColor = \"#ffffff\";//reset default color of reg\r\n\r\n //this.selRegionUnderCurrConfig = [];\r\n }\r\n }\r\n\r\n ////////////////////////////RTS Dropdown\r\n inputLengthRTS = 0;\r\n setLimitedOptionsRTS = true;\r\n openOrCloseRTS = false;\r\n\r\n onKeydownRTS($event) {\r\n if (!this.setLimitedOptionsRTS) {\r\n this.setLimitedOptionsRTS = true;\r\n this.controlRTS.valueChanges.subscribe(newValue => {\r\n //this.regConfigNamesObservable = this._regName(newValue);\r\n this.rtsNamesObservable = this._rtsNameOnKeyDown(newValue);\r\n })\r\n }\r\n\r\n this.inputLengthRTS = $event.target.value.length;\r\n //this.modelRegConfigName = $event.target.value;\r\n this.modelRTSName = $event.target.value;\r\n if (this.inputLengthRTS == 0) {\r\n this.controlRTS.setValue(\"\");\r\n //let firstSelectedOption = this.autocompleteTrigger.autocomplete.options.find(o => o.value.id == this.selectedRegNames[0]);\r\n //if (firstSelectedOption) {\r\n // this.RegConfigClose_Region = true;\r\n // this.controlRegion.setValue(\"\");\r\n // firstSelectedOption.deselect();\r\n //}\r\n this.autocompleteTriggerCollection.forEach((x, i) => {\r\n if (i == 1) {\r\n let firstSelectedOption = x.autocomplete.options.find(o => o.value == this.selectedRTSNames[0]);\r\n if (firstSelectedOption) {\r\n this.openOrCloseRTS = true;\r\n this.controlRTS.setValue(\"\");\r\n firstSelectedOption.deselect();\r\n }\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n _rtsNameOnKeyDown(value: any): string[] {\r\n let rtsNameValue = '';\r\n if (typeof value === \"string\") {\r\n this.toHighlightRTS = value;\r\n rtsNameValue = value.toLowerCase();\r\n }\r\n else {\r\n this.toHighlightRTS = value.name;\r\n rtsNameValue = value.name.toLowerCase();\r\n }\r\n return this.rtsNames.filter(option => option.toLowerCase().includes(rtsNameValue) || option.includes('--Select--'));\r\n }\r\n\r\n OpenAutoCompeleteDailogRTS(init?, closed?) {\r\n debugger;\r\n let tmOut = 0;\r\n if (init)\r\n tmOut = 1000;\r\n else {\r\n this.setLimitedOptionsRTS = false;\r\n this.rtsNamesObservable = this.rtsNames;\r\n }\r\n\r\n this.autocompleteTriggerCollection.forEach((x, i) => {\r\n if (i == 1) {\r\n if (this.openOrCloseRTS == true || closed) {\r\n setTimeout(() => x.closePanel());\r\n this.openOrCloseRTS = false;\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.inputCtrlRTS.nativeElement.blur();\r\n this.inputCtrlRTS.nativeElement.focus();\r\n this.toHighlightRTS = this.inputCtrlRTS.nativeElement.value;\r\n //debugger\r\n if (this.inputLengthRTS > 0) {\r\n let firstSelectedOption = x.autocomplete.options.find(o => o.selected);\r\n if (firstSelectedOption === undefined && this.selectedRTSNames.length > 0) {\r\n firstSelectedOption = x.autocomplete.options.find(o => o.value == this.selectedRTSNames[0]);\r\n if (firstSelectedOption) {\r\n if (this.initArrowRTS)\r\n this.openOrCloseRTS = true;\r\n firstSelectedOption.select();\r\n setTimeout(() => {\r\n x.openPanel();\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n });\r\n }\r\n }\r\n if (firstSelectedOption) {\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n }\r\n }\r\n //x.openPanel();\r\n }, tmOut);\r\n this.openOrCloseRTS = true;\r\n }\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n initArrowRTS = true;\r\n SetArrowClickRTS() {\r\n if (this.initArrowRTS) {\r\n this.initArrowRTS = false;\r\n }\r\n }\r\n\r\n async onRTSNameChange(event) {\r\n debugger;\r\n if (event !== undefined && event !== null) {\r\n\r\n this.setLimitedOptionsRTS = true;\r\n this.rtsNamesObservable = this.rtsNames;\r\n\r\n let selID = event;// parseInt(event);\r\n this.selectedRTSNames = [selID];\r\n this.modelRTSName = this.rtsNames.find(item => item == selID.toString()).toString();\r\n //this.inputLengthRegion = this.modelRegName.length;\r\n\r\n /////////below code is to set default fisrt value of region names in inputbox for autocomplete when config region is selected\r\n //if (this.regNames.length > 0) {\r\n // const defaultValue = this.regionNamesObservable.find(item => item.id === selID); // Set your logic here to find the default\r\n // this.controlRegion.setValue(defaultValue);\r\n //}\r\n\r\n }\r\n else {\r\n this.resetRTS(null);\r\n }\r\n\r\n }\r\n\r\n resetRTS(event) {\r\n if (event == null) {\r\n //Reset reg name and list to default\r\n this.selectedRTSNames = [];\r\n this.modelRTSName = \"\";\r\n this.modelRTSColor = \"#ffffff\";//reset default color of reg\r\n //this.selRegionUnderCurrConfig = [];\r\n }\r\n }\r\n\r\n //////////////////////////// IVQ Dropdown\r\n inputLengthIVQ = 0;\r\n setLimitedOptionsIVQ = true;\r\n openOrCloseIVQ = false;\r\n\r\n onKeydownIVQ($event) {\r\n if (!this.setLimitedOptionsIVQ) {\r\n this.setLimitedOptionsIVQ = true;\r\n this.controlIVQ.valueChanges.subscribe(newValue => {\r\n //this.regConfigNamesObservable = this._regName(newValue);\r\n this.ivqNamesObservable = this._ivqNameOnKeyDown(newValue);\r\n })\r\n }\r\n\r\n this.inputLengthIVQ = $event.target.value.length;\r\n //this.modelRegConfigName = $event.target.value;\r\n this.modelIVQName = $event.target.value;\r\n if (this.inputLengthIVQ == 0) {\r\n this.controlIVQ.setValue(\"\");\r\n //let firstSelectedOption = this.autocompleteTrigger.autocomplete.options.find(o => o.value.id == this.selectedRegNames[0]);\r\n //if (firstSelectedOption) {\r\n // this.RegConfigClose_Region = true;\r\n // this.controlRegion.setValue(\"\");\r\n // firstSelectedOption.deselect();\r\n //}\r\n this.autocompleteTriggerCollection.forEach((x, i) => {\r\n if (i == 2) {\r\n let firstSelectedOption = x.autocomplete.options.find(o => o.value == this.selectedIVQNames[0]);\r\n if (firstSelectedOption) {\r\n this.openOrCloseIVQ = true;\r\n this.controlIVQ.setValue(\"\");\r\n firstSelectedOption.deselect();\r\n }\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n _ivqNameOnKeyDown(value: any): string[] {\r\n let ivqNameValue = '';\r\n if (typeof value === \"string\") {\r\n this.toHighlightIVQ = value;\r\n ivqNameValue = value.toLowerCase();\r\n }\r\n else {\r\n this.toHighlightIVQ = value.name;\r\n ivqNameValue = value.name.toLowerCase();\r\n }\r\n return this.ivqNames.filter(option => option.toLowerCase().includes(ivqNameValue) || option.includes('--Select--'));\r\n }\r\n\r\n OpenAutoCompeleteDailogIVQ(init?, closed?) {\r\n debugger;\r\n let tmOut = 0;\r\n if (init)\r\n tmOut = 1000;\r\n else {\r\n this.setLimitedOptionsIVQ = false;\r\n this.ivqNamesObservable = this.ivqNames;\r\n }\r\n\r\n this.autocompleteTriggerCollection.forEach((x, i) => {\r\n if (i == 2) {\r\n if (this.openOrCloseIVQ == true || closed) {\r\n setTimeout(() => x.closePanel());\r\n this.openOrCloseIVQ = false;\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.inputCtrlIVQ.nativeElement.blur();\r\n this.inputCtrlIVQ.nativeElement.focus();\r\n this.toHighlightIVQ = this.inputCtrlIVQ.nativeElement.value;\r\n //debugger\r\n if (this.inputLengthIVQ > 0) {\r\n let firstSelectedOption = x.autocomplete.options.find(o => o.selected);\r\n if (firstSelectedOption === undefined && this.selectedIVQNames.length > 0) {\r\n firstSelectedOption = x.autocomplete.options.find(o => o.value == this.selectedIVQNames[0]);\r\n if (firstSelectedOption) {\r\n if (this.initArrowIVQ)\r\n this.openOrCloseIVQ = true;\r\n firstSelectedOption.select();\r\n setTimeout(() => {\r\n x.openPanel();\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n });\r\n }\r\n }\r\n if (firstSelectedOption) {\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n }\r\n }\r\n //x.openPanel();\r\n }, tmOut);\r\n this.openOrCloseIVQ = true;\r\n }\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n initArrowIVQ = true;\r\n SetArrowClickIVQ() {\r\n if (this.initArrowIVQ) {\r\n this.initArrowIVQ = false;\r\n }\r\n }\r\n\r\n async onIVQNameChange(event) {\r\n debugger;\r\n if (event !== undefined && event !== null) {\r\n\r\n this.setLimitedOptionsIVQ = true;\r\n this.ivqNamesObservable = this.ivqNames;\r\n\r\n let selID = event;// parseInt(event);\r\n this.selectedIVQNames = [selID];\r\n this.modelIVQName = this.ivqNames.find(item => item == selID.toString()).toString();\r\n\r\n }\r\n else {\r\n this.resetIVQ(null);\r\n }\r\n\r\n }\r\n\r\n resetIVQ(event) {\r\n if (event == null) {\r\n //Reset reg name and list to default\r\n this.selectedIVQNames = [];\r\n this.modelIVQName = \"\";\r\n this.modelIVQColor = \"#ffffff\";//reset default color of reg\r\n //this.selRegionUnderCurrConfig = [];\r\n }\r\n }\r\n\r\n //////////////////////////// PCM Dropdown\r\n inputLengthPCM = 0;\r\n setLimitedOptionsPCM = true;\r\n openOrClosePCM = false;\r\n\r\n onKeydownPCM($event) {\r\n if (!this.setLimitedOptionsPCM) {\r\n this.setLimitedOptionsPCM = true;\r\n this.controlPCM.valueChanges.subscribe(newValue => {\r\n //this.regConfigNamesObservable = this._regName(newValue);\r\n this.pcmNamesObservable = this._pcmNameOnKeyDown(newValue);\r\n })\r\n }\r\n\r\n this.inputLengthPCM = $event.target.value.length;\r\n //this.modelRegConfigName = $event.target.value;\r\n this.modelPCMName = $event.target.value;\r\n if (this.inputLengthPCM == 0) {\r\n this.controlPCM.setValue(\"\");\r\n //let firstSelectedOption = this.autocompleteTrigger.autocomplete.options.find(o => o.value.id == this.selectedRegNames[0]);\r\n //if (firstSelectedOption) {\r\n // this.RegConfigClose_Region = true;\r\n // this.controlRegion.setValue(\"\");\r\n // firstSelectedOption.deselect();\r\n //}\r\n this.autocompleteTriggerCollection.forEach((x, i) => {\r\n if (i == 3) {\r\n let firstSelectedOption = x.autocomplete.options.find(o => o.value == this.selectedPCMNames[0]);\r\n if (firstSelectedOption) {\r\n this.openOrClosePCM = true;\r\n this.controlPCM.setValue(\"\");\r\n firstSelectedOption.deselect();\r\n }\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n _pcmNameOnKeyDown(value: any): string[] {\r\n let pcmNameValue = '';\r\n if (typeof value === \"string\") {\r\n this.toHighlightPCM = value;\r\n pcmNameValue = value.toLowerCase();\r\n }\r\n else {\r\n this.toHighlightPCM = value.name;\r\n pcmNameValue = value.name.toLowerCase();\r\n }\r\n return this.pcmNames.filter(option => option.toLowerCase().includes(pcmNameValue) || option.includes('--Select--'));\r\n }\r\n\r\n OpenAutoCompeleteDailogPCM(init?, closed?) {\r\n debugger;\r\n let tmOut = 0;\r\n if (init)\r\n tmOut = 1000;\r\n else {\r\n this.setLimitedOptionsPCM = false;\r\n this.pcmNamesObservable = this.pcmNames;\r\n }\r\n\r\n this.autocompleteTriggerCollection.forEach((x, i) => {\r\n if (i == 3) {\r\n if (this.openOrClosePCM == true || closed) {\r\n setTimeout(() => x.closePanel());\r\n this.openOrClosePCM = false;\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.inputCtrlPCM.nativeElement.blur();\r\n this.inputCtrlPCM.nativeElement.focus();\r\n this.toHighlightPCM = this.inputCtrlPCM.nativeElement.value;\r\n //debugger\r\n if (this.inputLengthPCM > 0) {\r\n let firstSelectedOption = x.autocomplete.options.find(o => o.selected);\r\n if (firstSelectedOption === undefined && this.selectedPCMNames.length > 0) {\r\n firstSelectedOption = x.autocomplete.options.find(o => o.value == this.selectedPCMNames[0]);\r\n if (firstSelectedOption) {\r\n if (this.initArrowPCM)\r\n this.openOrClosePCM = true;\r\n firstSelectedOption.select();\r\n setTimeout(() => {\r\n x.openPanel();\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n });\r\n }\r\n }\r\n if (firstSelectedOption) {\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n }\r\n }\r\n //x.openPanel();\r\n }, tmOut);\r\n this.openOrClosePCM = true;\r\n }\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n initArrowPCM = true;\r\n SetArrowClickPCM() {\r\n if (this.initArrowPCM) {\r\n this.initArrowPCM = false;\r\n }\r\n }\r\n\r\n async onPCMNameChange(event) {\r\n debugger;\r\n if (event !== undefined && event !== null) {\r\n\r\n this.setLimitedOptionsPCM = true;\r\n this.pcmNamesObservable = this.pcmNames;\r\n\r\n let selID = event;// parseInt(event);\r\n this.selectedPCMNames = [selID];\r\n this.modelPCMName = this.pcmNames.find(item => item == selID.toString()).toString();\r\n\r\n }\r\n else {\r\n this.resetPCM(null);\r\n }\r\n\r\n }\r\n\r\n resetPCM(event) {\r\n if (event == null) {\r\n //Reset reg name and list to default\r\n this.selectedPCMNames = [];\r\n this.modelPCMName = \"\";\r\n this.modelPCMColor = \"#ffffff\";//reset default color of reg\r\n //this.selRegionUnderCurrConfig = [];\r\n }\r\n }\r\n\r\n ///////////////////////////////////////////////////////////////END AUTOCOMPLETE DROPDDOWN\r\n\r\n ////////////////////////////////////////////////////////////// common functions\r\n getPosition(x, y, color) {\r\n this.element = this.root;\r\n this.canvas = document.getElementById(\"canvas\");\r\n this.ctx = this.canvas.getContext(\"2d\");\r\n let curleft = 0,\r\n curtop = 0;\r\n\r\n\r\n this.DrawCoordinates(x, y, color);\r\n //this.drawCoordinates(x, 10, color);\r\n // this.DrawTriangle(295, 350, 170);\r\n\r\n }\r\n\r\n DrawCoordinates(x, y, color) {\r\n const grd = this.ctx.createLinearGradient(0, 0, color, 0);\r\n grd.addColorStop(0, \"blue\");\r\n // grd.addColorStop(1, \"red\");\r\n this.ctx.fillStyle = grd; // Red color\r\n\r\n this.ctx.beginPath();\r\n this.ctx.arc(Number(x), Number(y), this.pointSize, 0, Math.PI * 2, true);\r\n this.ctx.fill();\r\n\r\n //const image = new Image();\r\n //image.src = \"https://cdn4.iconfinder.com/data/icons/essential-app-2/16/play-music-triangle-media-512.png\";\r\n //// Draw a star at coordinates (100, 100)\r\n //this.ctx.drawImage(image, Number(x), Number(y), 20, 20);\r\n // load second image\r\n\r\n }\r\n\r\n DrawCoordinatesWithTilte(x, y, color = \"#008040\", resultType = \"\", timestampDate = \"\", score = \"\", pauseTimerMeanScore = 0, xCordOriginal = 0, yCordOriginal = 0, pcmFileName = \"\", noOfOutboundFiles = 0) {\r\n\r\n this.xaxis = x;\r\n this.yaxis = y;\r\n const width2 = 20; // replace with your desired width\r\n const height2 = 20; // replace with your desired height\r\n\r\n // const grd = this.ctx.createLinearGradient(0, 0, color, 0); \r\n //grd.addColorStop(0, \"yellow\");\r\n this.ctx.fillStyle = color; //\"#008040\"; //grd; // Red color\r\n\r\n this.ctx.beginPath();\r\n this.ctx.arc(Number(x), Number(y), this.pointSize, 0, Math.PI * 2, true);\r\n this.ctx.fill();\r\n\r\n // Draw the outline of the triangle\r\n this.ctx.strokeStyle = \"black\";\r\n this.ctx.lineWidth = 1;\r\n this.ctx.stroke();\r\n\r\n //let title = \"
    Shape
    This is Circle shape.
    \";\r\n let title = \"\";\r\n if (pauseTimerMeanScore == 0) {\r\n if (this.selectedTab == \"VQT\")\r\n title = \"
    VQuad Timestamp = \" + timestampDate + \"
    \" + resultType + \" Score = \" + (score == \"0\" ? \"N/A\" : score) + \"
    Uplink
    \";\r\n else\r\n title = \"
    VQuad Timestamp = \" + timestampDate + \"
    \" + resultType + \" Score = \" + (score == \"0\" ? \"N/A\" : score) + \"
    DAQ Score =\" + this.daqScoreResult + \"
    Uplink
    \";\r\n }\r\n else {\r\n if (this.selectedTab == \"VQT\")\r\n title = \"
    VQuad Timestamp = \" + timestampDate + \"
    \" + resultType + \" Mean Score of (\" + noOfOutboundFiles + \" files) = \" + (score == \"0\" ? \"N/A\" : score) + \"
    Uplink
    \";\r\n else\r\n title = \"
    VQuad Timestamp = \" + timestampDate + \"
    \" + resultType + \" Mean Score of (\" + noOfOutboundFiles + \" files) = \" + (score == \"0\" ? \"N/A\" : score) + \"
    DAQ Score =\" + this.daqScoreResult + \"
    Uplink
    \";\r\n }\r\n\r\n ///////////////////// BELOW CODE COMMENT AS THIS FUNTIONALITY MAY REQUIRE IT LATER AS PER CUSTOMER DEMANDS\r\n\r\n this.canvas.addEventListener('click', (event) => {\r\n if ((event.offsetX > x - 10 && event.offsetX < (x + 10)) && (event.offsetY > y - 10 && event.offsetY < y + 10) && pcmFileName != \"\") {\r\n //debugger;\r\n this.ConvertPCMToWAV(pcmFileName);\r\n }\r\n });\r\n\r\n // add mouseover event listener\r\n this.canvas.addEventListener('mousemove', (event) => {\r\n\r\n this.dx = event.offsetX;\r\n this.dy = event.offsetY;\r\n this.distsqrt = 0;// distance;\r\n\r\n //this.xaxis = x + 20;\r\n //this.yaxis = y;\r\n this.distsqrtxy = Math.sqrt(x * x + y * y);\r\n\r\n // show title if distance is less than 50 pixels\r\n //if (distance<50)\r\n /// show title only within circle 223, 302\r\n if ((event.offsetX > x - 10 && event.offsetX < (x + 10)) && (event.offsetY > y - 10 && event.offsetY < y + 10)) {\r\n ////debugger;\r\n this.isMouseOver = true;\r\n this.drawTitle(this.canvas, this.ctx, title, x + 320, y + 20, xCordOriginal, yCordOriginal);/// x + 320 and y + 20 are for positioning the title box \r\n\r\n } else {\r\n ////debugger;\r\n this.isMouseOver = false;\r\n //this.drawTitle(this.canvas, this.ctx, '', x, y);\r\n this.titleRef.nativeElement.style.display = 'none';\r\n }\r\n });\r\n\r\n }\r\n\r\n DrawTrianglewithImage(x, y, color) {\r\n\r\n //const grd = this.ctx.createLinearGradient(0, 0, color, 0);\r\n //grd.addColorStop(0, \"blue\");\r\n //this.ctx.fillStyle = grd; // Red color\r\n\r\n //this.ctx.beginPath();\r\n //const image = new Image();\r\n //image.src = \"https://cdn4.iconfinder.com/data/icons/essential-app-2/16/play-music-triangle-media-512.png\";\r\n //// Draw a star at coordinates (100, 100)\r\n\r\n //this.ctx.drawImage(image, Number(x), Number(y), 20, 20);\r\n //this.ctx.fill();\r\n const imageTriangle = new Image();\r\n imageTriangle.onload = () => {\r\n // define coordinates for second image\r\n const x2 = 100; // replace with your desired x coordinate\r\n const y2 = 100; // replace with your desired y coordinate\r\n const width2 = 20; // replace with your desired width\r\n const height2 = 20; // replace with your desired height\r\n\r\n // draw second image on canvas\r\n this.ctx.drawImage(imageTriangle, x, y, width2, height2);\r\n // add text to canvas\r\n this.ctx.font = 'bold 15px Arial';\r\n this.ctx.fillStyle = 'white';\r\n\r\n // calculate coordinates of the center of the canvas\r\n const centerX = this.canvas.width / 2;\r\n const centerY = this.canvas.height / 2;\r\n\r\n // adjust coordinates of the text to center it on the canvas\r\n const text = 'Hello, world!';\r\n const textWidth = this.ctx.measureText(text).width;\r\n const textHeight = 24;\r\n const textX = centerX - textWidth / 2;\r\n const textY = centerY + textHeight / 2;\r\n\r\n this.ctx.fillText('5', (x + 8), (y + 12));\r\n };\r\n imageTriangle.src = 'https://cdn4.iconfinder.com/data/icons/essential-app-2/16/play-music-triangle-media-512.png'; // replace with your second image path\r\n\r\n }\r\n\r\n DrawSquareWithColor(x, y, color) {\r\n\r\n //const grd = this.ctx.createLinearGradient(0, 0, color, 0);\r\n //grd.addColorStop(0, \"blue\");\r\n //this.ctx.fillStyle = grd; // Red color\r\n\r\n //this.ctx.beginPath();\r\n //const image = new Image();\r\n //image.src = \"https://cdn4.iconfinder.com/data/icons/essential-app-2/16/play-music-triangle-media-512.png\";\r\n //// Draw a star at coordinates (100, 100)\r\n\r\n //this.ctx.drawImage(image, Number(x), Number(y), 20, 20);\r\n //this.ctx.fill();\r\n const imageTriangle = new Image();\r\n //imageTriangle.onload = () => {\r\n // define coordinates for second image\r\n const x2 = 100; // replace with your desired x coordinate\r\n const y2 = 100; // replace with your desired y coordinate\r\n const width2 = 20; // replace with your desired width\r\n const height2 = 20; // replace with your desired height\r\n\r\n // draw second image on canvas\r\n this.ctx.drawImage(imageTriangle, x, y, width2, height2);\r\n this.ctx.fillStyle = 'red';\r\n this.ctx.fillRect(x + 20, y, 20, 20);\r\n\r\n // add text to canvas\r\n this.ctx.font = 'bold 15px Arial';\r\n this.ctx.fillStyle = 'white';\r\n this.ctx.textAlign = 'center';\r\n this.ctx.textBaseline = 'middle';\r\n\r\n // calculate coordinates of the center of the canvas\r\n const centerX = this.canvas.width / 2;\r\n const centerY = this.canvas.height / 2;\r\n\r\n // adjust coordinates of the text to center it on the canvas\r\n const text = '8';\r\n const textWidth = this.ctx.measureText(text).width;\r\n const textHeight = 24;\r\n const textX = centerX - textWidth / 2;\r\n const textY = centerY + textHeight / 2;\r\n\r\n this.ctx.fillText(text, (x + 30), (y + 12));\r\n\r\n }\r\n\r\n DrawSquareWithTitle(x, y, color, stepcount = 0, titleData = \"\", iconType = \"\", xCordOriginal = 0, yCordOriginal = 0) {\r\n\r\n //const x2 = 100; // replace with your desired x coordinate\r\n //const y2 = 100; // replace with your desired y coordinate\r\n const width2 = 15;//20; // replace with your desired width\r\n const height2 = 15; //20; // replace with your desired height\r\n\r\n // draw second image on canvas\r\n // this.ctx.drawImage(imageTriangle, x, y, width2, height2);\r\n this.ctx.fillStyle = 'Red';\r\n this.ctx.fillRect(x - 6, y - 6, width2, height2); ///to draw rectangle\r\n\r\n // add text to canvas\r\n this.ctx.font = 'bold 12px Arial';\r\n this.ctx.fillStyle = 'white';\r\n this.ctx.textAlign = 'center';\r\n this.ctx.textBaseline = 'middle';\r\n\r\n // calculate coordinates of the center of the canvas\r\n const centerX = this.canvas.width / 2;\r\n const centerY = this.canvas.height / 2;\r\n\r\n // adjust coordinates of the text to center it on the canvas\r\n const text = stepcount; //'7';\r\n const textWidth = this.ctx.measureText(text).width;\r\n const textHeight = 24;\r\n const textX = centerX - textWidth / 2;\r\n const textY = centerY + textHeight / 2;\r\n\r\n this.ctx.fillText(text, (x + 2), (y + 3)); //this.ctx.fillText(text, (x + 30), (y + 12));\r\n this.ctx.setTransform(1, 0, 0, 1, 0, 0); // //the transform matrix is reset to the identity matrix using this.ctx.setTransform(1, 0, 0, 1, 0, 0) to ensure that each star is drawn independently of the others.\r\n //this.ctx.fillRect(x+20, y, 20, 20);\r\n // };\r\n //imageTriangle.src = 'https://cdn4.iconfinder.com/data/icons/essential-app-2/16/play-music-triangle-media-512.png'; // replace with your second image path\r\n\r\n //let title = \"
    Shape 1
    This is shape 1.
    This is shape 1.
    This is shape 1.
    This is shape 1.
    \";\r\n let title = \"\";\r\n if (iconType == \"\")\r\n title = \"
    Timestamp =\" + titleData + \"
    \";\r\n else\r\n title = \"
    Timestamp =\" + titleData + \"
    \" + iconType + \"
    \";\r\n // add mouseover event listener\r\n this.canvas.addEventListener('mousemove', (event) => {\r\n // calculate distance between mouse position and target coordinate\r\n\r\n //const dx = event.offsetX - x;\r\n //const dy = event.offsetY - y;\r\n //const distance = Math.sqrt(dx * dx + dy * dy);\r\n\r\n this.dx = event.offsetX;\r\n this.dy = event.offsetY;\r\n this.distsqrt = 0;// distance;\r\n\r\n this.xaxis = x;\r\n this.yaxis = y;\r\n this.distsqrtxy = Math.sqrt(x * x + y * y);\r\n \r\n // show title if distance is less than 50 pixels\r\n //if (distance<50)\r\n /// show title only within square image so check x cordinate within width of square an y shld be between height of square 115 50\r\n if ((event.offsetX > x - 5 && event.offsetX < x + 10) && (event.offsetY > y - 5 && event.offsetY < y + 10)) {\r\n this.isMouseOver = true;\r\n ////debugger;\r\n this.drawTitle(this.canvas, this.ctx, title, x + 320, y + 40, xCordOriginal, yCordOriginal);\r\n } else {\r\n ////debugger;\r\n this.isMouseOver = false;\r\n //this.drawTitle(this.canvas, this.ctx, '', x, y, x, y);\r\n this.titleRef.nativeElement.style.display = 'none';\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n DrawTriangleWith2Corodinates(x, y, color) {\r\n const width2 = 10; // replace with your desired width\r\n const height2 = 10;\r\n\r\n // Define the two coordinates of the triangle \r\n //const x1 = x;\r\n //const y1 = x;\r\n //const x2 = y;\r\n //const y2 = y;\r\n const x1 = x;//50\r\n const y1 = y;//50\r\n const x2 = x - 10//60;\r\n const y2 = y + 12//55;\r\n const x3 = x + 10//55;\r\n const y3 = y + 12//60;\r\n // Move to the first coordinate\r\n this.ctx.beginPath();\r\n this.ctx.moveTo(x1, y1);\r\n\r\n // Draw a line to the second coordinate\r\n this.ctx.lineTo(x2, y2);\r\n\r\n // Draw a line to the top of the triangle (halfway between the two coordinates)\r\n //const x3 = (x1 + x2) / 4;\r\n //const y3 = y1 - (y2 - y1) / 4;\r\n this.ctx.lineTo(x3, y3);\r\n\r\n // Close the path to complete the triangle\r\n this.ctx.closePath();\r\n\r\n // Fill the triangle with a color\r\n this.ctx.fillStyle = \"yellow\";\r\n this.ctx.fill();\r\n\r\n // Draw the outline of the triangle\r\n this.ctx.strokeStyle = \"black\";\r\n this.ctx.lineWidth = 2;\r\n this.ctx.stroke();\r\n\r\n let title = \"
    Shape
    This is Triangle2 shape.
    \";\r\n // add mouseover event listener\r\n this.canvas.addEventListener('mousemove', (event) => {\r\n // calculate distance between mouse position and target coordinate\r\n\r\n //const dx = event.offsetX - x;\r\n //const dy = event.offsetY - y;\r\n //const distance = Math.sqrt(dx * dx + dy * dy);\r\n\r\n this.dx = event.offsetX;\r\n this.dy = event.offsetY;\r\n this.distsqrt = 0;// distance;\r\n\r\n //this.xaxis = x + 20;\r\n //this.yaxis = y;\r\n this.distsqrtxy = Math.sqrt(x * x + y * y);\r\n\r\n // show title if distance is less than 50 pixels\r\n //if (distance<50)\r\n /// show title only within square image so check x cordinate within width of square an y shld be between height of square\r\n if ((event.offsetX > x - 10 && event.offsetX < (x + width2)) && (event.offsetY > y && event.offsetY < y + height2)) {\r\n this.isMouseOver = true;\r\n this.drawTitle(this.canvas, this.ctx, title, x + 500, y + 45, x, y);/// 10 and 20 are for positioning the title box\r\n } else {\r\n ////debugger;\r\n this.isMouseOver = false;\r\n //this.drawTitle(this.canvas, this.ctx, '', x, y);\r\n this.titleRef.nativeElement.style.display = 'none';\r\n }\r\n });\r\n\r\n }\r\n\r\n DrawTriangleWithTitle(x, y, color = \"#008040\", resultType = \"\", timestampDate = \"\", score = \"\", pauseTimerMeanScore = 0, xCordOriginal = 0, yCordOriginal = 0, pcmFileName = \"\", noOfInboundFiles = 0) {\r\n\r\n //this.xaxis = x;\r\n //this.yaxis = y;\r\n const width2 = 10; // replace with your desired width\r\n const height2 = 10; // replace with your desired height\r\n\r\n // Define the two coordinates of the triangle\r\n //const x1 = x;\r\n //const y1 = x;\r\n //const x2 = y;\r\n //const y2 = y;\r\n const x1 = x;//50\r\n const y1 = y;//50\r\n const x2 = x - 8//60;\r\n const y2 = y + 8//55;\r\n const x3 = x + 8//55;\r\n const y3 = y + 8//60;\r\n // Move to the first coordinate\r\n this.ctx.beginPath();\r\n this.ctx.moveTo(x1, y1);\r\n\r\n // Draw a line to the second coordinate\r\n this.ctx.lineTo(x2, y2 + 6);\r\n\r\n // Draw a line to the top of the triangle (halfway between the two coordinates)\r\n //const x3 = (x1 + x2) / 4;\r\n //const y3 = y1 - (y2 - y1) / 4;\r\n this.ctx.lineTo(x3, y3 + 6);\r\n\r\n // Close the path to complete the triangle\r\n this.ctx.closePath();\r\n\r\n // Fill the triangle with a color\r\n this.ctx.fillStyle = color; //\"#008040\";\r\n this.ctx.fill();\r\n\r\n // Draw the outline of the triangle\r\n this.ctx.strokeStyle = \"black\";\r\n this.ctx.lineWidth = 1;\r\n this.ctx.stroke();\r\n\r\n //let title = \"
    Shape
    This is Triangle shape.
    \"; DAQ Score =\"+this.daqScoreResult+\"
    \r\n\r\n let title = \"\";\r\n if (pauseTimerMeanScore == 0) {\r\n if (this.selectedTab == \"VQT\")\r\n title = \"
    VQuad Timestamp = \" + timestampDate + \"
    \" + resultType + \" Score = \" + (score == \"0\" ? \"N/A\" : score) + \"
    Downlink
    \";\r\n else\r\n title = \"
    VQuad Timestamp = \" + timestampDate + \"
    \" + resultType + \" Score = \" + (score == \"0\" ? \"N/A\" : score) + \"
    DAQ Score =\" + this.daqScoreResult + \"
    Downlink
    \";\r\n\r\n }\r\n else {\r\n if (this.selectedTab == \"VQT\") {\r\n title = \"
    VQuad Timestamp = \" + timestampDate + \"
    \" + resultType + \" Mean Score of (\" + noOfInboundFiles + \" files)= \" + (score == \"0\" ? \"N/A\" : score) + \"
    Downlink
    \";\r\n }\r\n else {\r\n title = \"
    VQuad Timestamp = \" + timestampDate + \"
    \" + resultType + \" Mean Score of (\" + noOfInboundFiles + \" files) = \" + (score == \"0\" ? \"N/A\" : score) + \"
    DAQ Score =\" + this.daqScoreResult + \"
    Downlink
    \";\r\n }\r\n }\r\n\r\n\r\n ///////////////////// BELOW CODE COMMENT AS THIS FUNTIONALITY MAY REQUIRE IT LATER AS PER CUSTOMER DEMANDS\r\n\r\n ////// onclick convert pcm file to wav and play in audioplayer\r\n this.canvas.addEventListener('click', (event) => {\r\n if ((event.offsetX > x - 10 && event.offsetX < (x + 10)) && (event.offsetY > y - 10 && event.offsetY < y + 10) && pcmFileName != \"\") {\r\n //debugger;\r\n this.ConvertPCMToWAV(pcmFileName);\r\n }\r\n });\r\n // add mouseover event listener\r\n this.canvas.addEventListener('mousemove', (event) => {\r\n // calculate distance between mouse position and target coordinate\r\n\r\n\r\n //const dx = event.offsetX - x;\r\n //const dy = event.offsetY - y;\r\n //const distance = Math.sqrt(dx * dx + dy * dy);\r\n\r\n this.dx = event.offsetX;\r\n this.dy = event.offsetY;\r\n this.distsqrt = 0;// distance;\r\n\r\n //this.xaxis = x + 20;\r\n //this.yaxis = y;\r\n this.distsqrtxy = Math.sqrt(x * x + y * y);\r\n\r\n // show title if distance is less than 50 pixels\r\n //if (distance<50)\r\n /// show title only within square image so check x cordinate within width of square an y shld be between height of square 435, 250,\r\n if ((event.offsetX > x - 10 && event.offsetX < (x + 10)) && (event.offsetY > y - 10 && event.offsetY < y + 10)) {\r\n this.isMouseOver = true;\r\n this.drawTitle(this.canvas, this.ctx, title, x + 320, y+20 , xCordOriginal, yCordOriginal);/// x + 350 and y + 70 are for positioning the title box\r\n\r\n\r\n } else {\r\n ////debugger;\r\n this.isMouseOver = false;\r\n //this.drawTitle(this.canvas, this.ctx, '', x, y);\r\n this.titleRef.nativeElement.style.display = 'none';\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n DrawTriangleWithSmalSize(x, y, color, titleData = \"\", iconType = \"\", xCordOriginal = 0, yCordOriginal = 0) {\r\n\r\n //this.xaxis = x;\r\n //this.yaxis = y;\r\n const width2 = 10; // replace with your desired width\r\n const height2 = 10; // replace with your desired height\r\n\r\n // Define the two coordinates of the triangle\r\n //const x1 = x;\r\n //const y1 = x;\r\n //const x2 = y;\r\n //const y2 = y;\r\n const x1 = x;//50\r\n const y1 = y;//50\r\n const x2 = x - 6//60;\r\n const y2 = y + 6//55;\r\n const x3 = x + 6//55;\r\n const y3 = y + 6//60;\r\n // Move to the first coordinate\r\n this.ctx.beginPath();\r\n this.ctx.moveTo(x1, y1);\r\n\r\n // Draw a line to the second coordinate\r\n this.ctx.lineTo(x2, y2);\r\n\r\n // Draw a line to the top of the triangle (halfway between the two coordinates)\r\n //const x3 = (x1 + x2) / 4;\r\n //const y3 = y1 - (y2 - y1) / 4;\r\n this.ctx.lineTo(x3, y3);\r\n\r\n // Close the path to complete the triangle\r\n this.ctx.closePath();\r\n\r\n // Fill the triangle with a color\r\n this.ctx.fillStyle = \"blue\";\r\n this.ctx.fill();\r\n\r\n // Draw the outline of the triangle\r\n //this.ctx.strokeStyle = \"black\";\r\n //this.ctx.lineWidth = 1;\r\n //this.ctx.stroke();\r\n\r\n //let title = \"
    Shape
    This is Triangle shape.
    \";\r\n let title = \"\";\r\n if (iconType == \"\")\r\n title = \"
    Timestamp =\" + titleData + \"
    \";\r\n else\r\n title = \"
    Timestamp =\" + titleData + \"
    \" + iconType + \"
    \";\r\n\r\n // add mouseover event listener\r\n this.canvas.addEventListener('mousemove', (event) => {\r\n // calculate distance between mouse position and target coordinate\r\n\r\n //const dx = event.offsetX - x;\r\n //const dy = event.offsetY - y;\r\n //const distance = Math.sqrt(dx * dx + dy * dy);\r\n\r\n this.dx = event.offsetX;\r\n this.dy = event.offsetY;\r\n this.distsqrt = 0;// distance;\r\n\r\n //this.xaxis = x + 20;\r\n //this.yaxis = y;\r\n this.distsqrtxy = Math.sqrt(x * x + y * y);\r\n\r\n // show title if distance is less than 50 pixels\r\n //if (distance<50)\r\n /// show title only within square image so check x cordinate within width of square an y shld be between height of square\r\n if ((event.offsetX > x - 10 && event.offsetX < (x + width2)) && (event.offsetY > y && event.offsetY < y + height2)) {\r\n this.isMouseOver = true;\r\n this.drawTitle(this.canvas, this.ctx, title, x + 350, y + 70, xCordOriginal, yCordOriginal);/// 10 and 20 are for positioning the title box\r\n } else {\r\n ////debugger;\r\n this.isMouseOver = false;\r\n //this.drawTitle(this.canvas, this.ctx, '', x, y);\r\n this.titleRef.nativeElement.style.display = 'none';\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n DrawStartWithColor(x, y, color) {\r\n //const x = 50;\r\n //const y = 50;\r\n // x = 150;\r\n // y = 150;\r\n // const size = 20;\r\n\r\n const radius = 12;\r\n const spikeLength = 5;\r\n\r\n this.ctx.beginPath();\r\n this.ctx.translate(x, y);\r\n this.ctx.moveTo(0, 0 - radius);\r\n for (var i = 0; i < 5; i++) {\r\n this.ctx.rotate(Math.PI / 5);\r\n this.ctx.lineTo(0, 0 - (radius * 0.4));\r\n this.ctx.rotate(Math.PI / 5);\r\n this.ctx.lineTo(0, 0 - radius);\r\n }\r\n this.ctx.closePath();\r\n\r\n this.ctx.fillStyle = \"blue\";\r\n this.ctx.fill();\r\n this.ctx.setTransform(1, 0, 0, 1, 0, 0); // //the transform matrix is reset to the identity matrix using this.ctx.setTransform(1, 0, 0, 1, 0, 0) to ensure that each star is drawn independently of the others.\r\n }\r\n\r\n DrawSmallStartWithTitle(x, y, color, titleData = \"\", iconType = \"\", xCordOriginal = 0, yCordOriginal = 0) {\r\n //const x = 50;\r\n //const y = 50;\r\n //x = 150;\r\n //y = 150;\r\n // const size = 20;\r\n\r\n this.xaxis = x;\r\n this.yaxis = y;\r\n const width2 = 8; // replace with your desired width\r\n const height2 = 8; // replace with your desired height\r\n\r\n const radius1 = 8;\r\n const spikeLength1 = 5;\r\n\r\n this.ctx.beginPath();\r\n this.ctx.translate(x, y);\r\n this.ctx.moveTo(0, 0 - radius1);\r\n for (var i = 0; i < 5; i++) {\r\n this.ctx.rotate(Math.PI / 5);\r\n this.ctx.lineTo(0, 0 - (radius1 * 0.4));\r\n this.ctx.rotate(Math.PI / 5);\r\n this.ctx.lineTo(0, 0 - radius1);\r\n }\r\n this.ctx.closePath();\r\n\r\n this.ctx.fillStyle = \"blue\";\r\n this.ctx.fill();\r\n this.ctx.setTransform(1, 0, 0, 1, 0, 0); //the transform matrix is reset to the identity matrix using this.ctx.setTransform(1, 0, 0, 1, 0, 0) to ensure that each star is drawn independently of the others.\r\n\r\n //let title = \"
    Shape
    This is star shape.
    \";\r\n let title = \"\";\r\n if (iconType == \"\")\r\n title = \"
    Timestamp =\" + titleData + \"
    \";\r\n else\r\n title = \"
    Timestamp =\" + titleData + \"
    \" + iconType + \"
    \";\r\n // add mouseover event listener\r\n this.canvas.addEventListener('mousemove', (event) => {\r\n // calculate distance between mouse position and target coordinate\r\n\r\n //const dx = event.offsetX - x;\r\n //const dy = event.offsetY - y;\r\n //const distance = Math.sqrt(dx * dx + dy * dy);\r\n\r\n this.dx = event.offsetX;\r\n this.dy = event.offsetY;\r\n this.distsqrt = 0;// distance;\r\n\r\n //this.xaxis = x + 20;\r\n //this.yaxis = y;\r\n this.distsqrtxy = Math.sqrt(x * x + y * y);\r\n\r\n // show title if distance is less than 50 pixels\r\n //if (distance<50)\r\n /// show title only within square image so check x cordinate within width of square an y shld be between height of square\r\n if ((event.offsetX > x - 10 && event.offsetX < (x + width2)) && (event.offsetY > y - 10 && event.offsetY < y + height2)) {\r\n this.isMouseOver = true;\r\n this.drawTitle(this.canvas, this.ctx, title, x + 350, y + 70, xCordOriginal, yCordOriginal);/// 10 and 20 are for positioning the title box\r\n } else {\r\n ////debugger;\r\n this.isMouseOver = false;\r\n //this.drawTitle(this.canvas, this.ctx, '', x, y);\r\n this.titleRef.nativeElement.style.display = 'none';\r\n }\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n DrawCoordinatesBetween2Point(x, y, color) {\r\n\r\n // Set the starting point of the line\r\n const x1 = 150;\r\n const y1 = 200;\r\n this.ctx.moveTo(x1, y1);\r\n this.DrawSquareWithTitle(x1 - 20, y1, color);\r\n\r\n // Set the end point of the line\r\n const x2 = 400;\r\n const y2 = 200;\r\n this.ctx.lineTo(x2, y2);\r\n this.DrawSquareWithTitle(x2 - 20, y2, color);\r\n\r\n // Set the line color and width\r\n this.ctx.strokeStyle = 'yellow';\r\n this.ctx.lineWidth = 2;\r\n\r\n // Draw the line on the canvas\r\n this.ctx.stroke();\r\n\r\n ///////////////draw circles through the lines\r\n const numCircles = 8;\r\n const deltaX = (x2 - x1) / (numCircles + 1);\r\n const deltaY = (y2 - y1) / (numCircles + 1);\r\n\r\n for (let i = 1; i <= numCircles; i++) {\r\n const x = x1 + i * deltaX;\r\n const y = y1 + i * deltaY;\r\n //this.ctx.beginPath();\r\n //this.ctx.arc(x, y, this.pointSize, 0, 2 * Math.PI);\r\n //this.ctx.stroke();\r\n this.DrawCoordinatesWithTilte(x, y, \"blue\", \"\", \"\");\r\n }\r\n\r\n }\r\n\r\n DrawMultiSymbolAtSameCordinate_Pause(x, y, color) {\r\n this.DrawTriangleWithTitle(x + 10, y - 12, color, x, y);\r\n this.DrawSquareWithTitle(x - 20, y, color, x, y);\r\n this.DrawCoordinatesWithTilte(x + 10, y + 30, color, x, y);\r\n this.DrawTriangleWithSmalSize(x + 30, y - 8, color, x, y);\r\n }\r\n\r\n DrawMultiSymbolAtSameCordinate_PauseTimer(x, y, color, ivqFilteredData, resultType) {\r\n debugger;\r\n let inboundMeanScore = 0;\r\n let outboundMeanScore = 0;\r\n let inboundtimestampDate = \"N/A\";\r\n let outboundtimestampDate = \"N/A\";\r\n\r\n let inboundList = ivqFilteredData.filter(m => m.inoutbound == \"I\" && m.yAxis.includes(\"~\"));\r\n let outboundList = ivqFilteredData.filter(m => m.inoutbound == \"O\" && m.yAxis.includes(\"~\"));\r\n\r\n //if (inboundList.length > 0)\r\n // inboundtimestampDate = inboundList[0].eventDate + \" To \" + inboundList[inboundList.length - 1].eventDate;\r\n\r\n //if (outboundList.length > 0)\r\n // outboundtimestampDate = outboundList[0].eventDate + \" To \" + outboundList[outboundList.length - 1].eventDate;\r\n\r\n if (inboundList.length > 0) {\r\n inboundtimestampDate = inboundList[0].eventDate + \"
    To \" + inboundList[inboundList.length - 1].eventDate;\r\n inboundMeanScore = (inboundList.reduce((acc, curr) => acc + Number(curr['score']), 0)) / inboundList.length; ///add all scrore and divide it by no of score count to get mean score\r\n inboundMeanScore = Number(inboundMeanScore.toFixed(2));\r\n }\r\n if (outboundList.length > 0) {\r\n outboundtimestampDate = outboundList[0].eventDate + \"
    To \" + outboundList[outboundList.length - 1].eventDate;\r\n outboundMeanScore = (outboundList.reduce((acc, curr) => acc + Number(curr['score']), 0)) / outboundList.length; ///add all scrore and divide it by no of score count to get mean score\r\n outboundMeanScore = Number(outboundMeanScore.toFixed(2));\r\n }\r\n\r\n //debugger;\r\n this.DrawTriangleWithTitle(x + 2, y - 20, this.GetColorBasedOnScore(inboundMeanScore), resultType, inboundtimestampDate, inboundMeanScore.toString(), 1, x, y, \"\", inboundList.length);\r\n //this.DrawSquareWithTitle(x - 20, y, color);\r\n this.DrawCoordinatesWithTilte(x + 1, y + 17, this.GetColorBasedOnScore(outboundMeanScore), resultType, outboundtimestampDate, outboundMeanScore.toString(), 1, x, y, \"\", outboundList.length);\r\n //this.DrawTriangleWithSmalSize(x + 30, y - 8, color);\r\n }\r\n\r\n DrawMultiSymbolAtSameCordinate_SquareStar_Stop(x, y, color, stepcount = 0, titleData = \"\") {\r\n this.DrawSmallStartWithTitle(x + 15, y - 10, color, titleData, \"Pause\", x, y);\r\n this.DrawSquareWithTitle(x, y, color, stepcount, titleData, \"Pause\", x, y); ////-1 = stop/pause;\r\n }\r\n\r\n DrawMultiSymbolAtSameCordinate_SquareTriangle(x, y, color, stepcount = 0, titleData = \"\", iconType = \"\") {\r\n this.DrawTriangleWithSmalSize(x + 15, y - 10, color, titleData, \"PauseTimer (sec) = \" + iconType, x, y);\r\n this.DrawSquareWithTitle(x, y, color, stepcount, titleData, \"PauseTimer (sec) = \" + iconType, x, y);///30=PauseTimer \r\n }\r\n\r\n DrawMultiSymolBetween2CoordinatePoint(xStart, yStart, xEnd, yEnd, ivqFilteredData, resultType) {\r\n\r\n // Set the starting point of the line\r\n const x1 = xStart;//150;\r\n const y1 = yStart;//200;\r\n this.ctx.moveTo(x1, y1);\r\n //this.DrawSquareWithTitle(x1 - 20, y1, color);\r\n\r\n // Set the end point of the line\r\n const x2 = xEnd;//400;\r\n const y2 = yEnd;//200;\r\n this.ctx.lineTo(x2, y2);\r\n //this.DrawSquareWithTitle(x2 - 20, y2, color);\r\n\r\n // Set the line color and width\r\n //this.ctx.strokeStyle = 'yellow';\r\n //this.ctx.lineWidth = 2;\r\n\r\n // Draw the line on the canvas\r\n //this.ctx.stroke();\r\n\r\n ///////////////draw circles through the lines\r\n const numOfSymbol = ivqFilteredData.length //8;\r\n const deltaX = (x2 - x1) / (numOfSymbol + 1);\r\n const deltaY = (y2 - y1) / (numOfSymbol + 1);\r\n\r\n for (let i = 0; i < numOfSymbol; i++) {\r\n const x = x1 + (i + 1) * deltaX;\r\n const y = y1 + (i + 1) * deltaY;\r\n\r\n if (this.selectedTab == \"DAQ\" && this.filteredDAQPesqScore != undefined)\r\n this.daqScoreResult = ivqFilteredData[i].daqScoreResult;\r\n\r\n //this.ctx.beginPath();\r\n //this.ctx.arc(x, y, this.pointSize, 0, 2 * Math.PI);\r\n //this.ctx.stroke();\r\n if (ivqFilteredData[i].inoutbound == \"O\")//outbound\r\n this.DrawCoordinatesWithTilte(x, y, ivqFilteredData[i].iconColor, resultType, ivqFilteredData[i].eventDate, ivqFilteredData[i].score, 0, xStart, yStart, ivqFilteredData[i].pcmFileName);\r\n else///Inbound\r\n this.DrawTriangleWithTitle(x, y - 5, ivqFilteredData[i].iconColor, resultType, ivqFilteredData[i].eventDate, ivqFilteredData[i].score, 0, xStart, yStart, ivqFilteredData[i].pcmFileName);\r\n }\r\n\r\n }\r\n\r\n // helper function to draw title on canvas\r\n drawTitle(canvas: HTMLCanvasElement, ctx: CanvasRenderingContext2D, title: string, x, y, xCordOrginal, yCordOriginal): void {\r\n // clear canvas\r\n //ctx.clearRect(0, 0, x, y);///ctx.clearRect(0, 0, canvas.width, 60);///60\r\n this.titleRef.nativeElement.style.display = 'none';\r\n\r\n //ctx.clearRect(0, 0, canvas.width, 60);\r\n\r\n\r\n // draw title if mouse is over canvas\r\n if (this.isMouseOver && this.CheckValidCooOdinates(xCordOrginal, yCordOriginal)) {\r\n ////////////\r\n setTimeout(() => {\r\n\r\n ctx.font = 'bold 24px Arial';\r\n ctx.fillStyle = 'yellow';\r\n ctx.textAlign = 'center';\r\n ctx.textBaseline = 'middle';\r\n const titleX = canvas.width / 2;\r\n const titleY = 30;\r\n //ctx.fillText(title, x, y);\r\n\r\n if (this.status1)\r\n this.titleRef.nativeElement.style.left = x + 25 + 'px'; // '233px';\r\n else\r\n this.titleRef.nativeElement.style.left = x - 250 + 'px'; // previously it was 300\r\n\r\n ///to adjust tootltip when image panel is goes down after resizing\r\n if (this.windowMinimized && this.status1) {\r\n this.titleRef.nativeElement.style.left = x - 250 + 'px'; // '233px'; \r\n this.titleRef.nativeElement.style.top = y + 500 + 'px'; // '265px';\r\n }\r\n else\r\n this.titleRef.nativeElement.style.top = y + 'px'; // '265px';\r\n\r\n ///this is used bcoz title showing for circle having issue\r\n setTimeout(() => {\r\n this.titleRef.nativeElement.style.display = 'block';\r\n }, 10);\r\n this.titleRef.nativeElement.style.display = 'block';\r\n this.titleRef.nativeElement.innerHTML = title;\r\n\r\n return;\r\n }, 300);\r\n }\r\n else {\r\n this.titleRef.nativeElement.style.display = 'none';\r\n return;\r\n }\r\n }\r\n CheckValidCooOdinates(xCordOrginal: any, yCordOriginal: any): any {\r\n ////debugger;\r\n\r\n let cordExists = this.rtsData.filter(m => m.xAxis == xCordOrginal && m.yAxis == yCordOriginal);\r\n if (cordExists.length > 0)\r\n return true;\r\n else\r\n return false;\r\n\r\n }\r\n\r\n getPosition1(x, y) {\r\n this.element = this.root;\r\n this.canvas = document.getElementById(\"canvas\");\r\n this.ctx = this.canvas.getContext(\"2d\");\r\n let curleft = 0,\r\n curtop = 0;\r\n\r\n //curleft += event.offsetX;\r\n //curtop += event.offsetY;\r\n //this.drawCoordinates(x, y);\r\n }\r\n\r\n onddlChange(id) {\r\n this.selectedSampleRate = [id];\r\n }\r\n\r\n //////////////////////////////////////////////////// SERVICES\r\n GetRTSData_Service(formData: FormData) {\r\n // multipart/form-data\r\n //var headerOptions = new HttpHeaders({ 'Content-Type': 'multipart/form-data' });\r\n var headerOptions = new HttpHeaders();\r\n let options = {\r\n headers: headerOptions\r\n };\r\n return this.http.post(this.url, formData);\r\n\r\n }\r\n\r\n GetITSRating_Service() {\r\n // multipart/form-data\r\n //var headerOptions = new HttpHeaders({ 'Content-Type': 'multipart/form-data' });\r\n var headerOptions = new HttpHeaders();\r\n let options = {\r\n headers: headerOptions\r\n };\r\n return this.http.post(this.url, options);\r\n\r\n }\r\n\r\n GetITSFiles_Service(folderPath, SavePath) {\r\n var headerOptions = new HttpHeaders();\r\n let options = {\r\n headers: headerOptions,\r\n params: new HttpParams()\r\n .set('folderPath', folderPath)\r\n .set('SavePath', SavePath),\r\n };\r\n\r\n // Make a GET request to fetch the image\r\n return this.http.post(this.url, {}, options);\r\n }\r\n\r\n GetImageFromRemoteServerPath_Service(filePath) {\r\n // multipart/form-data\r\n //var headerOptions = new HttpHeaders({ 'Content-Type': 'multipart/form-data' });\r\n // Encode the file path\r\n const encodedFilePath = encodeURIComponent(filePath);\r\n //console.log(encodedFilePath);\r\n //console.log('ecodedfilepath');\r\n //let params = new HttpParams()\r\n // .set('ImageFilePath', filePath.toString());\r\n\r\n //var headerOptions = new HttpHeaders();\r\n //let options = {\r\n // headers: headerOptions,\r\n // params: params\r\n //};\r\n //return this.http.get(this.url, { responseType: 'blob' });\r\n\r\n // Prepare the HTTP options, no need for headers in this case since we are just getting an image\r\n const options = {\r\n params: new HttpParams().set('ImageFilePath', filePath),\r\n responseType: 'blob' as 'json' // The 'as json' is needed to satisfy TypeScript\r\n };\r\n\r\n // Make a GET request to fetch the image\r\n return this.http.get(this.url, options);\r\n\r\n }\r\n\r\n LoadRTSFileFromRemoteServerPath_Service(filePath) {\r\n // Encode the file path\r\n const encodedFilePath = encodeURIComponent(filePath);\r\n //console.log(encodedFilePath);\r\n //console.log('ecodedfilepath');\r\n\r\n let headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n\r\n const options = {\r\n headers: headerOptions,\r\n params: new HttpParams().set('RTSFilePath', filePath)\r\n };\r\n\r\n // Make a GET request to fetch the image\r\n return this.http.get(this.url, options);\r\n\r\n }\r\n\r\n GetIVQFileFromRemoteServerPath_Service(filePath) {\r\n // multipart/form-data\r\n //var headerOptions = new HttpHeaders({ 'Content-Type': 'multipart/form-data' });\r\n // Encode the file path\r\n const encodedFilePath = encodeURIComponent(filePath);\r\n //console.log(encodedFilePath);\r\n //console.log('ecodedfilepath');\r\n //let params = new HttpParams()\r\n // .set('ImageFilePath', filePath.toString());\r\n\r\n //var headerOptions = new HttpHeaders();\r\n //let options = {\r\n // headers: headerOptions,\r\n // params: params\r\n //};\r\n //return this.http.get(this.url, { responseType: 'blob' });\r\n\r\n // Prepare the HTTP options, no need for headers in this case since we are just getting an image\r\n const options = {\r\n params: new HttpParams().set('IVQFilePath', filePath),\r\n responseType: 'blob' as 'json' // The 'as json' is needed to satisfy TypeScript\r\n };\r\n\r\n // Make a GET request to fetch the image\r\n return this.http.get(this.url, options);\r\n\r\n }\r\n\r\n SaveITSRating_Service(params) {\r\n // multipart/form-data\r\n //var headerOptions = new HttpHeaders({ 'Conte nt-Type': 'multipart/form-data' });\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions,\r\n\r\n };\r\n\r\n\r\n return this.http.post(this.url, params, options);\r\n\r\n }\r\n\r\n ConvertPCMToWav_Service(pcmFolderName: string, pcmFileName: string, sampleRate: number) {\r\n let params = new HttpParams()\r\n .set('sampleRate', sampleRate.toString())\r\n .set('pcmFolderName', pcmFolderName)\r\n .set('pcmFileName', pcmFileName)\r\n\r\n //let body = {\r\n // // pcmFolderName: pcmFolderName,\r\n // // pcmFileName: pcmFileName,\r\n // sampleRate: sampleRate.toString()\r\n //};\r\n\r\n ///let headers = new HttpHeaders(); for formdata\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });///new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers,\r\n params: params\r\n };\r\n\r\n //return this.http.post(this.url, formData,options);\r\n return this.http.post(this.url, null, options);\r\n }\r\n\r\n SendPCMFile_Service(formData: FormData, sampleRate: number) {\r\n\r\n let params = new HttpParams()\r\n .set('sampleRateSpeed', sampleRate.toString())\r\n\r\n var headerOptions = new HttpHeaders();\r\n let options = {\r\n params: params\r\n };\r\n return this.http.post(this.url, formData, options);\r\n\r\n }\r\n\r\n DAQScoreTable: any[] = [\r\n { pesqScoreRange: '-0.500-0.906', daq: 0.00 },\r\n { pesqScoreRange: '0.907-0.958', daq: 0.10 },\r\n { pesqScoreRange: '0.959-1.011', daq: 0.20 },\r\n { pesqScoreRange: '1.012-1.063', daq: 0.30 },\r\n { pesqScoreRange: '1.064-1.116', daq: 0.40 },\r\n { pesqScoreRange: '1.117-1.169', daq: 0.50 },\r\n { pesqScoreRange: '1.170-1.222', daq: 0.60 },\r\n { pesqScoreRange: '1.223-1.274', daq: 0.70 },\r\n { pesqScoreRange: '1.275-1.327', daq: 0.80 },\r\n { pesqScoreRange: '1.328-1.380', daq: 0.90 },\r\n { pesqScoreRange: '1.381-1.433', daq: 1.00 },\r\n\r\n { pesqScoreRange: '1.434-1.485', daq: 1.10 },\r\n { pesqScoreRange: '1.486-1.538', daq: 1.20 },\r\n { pesqScoreRange: '1.539-1.591', daq: 1.30 },\r\n { pesqScoreRange: '1.592-1.644', daq: 1.40 },\r\n { pesqScoreRange: '1.645-1.696', daq: 1.50 },\r\n { pesqScoreRange: '1.697-1.749', daq: 1.60 },\r\n { pesqScoreRange: '1.750-1.802', daq: 1.70 },\r\n { pesqScoreRange: '1.803-1.854', daq: 1.80 },\r\n { pesqScoreRange: '1.855-1.907', daq: 1.90 },\r\n { pesqScoreRange: '1.908-1.960', daq: 2.00 },\r\n\r\n { pesqScoreRange: '1.961-2.013', daq: 2.10 },\r\n { pesqScoreRange: '2.014-2.065', daq: 2.20 },\r\n { pesqScoreRange: '2.066-2.118', daq: 2.30 },\r\n { pesqScoreRange: '2.119-2.171', daq: 2.40 },\r\n { pesqScoreRange: '2.172-20224', daq: 2.50 },\r\n { pesqScoreRange: '2.225-2.276', daq: 2.60 },\r\n { pesqScoreRange: '2.227-2.329', daq: 2.70 },\r\n { pesqScoreRange: '2.330-2.382', daq: 2.80 },\r\n { pesqScoreRange: '2.383-2.434', daq: 2.90 },\r\n { pesqScoreRange: '2.435-2.487', daq: 3.00 },\r\n\r\n { pesqScoreRange: '2.488-2.540', daq: 3.10 },\r\n { pesqScoreRange: '2.541-2.593', daq: 3.20 },\r\n { pesqScoreRange: '2.594-2.645', daq: 3.30 },\r\n { pesqScoreRange: '2.646-2.698', daq: 3.40 },\r\n { pesqScoreRange: '2.699-2.751', daq: 3.50 },\r\n { pesqScoreRange: '2.752-2.804', daq: 3.60 },\r\n { pesqScoreRange: '2.805-2.858', daq: 3.70 },\r\n { pesqScoreRange: '2.857-2.909', daq: 3.80 },\r\n { pesqScoreRange: '2.910-2.962', daq: 3.90 },\r\n { pesqScoreRange: '2.960-3.015', daq: 4.00 },\r\n\r\n { pesqScoreRange: '3.016-3.067', daq: 4.10 },\r\n { pesqScoreRange: '3.068-3.120', daq: 4.20 },\r\n { pesqScoreRange: '3.121-3.173', daq: 4.30 },\r\n { pesqScoreRange: '3.174-3.225', daq: 4.40 },\r\n { pesqScoreRange: '3.226-3.278', daq: 4.50 },\r\n { pesqScoreRange: '3.279-3.331', daq: 4.60 },\r\n { pesqScoreRange: '3.332-3.384', daq: 4.70 },\r\n { pesqScoreRange: '3.385-3.436', daq: 4.80 },\r\n { pesqScoreRange: '3.437-3.489', daq: 4.90 },\r\n { pesqScoreRange: '3.490-4.500', daq: 5.00 },\r\n\r\n ];\r\n\r\n SampleRateList: SelectItem[] = [\r\n { id: '8000', name: '8000' },\r\n { id: '16000', name: '16000' },\r\n { id: '48000', name: '48000' },\r\n ];\r\n\r\n}\r\n\r\n//////////////////////////////////////////// class\r\ninterface Window {\r\n innerWidth: number;\r\n}\r\n\r\nclass RTSFileData {\r\n xAxis: any;\r\n yAxis: any;\r\n eventDate: string;\r\n iconColor: string;\r\n iconType: string;\r\n}\r\n\r\nclass IVQFileData {\r\n xAxis: any;\r\n yAxis: any;\r\n eventDate: string;\r\n iconColor: string;\r\n iconType: string;\r\n score: string;\r\n rating: string;\r\n inoutbound: string;\r\n pcmFileName: string;\r\n daqScoreResult: string;\r\n}\r\n\r\n\r\n","module.exports = \"#map {\\n height: 600px;\\n}\\n\\n/* Remove Leaflet default cluster styles */\\n\\n.cluster-count {\\n position: absolute;\\n top: 15px;\\n left: 50%;\\n -ms-transform: translateX(-50%);\\n transform: translateX(-50%);\\n color: white;\\n font-size: 14px;\\n font-weight: bold;\\n background-color: rgba(0, 0, 255, 0.7);\\n padding: 2px 6px;\\n border-radius: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvb3V0cHV0LXJlc3VsdHMvbGVhZmxldC1nbWFwL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9zcmNcXGFwcFxcb3V0cHV0LXJlc3VsdHNcXGxlYWZsZXQtZ21hcFxcbGVhZmxldC1nbWFwLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9vdXRwdXQtcmVzdWx0cy9sZWFmbGV0LWdtYXAvbGVhZmxldC1nbWFwLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0UsYUFBQTtBQ0RGOztBRElBLDBDQUFBOztBQUNBO0VBQ0Usa0JBQUE7RUFDQSxTQUFBO0VBQ0EsU0FBQTtFQUNBLCtCQUFBO01BQUEsMkJBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0Esc0NBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0FDREYiLCJmaWxlIjoic3JjL2FwcC9vdXRwdXQtcmVzdWx0cy9sZWFmbGV0LWdtYXAvbGVhZmxldC1nbWFwLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcblxyXG4jbWFwIHtcclxuICBoZWlnaHQ6IDYwMHB4O1xyXG59XHJcblxyXG4vKiBSZW1vdmUgTGVhZmxldCBkZWZhdWx0IGNsdXN0ZXIgc3R5bGVzICovXHJcbi5jbHVzdGVyLWNvdW50IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAxNXB4O1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDI1NSwgMC43KTtcclxuICBwYWRkaW5nOiAycHggNnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbn1cclxuIiwiI21hcCB7XG4gIGhlaWdodDogNjAwcHg7XG59XG5cbi8qIFJlbW92ZSBMZWFmbGV0IGRlZmF1bHQgY2x1c3RlciBzdHlsZXMgKi9cbi5jbHVzdGVyLWNvdW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE1cHg7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMjU1LCAwLjcpO1xuICBwYWRkaW5nOiAycHggNnB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufSJdfQ== */\"","import { Component, OnInit, Output, EventEmitter, ViewChild, Sanitizer, SimpleChanges, OnChanges, ElementRef, ChangeDetectionStrategy, ChangeDetectorRef, OnDestroy, ViewEncapsulation, Renderer2 } from '@angular/core';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { request } from 'http';\r\n//import { RequestMetadata, PagedResult } from '../../../../lib/ng-crud-table';\r\nimport { MatTableDataSource } from '@angular/material';\r\nimport { DataSource } from '@angular/cdk/table';\r\nimport { MatDialog, MatDialogConfig, PageEvent, MatPaginator } from '@angular/material';\r\nimport { Row } from 'lib/ng-data-table';\r\nimport { BrowserModule, DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { sanitizeIdentifier } from '@angular/compiler';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\nimport { lastDateFunc, formatDate } from 'lib/common/utils';\r\nimport { VquadbtfxoComponent } from 'src/app/statistics/network-status/vquadbtfxo/vquadbtfxo.component';\r\nimport { GooglemapstatuspopupComponent } from 'src/app/output-results/googlemapstatuspopup/googlemapstatuspopup.component';\r\nimport { AbsMapDisplayOptions } from 'src/app/shared/models/Configuration/GoogleMap/MapConfig';\r\nimport { AgmMap, MapsAPILoader, LatLngBounds } from '@agm/core';\r\nimport { GooglemaplegendpopupComponent } from 'src/app/output-results/googlemaplegendpopup/googlemaplegendpopup.component';\r\nimport { BasicComponent } from 'src/app/shared/basic/basic.component';\r\nimport { ResultsService } from 'src/app/shared/services/master/results/results.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { rsltTypeInTitle } from 'src/app/shared/functions/title';\r\nimport { latLng, MapOptions, tileLayer, Map, Marker, icon } from 'leaflet';\r\nimport * as L from 'leaflet';\r\nimport \"leaflet.markercluster\";\r\n//https://blog.mestwin.net/use-leaflet-in-your-angular-8-project-for-interactive-maps/\r\n\r\n//import OverlappingMarkerSpiderfier from \"overlapping-marker-spiderfier-leaflet\";\r\n\r\n@Component({\r\n selector: 'app-leaflet-gmap',\r\n templateUrl: './leaflet-gmap.component.html',\r\n styleUrls: ['./leaflet-gmap.component.scss'],\r\n})\r\nexport class LeafletGMapComponent implements OnInit {\r\n clearAllFiltersAction: boolean = true;\r\n actionsMessage: string = 'Actions';\r\n modifyFiltersMessage: string = 'Modify filters';\r\n clearFiltersMessage: string = 'Clear all filters';\r\n hasFilters: boolean;\r\n\r\n rsltType: string = \"GoogleMap\";\r\n\r\n rsltTypeTS = '-1';\r\n TSSelected: number = 1;\r\n\r\n AutoRefreshInfo: any;\r\n isFilters: boolean = true;\r\n interval;\r\n\r\n title: string = \"Google Maps\";\r\n staticScreen = false; //true;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n isLoading = false;\r\n\r\n baseUrl: string;\r\n url: string;\r\n //lat = 42.536652; // lat: 37.422918, lng: -122.0854212\r\n //lng = -77.216;\r\n lat = 12.9264;// 42.536652;//39.143 ///12.9264;\r\n lng = 77.6012;//-77.216 ///77.6012;\r\n\r\n ///for polygon\r\n polyLat: number;\r\n polyLng: number;\r\n lat1: number = 14.4673;\r\n lng1: number = 78.8242;\r\n lat2: number = 16.5062;\r\n lng2: number = 80.6480;\r\n //iurl: string = \"https://chart.googleapis.com/chart?chst=d_bubble_texts_big&chld=bb|000000|FFFFFF|Bubb\";\r\n iurl: string = \"./assets/images/Marks/GreenMark.png\";\r\n iurl_b: string = \"https://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=|000000\";\r\n // google maps zoom level\r\n zoom: number = 4;//4; \r\n clulster_max_zoom = 20;\r\n minClusterSize = 2;\r\n\r\n usePredefinedConfig: string = \"OFF\";\r\n showAnalysis = true;\r\n showNetTest = true;\r\n showMobileInfo = true;\r\n showErrorEvents = true;\r\n showTypes = true;\r\n showResults = true;\r\n count: number = 0;\r\n infoWindowbody: any;\r\n previous: any;\r\n Loading: string;\r\n DrawRoute: string = \"ON\";\r\n DrawLine: string = \"1\";\r\n rsltTypeEach: any;\r\n bluetoothText: string;\r\n isBlutoothButton: boolean = false;\r\n mapRegionSelected: string = \"0\";\r\n btnRegioncolor: string = \"btnToggle1\";\r\n toggleMapRegion: boolean = false;\r\n infoRegionbody: any;\r\n analysisEnabled: string = \"ON\";\r\n netTestEnabled: string = \"ON\";\r\n mobileInfoEnabled: string = \"ON\";\r\n errorEventsEnabled: string = \"ON\";\r\n mapConfigID: number = 0;\r\n divPinLegends: any;\r\n showPopupLegend: boolean = false;\r\n currentPinLocation: any;\r\n\r\n thresholdLegends: string = \"\";\r\n thresholdLegendsCount: string = \"\";\r\n callIDLegends: string = \"\";//susheel\r\n devIDLegends: string = \"\";\r\n callEventsLegends: string = \"\";\r\n\r\n disableSection: string = \"\";\r\n showDrawRouteDirection: boolean = false;\r\n map: any;\r\n origin: any;\r\n destination: any\r\n commonFilterDates = formatDate(new Date(Date.now() + -1 * 600 * 1000)) + \"^\" + formatDate(new Date());//\"06/02/2019 11:00:00^06/02/2019 20:00:00\"; \r\n\r\n mapData = [];\r\n latlngValMainAgain = [];\r\n LatLongOriginal = [];\r\n mapFilterConfigList = [];\r\n infowindowArray = [];\r\n bluetoothData = [];\r\n mapRegionList = [];\r\n tempMarker = [];\r\n DisplayResultList1 = [];\r\n pinLegends = [];\r\n dynamicPinLegends = [];\r\n dynamicLegendPopupData = [];\r\n legendPopupData = [];\r\n appliedLegendThreshold = [];\r\n routeLatLng: any[] = [];\r\n PredefinedConfigOff = [];\r\n markerCollection: marker[];\r\n\r\n options = {\r\n suppressMarkers: true,\r\n polylineOptions: { strokeColor: 'red', strokeWeight: 2, strokeOpacity: 1.0, geodesic: true }\r\n };\r\n\r\n mapOptions = {\r\n styles: [\r\n {\r\n url: \"../assets/images/Map/ClusterMarker_Circle.png\",\r\n width: 53,\r\n height: 53,\r\n textColor: '#fff',\r\n }\r\n ],\r\n };\r\n\r\n pinMarker: marker;\r\n mapDisplayOptions = new AbsMapDisplayOptions();\r\n preDefinedConfigParam = new PredefinedConfig();\r\n\r\n Lmap: Map;\r\n LmapOptions: MapOptions;\r\n markerClusterGroup: L.MarkerClusterGroup;\r\n markerClusterData = [];\r\n optionsOMS = {\r\n //nearbyDistance: 100,\r\n legWeight: 2,\r\n markersWontMove: true,\r\n markersWontHide: true,\r\n keepSpiderfied: true,\r\n // spiderfyDistanceMultiplier:1.5,\r\n //circleSpiralSwitchover: 90,\r\n //spiralFootSeparation: 80,\r\n // spiralLengthStart :51,\r\n // spiralLengthFactor: 54,\r\n //spiderfiedZIndex :1,\r\n spiderfiedShadowColor: false,\r\n //unspiderfyFunction: function () { }\r\n };\r\n private oms: any;\r\n\r\n constructor(private _Activatedroute: ActivatedRoute, private renderer2: Renderer2, private _router: Router, private http: HttpClient, private dialog: MatDialog, private sanitizer: DomSanitizer, private elRef: ElementRef, private mapsAPILoader: MapsAPILoader, private commonFilterService: CommonFilterService, private resultsService: ResultsService, private cd: ChangeDetectorRef) {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n\r\n this.commonFilterService.setNonFiltersScreen(this.staticScreen);//false\r\n\r\n this.Loading = \"\";\r\n\r\n _Activatedroute.params.subscribe(val => {\r\n this.rsltType = _Activatedroute.snapshot.url[1].path;\r\n this.parentEvent();\r\n });\r\n this.commonFilterService.listen.subscribe(res => { this.GetMapConfigData() });\r\n this.commonFilterService.isFilters$.subscribe(res => {\r\n this.isFilters = res;\r\n });\r\n\r\n //Do Refresh\r\n this.commonFilterService.componentMethodCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log('refreshed')\r\n debugger;\r\n //this.GetMapConfigData();\r\n }\r\n );\r\n //Do Auto-refresh - start/stop\r\n this.commonFilterService.componentMethodWithArgCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //debugger;\r\n this.AutoRefreshInfo = res;\r\n\r\n if (this.AutoRefreshInfo.AutoRefStop) {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n }\r\n }\r\n else {\r\n this.interval = setInterval(() => {\r\n //console.log(this.AutoRefreshInfo.AutoRefStop);\r\n // this.GetMapConfigData();\r\n }, this.AutoRefreshInfo.AutoRefSelected);\r\n }\r\n\r\n }\r\n );\r\n }\r\n\r\n loadOMSLibrary(loadOldGoogleMap: boolean): void {\r\n debugger\r\n const head = document.head;\r\n\r\n // Clear existing dynamic scripts\r\n const existingScripts = head.querySelectorAll('.dynamic-script');\r\n existingScripts.forEach(script => script.remove());\r\n\r\n // Create a new script element\r\n const script = this.renderer2.createElement('script');\r\n script.type = 'text/javascript';\r\n script.src = loadOldGoogleMap ? 'scripts/oms.min.js' : 'scripts/oms.min_NewVersion.js';\r\n script.classList.add('dynamic-script');\r\n script.onload = () => {\r\n console.log('Script loaded successfully.');\r\n };\r\n\r\n // Append the script to the head\r\n this.renderer2.appendChild(head, script);\r\n this.cd.detectChanges();\r\n }\r\n\r\n ngOnInit() {\r\n //this.loadOMSLibrary(false);\r\n\r\n this.initializeMapOptions(); ///spiderfyOnMaxZoom: true,\r\n //this.oms = new OverlappingMarkerSpiderfier(this.Lmap, this.optionsOMS);\r\n // this.oms = new OverlappingMarkerSpiderfier(this.Lmap, {\r\n // keepSpiderfied: true,\r\n // nearbyDistance: 20,\r\n //});\r\n\r\n //this.markerClusterGroup = L.markerClusterGroup({ removeOutsideVisibleBounds: true, chunkedLoading: true,disableClusteringAtZoom:10, });\r\n\r\n //this.paths = [];\r\n //this.GetAllMapRegion();\r\n //this.GetPredefinedConfig();\r\n\r\n\r\n\r\n //////// this.GetMapConfigByID(42);\r\n //////// this.GetAllMapRegion();\r\n ////////this.DynamicHtmlEvent();\r\n ////////this.SetPinLegnd();\r\n\r\n //https://github.com/SebastianM/angular-google-maps/issues/1378\r\n this.cd.detectChanges();\r\n }\r\n\r\n // default http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\r\n // https://{s}.tile.openstreetmap.de/{z}/{x}/{y}.png ---both english and local language\r\n // https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png --english\r\n // apikey AIzaSyCcwrOugO9W7oqlmcCIUsT4a-4pwVHnCOY\r\n private initializeMapOptions() {\r\n var osmAttr = '© OpenStreetMap contributors, CC-BY-SA';\r\n this.LmapOptions = {\r\n center: latLng(12.9264, 77.6012),\r\n zoom: 4,\r\n layers: [\r\n //tileLayer('https://{s}.tile.openstreetmap.de/{z}/{x}/{y}.png', { /// OpenStreetMap (OSM) default tile server\r\n //tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png', { //english label tile Free for uage\r\n tileLayer('https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z}&hl=en', { //// google map tile with Paid For High usage API key might need\r\n attribution: osmAttr,\r\n maxZoom: 19\r\n })\r\n ],\r\n };\r\n }\r\n\r\n private initializeMapOptions1() {\r\n\r\n ///////////// BELOW TILE IS GOOGLE MAP TILE WITH API KEY I.E. GOOGLEMAP TILE WITH LEAFLET\r\n //this.LmapOptions = {\r\n // center: latLng(12.9264, 77.6012),\r\n // zoom: 4,\r\n // layers: [\r\n //tileLayer(`https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z}&hl=en&key=YOUR_API_KEY`, {\r\n // attribution: '© Google Maps',\r\n // maxZoom: 20\r\n //})\r\n // ],\r\n //};\r\n }\r\n\r\n\r\n onMapReady(map) {//: Map) {\r\n //this.loadOMSLibrary(false);\r\n this.Lmap = map;\r\n this.markerClusterGroup = L.markerClusterGroup();\r\n this.markerClusterGroup = L.markerClusterGroup({\r\n removeOutsideVisibleBounds: true,\r\n chunkedLoading: true, ///// Loads markers in chunks (improves performance)\r\n disableClusteringAtZoom: 20, /// Show individual markers at zoom level 18+\r\n //spiderfyOnMaxZoom: true, // 🔹 Expands markers when zooming\r\n spiderfyOnMaxZoom: false, // 🔹 prevents auto spiderfy on max zooming \r\n showCoverageOnHover: false,\r\n zoomToBoundsOnClick: false,\r\n animateAddingMarkers: true, // 🔹 Smooth animation when adding markers\r\n spiderfyDistanceMultiplier: 1.2,\r\n maxClusterRadius: 20,\r\n\r\n chunkProgress: (processed, total) => {\r\n console.log(`Loading: ${processed}/${total} markers`);\r\n },\r\n\r\n ///// ✅ Custom Cluster Icons (Blue Color)\r\n iconCreateFunction: function (cluster) {\r\n return L.divIcon({\r\n html: `
    \r\n \r\n ${cluster.getChildCount()}\r\n
    `,\r\n className: '',\r\n iconSize: [35, 35],\r\n iconAnchor: [20, 50]\r\n });\r\n }\r\n\r\n });\r\n\r\n ///// Override Cluster Click Behavior to Force Spiderfy\r\n this.markerClusterGroup.on('clusterclick', (e) => {\r\n //e.layer.spiderfy(); // Force spiderfy on first click\r\n\r\n //if (!e.layer._spiderfied) {\r\n // setTimeout(() => e.layer.spiderfy(), 50); // Delays execution slightly to improve performance\r\n //}\r\n\r\n ////// BELOW CODE IS TO SHOW SPIDERFY IF MAKER COUNT IN SOME PLACE IS LESS THAN 4000 ELSE ZOOM FURTHER UNTILL MAX ZOOM18. \r\n const markers = e.layer.getAllChildMarkers();\r\n const bounds = L.latLngBounds(markers.map(m => m.getLatLng()));\r\n\r\n if (markers.length > 4000) { // ✅ Instead of spiderfying too many markers\r\n ///alert(\"Too many markers! Zooming in instead.\");\r\n e.target._map.fitBounds(bounds, { maxZoom: 20 }); // ✅ Zoom in to show markers\r\n }\r\n else { \r\n e.layer.spiderfy(); // ✅ Only spiderfy when markers are manageable\r\n }\r\n ////// ABOVE CODE IS TO SHOW SPIDERFY IF MAKER COUNT IN SME PLACE IS LESS THAN 4000 ELSE ZOOM FURTHER UNTILL MAX ZOOM18.\r\n\r\n });\r\n\r\n //this.markerClusterGroup.on('click', (e) => {\r\n // //alert(1);\r\n // if (this.Lmap.getZoom() >= 10) { // Ensures spiderfy only after clustering stops\r\n // //alert(2);\r\n // // e.layer.spiderfy(); // Manually trigger spiderfy\r\n // }\r\n //});\r\n\r\n this.addSampleMarker();\r\n\r\n\r\n }\r\n\r\n // assets/marker-icon.png\r\n // ./assets/images/Marks/Apps/' + (rsltType.split(\"-\"))[1] + '.png\r\n private addSampleMarker() {\r\n //alert()\r\n debugger;\r\n\r\n \r\n let markerList = this.GetDummyMarkers();\r\n debugger;\r\n //let markerList = this.GetStateCoordinates();\r\n const data: any[] = [];\r\n\r\n /// For Custom Marker\r\n ////// https://github.com/coryasilva/Leaflet.ExtraMarkers \r\n\r\n for (let i = 0; i < markerList.length - 1; i++) {\r\n //console.log(i);\r\n const marker = new Marker([markerList[i].split(',')[0], markerList[i].split(',')[1]])\r\n .setIcon(\r\n icon({\r\n iconSize: [25, 41],\r\n iconAnchor: [13, 41],\r\n iconUrl: 'assets/images/Marks/BlueMark.png'\r\n }));\r\n\r\n //marker.bindPopup('Hello world!').on('click', function () { }).addTo(this.map);\r\n marker.bindPopup('Marker ' + i + 1 + '
    Lat: 12.120000
    Lng');\r\n this.markerClusterGroup.addLayer(marker);\r\n\r\n \r\n // Add marker to OMS only after clustering stops\r\n //this.Lmap.on(\"zoomend\", () => {\r\n // if (this.Lmap.getZoom() >= 10) {\r\n // this.oms.addMarker(marker); // Activate OMS on markers\r\n // //this.oms.keepSpiderfied = true;\r\n // }\r\n //});\r\n\r\n }\r\n this.Lmap.addLayer(this.markerClusterGroup);\r\n\r\n ///}, 500); // ✅ Small delay to ensure script is loaded\r\n\r\n\r\n //let lng = 76.680000;\r\n //for (let i = 0; i < 1000000 - 1; i++) {\r\n // //console.log(i);\r\n // lng = (lng - 0.000002);\r\n // const marker = new Marker([12.120000, lng])\r\n // .setIcon(\r\n // icon({\r\n // iconSize: [25, 41],\r\n // iconAnchor: [13, 41],\r\n // iconUrl: 'assets/images/Marks/BlueMark.png'\r\n // }));\r\n\r\n // marker.bindPopup('Marker ' + i + 1 + '
    Lat: 12.120000
    Lng');\r\n // this.markerClusterGroup.addLayer(marker);\r\n //}\r\n //this.Lmap.addLayer(this.markerClusterGroup);\r\n\r\n\r\n //for (let i = 0; i < this.stCord.length - 1; i++) {\r\n // //console.log(i);\r\n // //lng = (lng - 0.000002);\r\n // const marker = new Marker([this.stCord[i][1], this.stCord[i][0]])\r\n // .setIcon(\r\n // icon({\r\n // iconSize: [25, 41],\r\n // iconAnchor: [13, 41],\r\n // iconUrl: 'assets/images/Marks/BlueMark.png'\r\n // }));\r\n\r\n // marker.bindPopup('Marker ' + i + 1 + '
    Lat: 12.120000
    Lng');\r\n // this.markerClusterGroup.addLayer(marker);\r\n //}\r\n //this.Lmap.addLayer(this.markerClusterGroup);\r\n\r\n }\r\n\r\n GetDummyMarkers() {\r\n ///let dummy = `[\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:04#
    $15680868\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:19#
    $15680884\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:45:21#
    $15680888\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:34#
    $15680890\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:46:13#
    $15680903\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:29#
    $15680919\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:42#
    $15680925\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:45#
    $15680976\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:56#
    $15680991\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:46:15#
    $15680909\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:46:16#
    $15680910\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:41#
    $15680923\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:56#
    $15680937\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:47:20#
    $15680939\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:48:42#
    $15680954\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:48:44#
    $15680959\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:01#
    $15680866\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:10#
    $15680877\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:12#
    $15680879\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:46:12#
    $15680901\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:42#
    $15680926\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:46:52#
    $15680930\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:49:45#
    $15680978\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:46#
    $15680979\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:47#
    $15680980\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:48#
    $15680981\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:49#
    $15680983\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:54#
    $15680990\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:45:04#
    $15680870\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:21#
    $15680887\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:05#
    $15680899\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:46:14#
    $15680905\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:46:28#
    $15680916\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:46:28#
    $15680917\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:02#
    $15680867\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:05#
    $15680873\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:46:13#
    $15680902\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:13#
    $15680904\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:43#
    $15680928\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:48:07#
    $15680947\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:48:43#
    $15680957\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:48:58#
    $15680967\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:23#
    $15680972\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:24#
    $15680974\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:26#
    $15680975\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:50:17#
    $15680999\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:05#
    $15680872\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:09#
    $15680876\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:46:15#
    $15680908\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:46:29#
    $15680918\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:47:42#
    $15680943\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:47:51#
    $15680945\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:19#
    $15680911\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:48:41#
    $15680953\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:48#
    $15680982\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:05#
    $15680874\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:46:14#
    $15680907\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:40#
    $15680922\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:54#
    $15680932\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:48:15#
    $15680948\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:48:42#
    $15680955\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:48:43#
    $15680958\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:09#
    $15680875\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:42#
    $15680892\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:45:46#
    $15680893\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:46:27#
    $15680915\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:34#
    $15680920\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:56#
    $15680936\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:47:34#
    $15680942\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:47:59#
    $15680946\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:18#
    $15680883\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:46:14#
    $15680906\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:46:27#
    $15680914\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:55#
    $15680933\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:55#
    $15680935\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:47:14#
    $15680938\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:47:49#
    $15680944\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:49#
    $15680984\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:01#
    $15680865\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:24#
    $15680912\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:46:27#
    $15680913\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:40#
    $15680921\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:43#
    $15680929\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:46:53#
    $15680931\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:55#
    $15680934\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:47:20#
    $15680940\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:48:43#
    $15680956\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:48:44#
    $15680960\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:48:45#
    $15680961\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:48:56#
    $15680962\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:48:56#
    $15680963\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:56#
    $15680992\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:59#
    $15680993\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:50:02#
    $15680994\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:50:03#
    $15680995\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:12#
    $15680880\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:45:12#
    $15680881\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:45:38#
    $15680891\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:47:22#
    $15680941\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:48:56#
    $15680964\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:48:57#
    $15680966\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:50:05#
    $15680996\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:50:05#
    $15680998\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:10#
    $15680878\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:45:30#
    $15680889\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:57#
    $15680897\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:45#
    $15680977\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:53#
    $15680988\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:54#
    $15680989\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:04#
    $15680869\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:04#
    $15680871\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:15#
    $15680882\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:21#
    $15680885\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:49#
    $15680894\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:41#
    $15680924\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:42#
    $15680927\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:48:57#
    $15680965\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:49:21#
    $15680968\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:22#
    $15680969\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:49:22#
    $15680971\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:49#
    $15680985\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\'^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:49:52#
    $15680986\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:53#
    $15680987\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:50:18#
    $15681000\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:50:26#
    $15681001\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^VQUAD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:50:26#
    $15681002\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^RTD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:45:21#
    $15680888\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^RTD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:05#
    $15680899\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^RTD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:46:13#
    $15680904\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^RTD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:48:07#
    $15680947\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^RTD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:47:51#
    $15680945\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^RTD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:48:15#
    $15680948\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^RTD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:45:46#
    $15680893\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^RTD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:47:59#
    $15680946\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^RTD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:45:38#
    $15680891\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^RTD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:45:30#
    $15680889\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^RTD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:57#
    $15680897\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^RTD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:49#
    $15680894\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^OWD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:34#
    $15680890\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^OWD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:45:04#
    $15680870\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^OWD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:50:17#
    $15680999\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^OWD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:47:42#
    $15680943\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^OWD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:42#
    $15680892\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^OWD^Device2#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:47:34#
    $15680942\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^OWD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:45:12#
    $15680881\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^OWD^FXO2#NewFXOPOLQATEST#DUMMY#2022-11-16 12:50:18#
    $15681000\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^OWD^Device1#BALANCEDPOLQATEST#DUMMY#2022-11-16 12:50:26#
    $15681001\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^OWD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:50:26#
    $15681002\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^PDD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:45:09#
    $15680875\",\"12.926389,77.601111,N12º55\\\\\\\\'35\\\\\\\\'\\\\\\\\' E077º36\\\\\\\\'04\\\\\\\\'\\\\\\\\' ^PDD^FXO1#NewFXOPOLQATEST#DUMMY#2022-11-16 12:49:53#
    $15680987\",\"12.9265,77.6012,NONE^VQUADAPP-ScriptRunning^192.168.1.93#GLIN-166#IGNORETS-VQUAD-
    $14\",\"12.75,77.2,NONE^VQUADAPP-VQuadDown^192.168.1.41#GLIN-04#IGNORETS-VQUAD-
    $8\",\"12.9265,77.6012,NONE^VQUADAPP-VQuadDown^192.168.1.212#GLIN-23#IGNORETS-VQUAD-
    $11\",\"12.93,77.6,NONE^VQUADAPP-VQuadUp^192.168.1.212#GLIN-23#IGNORETS-VQUAD-
    $13\",\"12.9265,77.6009,NONE^VQUADAPP-VQuadDown^192.168.1.199#GLIN-87#IGNORETS-VQUAD-
    $7\",\"12.93,77.6,NONE^VQUADAPP-VQuadDown^192.168.1.126#GLIN-07#IGNORETS-VQUAD-
    $9\",\"[1,1,4,0,0,0,0,0,0,0,126,0,12,0,2,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]\"]`;\r\n let dummy = `[\r\n \"39.3925,-77.325278,N39º23\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD-ERROR^US207Dev1#DriveTest#DUMMY#2023-10-05 13:12:49#
    $114137613\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:45:09#
    $114136035\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:45:14#
    $114136042\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:45:15#
    $114136046\",\r\n \"39.143611,-77.215,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:46:06#
    $114136088\",\r\n \"39.143889,-77.215278,N39º8\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:46:16#
    $114136094\",\r\n \"39.144167,-77.215833,N39º8\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:46:20#
    $114136098\",\r\n \"39.144167,-77.216111,N39º8\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:46:25#
    $114136106\",\r\n \"39.144167,-77.216111,N39º8\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:46:25#
    $114136107\",\r\n \"39.145,-77.219722,N39º8\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:46:57#
    $114136161\",\r\n \"39.146389,-77.219167,N39º8\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:47:12#
    $114136145\",\r\n \"39.147778,-77.218056,N39º8\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:47:27#
    $114136164\",\r\n \"39.148611,-77.215,N39º8\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:47:51#
    $114136218\",\r\n \"39.149722,-77.217222,N39º8\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:48:15#
    $114136221\",\r\n \"39.149722,-77.217222,N39º8\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:48:15#
    $114136219\",\r\n \"39.152778,-77.220556,N39º9\\\\\\\\'10\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:48:34#
    $114136244\",\r\n \"39.154167,-77.222222,N39º9\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:48:44#
    $114136256\",\r\n \"39.161944,-77.234167,N39º9\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:49:38#
    $114136292\",\r\n \"39.162222,-77.235278,N39º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:49:42#
    $114136307\",\r\n \"39.176944,-77.248056,N39º10\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:50:53#
    $114136366\",\r\n \"39.176944,-77.248056,N39º10\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:50:53#
    $114136384\",\r\n \"39.179444,-77.25,N39º10\\\\\\\\'46\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:51:03#
    $114136394\",\r\n \"39.181944,-77.252222,N39º10\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:51:14#
    $114136383\",\r\n \"39.195,-77.261111,N39º11\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:52:08#
    $114136483\",\r\n \"39.203056,-77.268611,N39º12\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:52:44#
    $114136482\",\r\n \"39.204444,-77.270556,N39º12\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:52:53#
    $114136487\",\r\n \"39.204444,-77.270556,N39º12\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:52:53#
    $114136488\",\r\n \"39.206389,-77.272778,N39º12\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:53:02#
    $114136498\",\r\n \"39.206389,-77.272778,N39º12\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:53:02#
    $114136499\",\r\n \"39.211389,-77.275833,N39º12\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:53:23#
    $114136507\",\r\n \"39.220556,-77.278889,N39º13\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:54:01#
    $114136547\",\r\n \"39.221944,-77.279444,N39º13\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:54:07#
    $114136556\",\r\n \"39.226944,-77.281944,N39º13\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:54:28#
    $114136602\",\r\n \"39.226944,-77.281944,N39º13\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:54:28#
    $114136568\",\r\n \"39.234722,-77.286944,N39º14\\\\\\\\'5\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:55:02#
    $114136606\",\r\n \"39.237222,-77.289167,N39º14\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:55:09#
    $114136613\",\r\n \"39.240278,-77.292222,N39º14\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:55:25#
    $114136633\",\r\n \"39.249444,-77.3,N39º14\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:56:09#
    $114136680\",\r\n \"39.250833,-77.300833,N39º15\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:56:15#
    $114136687\",\r\n \"39.253889,-77.302778,N39º15\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:56:30#
    $114136717\",\r\n \"39.264722,-77.311389,N39º15\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:57:14#
    $114136732\",\r\n \"39.264722,-77.311389,N39º15\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:57:14#
    $114136733\",\r\n \"39.265,-77.311667,N39º15\\\\\\\\'54\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'42\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:57:15#
    $114136734\",\r\n \"39.281944,-77.325278,N39º16\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:58:29#
    $114136805\",\r\n \"39.281944,-77.325278,N39º16\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:58:29#
    $114136803\",\r\n \"39.294722,-77.333056,N39º17\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:59:27#
    $114136872\",\r\n \"39.294722,-77.333056,N39º17\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:59:27#
    $114136871\",\r\n \"39.298611,-77.337222,N39º17\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:59:46#
    $114136904\",\r\n \"39.306944,-77.343611,N39º18\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:00:22#
    $114136917\",\r\n \"39.308611,-77.346111,N39º18\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:00:32#
    $114136934\",\r\n \"39.313889,-77.351111,N39º18\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:01:02#
    $114136978\",\r\n \"39.313889,-77.351111,N39º18\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:01:02#
    $114136958\",\r\n \"39.319167,-77.353056,N39º19\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:01:27#
    $114136976\",\r\n \"39.321111,-77.353889,N39º19\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:01:36#
    $114136991\",\r\n \"39.321389,-77.354167,N39º19\\\\\\\\'17\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:01:37#
    $114136992\",\r\n \"39.322222,-77.354722,N39º19\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:01:41#
    $114137001\",\r\n \"39.322222,-77.354722,N39º19\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:01:41#
    $114137000\",\r\n \"39.336389,-77.378611,N39º20\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:03:21#
    $114137124\",\r\n \"39.338611,-77.381667,N39º20\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:03:35#
    $114137113\",\r\n \"39.338611,-77.381667,N39º20\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:03:35#
    $114137115\",\r\n \"39.341111,-77.384444,N39º20\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:03:46#
    $114137130\",\r\n \"39.349444,-77.391389,N39º20\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:04:26#
    $114137153\",\r\n \"39.353056,-77.393333,N39º21\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:04:41#
    $114137166\",\r\n \"39.355,-77.394167,N39º21\\\\\\\\'18\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:04:49#
    $114137175\",\r\n \"39.363056,-77.398611,N39º21\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:05:24#
    $114137201\",\r\n \"39.368333,-77.401944,N39º22\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:05:48#
    $114137221\",\r\n \"39.368333,-77.401944,N39º22\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:05:48#
    $114137220\",\r\n \"39.368611,-77.401944,N39º22\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:05:50#
    $114137224\",\r\n \"39.370556,-77.403056,N39º22\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:05:58#
    $114137229\",\r\n \"39.375556,-77.405278,N39º22\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:06:19#
    $114137279\",\r\n \"39.39,-77.416667,N39º23\\\\\\\\'24\\\\\\\\'\\\\\\\\' W77º25\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:07:35#
    $114137348\",\r\n \"39.4025,-77.398056,N39º24\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:09:15#
    $114137416\",\r\n \"39.403611,-77.393889,N39º24\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:09:29#
    $114137434\",\r\n \"39.404167,-77.390833,N39º24\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'27\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:09:39#
    $114137448\",\r\n \"39.403889,-77.3675,N39º24\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:10:43#
    $114137522\",\r\n \"39.4025,-77.3425,N39º24\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'33\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:11:47#
    $114137582\",\r\n \"39.395833,-77.329167,N39º23\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:12:33#
    $114137606\",\r\n \"39.390833,-77.321389,N39º23\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:13:02#
    $114137619\",\r\n \"39.388889,-77.313889,N39º23\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:13:22#
    $114137655\",\r\n \"39.385556,-77.297222,N39º23\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:14:06#
    $114137668\",\r\n \"39.385278,-77.295278,N39º23\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:14:12#
    $114137686\",\r\n \"39.382778,-77.282222,N39º22\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:14:46#
    $114137716\",\r\n \"39.382778,-77.282222,N39º22\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:14:46#
    $114137770\",\r\n \"39.380833,-77.276944,N39º22\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:15:01#
    $114137739\",\r\n \"39.380556,-77.269722,N39º22\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:15:19#
    $114137771\",\r\n \"39.381389,-77.265556,N39º22\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:15:29#
    $114137783\",\r\n \"39.379167,-77.249722,N39º22\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:16:14#
    $114137804\",\r\n \"39.379167,-77.249444,N39º22\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:16:15#
    $114137805\",\r\n \"39.378611,-77.246389,N39º22\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:16:24#
    $114137825\",\r\n \"39.377778,-77.243056,N39º22\\\\\\\\'40\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:16:34#
    $114137833\",\r\n \"39.374444,-77.228611,N39º22\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:17:19#
    $114137865\",\r\n \"39.374444,-77.228333,N39º22\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:17:20#
    $114137869\",\r\n \"39.370278,-77.220556,N39º22\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:17:48#
    $114137915\",\r\n \"39.369722,-77.2125,N39º22\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:18:14#
    $114137910\",\r\n \"39.365833,-77.189444,N39º21\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:19:27#
    $114138004\",\r\n \"39.365278,-77.187222,N39º21\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:19:34#
    $114138016\",\r\n \"39.358889,-77.1675,N39º21\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:20:33#
    $114138060\",\r\n \"39.359167,-77.165278,N39º21\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:20:39#
    $114138062\",\r\n \"39.359167,-77.165278,N39º21\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:20:39#
    $114138065\",\r\n \"39.359722,-77.159722,N39º21\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:20:54#
    $114138074\",\r\n \"39.360556,-77.145833,N39º21\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:21:30#
    $114138105\",\r\n \"39.358056,-77.141389,N39º21\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:21:43#
    $114138114\",\r\n \"39.358056,-77.141111,N39º21\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:21:44#
    $114138116\",\r\n \"39.353611,-77.13,N39º21\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:22:19#
    $114138159\",\r\n \"39.353333,-77.124444,N39º21\\\\\\\\'12\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:22:34#
    $114138173\",\r\n \"39.351944,-77.116667,N39º21\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:22:54#
    $114138203\",\r\n \"39.348056,-77.097778,N39º20\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:23:52#
    $114138246\",\r\n \"39.343889,-77.075833,N39º20\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:24:56#
    $114138295\",\r\n \"39.343611,-77.075278,N39º20\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:24:58#
    $114138298\",\r\n \"39.337778,-77.053333,N39º20\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:26:02#
    $114138366\",\r\n \"39.3375,-77.051944,N39º20\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:26:06#
    $114138371\",\r\n \"39.333611,-77.035,N39º20\\\\\\\\'1\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:26:56#
    $114138429\",\r\n \"39.332222,-77.031667,N39º19\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:27:06#
    $114138443\",\r\n \"39.331667,-77.030278,N39º19\\\\\\\\'54\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:27:11#
    $114138457\",\r\n \"39.331111,-77.028889,N39º19\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:27:15#
    $114138462\",\r\n \"39.328611,-77.021944,N39º19\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:27:36#
    $114138466\",\r\n \"39.321944,-77,N39º19\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:28:42#
    $114138549\",\r\n \"39.319444,-76.985833,N39º19\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:29:22#
    $114138560\",\r\n \"39.312778,-76.966944,N39º18\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:30:21#
    $114138612\",\r\n \"39.308056,-76.9475,N39º18\\\\\\\\'29\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:31:18#
    $114138678\",\r\n \"39.308056,-76.947222,N39º18\\\\\\\\'29\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:31:20#
    $114138682\",\r\n \"39.3075,-76.941667,N39º18\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:31:36#
    $114138696\",\r\n \"39.3075,-76.941667,N39º18\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:31:36#
    $114138694\",\r\n \"39.305556,-76.924722,N39º18\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:32:24#
    $114138729\",\r\n \"39.305278,-76.920833,N39º18\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:32:35#
    $114138742\",\r\n \"39.305278,-76.920556,N39º18\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:32:36#
    $114138741\",\r\n \"39.304722,-76.9175,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:32:44#
    $114138752\",\r\n \"39.301944,-76.907222,N39º18\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'26\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:33:15#
    $114138821\",\r\n \"39.303889,-76.898889,N39º18\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:33:39#
    $114138789\",\r\n \"39.304167,-76.8975,N39º18\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:33:44#
    $114138799\",\r\n \"39.304444,-76.88,N39º18\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:34:31#
    $114138859\",\r\n \"39.304167,-76.879444,N39º18\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:34:33#
    $114138860\",\r\n \"39.295556,-76.8525,N39º17\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:35:55#
    $114138947\",\r\n \"39.295833,-76.843611,N39º17\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:36:21#
    $114138993\",\r\n \"39.296111,-76.834444,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:36:47#
    $114138976\",\r\n \"39.296944,-76.808333,N39º17\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:38:03#
    $114139060\",\r\n \"39.304722,-76.795278,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:38:54#
    $114139114\",\r\n \"39.306944,-76.785,N39º18\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:39:25#
    $114139142\",\r\n \"39.306667,-76.778611,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:39:46#
    $114139151\",\r\n \"39.306667,-76.778611,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:39:46#
    $114139183\",\r\n \"39.306667,-76.770556,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:40:11#
    $114139180\",\r\n \"39.306667,-76.768889,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:40:16#
    $114139187\",\r\n \"39.306944,-76.7675,N39º18\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:40:19#
    $114139193\",\r\n \"39.306389,-76.751667,N39º18\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:41:14#
    $114139229\",\r\n \"39.305833,-76.750833,N39º18\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:41:21#
    $114139241\",\r\n \"39.305833,-76.750833,N39º18\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:41:21#
    $114139242\",\r\n \"39.305833,-76.750833,N39º18\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:41:24#
    $114139245\",\r\n \"39.305833,-76.750833,N39º18\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:41:45#
    $114139298\",\r\n \"39.305833,-76.750833,N39º18\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:41:45#
    $114139267\",\r\n \"39.305,-76.748611,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:42:19#
    $114139310\",\r\n \"39.305,-76.748611,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:42:19#
    $114139309\",\r\n \"39.305,-76.748333,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:42:24#
    $114139318\",\r\n \"39.304722,-76.748333,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:42:39#
    $114139353\",\r\n \"39.304722,-76.747778,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:42:50#
    $114139345\",\r\n \"39.304722,-76.746389,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:43:25#
    $114139369\",\r\n \"39.304722,-76.746111,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:43:30#
    $114139372\",\r\n \"39.312222,-76.744167,N39º18\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:44:34#
    $114139422\",\r\n \"39.329444,-76.744444,N39º19\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:45:45#
    $114139531\",\r\n \"39.341111,-76.744444,N39º20\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:46:30#
    $114139550\",\r\n \"39.343611,-76.744722,N39º20\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:46:41#
    $114139566\",\r\n \"39.344444,-76.744722,N39º20\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:46:44#
    $114139574\",\r\n \"39.3575,-76.746111,N39º21\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:47:34#
    $114139598\",\r\n \"39.358056,-76.746111,N39º21\\\\\\\\'29\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:47:35#
    $114139604\",\r\n \"39.360556,-76.746389,N39º21\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:47:43#
    $114139616\",\r\n \"39.379722,-76.742222,N39º22\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:48:55#
    $114139679\",\r\n \"39.380833,-76.739444,N39º22\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:49:04#
    $114139687\",\r\n \"39.381389,-76.738056,N39º22\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:49:09#
    $114139690\",\r\n \"39.388611,-76.726111,N39º23\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:49:55#
    $114139734\",\r\n \"39.392222,-76.706389,N39º23\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:50:59#
    $114139803\",\r\n \"39.393889,-76.701944,N39º23\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:51:15#
    $114139819\",\r\n \"39.394722,-76.697222,N39º23\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:51:29#
    $114139827\",\r\n \"39.397778,-76.683889,N39º23\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:52:13#
    $114139867\",\r\n \"39.398611,-76.6825,N39º23\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:52:19#
    $114139873\",\r\n \"39.401111,-76.679167,N39º24\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:52:33#
    $114139880\",\r\n \"39.403056,-76.676389,N39º24\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:52:44#
    $114139889\",\r\n \"39.409722,-76.665278,N39º24\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:53:24#
    $114139929\",\r\n \"39.409722,-76.665278,N39º24\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:53:25#
    $114139932\",\r\n \"39.410556,-76.664444,N39º24\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:53:29#
    $114139941\",\r\n \"39.416111,-76.658333,N39º24\\\\\\\\'58\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:54:00#
    $114139981\",\r\n \"39.418056,-76.633333,N39º25\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:55:21#
    $114140041\",\r\n \"39.418056,-76.633056,N39º25\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:55:23#
    $114140044\",\r\n \"39.416944,-76.629722,N39º25\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:55:33#
    $114140055\",\r\n \"39.415,-76.624722,N39º24\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'29\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:55:50#
    $114140123\",\r\n \"39.413611,-76.610278,N39º24\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:56:44#
    $114140126\",\r\n \"39.413333,-76.606667,N39º24\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:56:55#
    $114140137\",\r\n \"39.413889,-76.593889,N39º24\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:57:40#
    $114140174\",\r\n \"39.413889,-76.593333,N39º24\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:57:41#
    $114140175\",\r\n \"39.414167,-76.591944,N39º24\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:57:45#
    $114140197\",\r\n \"39.414167,-76.591111,N39º24\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:57:48#
    $114140206\",\r\n \"39.412778,-76.584722,N39º24\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:58:09#
    $114140234\",\r\n \"39.401667,-76.560556,N39º24\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:59:47#
    $114140309\",\r\n \"39.397778,-76.550278,N39º23\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:00:31#
    $114140366\",\r\n \"39.392222,-76.541111,N39º23\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:01:04#
    $114140370\",\r\n \"39.389167,-76.533056,N39º23\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:01:28#
    $114140436\",\r\n \"39.388333,-76.530278,N39º23\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:01:38#
    $114140400\",\r\n \"39.386111,-76.526111,N39º23\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:01:54#
    $114140430\",\r\n \"39.383611,-76.5225,N39º23\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:02:10#
    $114140449\",\r\n \"39.383611,-76.5225,N39º23\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:02:11#
    $114140448\",\r\n \"39.371389,-76.516111,N39º22\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:03:00#
    $114140485\",\r\n \"39.371111,-76.515833,N39º22\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:03:01#
    $114140489\",\r\n \"39.368611,-76.5125,N39º22\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:03:16#
    $114140499\",\r\n \"39.368056,-76.511667,N39º22\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'42\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:03:20#
    $114140527\",\r\n \"39.359167,-76.504444,N39º21\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:04:05#
    $114140538\",\r\n \"39.357222,-76.503056,N39º21\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:04:15#
    $114140545\",\r\n \"39.356389,-76.5025,N39º21\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:04:19#
    $114140551\",\r\n \"39.349444,-76.501389,N39º20\\\\\\\\'58\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:04:55#
    $114140585\",\r\n \"39.3475,-76.504722,N39º20\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:05:09#
    $114140594\",\r\n \"39.329167,-76.523333,N39º19\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:06:35#
    $114140708\",\r\n \"39.324444,-76.528056,N39º19\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:06:56#
    $114140714\",\r\n \"39.319167,-76.533333,N39º19\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:07:20#
    $114140723\",\r\n \"39.311944,-76.5325,N39º18\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:07:51#
    $114140803\",\r\n \"39.307222,-76.531111,N39º18\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:08:11#
    $114140769\",\r\n \"39.307222,-76.531111,N39º18\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:08:11#
    $114140812\",\r\n \"39.303333,-76.530556,N39º18\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:08:27#
    $114140783\",\r\n \"39.290278,-76.5325,N39º17\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:09:21#
    $114140838\",\r\n \"39.29,-76.532778,N39º17\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:09:22#
    $114140842\",\r\n \"39.285,-76.534722,N39º17\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:09:40#
    $114140887\",\r\n \"39.285,-76.534722,N39º17\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:09:40#
    $114140908\",\r\n \"39.273056,-76.553889,N39º16\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:11:05#
    $114140977\",\r\n \"39.268056,-76.561389,N39º16\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:11:41#
    $114140987\",\r\n \"39.267222,-76.562222,N39º16\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:11:45#
    $114140994\",\r\n \"39.262778,-76.567778,N39º15\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:12:34#
    $114141026\",\r\n \"39.265,-76.568333,N39º15\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:12:50#
    $114141042\",\r\n \"39.265,-76.568333,N39º15\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:12:50#
    $114141043\",\r\n \"39.265278,-76.568333,N39º15\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:12:54#
    $114141048\",\r\n \"39.2725,-76.568889,N39º16\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:13:39#
    $114141078\",\r\n \"39.2725,-76.568889,N39º16\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:13:40#
    $114141082\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:14:42#
    $114141143\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:14:44#
    $114141148\",\r\n \"39.276944,-76.569167,N39º16\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:15:02#
    $114141182\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:15:23#
    $114141210\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:16:02#
    $114141225\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:16:03#
    $114141226\",\r\n \"39.280556,-76.580278,N39º16\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:17:02#
    $114141279\",\r\n \"39.280833,-76.580556,N39º16\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:17:08#
    $114141286\",\r\n \"39.280833,-76.580556,N39º16\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:17:08#
    $114141285\",\r\n \"39.283056,-76.584444,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:18:08#
    $114141337\",\r\n \"39.283056,-76.584444,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:18:12#
    $114141347\",\r\n \"39.283056,-76.584444,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:18:12#
    $114141346\",\r\n \"39.283611,-76.585556,N39º17\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:18:37#
    $114141378\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:19:16#
    $114141423\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:19:18#
    $114141428\",\r\n \"39.284444,-76.586667,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:19:42#
    $114141446\",\r\n \"39.284722,-76.588333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:20:16#
    $114141466\",\r\n \"39.284722,-76.588333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:20:16#
    $114141467\",\r\n \"39.284444,-76.590833,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:20:55#
    $114141500\",\r\n \"39.284444,-76.591389,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:21:00#
    $114141508\",\r\n \"39.284444,-76.5925,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:21:09#
    $114141510\",\r\n \"39.284444,-76.592778,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:21:10#
    $114141516\",\r\n \"39.284444,-76.593611,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:21:18#
    $114141530\",\r\n \"39.284167,-76.598056,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:22:03#
    $114141559\",\r\n \"39.284167,-76.598333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:22:13#
    $114141581\",\r\n \"39.284167,-76.598333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:22:18#
    $114141591\",\r\n \"39.284167,-76.598333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:22:21#
    $114141600\",\r\n \"39.284167,-76.598333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:22:21#
    $114141601\",\r\n \"39.284167,-76.598333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:22:21#
    $114141630\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:22:53#
    $114141651\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:22:53#
    $114141631\",\r\n \"39.284167,-76.603333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:24:27#
    $114141725\",\r\n \"39.284167,-76.603056,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:24:41#
    $114141731\",\r\n \"39.284444,-76.603056,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:24:51#
    $114141745\",\r\n \"39.285833,-76.603889,N39º17\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:25:15#
    $114141750\",\r\n \"39.285833,-76.603889,N39º17\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:25:16#
    $114141749\",\r\n \"39.286111,-76.603889,N39º17\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:25:31#
    $114141774\",\r\n \"39.2875,-76.604722,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:26:07#
    $114141806\",\r\n \"39.287778,-76.605556,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:26:20#
    $114141819\",\r\n \"39.287778,-76.605833,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:26:31#
    $114141846\",\r\n \"39.287778,-76.610556,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:27:35#
    $114141903\",\r\n \"39.2875,-76.610833,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:27:40#
    $114141909\",\r\n \"39.286944,-76.6125,N39º17\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:27:55#
    $114141917\",\r\n \"39.286944,-76.6125,N39º17\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:28:16#
    $114141940\",\r\n \"39.287222,-76.6125,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:28:39#
    $114141954\",\r\n \"39.287222,-76.6125,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:28:40#
    $114141956\",\r\n \"39.287778,-76.613333,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:29:20#
    $114141993\",\r\n \"39.285833,-76.613056,N39º17\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:29:49#
    $114142020\",\r\n \"39.285833,-76.613056,N39º17\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:29:49#
    $114142021\",\r\n \"39.285278,-76.613056,N39º17\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:29:55#
    $114142055\",\r\n \"39.284722,-76.613333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:30:05#
    $114142074\",\r\n \"39.284167,-76.613611,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'49\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:30:26#
    $114142097\",\r\n \"39.283889,-76.615833,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:30:58#
    $114142104\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:31:34#
    $114142187\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:31:49#
    $114142141\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:31:57#
    $114142151\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:31:58#
    $114142156\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:32:06#
    $114142170\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:32:06#
    $114142193\",\r\n \"39.283889,-76.618333,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:32:17#
    $114142217\",\r\n \"39.283333,-76.618889,N39º17\\\\\\\\'0\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:32:27#
    $114142188\",\r\n \"39.275,-76.620556,N39º16\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:33:09#
    $114142225\",\r\n \"39.268333,-76.628056,N39º16\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:34:00#
    $114142269\",\r\n \"39.269167,-76.631944,N39º16\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:34:14#
    $114142304\",\r\n \"39.262222,-76.672778,N39º15\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:36:22#
    $114142426\",\r\n \"39.256667,-76.676111,N39º15\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:36:47#
    $114142446\",\r\n \"39.249167,-76.682778,N39º14\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:37:25#
    $114142488\",\r\n \"39.246389,-76.686667,N39º14\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:37:40#
    $114142506\",\r\n \"39.242222,-76.6925,N39º14\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:38:01#
    $114142519\",\r\n \"39.242222,-76.6925,N39º14\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'33\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:38:01#
    $114142560\",\r\n \"39.237222,-76.707222,N39º14\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'26\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:38:44#
    $114142601\",\r\n \"39.2325,-76.7125,N39º13\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:39:05#
    $114142591\",\r\n \"39.226389,-76.716667,N39º13\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:39:29#
    $114142610\",\r\n \"39.215556,-76.730833,N39º12\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:40:23#
    $114142657\",\r\n \"39.213889,-76.734167,N39º12\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:40:34#
    $114142669\",\r\n \"39.213056,-76.735556,N39º12\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:40:38#
    $114142671\",\r\n \"39.210833,-76.740556,N39º12\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'26\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:40:54#
    $114142733\",\r\n \"39.205278,-76.751111,N39º12\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:41:30#
    $114142718\",\r\n \"39.195278,-76.768611,N39º11\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:42:53#
    $114142817\",\r\n \"39.195278,-76.768889,N39º11\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:42:57#
    $114142839\",\r\n \"39.193333,-76.770556,N39º11\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:43:28#
    $114142838\",\r\n \"39.190278,-76.773889,N39º11\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:43:52#
    $114142859\",\r\n \"39.181944,-76.783611,N39º10\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:44:51#
    $114142900\",\r\n \"39.181389,-76.784444,N39º10\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:45:09#
    $114142929\",\r\n \"39.180833,-76.785,N39º10\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:45:58#
    $114142986\",\r\n \"39.180556,-76.785556,N39º10\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:46:07#
    $114143002\",\r\n \"39.180278,-76.785833,N39º10\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:46:16#
    $114143017\",\r\n \"39.179722,-76.786667,N39º10\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:46:38#
    $114143031\",\r\n \"39.179444,-76.786944,N39º10\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:47:02#
    $114143040\",\r\n \"39.179444,-76.786944,N39º10\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:47:02#
    $114143038\",\r\n \"39.178056,-76.789444,N39º10\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'22\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:47:32#
    $114143075\",\r\n \"39.176389,-76.792222,N39º10\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'32\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:48:18#
    $114143098\",\r\n \"39.175278,-76.794167,N39º10\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:48:40#
    $114143171\",\r\n \"39.1725,-76.799722,N39º10\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:50:23#
    $114143226\",\r\n \"39.171667,-76.801111,N39º10\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:50:44#
    $114143250\",\r\n \"39.169444,-76.804722,N39º10\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:51:29#
    $114143271\",\r\n \"39.168889,-76.805556,N39º10\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:51:49#
    $114143303\",\r\n \"39.166944,-76.808611,N39º10\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:52:35#
    $114143322\",\r\n \"39.166389,-76.809722,N39º9\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:52:44#
    $114143333\",\r\n \"39.164722,-76.8125,N39º9\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:53:27#
    $114143425\",\r\n \"39.163333,-76.814444,N39º9\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:54:00#
    $114143437\",\r\n \"39.163056,-76.815,N39º9\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:54:21#
    $114143449\",\r\n \"39.162222,-76.816667,N39º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:54:45#
    $114143466\",\r\n \"39.161111,-76.818889,N39º9\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:55:35#
    $114143541\",\r\n \"39.160556,-76.821111,N39º9\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:56:00#
    $114143537\",\r\n \"39.160278,-76.821111,N39º9\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:56:02#
    $114143539\",\r\n \"39.160278,-76.821111,N39º9\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:56:04#
    $114143542\",\r\n \"39.160278,-76.822222,N39º9\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:56:28#
    $114143554\",\r\n \"39.159444,-76.825833,N39º9\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'33\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:57:21#
    $114143651\",\r\n \"39.158889,-76.828333,N39º9\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:58:06#
    $114143667\",\r\n \"39.158889,-76.828333,N39º9\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:58:06#
    $114143668\",\r\n \"39.158889,-76.828611,N39º9\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:58:07#
    $114143672\",\r\n \"39.158611,-76.828889,N39º9\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:58:15#
    $114143706\",\r\n \"39.157778,-76.831389,N39º9\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:59:11#
    $114143721\",\r\n \"39.1575,-76.831944,N39º9\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:59:21#
    $114143734\",\r\n \"39.155833,-76.835,N39º9\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:00:16#
    $114143778\",\r\n \"39.155833,-76.835,N39º9\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:00:16#
    $114143779\",\r\n \"39.155556,-76.835556,N39º9\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:00:22#
    $114143786\",\r\n \"39.155556,-76.835556,N39º9\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:00:24#
    $114143787\",\r\n \"39.151667,-76.839444,N39º9\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'22\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:00:58#
    $114143863\",\r\n \"39.149444,-76.840833,N39º8\\\\\\\\'58\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:01:12#
    $114143836\",\r\n \"39.147778,-76.842222,N39º8\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:01:22#
    $114143840\",\r\n \"39.147778,-76.842222,N39º8\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:01:22#
    $114143841\",\r\n \"39.146667,-76.842778,N39º8\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:01:27#
    $114143851\",\r\n \"39.146667,-76.843056,N39º8\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:01:28#
    $114143853\",\r\n \"39.138889,-76.848333,N39º8\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:02:03#
    $114143910\",\r\n \"39.134444,-76.854444,N39º8\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:02:28#
    $114143920\",\r\n \"39.133611,-76.856667,N39º8\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:02:36#
    $114143939\",\r\n \"39.133333,-76.856944,N39º8\\\\\\\\'0\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:02:37#
    $114143940\",\r\n \"39.131944,-76.859444,N39º7\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:02:47#
    $114143943\",\r\n \"39.1275,-76.863889,N39º7\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:03:08#
    $114144011\",\r\n \"39.121667,-76.8675,N39º7\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:03:32#
    $114143972\",\r\n \"39.121667,-76.8675,N39º7\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:03:32#
    $114143973\",\r\n \"39.120556,-76.868333,N39º7\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:03:36#
    $114143984\",\r\n \"39.109444,-76.880278,N39º6\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:04:26#
    $114144017\",\r\n \"39.105833,-76.885556,N39º6\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:04:45#
    $114144051\",\r\n \"39.096667,-76.890833,N39º5\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:05:20#
    $114144076\",\r\n \"39.087778,-76.895,N39º5\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:05:53#
    $114144130\",\r\n \"39.073056,-76.906111,N39º4\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:06:57#
    $114144181\",\r\n \"39.069722,-76.908333,N39º4\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:07:11#
    $114144215\",\r\n \"39.062778,-76.916389,N39º3\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:07:45#
    $114144217\",\r\n \"39.060556,-76.921944,N39º3\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:08:05#
    $114144261\",\r\n \"39.054444,-76.928889,N39º3\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:08:36#
    $114144290\",\r\n \"39.045556,-76.933056,N39º2\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:09:13#
    $114144340\",\r\n \"39.041111,-76.936111,N39º2\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:09:33#
    $114144338\",\r\n \"39.041111,-76.936111,N39º2\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:09:33#
    $114144359\",\r\n \"39.018333,-76.971111,N39º1\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:12:09#
    $114144461\",\r\n \"39.018611,-76.973889,N39º1\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:12:17#
    $114144470\",\r\n \"39.018889,-76.975556,N39º1\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:12:23#
    $114144488\",\r\n \"39.019167,-76.976944,N39º1\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:12:27#
    $114144508\",\r\n \"39.018333,-76.991111,N39º1\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:13:13#
    $114144529\",\r\n \"39.016389,-76.998611,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:13:44#
    $114144579\",\r\n \"39.016389,-77.009722,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:14:28#
    $114144615\",\r\n \"39.016389,-77.011389,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:14:35#
    $114144623\",\r\n \"39.016389,-77.011944,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:14:38#
    $114144626\",\r\n \"39.015833,-77.0175,N39º0\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:14:59#
    $114144677\",\r\n \"39.016944,-77.024444,N39º1\\\\\\\\'1\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:15:23#
    $114144663\",\r\n \"39.016944,-77.024722,N39º1\\\\\\\\'1\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:15:24#
    $114144666\",\r\n \"39.016667,-77.027222,N39º1\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:15:33#
    $114144674\",\r\n \"39.013333,-77.044444,N39º0\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:16:37#
    $114144725\",\r\n \"39.013333,-77.044722,N39º0\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:16:39#
    $114144728\",\r\n \"39.013333,-77.046389,N39º0\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:16:45#
    $114144738\",\r\n \"39.013611,-77.05,N39º0\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:16:59#
    $114144752\",\r\n \"39.011944,-77.063611,N39º0\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:17:53#
    $114144822\",\r\n \"39.005833,-77.074722,N39º0\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:18:48#
    $114144855\",\r\n \"39.005556,-77.0775,N39º0\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:18:58#
    $114144898\",\r\n \"39.006111,-77.084167,N39º0\\\\\\\\'22\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:19:18#
    $114144893\",\r\n \"39.011667,-77.091944,N39º0\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:19:57#
    $114144916\",\r\n \"39.014167,-77.094444,N39º0\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:20:13#
    $114144948\",\r\n \"39.014167,-77.094444,N39º0\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:20:13#
    $114144940\",\r\n \"39.016667,-77.099444,N39º1\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:20:33#
    $114144971\",\r\n \"39.020278,-77.104444,N39º1\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:21:03#
    $114144986\",\r\n \"39.026944,-77.110833,N39º1\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:21:52#
    $114145044\",\r\n \"39.028889,-77.116111,N39º1\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:22:11#
    $114145085\",\r\n \"39.030556,-77.125833,N39º1\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:22:42#
    $114145086\",\r\n \"39.032222,-77.135556,N39º1\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:23:12#
    $114145127\",\r\n \"39.055833,-77.153889,N39º3\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:25:17#
    $114145249\",\r\n \"39.057222,-77.154444,N39º3\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:25:24#
    $114145261\",\r\n \"39.062222,-77.155833,N39º3\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:25:48#
    $114145273\",\r\n \"39.068056,-77.158333,N39º4\\\\\\\\'5\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:26:23#
    $114145306\",\r\n \"39.073889,-77.164167,N39º4\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:26:56#
    $114145324\",\r\n \"39.075,-77.165833,N39º4\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:27:06#
    $114145368\",\r\n \"39.078611,-77.169167,N39º4\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:27:25#
    $114145351\",\r\n \"39.078611,-77.169167,N39º4\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:27:25#
    $114145352\",\r\n \"39.078889,-77.169444,N39º4\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:27:27#
    $114145354\",\r\n \"39.078889,-77.169444,N39º4\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:27:27#
    $114145353\",\r\n \"39.080556,-77.170833,N39º4\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:27:35#
    $114145362\",\r\n \"39.094444,-77.176111,N39º5\\\\\\\\'40\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:28:34#
    $114145415\",\r\n \"39.094167,-77.176111,N39º5\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:28:34#
    $114145416\",\r\n \"39.094444,-77.176111,N39º5\\\\\\\\'40\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:28:35#
    $114145419\",\r\n \"39.105,-77.181389,N39º6\\\\\\\\'18\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:29:25#
    $114145479\",\r\n \"39.109167,-77.185556,N39º6\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:29:53#
    $114145522\",\r\n \"39.111111,-77.187778,N39º6\\\\\\\\'40\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:30:29#
    $114145529\",\r\n \"39.111944,-77.188333,N39º6\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:30:38#
    $114145539\",\r\n \"39.111944,-77.188611,N39º6\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:30:43#
    $114145546\",\r\n \"39.113056,-77.189722,N39º6\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:30:57#
    $114145580\",\r\n \"39.115278,-77.191944,N39º6\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'31\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:31:18#
    $114145609\",\r\n \"39.134444,-77.208611,N39º8\\\\\\\\'4\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:32:47#
    $114145654\",\r\n \"39.135278,-77.209167,N39º8\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:32:52#
    $114145671\",\r\n \"39.14,-77.211944,N39º8\\\\\\\\'24\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:33:16#
    $114145708\",\r\n \"39.141111,-77.212222,N39º8\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:33:27#
    $114145760\",\r\n \"39.141389,-77.210556,N39º8\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:33:50#
    $114145732\",\r\n \"39.140278,-77.211111,N39º8\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:34:34#
    $114145770\",\r\n \"39.143889,-77.215556,N39º8\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:36:05#
    $114145854\",\r\n \"39.143611,-77.215,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:36:08#
    $114145862\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:37:00#
    $114145914\",\r\n \"39.142778,-77.215278,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:57:55#
    $114146185\",\r\n \"39.143056,-77.215,N39º8\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:59:47#
    $114146215\",\r\n \"39.143611,-77.215,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:46:05#
    $114136083\",\r\n \"39.143611,-77.215,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:46:05#
    $114136084\",\r\n \"39.147222,-77.218611,N39º8\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:47:20#
    $114136156\",\r\n \"39.148056,-77.2175,N39º8\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:47:30#
    $114136166\",\r\n \"39.148889,-77.216111,N39º8\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:47:40#
    $114136216\",\r\n \"39.148056,-77.215556,N39º8\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:48:01#
    $114136229\",\r\n \"39.155833,-77.224444,N39º9\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:48:55#
    $114136314\",\r\n \"39.172778,-77.245,N39º10\\\\\\\\'22\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:50:37#
    $114136340\",\r\n \"39.175833,-77.247222,N39º10\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:50:49#
    $114136362\",\r\n \"39.176944,-77.248056,N39º10\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:50:53#
    $114136365\",\r\n \"39.179444,-77.25,N39º10\\\\\\\\'46\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:51:03#
    $114136374\",\r\n \"39.187778,-77.2575,N39º11\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:51:39#
    $114136422\",\r\n \"39.192222,-77.259722,N39º11\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:51:57#
    $114136446\",\r\n \"39.199722,-77.265278,N39º11\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:52:29#
    $114136484\",\r\n \"39.2025,-77.268333,N39º12\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:52:43#
    $114136478\",\r\n \"39.205,-77.271111,N39º12\\\\\\\\'18\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:52:54#
    $114136489\",\r\n \"39.205556,-77.271667,N39º12\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:52:58#
    $114136491\",\r\n \"39.213889,-77.276667,N39º12\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:53:34#
    $114136560\",\r\n \"39.219722,-77.278611,N39º13\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:53:57#
    $114136543\",\r\n \"39.220833,-77.279167,N39º13\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:54:02#
    $114136550\",\r\n \"39.232778,-77.285556,N39º13\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:54:53#
    $114136596\",\r\n \"39.238056,-77.29,N39º14\\\\\\\\'17\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:55:15#
    $114136620\",\r\n \"39.244722,-77.296389,N39º14\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:55:46#
    $114136662\",\r\n \"39.2475,-77.298611,N39º14\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:55:59#
    $114136670\",\r\n \"39.25,-77.300278,N39º15\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:56:11#
    $114136683\",\r\n \"39.251667,-77.301389,N39º15\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:56:19#
    $114136711\",\r\n \"39.253889,-77.302778,N39º15\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:56:30#
    $114136700\",\r\n \"39.2675,-77.313056,N39º16\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:57:24#
    $114136775\",\r\n \"39.270278,-77.313889,N39º16\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:57:34#
    $114136758\",\r\n \"39.2725,-77.316111,N39º16\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:57:45#
    $114136791\",\r\n \"39.274167,-77.319444,N39º16\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:57:55#
    $114136786\",\r\n \"39.296667,-77.334722,N39º17\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:59:36#
    $114136910\",\r\n \"39.296667,-77.334722,N39º17\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:59:36#
    $114136894\",\r\n \"39.301111,-77.338611,N39º18\\\\\\\\'4\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:59:57#
    $114136913\",\r\n \"39.306667,-77.343056,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:00:21#
    $114136916\",\r\n \"39.308333,-77.345556,N39º18\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:00:31#
    $114136932\",\r\n \"39.321111,-77.353889,N39º19\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:01:35#
    $114136990\",\r\n \"39.321389,-77.354167,N39º19\\\\\\\\'17\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:01:37#
    $114136993\",\r\n \"39.325278,-77.364444,N39º19\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:02:17#
    $114137065\",\r\n \"39.326667,-77.367778,N39º19\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:02:30#
    $114137025\",\r\n \"39.329167,-77.371111,N39º19\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:02:45#
    $114137055\",\r\n \"39.330278,-77.372222,N39º19\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:02:50#
    $114137067\",\r\n \"39.330278,-77.372222,N39º19\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:02:50#
    $114137066\",\r\n \"39.336389,-77.378611,N39º20\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:03:21#
    $114137094\",\r\n \"39.345,-77.387778,N39º20\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:04:05#
    $114137192\",\r\n \"39.3525,-77.393056,N39º21\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:04:39#
    $114137164\",\r\n \"39.365278,-77.4,N39º21\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:05:34#
    $114137241\",\r\n \"39.371667,-77.403611,N39º22\\\\\\\\'18\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:06:04#
    $114137234\",\r\n \"39.373056,-77.404444,N39º22\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:06:09#
    $114137254\",\r\n \"39.385833,-77.413056,N39º23\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:07:14#
    $114137351\",\r\n \"39.387778,-77.414722,N39º23\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:07:24#
    $114137352\",\r\n \"39.397222,-77.42,N39º23\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º25\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:08:10#
    $114137367\",\r\n \"39.397778,-77.417222,N39º23\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º25\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:08:20#
    $114137374\",\r\n \"39.4025,-77.398611,N39º24\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:09:14#
    $114137410\",\r\n \"39.402222,-77.398889,N39º24\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:09:14#
    $114137413\",\r\n \"39.4025,-77.398056,N39º24\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:09:15#
    $114137414\",\r\n \"39.403611,-77.393889,N39º24\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:09:29#
    $114137433\",\r\n \"39.403889,-77.3825,N39º24\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:10:05#
    $114137447\",\r\n \"39.403889,-77.371667,N39º24\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:10:33#
    $114137502\",\r\n \"39.403611,-77.346667,N39º24\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:11:37#
    $114137568\",\r\n \"39.400833,-77.336111,N39º24\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:12:08#
    $114137575\",\r\n \"39.398333,-77.331944,N39º23\\\\\\\\'54\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:12:21#
    $114137583\",\r\n \"39.398333,-77.331944,N39º23\\\\\\\\'54\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:12:21#
    $114137585\",\r\n \"39.396111,-77.329444,N39º23\\\\\\\\'46\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:12:32#
    $114137602\",\r\n \"39.390833,-77.321389,N39º23\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:13:02#
    $114137618\",\r\n \"39.387222,-77.306389,N39º23\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:13:43#
    $114137669\",\r\n \"39.386111,-77.300278,N39º23\\\\\\\\'10\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:13:58#
    $114137662\",\r\n \"39.385556,-77.296667,N39º23\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:14:08#
    $114137672\",\r\n \"39.384167,-77.289722,N39º23\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:14:26#
    $114137729\",\r\n \"39.381667,-77.261667,N39º22\\\\\\\\'54\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:15:40#
    $114137786\",\r\n \"39.378889,-77.248056,N39º22\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:16:19#
    $114137813\",\r\n \"39.378889,-77.248056,N39º22\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:16:19#
    $114137812\",\r\n \"39.374167,-77.2275,N39º22\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:17:23#
    $114137873\",\r\n \"39.373889,-77.226944,N39º22\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:17:24#
    $114137877\",\r\n \"39.370556,-77.206667,N39º22\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:18:32#
    $114137946\",\r\n \"39.366389,-77.192222,N39º21\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:19:17#
    $114137997\",\r\n \"39.365278,-77.187222,N39º21\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:19:34#
    $114138013\",\r\n \"39.365278,-77.187222,N39º21\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:19:34#
    $114138011\",\r\n \"39.365278,-77.186111,N39º21\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:19:37#
    $114138023\",\r\n \"39.358889,-77.171944,N39º21\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:20:22#
    $114138047\",\r\n \"39.358889,-77.171111,N39º21\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:20:24#
    $114138050\",\r\n \"39.360556,-77.145833,N39º21\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:21:30#
    $114138104\",\r\n \"39.359167,-77.142778,N39º21\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:21:38#
    $114138111\",\r\n \"39.353333,-77.125278,N39º21\\\\\\\\'12\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:22:33#
    $114138165\",\r\n \"39.348333,-77.101389,N39º20\\\\\\\\'54\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:23:40#
    $114138235\",\r\n \"39.348056,-77.097778,N39º20\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:23:52#
    $114138247\",\r\n \"39.347778,-77.096389,N39º20\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:23:56#
    $114138248\",\r\n \"39.347778,-77.096111,N39º20\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:23:57#
    $114138250\",\r\n \"39.347778,-77.096111,N39º20\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:23:57#
    $114138249\",\r\n \"39.345833,-77.083611,N39º20\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:24:33#
    $114138282\",\r\n \"39.345833,-77.083611,N39º20\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:24:33#
    $114138305\",\r\n \"39.341667,-77.069444,N39º20\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:25:16#
    $114138328\",\r\n \"39.339722,-77.061944,N39º20\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:25:37#
    $114138333\",\r\n \"39.338611,-77.057222,N39º20\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:25:51#
    $114138340\",\r\n \"39.337778,-77.053611,N39º20\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:26:01#
    $114138362\",\r\n \"39.3375,-77.0525,N39º20\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:26:05#
    $114138369\",\r\n \"39.335278,-77.039722,N39º20\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:26:41#
    $114138436\",\r\n \"39.331944,-77.030833,N39º19\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:27:10#
    $114138453\",\r\n \"39.331111,-77.028889,N39º19\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:27:15#
    $114138469\",\r\n \"39.33,-77.025556,N39º19\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:27:26#
    $114138464\",\r\n \"39.325833,-77.014167,N39º19\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:28:00#
    $114138478\",\r\n \"39.323611,-77.008611,N39º19\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:28:18#
    $114138509\",\r\n \"39.323056,-77.007222,N39º19\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'26\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:28:21#
    $114138518\",\r\n \"39.321111,-76.991389,N39º19\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:29:06#
    $114138540\",\r\n \"39.312778,-76.966944,N39º18\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:30:21#
    $114138613\",\r\n \"39.311667,-76.964722,N39º18\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:30:29#
    $114138627\",\r\n \"39.308889,-76.956111,N39º18\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'22\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:30:54#
    $114138676\",\r\n \"39.307778,-76.943611,N39º18\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:31:30#
    $114138689\",\r\n \"39.305556,-76.923889,N39º18\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:32:26#
    $114138731\",\r\n \"39.305278,-76.921111,N39º18\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:32:34#
    $114138739\",\r\n \"39.303889,-76.898889,N39º18\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:33:39#
    $114138790\",\r\n \"39.304167,-76.897222,N39º18\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:33:44#
    $114138802\",\r\n \"39.305278,-76.884444,N39º18\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:34:18#
    $114138849\",\r\n \"39.304444,-76.88,N39º18\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:34:31#
    $114138863\",\r\n \"39.303333,-76.876944,N39º18\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:34:42#
    $114138869\",\r\n \"39.302222,-76.873889,N39º18\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:34:50#
    $114138883\",\r\n \"39.301944,-76.873333,N39º18\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:34:52#
    $114138888\",\r\n \"39.302222,-76.873611,N39º18\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:34:52#
    $114138886\",\r\n \"39.296389,-76.8575,N39º17\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:35:42#
    $114138917\",\r\n \"39.295833,-76.854167,N39º17\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:35:52#
    $114138931\",\r\n \"39.296111,-76.829722,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:37:00#
    $114139000\",\r\n \"39.296111,-76.830278,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:37:00#
    $114139003\",\r\n \"39.296111,-76.828611,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:37:04#
    $114139004\",\r\n \"39.296111,-76.825,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:37:14#
    $114139008\",\r\n \"39.296111,-76.821111,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:37:25#
    $114139045\",\r\n \"39.295833,-76.817778,N39º17\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:37:35#
    $114139018\",\r\n \"39.296389,-76.813333,N39º17\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:37:49#
    $114139035\",\r\n \"39.306389,-76.79,N39º18\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:39:10#
    $114139136\",\r\n \"39.306667,-76.768889,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:40:16#
    $114139186\",\r\n \"39.305,-76.748611,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:42:19#
    $114139308\",\r\n \"39.305556,-76.744167,N39º18\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:43:54#
    $114139400\",\r\n \"39.309444,-76.743333,N39º18\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:44:20#
    $114139413\",\r\n \"39.3125,-76.744444,N39º18\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:44:36#
    $114139426\",\r\n \"39.326667,-76.744444,N39º19\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:45:34#
    $114139477\",\r\n \"39.328056,-76.744444,N39º19\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:45:39#
    $114139491\",\r\n \"39.328333,-76.744444,N39º19\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:45:39#
    $114139493\",\r\n \"39.331944,-76.744444,N39º19\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:45:55#
    $114139517\",\r\n \"39.341111,-76.744444,N39º20\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:46:30#
    $114139547\",\r\n \"39.344722,-76.744722,N39º20\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:46:45#
    $114139576\",\r\n \"39.345833,-76.745,N39º20\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'42\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:46:49#
    $114139596\",\r\n \"39.348611,-76.745278,N39º20\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:46:59#
    $114139589\",\r\n \"39.348611,-76.745278,N39º20\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:46:59#
    $114139593\",\r\n \"39.360556,-76.746389,N39º21\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:47:44#
    $114139619\",\r\n \"39.363611,-76.746944,N39º21\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:47:53#
    $114139629\",\r\n \"39.377222,-76.743889,N39º22\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:48:43#
    $114139657\",\r\n \"39.377778,-76.743611,N39º22\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:48:45#
    $114139660\",\r\n \"39.388333,-76.726667,N39º23\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:49:54#
    $114139731\",\r\n \"39.389444,-76.722778,N39º23\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'22\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:50:05#
    $114139758\",\r\n \"39.391111,-76.710278,N39º23\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:50:45#
    $114139792\",\r\n \"39.3925,-76.705833,N39º23\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:51:00#
    $114139807\",\r\n \"39.393333,-76.703611,N39º23\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:51:09#
    $114139811\",\r\n \"39.394444,-76.700556,N39º23\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:51:18#
    $114139823\",\r\n \"39.395,-76.693056,N39º23\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:51:39#
    $114139831\",\r\n \"39.398611,-76.6825,N39º23\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:52:19#
    $114139874\",\r\n \"39.398611,-76.6825,N39º23\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:52:20#
    $114139875\",\r\n \"39.399167,-76.681667,N39º23\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:52:23#
    $114139878\",\r\n \"39.408611,-76.666667,N39º24\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:53:18#
    $114139921\",\r\n \"39.418611,-76.654167,N39º25\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:54:15#
    $114139993\",\r\n \"39.420556,-76.649167,N39º25\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:54:32#
    $114140008\",\r\n \"39.42,-76.640833,N39º25\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'27\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:54:57#
    $114140046\",\r\n \"39.413056,-76.597222,N39º24\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:57:30#
    $114140160\",\r\n \"39.413889,-76.593889,N39º24\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:57:40#
    $114140172\",\r\n \"39.413889,-76.587778,N39º24\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:57:59#
    $114140230\",\r\n \"39.408889,-76.578889,N39º24\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:58:33#
    $114140238\",\r\n \"39.4025,-76.57,N39º24\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:59:13#
    $114140274\",\r\n \"39.401389,-76.567222,N39º24\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'2\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:59:23#
    $114140315\",\r\n \"39.401667,-76.560556,N39º24\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:59:47#
    $114140307\",\r\n \"39.401667,-76.558056,N39º24\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:59:56#
    $114140317\",\r\n \"39.401389,-76.556944,N39º24\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'25\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:00:00#
    $114140328\",\r\n \"39.395556,-76.546389,N39º23\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:00:46#
    $114140353\",\r\n \"39.393611,-76.543611,N39º23\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:00:56#
    $114140361\",\r\n \"39.393611,-76.543611,N39º23\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:00:56#
    $114140362\",\r\n \"39.3925,-76.541389,N39º23\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:01:03#
    $114140368\",\r\n \"39.384722,-76.523889,N39º23\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'26\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:02:03#
    $114140444\",\r\n \"39.383611,-76.5225,N39º23\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:02:10#
    $114140451\",\r\n \"39.3825,-76.521667,N39º22\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:02:15#
    $114140456\",\r\n \"39.380278,-76.520278,N39º22\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:02:25#
    $114140459\",\r\n \"39.371111,-76.515833,N39º22\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:03:01#
    $114140487\",\r\n \"39.369722,-76.513889,N39º22\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:03:10#
    $114140492\",\r\n \"39.368889,-76.512778,N39º22\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:03:15#
    $114140497\",\r\n \"39.366389,-76.509722,N39º21\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:03:31#
    $114140515\",\r\n \"39.3625,-76.506667,N39º21\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:03:52#
    $114140533\",\r\n \"39.357222,-76.503056,N39º21\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:04:15#
    $114140547\",\r\n \"39.3475,-76.504722,N39º20\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:05:09#
    $114140595\",\r\n \"39.346111,-76.5075,N39º20\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:05:19#
    $114140609\",\r\n \"39.336944,-76.516389,N39º20\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:06:01#
    $114140665\",\r\n \"39.333611,-76.518889,N39º20\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:06:15#
    $114140672\",\r\n \"39.331389,-76.521111,N39º19\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:06:26#
    $114140688\",\r\n \"39.331389,-76.521111,N39º19\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:06:26#
    $114140689\",\r\n \"39.330556,-76.521944,N39º19\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:06:30#
    $114140691\",\r\n \"39.329167,-76.523333,N39º19\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:06:36#
    $114140713\",\r\n \"39.326944,-76.525556,N39º19\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'32\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:06:46#
    $114140718\",\r\n \"39.314444,-76.533333,N39º18\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:07:40#
    $114140760\",\r\n \"39.285833,-76.534167,N39º17\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:09:37#
    $114140882\",\r\n \"39.282222,-76.55,N39º16\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:10:25#
    $114140918\",\r\n \"39.282222,-76.55,N39º16\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:10:25#
    $114140916\",\r\n \"39.281667,-76.550278,N39º16\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:10:27#
    $114140920\",\r\n \"39.28,-76.551111,N39º16\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:10:35#
    $114140935\",\r\n \"39.28,-76.551111,N39º16\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:10:35#
    $114140936\",\r\n \"39.279722,-76.551111,N39º16\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:10:37#
    $114140938\",\r\n \"39.271111,-76.556389,N39º16\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:11:15#
    $114140983\",\r\n \"39.2675,-76.561944,N39º16\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:11:44#
    $114140990\",\r\n \"39.2675,-76.561944,N39º16\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:11:44#
    $114140991\",\r\n \"39.265278,-76.568333,N39º15\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:12:54#
    $114141054\",\r\n \"39.275,-76.569167,N39º16\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:13:57#
    $114141102\",\r\n \"39.275,-76.569167,N39º16\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:13:57#
    $114141140\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:14:52#
    $114141166\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:14:59#
    $114141174\",\r\n \"39.280833,-76.580556,N39º16\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:17:06#
    $114141284\",\r\n \"39.283056,-76.584444,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:18:12#
    $114141353\",\r\n \"39.283056,-76.584444,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:18:16#
    $114141357\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:19:12#
    $114141412\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:19:17#
    $114141424\",\r\n \"39.284722,-76.588333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:20:08#
    $114141456\",\r\n \"39.284722,-76.588333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:20:08#
    $114141455\",\r\n \"39.284722,-76.588333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:20:26#
    $114141492\",\r\n \"39.284444,-76.590833,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:20:55#
    $114141501\",\r\n \"39.284444,-76.593056,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:21:13#
    $114141521\",\r\n \"39.284444,-76.593333,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:21:14#
    $114141525\",\r\n \"39.284444,-76.595,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'42\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:21:28#
    $114141562\",\r\n \"39.284167,-76.598333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:22:14#
    $114141583\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:23:06#
    $114141640\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:23:16#
    $114141656\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:23:18#
    $114141658\",\r\n \"39.284167,-76.603056,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:24:31#
    $114141727\",\r\n \"39.284722,-76.603056,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:25:02#
    $114141736\",\r\n \"39.287222,-76.604444,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:25:46#
    $114141782\",\r\n \"39.287222,-76.604722,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:25:56#
    $114141790\",\r\n \"39.287778,-76.606667,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:27:01#
    $114141872\",\r\n \"39.287778,-76.61,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:27:26#
    $114141897\",\r\n \"39.287778,-76.610833,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:27:39#
    $114141906\",\r\n \"39.2875,-76.610833,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:27:40#
    $114141908\",\r\n \"39.286944,-76.6125,N39º17\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:28:30#
    $114141946\",\r\n \"39.2875,-76.612778,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:28:44#
    $114141961\",\r\n \"39.287778,-76.613056,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:28:49#
    $114141983\",\r\n \"39.2875,-76.613333,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:29:00#
    $114142007\",\r\n \"39.286389,-76.613056,N39º17\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:29:44#
    $114142013\",\r\n \"39.283889,-76.615833,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:30:51#
    $114142095\",\r\n \"39.283889,-76.615833,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:30:51#
    $114142096\",\r\n \"39.283889,-76.615833,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:30:58#
    $114142105\",\r\n \"39.283889,-76.617778,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:31:23#
    $114142128\",\r\n \"39.278333,-76.618889,N39º16\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:32:53#
    $114142199\",\r\n \"39.275278,-76.620278,N39º16\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:33:08#
    $114142222\",\r\n \"39.274167,-76.620833,N39º16\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:33:13#
    $114142233\",\r\n \"39.268333,-76.624722,N39º16\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'29\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:33:44#
    $114142297\",\r\n \"39.271111,-76.648056,N39º16\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:35:02#
    $114142340\",\r\n \"39.271389,-76.652222,N39º16\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:35:14#
    $114142363\",\r\n \"39.271111,-76.654444,N39º16\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:35:18#
    $114142370\",\r\n \"39.269444,-76.658333,N39º16\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:35:32#
    $114142418\",\r\n \"39.269444,-76.658333,N39º16\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:35:32#
    $114142376\",\r\n \"39.263333,-76.671667,N39º15\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:36:17#
    $114142419\",\r\n \"39.263333,-76.671667,N39º15\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:36:18#
    $114142420\",\r\n \"39.261389,-76.673056,N39º15\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:36:26#
    $114142431\",\r\n \"39.249722,-76.681944,N39º14\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:37:21#
    $114142479\",\r\n \"39.249722,-76.681944,N39º14\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:37:21#
    $114142480\",\r\n \"39.248056,-76.684167,N39º14\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:37:30#
    $114142496\",\r\n \"39.239444,-76.700833,N39º14\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:38:24#
    $114142561\",\r\n \"39.239444,-76.700833,N39º14\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:38:25#
    $114142562\",\r\n \"39.2325,-76.7125,N39º13\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:39:05#
    $114142616\",\r\n \"39.225556,-76.717222,N39º13\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:39:33#
    $114142618\",\r\n \"39.225278,-76.7175,N39º13\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:39:34#
    $114142617\",\r\n \"39.224167,-76.718611,N39º13\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:39:38#
    $114142634\",\r\n \"39.215556,-76.731111,N39º12\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:40:24#
    $114142661\",\r\n \"39.214167,-76.733889,N39º12\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:40:33#
    $114142667\",\r\n \"39.213056,-76.735556,N39º12\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:40:38#
    $114142670\",\r\n \"39.202778,-76.756667,N39º12\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:41:48#
    $114142741\",\r\n \"39.202778,-76.756667,N39º12\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:41:48#
    $114142740\",\r\n \"39.199444,-76.763056,N39º11\\\\\\\\'58\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:42:09#
    $114142791\",\r\n \"39.196389,-76.7675,N39º11\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:42:35#
    $114142797\",\r\n \"39.195278,-76.768611,N39º11\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:42:53#
    $114142814\",\r\n \"39.195,-76.768889,N39º11\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:43:07#
    $114142836\",\r\n \"39.191667,-76.7725,N39º11\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:43:43#
    $114142847\",\r\n \"39.190278,-76.773889,N39º11\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'26\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:43:53#
    $114142861\",\r\n \"39.189444,-76.774722,N39º11\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:43:58#
    $114142864\",\r\n \"39.189444,-76.774722,N39º11\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:43:59#
    $114142869\",\r\n \"39.181944,-76.783611,N39º10\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:44:49#
    $114142898\",\r\n \"39.181389,-76.784444,N39º10\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:45:12#
    $114142966\",\r\n \"39.181111,-76.784722,N39º10\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:45:33#
    $114142953\",\r\n \"39.180833,-76.785,N39º10\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:45:57#
    $114142978\",\r\n \"39.178889,-76.787778,N39º10\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:47:17#
    $114143052\",\r\n \"39.176944,-76.791111,N39º10\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:47:53#
    $114143073\",\r\n \"39.176389,-76.792222,N39º10\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:48:16#
    $114143093\",\r\n \"39.176111,-76.792778,N39º10\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:48:26#
    $114143105\",\r\n \"39.174444,-76.795556,N39º10\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:49:16#
    $114143143\",\r\n \"39.173611,-76.7975,N39º10\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:49:39#
    $114143173\",\r\n \"39.173333,-76.798333,N39º10\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:49:59#
    $114143248\",\r\n \"39.171944,-76.800556,N39º10\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'2\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:50:35#
    $114143239\",\r\n \"39.169444,-76.804722,N39º10\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:51:31#
    $114143274\",\r\n \"39.169167,-76.805,N39º10\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:51:39#
    $114143281\",\r\n \"39.166389,-76.809722,N39º9\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:52:45#
    $114143338\",\r\n \"39.165556,-76.811111,N39º9\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:52:55#
    $114143356\",\r\n \"39.164722,-76.8125,N39º9\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:53:16#
    $114143372\",\r\n \"39.164444,-76.813056,N39º9\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:53:40#
    $114143389\",\r\n \"39.164167,-76.813056,N39º9\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:53:42#
    $114143397\",\r\n \"39.163889,-76.813889,N39º9\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:53:50#
    $114143421\",\r\n \"39.163889,-76.813889,N39º9\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:53:50#
    $114143420\",\r\n \"39.163611,-76.814167,N39º9\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:53:55#
    $114143426\",\r\n \"39.162222,-76.816667,N39º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:54:54#
    $114143478\",\r\n \"39.162222,-76.816667,N39º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:54:55#
    $114143482\",\r\n \"39.161944,-76.816944,N39º9\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:55:04#
    $114143497\",\r\n \"39.161667,-76.817778,N39º9\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:55:14#
    $114143494\",\r\n \"39.160556,-76.821111,N39º9\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:56:00#
    $114143536\",\r\n \"39.160278,-76.821389,N39º9\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:56:07#
    $114143549\",\r\n \"39.160278,-76.821389,N39º9\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'17\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:56:07#
    $114143573\",\r\n \"39.16,-76.823333,N39º9\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:56:39#
    $114143586\",\r\n \"39.159722,-76.823889,N39º9\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:56:52#
    $114143579\",\r\n \"39.159722,-76.824722,N39º9\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:57:06#
    $114143598\",\r\n \"39.158889,-76.827778,N39º9\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:57:56#
    $114143656\",\r\n \"39.158889,-76.828333,N39º9\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:58:06#
    $114143669\",\r\n \"39.1575,-76.831667,N39º9\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:59:15#
    $114143727\",\r\n \"39.156944,-76.833056,N39º9\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:59:53#
    $114143766\",\r\n \"39.156944,-76.833056,N39º9\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:59:53#
    $114143838\",\r\n \"39.156389,-76.834167,N39º9\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:00:06#
    $114143770\",\r\n \"39.156389,-76.834167,N39º9\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:00:07#
    $114143777\",\r\n \"39.153889,-76.8375,N39º9\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:00:43#
    $114143800\",\r\n \"39.153333,-76.838056,N39º9\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:00:48#
    $114143816\",\r\n \"39.147778,-76.842222,N39º8\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:01:22#
    $114143839\",\r\n \"39.145833,-76.843611,N39º8\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:01:32#
    $114143861\",\r\n \"39.136111,-76.851389,N39º8\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:02:17#
    $114143905\",\r\n \"39.133333,-76.856944,N39º8\\\\\\\\'0\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'25\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:02:37#
    $114143986\",\r\n \"39.129722,-76.861944,N39º7\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:02:58#
    $114144006\",\r\n \"39.119444,-76.868889,N39º7\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:03:42#
    $114144018\",\r\n \"39.115,-76.873611,N39º6\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:04:02#
    $114144002\",\r\n \"39.1125,-76.876667,N39º6\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:04:13#
    $114144007\",\r\n \"39.107222,-76.883056,N39º6\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:04:38#
    $114144040\",\r\n \"39.087778,-76.895,N39º5\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:05:52#
    $114144131\",\r\n \"39.086944,-76.895556,N39º5\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:05:57#
    $114144150\",\r\n \"39.073889,-76.905556,N39º4\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:06:53#
    $114144176\",\r\n \"39.066944,-76.910278,N39º4\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:07:21#
    $114144222\",\r\n \"39.050833,-76.930556,N39º3\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:08:50#
    $114144276\",\r\n \"39.050278,-76.930833,N39º3\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:08:51#
    $114144277\",\r\n \"39.048611,-76.931667,N39º2\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:09:00#
    $114144289\",\r\n \"39.046667,-76.9325,N39º2\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:09:08#
    $114144295\",\r\n \"39.043611,-76.934444,N39º2\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:09:23#
    $114144350\",\r\n \"39.036111,-76.939722,N39º2\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:09:57#
    $114144353\",\r\n \"39.034444,-76.941667,N39º2\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:10:08#
    $114144361\",\r\n \"39.033056,-76.943889,N39º1\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:10:17#
    $114144378\",\r\n \"39.023333,-76.952778,N39º1\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:11:02#
    $114144404\",\r\n \"39.021111,-76.954722,N39º1\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:11:12#
    $114144415\",\r\n \"39.020556,-76.956111,N39º1\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:11:17#
    $114144423\",\r\n \"39.020556,-76.956389,N39º1\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:11:18#
    $114144426\",\r\n \"39.019167,-76.976944,N39º1\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:12:27#
    $114144494\",\r\n \"39.019722,-76.983333,N39º1\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:12:48#
    $114144506\",\r\n \"39.019444,-76.986667,N39º1\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:12:58#
    $114144553\",\r\n \"39.018333,-76.990556,N39º1\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:13:12#
    $114144524\",\r\n \"39.017778,-76.993056,N39º1\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:13:21#
    $114144555\",\r\n \"39.017222,-76.994722,N39º1\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:13:29#
    $114144568\",\r\n \"39.0175,-76.994722,N39º1\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:13:29#
    $114144569\",\r\n \"39.015278,-77.003889,N39º0\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:14:05#
    $114144628\",\r\n \"39.016389,-77.009444,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:14:28#
    $114144613\",\r\n \"39.016389,-77.009444,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:14:28#
    $114144614\",\r\n \"39.016389,-77.011111,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:14:33#
    $114144620\",\r\n \"39.016389,-77.011944,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:14:38#
    $114144646\",\r\n \"39.016944,-77.024722,N39º1\\\\\\\\'1\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:15:24#
    $114144667\",\r\n \"39.013333,-77.038056,N39º0\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:16:14#
    $114144700\",\r\n \"39.013333,-77.041667,N39º0\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:16:27#
    $114144713\",\r\n \"39.013333,-77.042222,N39º0\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:16:29#
    $114144718\",\r\n \"39.013333,-77.046389,N39º0\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:16:45#
    $114144741\",\r\n \"39.014167,-77.059444,N39º0\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:17:33#
    $114144795\",\r\n \"39.011944,-77.063611,N39º0\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:17:53#
    $114144821\",\r\n \"39.006111,-77.0725,N39º0\\\\\\\\'22\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:18:38#
    $114144847\",\r\n \"39.006111,-77.073056,N39º0\\\\\\\\'22\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:18:39#
    $114144850\",\r\n \"39.005556,-77.076667,N39º0\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:18:54#
    $114144865\",\r\n \"39.011111,-77.090833,N39º0\\\\\\\\'40\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:19:52#
    $114144908\",\r\n \"39.011111,-77.090833,N39º0\\\\\\\\'40\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:19:53#
    $114144912\",\r\n \"39.012222,-77.093056,N39º0\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:20:02#
    $114144928\",\r\n \"39.019722,-77.103889,N39º1\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:20:58#
    $114144979\",\r\n \"39.020278,-77.104167,N39º1\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:21:02#
    $114144983\",\r\n \"39.020556,-77.104722,N39º1\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:21:06#
    $114144991\",\r\n \"39.028056,-77.113056,N39º1\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:22:01#
    $114145056\",\r\n \"39.028611,-77.114722,N39º1\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:22:07#
    $114145065\",\r\n \"39.030556,-77.125833,N39º1\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'33\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:22:42#
    $114145112\",\r\n \"39.031389,-77.130556,N39º1\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:22:57#
    $114145102\",\r\n \"39.032222,-77.135556,N39º1\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:23:12#
    $114145128\",\r\n \"39.032222,-77.136389,N39º1\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:23:15#
    $114145133\",\r\n \"39.032222,-77.136389,N39º1\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:23:15#
    $114145132\",\r\n \"39.038611,-77.145833,N39º2\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:24:00#
    $114145150\",\r\n \"39.040833,-77.146944,N39º2\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:24:11#
    $114145172\",\r\n \"39.041667,-77.147222,N39º2\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:24:17#
    $114145178\",\r\n \"39.055833,-77.153889,N39º3\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:25:18#
    $114145251\",\r\n \"39.062222,-77.155833,N39º3\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:25:48#
    $114145296\",\r\n \"39.063889,-77.156111,N39º3\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'22\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:25:59#
    $114145313\",\r\n \"39.066389,-77.157222,N39º3\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:26:12#
    $114145297\",\r\n \"39.069722,-77.159444,N39º4\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:26:31#
    $114145310\",\r\n \"39.070278,-77.16,N39º4\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:26:35#
    $114145314\",\r\n \"39.072222,-77.162222,N39º4\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:26:46#
    $114145317\",\r\n \"39.078611,-77.169167,N39º4\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:27:25#
    $114145350\",\r\n \"39.095,-77.176389,N39º5\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:28:38#
    $114145426\",\r\n \"39.099167,-77.178056,N39º5\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:29:00#
    $114145438\",\r\n \"39.106389,-77.182778,N39º6\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:29:34#
    $114145488\",\r\n \"39.106389,-77.182778,N39º6\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:29:35#
    $114145490\",\r\n \"39.107222,-77.183611,N39º6\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:29:39#
    $114145496\",\r\n \"39.110278,-77.186667,N39º6\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:30:03#
    $114145527\",\r\n \"39.111944,-77.188611,N39º6\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:30:43#
    $114145545\",\r\n \"39.112222,-77.188889,N39º6\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:30:47#
    $114145548\",\r\n \"39.12,-77.196944,N39º7\\\\\\\\'12\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:31:48#
    $114145599\",\r\n \"39.121111,-77.197778,N39º7\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:31:52#
    $114145634\",\r\n \"39.123611,-77.199444,N39º7\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:32:02#
    $114145622\",\r\n \"39.123611,-77.199444,N39º7\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:32:02#
    $114145651\",\r\n \"39.126389,-77.201389,N39º7\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:32:13#
    $114145668\",\r\n \"39.141667,-77.210833,N39º8\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:33:40#
    $114145720\",\r\n \"39.141389,-77.210556,N39º8\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:33:52#
    $114145734\",\r\n \"39.141389,-77.210556,N39º8\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:33:58#
    $114145747\",\r\n \"39.141389,-77.210556,N39º8\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:34:03#
    $114145771\",\r\n \"39.140556,-77.213611,N39º8\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:34:48#
    $114145779\",\r\n \"39.141111,-77.216389,N39º8\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:35:19#
    $114145821\",\r\n \"39.142778,-77.216944,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:35:40#
    $114145859\",\r\n \"39.144167,-77.216111,N39º8\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:35:55#
    $114145843\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:36:24#
    $114145879\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:36:34#
    $114145912\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:37:00#
    $114145913\",\r\n \"39.142778,-77.215556,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:56:21#
    $114146162\",\r\n \"39.142778,-77.215556,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:56:23#
    $114146164\",\r\n \"39.143056,-77.215,N39º8\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:59:43#
    $114146213\",\r\n \"39.401111,-77.403333,N39º24\\\\\\\\'4\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD-ERROR^US207Dev1#DriveTest#DUMMY#2023-10-05 13:09:02#
    $114137404\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:45:10#
    $114136038\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:45:14#
    $114136041\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:45:20#
    $114136072\",\r\n \"39.143889,-77.215278,N39º8\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:46:15#
    $114136092\",\r\n \"39.143889,-77.215278,N39º8\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:46:16#
    $114136095\",\r\n \"39.144167,-77.215833,N39º8\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:46:22#
    $114136103\",\r\n \"39.144722,-77.218333,N39º8\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:46:46#
    $114136126\",\r\n \"39.145,-77.219722,N39º8\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:46:57#
    $114136131\",\r\n \"39.146389,-77.219167,N39º8\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:47:10#
    $114136144\",\r\n \"39.147778,-77.218056,N39º8\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:47:26#
    $114136162\",\r\n \"39.148056,-77.215556,N39º8\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:48:01#
    $114136211\",\r\n \"39.151389,-77.218889,N39º9\\\\\\\\'5\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:48:25#
    $114136226\",\r\n \"39.151944,-77.219722,N39º9\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:48:29#
    $114136232\",\r\n \"39.152222,-77.219722,N39º9\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:48:30#
    $114136233\",\r\n \"39.152778,-77.220556,N39º9\\\\\\\\'10\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:48:34#
    $114136259\",\r\n \"39.159722,-77.23,N39º9\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:49:20#
    $114136272\",\r\n \"39.161944,-77.234167,N39º9\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:49:38#
    $114136294\",\r\n \"39.162222,-77.235278,N39º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:49:42#
    $114136320\",\r\n \"39.163333,-77.237222,N39º9\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:49:53#
    $114136322\",\r\n \"39.166667,-77.241111,N39º10\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:50:14#
    $114136358\",\r\n \"39.17,-77.243333,N39º10\\\\\\\\'12\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:50:27#
    $114136329\",\r\n \"39.175556,-77.246944,N39º10\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:50:48#
    $114136359\",\r\n \"39.175556,-77.246944,N39º10\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:50:49#
    $114136361\",\r\n \"39.191389,-77.259167,N39º11\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:51:54#
    $114136441\",\r\n \"39.204444,-77.270556,N39º12\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:52:52#
    $114136486\",\r\n \"39.205556,-77.271667,N39º12\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:52:58#
    $114136492\",\r\n \"39.205556,-77.271944,N39º12\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:52:59#
    $114136494\",\r\n \"39.211389,-77.275833,N39º12\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'33\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:53:23#
    $114136541\",\r\n \"39.220833,-77.279167,N39º13\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:54:02#
    $114136551\",\r\n \"39.220833,-77.279167,N39º13\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:54:03#
    $114136552\",\r\n \"39.235,-77.287222,N39º14\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:55:03#
    $114136610\",\r\n \"39.237778,-77.289722,N39º14\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:55:14#
    $114136619\",\r\n \"39.251667,-77.301389,N39º15\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:56:19#
    $114136693\",\r\n \"39.258611,-77.306389,N39º15\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:56:50#
    $114136715\",\r\n \"39.266111,-77.3125,N39º15\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:57:20#
    $114136739\",\r\n \"39.279722,-77.324444,N39º16\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:58:20#
    $114136792\",\r\n \"39.287222,-77.329167,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:58:53#
    $114136836\",\r\n \"39.289167,-77.331111,N39º17\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:59:04#
    $114136839\",\r\n \"39.2925,-77.332222,N39º17\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:59:17#
    $114136845\",\r\n \"39.2925,-77.332222,N39º17\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:59:17#
    $114136846\",\r\n \"39.2925,-77.332222,N39º17\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:59:19#
    $114136852\",\r\n \"39.295,-77.333056,N39º17\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:59:29#
    $114136875\",\r\n \"39.295556,-77.333611,N39º17\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:59:31#
    $114136878\",\r\n \"39.301111,-77.338611,N39º18\\\\\\\\'4\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:59:57#
    $114136908\",\r\n \"39.308611,-77.345833,N39º18\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:00:32#
    $114136933\",\r\n \"39.309444,-77.347222,N39º18\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:00:37#
    $114136948\",\r\n \"39.319167,-77.353056,N39º19\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:01:26#
    $114136973\",\r\n \"39.321944,-77.354722,N39º19\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:01:40#
    $114136997\",\r\n \"39.322222,-77.354722,N39º19\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:01:41#
    $114136999\",\r\n \"39.323889,-77.358333,N39º19\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:01:56#
    $114137021\",\r\n \"39.324722,-77.361389,N39º19\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:02:06#
    $114137047\",\r\n \"39.326944,-77.368333,N39º19\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:02:32#
    $114137034\",\r\n \"39.338611,-77.381944,N39º20\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:03:36#
    $114137118\",\r\n \"39.341111,-77.384444,N39º20\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:03:46#
    $114137129\",\r\n \"39.341944,-77.385278,N39º20\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:03:50#
    $114137131\",\r\n \"39.341944,-77.385278,N39º20\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:03:50#
    $114137132\",\r\n \"39.342222,-77.385278,N39º20\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:03:51#
    $114137134\",\r\n \"39.3525,-77.393056,N39º21\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:04:39#
    $114137163\",\r\n \"39.353056,-77.393333,N39º21\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:04:41#
    $114137167\",\r\n \"39.357222,-77.395556,N39º21\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:04:59#
    $114137185\",\r\n \"39.358333,-77.396111,N39º21\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:05:03#
    $114137189\",\r\n \"39.358333,-77.396111,N39º21\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'46\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:05:03#
    $114137212\",\r\n \"39.368611,-77.401944,N39º22\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:05:50#
    $114137225\",\r\n \"39.370556,-77.403056,N39º22\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:05:58#
    $114137228\",\r\n \"39.3725,-77.404167,N39º22\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:06:05#
    $114137237\",\r\n \"39.3725,-77.404167,N39º22\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:06:05#
    $114137236\",\r\n \"39.375556,-77.405278,N39º22\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:06:19#
    $114137251\",\r\n \"39.38,-77.407778,N39º22\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:06:40#
    $114137278\",\r\n \"39.382222,-77.409722,N39º22\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:06:54#
    $114137284\",\r\n \"39.3825,-77.41,N39º22\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:06:55#
    $114137286\",\r\n \"39.383889,-77.411389,N39º23\\\\\\\\'2\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:07:04#
    $114137299\",\r\n \"39.384167,-77.411667,N39º23\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'42\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:07:05#
    $114137305\",\r\n \"39.385278,-77.4125,N39º23\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:07:10#
    $114137314\",\r\n \"39.387778,-77.414722,N39º23\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:07:24#
    $114137332\",\r\n \"39.396944,-77.42,N39º23\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º25\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:08:09#
    $114137362\",\r\n \"39.396944,-77.42,N39º23\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º25\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:08:09#
    $114137364\",\r\n \"39.396944,-77.42,N39º23\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º25\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:08:09#
    $114137363\",\r\n \"39.398056,-77.416111,N39º23\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:08:23#
    $114137378\",\r\n \"39.402222,-77.398889,N39º24\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:09:14#
    $114137408\",\r\n \"39.403333,-77.395278,N39º24\\\\\\\\'12\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:09:25#
    $114137424\",\r\n \"39.403611,-77.373611,N39º24\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:10:28#
    $114137484\",\r\n \"39.403611,-77.373611,N39º24\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:10:28#
    $114137485\",\r\n \"39.403889,-77.371667,N39º24\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:10:33#
    $114137493\",\r\n \"39.404167,-77.359444,N39º24\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'34\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:11:04#
    $114137560\",\r\n \"39.403889,-77.348056,N39º24\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:11:32#
    $114137562\",\r\n \"39.396111,-77.329444,N39º23\\\\\\\\'46\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:12:31#
    $114137604\",\r\n \"39.396111,-77.329444,N39º23\\\\\\\\'46\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:12:31#
    $114137603\",\r\n \"39.386111,-77.300833,N39º23\\\\\\\\'10\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:13:56#
    $114137657\",\r\n \"39.385278,-77.295278,N39º23\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:14:12#
    $114137679\",\r\n \"39.385,-77.293611,N39º23\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:14:15#
    $114137690\",\r\n \"39.385,-77.293611,N39º23\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:14:15#
    $114137689\",\r\n \"39.380833,-77.277222,N39º22\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:14:59#
    $114137736\",\r\n \"39.380833,-77.276944,N39º22\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:15:01#
    $114137741\",\r\n \"39.380556,-77.271389,N39º22\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:15:15#
    $114137763\",\r\n \"39.381667,-77.261667,N39º22\\\\\\\\'54\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'42\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:15:40#
    $114137816\",\r\n \"39.379722,-77.252222,N39º22\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:16:06#
    $114137793\",\r\n \"39.379167,-77.249722,N39º22\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:16:14#
    $114137802\",\r\n \"39.371944,-77.223056,N39º22\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:17:38#
    $114137896\",\r\n \"39.369167,-77.217222,N39º22\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:17:59#
    $114137893\",\r\n \"39.369444,-77.213056,N39º22\\\\\\\\'10\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:18:12#
    $114137909\",\r\n \"39.370556,-77.208611,N39º22\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:18:26#
    $114137937\",\r\n \"39.370556,-77.208333,N39º22\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:18:28#
    $114137941\",\r\n \"39.366389,-77.191944,N39º21\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:19:19#
    $114137999\",\r\n \"39.365556,-77.188889,N39º21\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:19:29#
    $114138008\",\r\n \"39.365556,-77.187778,N39º21\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:19:32#
    $114138010\",\r\n \"39.364167,-77.1825,N39º21\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:19:48#
    $114138020\",\r\n \"39.362778,-77.179167,N39º21\\\\\\\\'46\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:19:58#
    $114138022\",\r\n \"39.360556,-77.176111,N39º21\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'34\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:20:09#
    $114138066\",\r\n \"39.358889,-77.168056,N39º21\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:20:32#
    $114138056\",\r\n \"39.359167,-77.165556,N39º21\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:20:38#
    $114138064\",\r\n \"39.359444,-77.163611,N39º21\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:20:43#
    $114138071\",\r\n \"39.359722,-77.159722,N39º21\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:20:54#
    $114138098\",\r\n \"39.359167,-77.142778,N39º21\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:21:38#
    $114138110\",\r\n \"39.353333,-77.125278,N39º21\\\\\\\\'12\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:22:33#
    $114138166\",\r\n \"39.3525,-77.118889,N39º21\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:22:48#
    $114138194\",\r\n \"39.351944,-77.116667,N39º21\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:22:55#
    $114138229\",\r\n \"39.349444,-77.106389,N39º20\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:23:26#
    $114138242\",\r\n \"39.348056,-77.098056,N39º20\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:23:51#
    $114138244\",\r\n \"39.346389,-77.0875,N39º20\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:24:22#
    $114138293\",\r\n \"39.346389,-77.0875,N39º20\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:24:22#
    $114138278\",\r\n \"39.345,-77.079167,N39º20\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:24:46#
    $114138287\",\r\n \"39.343333,-77.074167,N39º20\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:25:01#
    $114138307\",\r\n \"39.343056,-77.073611,N39º20\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:25:02#
    $114138310\",\r\n \"39.343056,-77.073611,N39º20\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:25:03#
    $114138311\",\r\n \"39.342778,-77.072778,N39º20\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:25:06#
    $114138312\",\r\n \"39.338333,-77.056389,N39º20\\\\\\\\'18\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:25:53#
    $114138344\",\r\n \"39.337778,-77.053611,N39º20\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:26:01#
    $114138363\",\r\n \"39.337778,-77.053333,N39º20\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:26:02#
    $114138367\",\r\n \"39.336389,-77.043056,N39º20\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:26:31#
    $114138458\",\r\n \"39.331944,-77.030833,N39º19\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:27:09#
    $114138452\",\r\n \"39.331667,-77.030278,N39º19\\\\\\\\'54\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:27:11#
    $114138456\",\r\n \"39.33,-77.025556,N39º19\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'32\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:27:26#
    $114138492\",\r\n \"39.325833,-77.014167,N39º19\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:28:00#
    $114138476\",\r\n \"39.323611,-77.008611,N39º19\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:28:18#
    $114138508\",\r\n \"39.323611,-77.008611,N39º19\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:28:18#
    $114138506\",\r\n \"39.321389,-76.996389,N39º19\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:28:52#
    $114138556\",\r\n \"39.319444,-76.986389,N39º19\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:29:21#
    $114138558\",\r\n \"39.319722,-76.986667,N39º19\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:29:21#
    $114138557\",\r\n \"39.319444,-76.985833,N39º19\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:29:22#
    $114138559\",\r\n \"39.319167,-76.985,N39º19\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:29:26#
    $114138564\",\r\n \"39.318056,-76.981389,N39º19\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:29:36#
    $114138603\",\r\n \"39.316944,-76.978056,N39º19\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:29:47#
    $114138610\",\r\n \"39.315833,-76.974444,N39º18\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:29:57#
    $114138619\",\r\n \"39.313889,-76.970278,N39º18\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:30:11#
    $114138604\",\r\n \"39.313889,-76.970278,N39º18\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:30:11#
    $114138605\",\r\n \"39.307778,-76.943611,N39º18\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:31:30#
    $114138690\",\r\n \"39.306944,-76.936667,N39º18\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:31:50#
    $114138700\",\r\n \"39.306667,-76.933056,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:32:00#
    $114138710\",\r\n \"39.305278,-76.921111,N39º18\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:32:34#
    $114138740\",\r\n \"39.303611,-76.914167,N39º18\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'51\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:32:54#
    $114138788\",\r\n \"39.305278,-76.891944,N39º18\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:33:57#
    $114138825\",\r\n \"39.301667,-76.8725,N39º18\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:34:55#
    $114138894\",\r\n \"39.300278,-76.869167,N39º18\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:35:06#
    $114138905\",\r\n \"39.296389,-76.858056,N39º17\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:35:40#
    $114138915\",\r\n \"39.296389,-76.8575,N39º17\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:35:42#
    $114138919\",\r\n \"39.295556,-76.852222,N39º17\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:35:57#
    $114138951\",\r\n \"39.295556,-76.851111,N39º17\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:36:00#
    $114138954\",\r\n \"39.296111,-76.830278,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:37:00#
    $114138998\",\r\n \"39.296389,-76.813333,N39º17\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:37:49#
    $114139037\",\r\n \"39.296667,-76.809722,N39º17\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:37:58#
    $114139056\",\r\n \"39.296667,-76.809722,N39º17\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:37:59#
    $114139055\",\r\n \"39.296944,-76.807778,N39º17\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:38:05#
    $114139062\",\r\n \"39.296944,-76.807778,N39º17\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:38:05#
    $114139064\",\r\n \"39.2975,-76.806389,N39º17\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:38:09#
    $114139094\",\r\n \"39.300833,-76.800833,N39º18\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:38:30#
    $114139093\",\r\n \"39.306389,-76.790278,N39º18\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:39:09#
    $114139134\",\r\n \"39.306389,-76.774167,N39º18\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:40:00#
    $114139168\",\r\n \"39.306667,-76.770833,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:40:10#
    $114139179\",\r\n \"39.306667,-76.767778,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:40:19#
    $114139192\",\r\n \"39.307222,-76.753889,N39º18\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:41:06#
    $114139224\",\r\n \"39.306111,-76.751111,N39º18\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:41:16#
    $114139231\",\r\n \"39.305556,-76.75,N39º18\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:41:56#
    $114139280\",\r\n \"39.305,-76.748889,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:42:11#
    $114139302\",\r\n \"39.304722,-76.748333,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:42:39#
    $114139334\",\r\n \"39.304722,-76.746944,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'49\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:43:00#
    $114139363\",\r\n \"39.304722,-76.746667,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:43:15#
    $114139362\",\r\n \"39.304722,-76.746667,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:43:15#
    $114139361\",\r\n \"39.304722,-76.746111,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:43:30#
    $114139374\",\r\n \"39.305556,-76.744167,N39º18\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:43:54#
    $114139415\",\r\n \"39.310833,-76.744167,N39º18\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:44:28#
    $114139418\",\r\n \"39.3125,-76.744444,N39º18\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:44:36#
    $114139425\",\r\n \"39.313611,-76.744444,N39º18\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:44:39#
    $114139435\",\r\n \"39.324444,-76.744444,N39º19\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:45:24#
    $114139462\",\r\n \"39.324722,-76.744444,N39º19\\\\\\\\'29\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:45:26#
    $114139465\",\r\n \"39.327222,-76.744444,N39º19\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:45:36#
    $114139481\",\r\n \"39.329444,-76.744444,N39º19\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:45:45#
    $114139505\",\r\n \"39.329444,-76.744444,N39º19\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:45:45#
    $114139502\",\r\n \"39.343333,-76.744722,N39º20\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:46:40#
    $114139565\",\r\n \"39.353889,-76.745833,N39º21\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:47:20#
    $114139621\",\r\n \"39.370833,-76.7475,N39º22\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:48:19#
    $114139645\",\r\n \"39.373333,-76.746111,N39º22\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:48:30#
    $114139647\",\r\n \"39.379444,-76.742222,N39º22\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:48:54#
    $114139676\",\r\n \"39.379444,-76.742222,N39º22\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:48:54#
    $114139677\",\r\n \"39.388611,-76.726111,N39º23\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:49:55#
    $114139736\",\r\n \"39.389444,-76.723611,N39º23\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:50:04#
    $114139750\",\r\n \"39.389722,-76.721111,N39º23\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:50:10#
    $114139767\",\r\n \"39.390278,-76.716944,N39º23\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:50:24#
    $114139808\",\r\n \"39.393333,-76.703611,N39º23\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:51:08#
    $114139812\",\r\n \"39.393889,-76.702222,N39º23\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:51:13#
    $114139815\",\r\n \"39.393889,-76.701944,N39º23\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:51:15#
    $114139817\",\r\n \"39.394722,-76.697222,N39º23\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:51:29#
    $114139844\",\r\n \"39.395278,-76.689722,N39º23\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:51:50#
    $114139864\",\r\n \"39.405,-76.673056,N39º24\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:52:54#
    $114139923\",\r\n \"39.406667,-76.668611,N39º24\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:53:08#
    $114139909\",\r\n \"39.409722,-76.665278,N39º24\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:53:25#
    $114139934\",\r\n \"39.410556,-76.664444,N39º24\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:53:29#
    $114139950\",\r\n \"39.412222,-76.662778,N39º24\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'46\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:53:39#
    $114139980\",\r\n \"39.418333,-76.654444,N39º25\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:54:13#
    $114139989\",\r\n \"39.419722,-76.651389,N39º25\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:54:25#
    $114140004\",\r\n \"39.420556,-76.647778,N39º25\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:54:36#
    $114140013\",\r\n \"39.42,-76.640833,N39º25\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:54:57#
    $114140034\",\r\n \"39.418056,-76.633333,N39º25\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:55:21#
    $114140040\",\r\n \"39.416389,-76.628611,N39º24\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:55:36#
    $114140062\",\r\n \"39.415,-76.624722,N39º24\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:55:50#
    $114140082\",\r\n \"39.413333,-76.612778,N39º24\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:56:35#
    $114140105\",\r\n \"39.413611,-76.611389,N39º24\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:56:40#
    $114140119\",\r\n \"39.413611,-76.611389,N39º24\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:56:41#
    $114140116\",\r\n \"39.413611,-76.610278,N39º24\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:56:45#
    $114140141\",\r\n \"39.413056,-76.604167,N39º24\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:57:06#
    $114140159\",\r\n \"39.414167,-76.591111,N39º24\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:57:48#
    $114140201\",\r\n \"39.413889,-76.587778,N39º24\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:57:59#
    $114140215\",\r\n \"39.401667,-76.558333,N39º24\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:59:55#
    $114140313\",\r\n \"39.401667,-76.558056,N39º24\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:59:56#
    $114140316\",\r\n \"39.395833,-76.546944,N39º23\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:00:44#
    $114140352\",\r\n \"39.395833,-76.546944,N39º23\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:00:44#
    $114140350\",\r\n \"39.393889,-76.544167,N39º23\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:00:54#
    $114140359\",\r\n \"39.391667,-76.540278,N39º23\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'25\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:01:07#
    $114140434\",\r\n \"39.389167,-76.533056,N39º23\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:01:28#
    $114140390\",\r\n \"39.385,-76.524167,N39º23\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:02:02#
    $114140441\",\r\n \"39.3825,-76.521667,N39º22\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:02:15#
    $114140477\",\r\n \"39.369722,-76.513889,N39º22\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:03:10#
    $114140491\",\r\n \"39.3625,-76.506667,N39º21\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:03:52#
    $114140552\",\r\n \"39.359167,-76.504444,N39º21\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:04:05#
    $114140537\",\r\n \"39.358889,-76.504167,N39º21\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:04:07#
    $114140542\",\r\n \"39.357222,-76.503056,N39º21\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:04:15#
    $114140546\",\r\n \"39.356389,-76.502222,N39º21\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:04:20#
    $114140553\",\r\n \"39.355556,-76.501667,N39º21\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:04:24#
    $114140560\",\r\n \"39.3475,-76.505,N39º20\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:05:11#
    $114140600\",\r\n \"39.345833,-76.507778,N39º20\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:05:20#
    $114140611\",\r\n \"39.345,-76.509167,N39º20\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:05:25#
    $114140619\",\r\n \"39.344444,-76.510278,N39º20\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:05:30#
    $114140626\",\r\n \"39.333056,-76.519167,N39º19\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:06:16#
    $114140675\",\r\n \"39.33,-76.5225,N39º19\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:06:32#
    $114140698\",\r\n \"39.324444,-76.528056,N39º19\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:06:56#
    $114140752\",\r\n \"39.316667,-76.534167,N39º19\\\\\\\\'0\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:07:31#
    $114140736\",\r\n \"39.316389,-76.534167,N39º18\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:07:32#
    $114140741\",\r\n \"39.315556,-76.533889,N39º18\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:07:36#
    $114140750\",\r\n \"39.315556,-76.533889,N39º18\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:07:36#
    $114140751\",\r\n \"39.298889,-76.530556,N39º17\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:08:45#
    $114140811\",\r\n \"39.296667,-76.531111,N39º17\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:08:55#
    $114140819\",\r\n \"39.296667,-76.531111,N39º17\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:08:55#
    $114140871\",\r\n \"39.293889,-76.531667,N39º17\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:09:07#
    $114140831\",\r\n \"39.287222,-76.533333,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:09:32#
    $114140866\",\r\n \"39.286389,-76.533611,N39º17\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:09:35#
    $114140879\",\r\n \"39.285,-76.534722,N39º17\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:09:40#
    $114140890\",\r\n \"39.284444,-76.542222,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'32\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:10:01#
    $114140915\",\r\n \"39.284167,-76.546111,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:10:12#
    $114140907\",\r\n \"39.277778,-76.551667,N39º16\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:10:44#
    $114140955\",\r\n \"39.277778,-76.551667,N39º16\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:10:44#
    $114140946\",\r\n \"39.269167,-76.559167,N39º16\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:11:29#
    $114140974\",\r\n \"39.267222,-76.562222,N39º16\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:11:45#
    $114140992\",\r\n \"39.265556,-76.564444,N39º15\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:11:59#
    $114140999\",\r\n \"39.262778,-76.568056,N39º15\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:12:35#
    $114141031\",\r\n \"39.268889,-76.568611,N39º16\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:13:14#
    $114141055\",\r\n \"39.274444,-76.569167,N39º16\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:13:53#
    $114141093\",\r\n \"39.274444,-76.569167,N39º16\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:13:54#
    $114141097\",\r\n \"39.275,-76.569167,N39º16\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:13:57#
    $114141101\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:14:52#
    $114141165\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:14:53#
    $114141168\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:14:58#
    $114141173\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:15:48#
    $114141214\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:16:02#
    $114141228\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:16:03#
    $114141230\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:16:07#
    $114141263\",\r\n \"39.278889,-76.5775,N39º16\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:16:38#
    $114141264\",\r\n \"39.280556,-76.580278,N39º16\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:17:01#
    $114141278\",\r\n \"39.282222,-76.583056,N39º16\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:17:42#
    $114141315\",\r\n \"39.283056,-76.584444,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:18:06#
    $114141335\",\r\n \"39.283056,-76.584444,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:18:08#
    $114141338\",\r\n \"39.283611,-76.585556,N39º17\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:18:37#
    $114141399\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:19:02#
    $114141403\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:19:03#
    $114141405\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:19:12#
    $114141414\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:19:13#
    $114141418\",\r\n \"39.284444,-76.586667,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:19:42#
    $114141464\",\r\n \"39.284722,-76.588333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:20:06#
    $114141452\",\r\n \"39.284722,-76.588333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:20:16#
    $114141469\",\r\n \"39.284722,-76.588333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:20:23#
    $114141488\",\r\n \"39.284722,-76.589167,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:20:37#
    $114141495\",\r\n \"39.284444,-76.593611,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:21:18#
    $114141553\",\r\n \"39.284444,-76.596389,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:21:49#
    $114141604\",\r\n \"39.284167,-76.598056,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:22:03#
    $114141560\",\r\n \"39.284167,-76.599167,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:22:32#
    $114141613\",\r\n \"39.284167,-76.601944,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:23:38#
    $114141695\",\r\n \"39.283889,-76.603333,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:24:13#
    $114141699\",\r\n \"39.284167,-76.603333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:24:22#
    $114141712\",\r\n \"39.284167,-76.603333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:24:23#
    $114141717\",\r\n \"39.284167,-76.603333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:24:26#
    $114141720\",\r\n \"39.284167,-76.603056,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:24:30#
    $114141726\",\r\n \"39.284167,-76.603056,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:24:31#
    $114141735\",\r\n \"39.286111,-76.603889,N39º17\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:25:29#
    $114141770\",\r\n \"39.286111,-76.603889,N39º17\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:25:30#
    $114141771\",\r\n \"39.286111,-76.603889,N39º17\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:25:31#
    $114141772\",\r\n \"39.286389,-76.604167,N39º17\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:25:35#
    $114141795\",\r\n \"39.2875,-76.604722,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'17\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:26:07#
    $114141848\",\r\n \"39.287778,-76.605833,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:26:30#
    $114141839\",\r\n \"39.287778,-76.605833,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:26:40#
    $114141871\",\r\n \"39.287778,-76.605833,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:26:40#
    $114141858\",\r\n \"39.287778,-76.608333,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:27:11#
    $114141900\",\r\n \"39.287778,-76.610556,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:27:35#
    $114141901\",\r\n \"39.2875,-76.610833,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:27:39#
    $114141907\",\r\n \"39.2875,-76.610833,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:27:40#
    $114141911\",\r\n \"39.2875,-76.611389,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:27:44#
    $114141914\",\r\n \"39.2875,-76.613611,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:29:10#
    $114141979\",\r\n \"39.287222,-76.613056,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:29:36#
    $114142002\",\r\n \"39.286389,-76.613056,N39º17\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:29:44#
    $114142012\",\r\n \"39.286111,-76.613056,N39º17\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:29:45#
    $114142015\",\r\n \"39.285278,-76.613056,N39º17\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:29:55#
    $114142032\",\r\n \"39.284167,-76.613611,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:30:26#
    $114142072\",\r\n \"39.283889,-76.615833,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:30:57#
    $114142098\",\r\n \"39.283889,-76.617222,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:31:13#
    $114142125\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:31:59#
    $114142158\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:31:59#
    $114142157\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:32:03#
    $114142163\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:32:06#
    $114142169\",\r\n \"39.283889,-76.618333,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:32:17#
    $114142183\",\r\n \"39.276667,-76.619722,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:33:01#
    $114142211\",\r\n \"39.276667,-76.619722,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:33:02#
    $114142213\",\r\n \"39.275278,-76.620278,N39º16\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:33:08#
    $114142223\",\r\n \"39.269722,-76.623056,N39º16\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:33:34#
    $114142245\",\r\n \"39.268889,-76.630278,N39º16\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:34:09#
    $114142283\",\r\n \"39.268889,-76.630556,N39º16\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:34:09#
    $114142286\",\r\n \"39.268889,-76.630833,N39º16\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'51\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:34:10#
    $114142289\",\r\n \"39.269167,-76.631944,N39º16\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:34:14#
    $114142303\",\r\n \"39.271389,-76.651667,N39º16\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:35:12#
    $114142358\",\r\n \"39.271389,-76.652222,N39º16\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:35:14#
    $114142362\",\r\n \"39.2625,-76.672222,N39º15\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:36:21#
    $114142423\",\r\n \"39.261389,-76.673056,N39º15\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:36:26#
    $114142432\",\r\n \"39.258889,-76.674722,N39º15\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'29\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:36:36#
    $114142477\",\r\n \"39.256667,-76.676111,N39º15\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'34\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:36:47#
    $114142455\",\r\n \"39.251389,-76.680278,N39º15\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:37:12#
    $114142472\",\r\n \"39.246389,-76.686667,N39º14\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:37:40#
    $114142553\",\r\n \"39.239444,-76.701389,N39º14\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:38:26#
    $114142563\",\r\n \"39.239167,-76.7025,N39º14\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:38:29#
    $114142566\",\r\n \"39.239167,-76.7025,N39º14\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:38:29#
    $114142567\",\r\n \"39.239167,-76.702778,N39º14\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:38:30#
    $114142569\",\r\n \"39.235278,-76.71,N39º14\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:38:54#
    $114142605\",\r\n \"39.235278,-76.71,N39º14\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:38:54#
    $114142581\",\r\n \"39.218056,-76.726944,N39º13\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:40:09#
    $114142650\",\r\n \"39.215556,-76.731111,N39º12\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:40:24#
    $114142660\",\r\n \"39.213889,-76.734167,N39º12\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:40:34#
    $114142668\",\r\n \"39.204167,-76.753611,N39º12\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:41:38#
    $114142728\",\r\n \"39.204167,-76.753889,N39º12\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:41:40#
    $114142730\",\r\n \"39.203333,-76.755556,N39º12\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:41:45#
    $114142736\",\r\n \"39.195278,-76.768889,N39º11\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:42:57#
    $114142820\",\r\n \"39.188889,-76.775556,N39º11\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'32\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:44:04#
    $114142889\",\r\n \"39.188889,-76.775556,N39º11\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:44:04#
    $114142881\",\r\n \"39.181944,-76.783889,N39º10\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:44:59#
    $114142914\",\r\n \"39.181389,-76.784444,N39º10\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:45:09#
    $114142930\",\r\n \"39.181389,-76.784444,N39º10\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:45:12#
    $114142934\",\r\n \"39.181389,-76.784444,N39º10\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:45:12#
    $114142933\",\r\n \"39.181111,-76.784722,N39º10\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:45:33#
    $114142996\",\r\n \"39.180556,-76.785556,N39º10\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:46:07#
    $114143001\",\r\n \"39.180278,-76.785556,N39º10\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:46:13#
    $114143012\",\r\n \"39.180278,-76.785556,N39º10\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:46:13#
    $114143015\",\r\n \"39.179722,-76.786667,N39º10\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:46:38#
    $114143037\",\r\n \"39.179444,-76.786944,N39º10\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:46:48#
    $114143035\",\r\n \"39.179167,-76.787222,N39º10\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:47:13#
    $114143051\",\r\n \"39.178889,-76.787778,N39º10\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:47:17#
    $114143053\",\r\n \"39.178889,-76.787778,N39º10\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:47:18#
    $114143055\",\r\n \"39.178889,-76.787778,N39º10\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:47:18#
    $114143056\",\r\n \"39.175278,-76.794167,N39º10\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:48:40#
    $114143114\",\r\n \"39.174167,-76.796389,N39º10\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:49:26#
    $114143159\",\r\n \"39.173611,-76.797222,N39º10\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:49:34#
    $114143164\",\r\n \"39.173611,-76.797222,N39º10\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:49:35#
    $114143168\",\r\n \"39.173333,-76.798056,N39º10\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:49:49#
    $114143224\",\r\n \"39.172778,-76.798889,N39º10\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:50:10#
    $114143252\",\r\n \"39.172222,-76.800278,N39º10\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:50:34#
    $114143235\",\r\n \"39.171667,-76.801111,N39º10\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:50:40#
    $114143244\",\r\n \"39.165833,-76.810556,N39º9\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:52:51#
    $114143351\",\r\n \"39.165556,-76.811111,N39º9\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:52:55#
    $114143355\",\r\n \"39.165,-76.811944,N39º9\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:53:06#
    $114143376\",\r\n \"39.164167,-76.813056,N39º9\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:53:42#
    $114143398\",\r\n \"39.163611,-76.814167,N39º9\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:53:55#
    $114143427\",\r\n \"39.161944,-76.816667,N39º9\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:54:59#
    $114143487\",\r\n \"39.161389,-76.818333,N39º9\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:55:25#
    $114143499\",\r\n \"39.161111,-76.818889,N39º9\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:55:35#
    $114143508\",\r\n \"39.160278,-76.821667,N39º9\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:56:18#
    $114143551\",\r\n \"39.159722,-76.824444,N39º9\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:57:04#
    $114143593\",\r\n \"39.159722,-76.824722,N39º9\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:57:06#
    $114143597\",\r\n \"39.159722,-76.824722,N39º9\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:57:08#
    $114143603\",\r\n \"39.159722,-76.824722,N39º9\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:57:08#
    $114143601\",\r\n \"39.159444,-76.825,N39º9\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:57:11#
    $114143606\",\r\n \"39.158889,-76.827778,N39º9\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:57:56#
    $114143658\",\r\n \"39.158889,-76.827778,N39º9\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:57:57#
    $114143661\",\r\n \"39.158611,-76.828611,N39º9\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:58:10#
    $114143675\",\r\n \"39.158611,-76.828611,N39º9\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:58:11#
    $114143678\",\r\n \"39.158611,-76.829167,N39º9\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:58:25#
    $114143686\",\r\n \"39.157778,-76.831389,N39º9\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:59:09#
    $114143720\",\r\n \"39.1575,-76.831944,N39º9\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:59:17#
    $114143730\",\r\n \"39.1575,-76.831944,N39º9\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:59:17#
    $114143731\",\r\n \"39.1575,-76.831944,N39º9\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:59:21#
    $114143735\",\r\n \"39.155556,-76.835278,N39º9\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:00:22#
    $114143783\",\r\n \"39.155556,-76.835556,N39º9\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:00:24#
    $114143784\",\r\n \"39.155278,-76.835833,N39º9\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:00:27#
    $114143789\",\r\n \"39.155278,-76.835833,N39º9\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:00:27#
    $114143797\",\r\n \"39.153889,-76.8375,N39º9\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:00:43#
    $114143801\",\r\n \"39.141389,-76.846667,N39º8\\\\\\\\'29\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:01:53#
    $114143896\",\r\n \"39.136111,-76.851389,N39º8\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:02:17#
    $114143906\",\r\n \"39.134444,-76.853889,N39º8\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:02:27#
    $114143918\",\r\n \"39.1275,-76.863889,N39º7\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:03:08#
    $114143947\",\r\n \"39.123889,-76.866111,N39º7\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:03:22#
    $114143955\",\r\n \"39.120278,-76.868611,N39º7\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:03:38#
    $114143989\",\r\n \"39.119444,-76.868889,N39º7\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:03:41#
    $114143996\",\r\n \"39.116944,-76.871111,N39º7\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:03:52#
    $114144058\",\r\n \"39.1075,-76.882778,N39º6\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:04:36#
    $114144038\",\r\n \"39.106111,-76.885278,N39º6\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:04:44#
    $114144044\",\r\n \"39.105,-76.886667,N39º6\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:04:49#
    $114144054\",\r\n \"39.099722,-76.889722,N39º5\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:05:10#
    $114144113\",\r\n \"39.09,-76.893333,N39º5\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:05:44#
    $114144121\",\r\n \"39.074167,-76.905278,N39º4\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:06:52#
    $114144172\",\r\n \"39.074167,-76.905278,N39º4\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:06:52#
    $114144174\",\r\n \"39.056944,-76.9275,N39º3\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:08:26#
    $114144271\",\r\n \"39.048333,-76.931667,N39º2\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:09:01#
    $114144292\",\r\n \"39.034444,-76.941667,N39º2\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:10:07#
    $114144362\",\r\n \"39.033611,-76.942778,N39º2\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:10:13#
    $114144373\",\r\n \"39.029167,-76.949722,N39º1\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:10:38#
    $114144424\",\r\n \"39.029167,-76.949722,N39º1\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:10:38#
    $114144395\",\r\n \"39.023333,-76.952778,N39º1\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:11:02#
    $114144403\",\r\n \"39.021111,-76.954722,N39º1\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:11:12#
    $114144416\",\r\n \"39.020556,-76.956389,N39º1\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:11:18#
    $114144427\",\r\n \"39.020556,-76.956389,N39º1\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:11:19#
    $114144429\",\r\n \"39.020278,-76.9575,N39º1\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:11:22#
    $114144434\",\r\n \"39.018611,-76.966667,N39º1\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:11:53#
    $114144451\",\r\n \"39.018611,-76.966667,N39º1\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:11:53#
    $114144492\",\r\n \"39.018611,-76.974167,N39º1\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:12:18#
    $114144472\",\r\n \"39.018889,-76.975278,N39º1\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:12:22#
    $114144483\",\r\n \"39.018889,-76.975278,N39º1\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:12:22#
    $114144485\",\r\n \"39.016944,-76.995833,N39º1\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:13:33#
    $114144572\",\r\n \"39.016389,-77.01,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:14:29#
    $114144616\",\r\n \"39.016111,-77.020278,N39º0\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:15:09#
    $114144648\",\r\n \"39.016944,-77.024444,N39º1\\\\\\\\'1\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:15:23#
    $114144662\",\r\n \"39.016667,-77.027222,N39º1\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:15:33#
    $114144672\",\r\n \"39.016667,-77.0275,N39º1\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:15:34#
    $114144675\",\r\n \"39.016389,-77.028889,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:15:39#
    $114144682\",\r\n \"39.016111,-77.029444,N39º0\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:15:42#
    $114144685\",\r\n \"39.016111,-77.029722,N39º0\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:15:43#
    $114144684\",\r\n \"39.013333,-77.044722,N39º0\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:16:39#
    $114144729\",\r\n \"39.013333,-77.045833,N39º0\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:16:43#
    $114144735\",\r\n \"39.013611,-77.047222,N39º0\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:16:48#
    $114144745\",\r\n \"39.013611,-77.047222,N39º0\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:16:48#
    $114144744\",\r\n \"39.013889,-77.055556,N39º0\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:17:19#
    $114144805\",\r\n \"39.014167,-77.06,N39º0\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:17:35#
    $114144800\",\r\n \"39.014167,-77.06,N39º0\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:17:35#
    $114144801\",\r\n \"39.013611,-77.061944,N39º0\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:17:43#
    $114144806\",\r\n \"39.0125,-77.063056,N39º0\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:17:49#
    $114144817\",\r\n \"39.006111,-77.0725,N39º0\\\\\\\\'22\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:18:38#
    $114144846\",\r\n \"39.005833,-77.075278,N39º0\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:18:49#
    $114144858\",\r\n \"39.005556,-77.076389,N39º0\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:18:53#
    $114144864\",\r\n \"39.0075,-77.086389,N39º0\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:19:29#
    $114144897\",\r\n \"39.01,-77.088611,N39º0\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:19:42#
    $114144902\",\r\n \"39.015833,-77.096667,N39º0\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:20:23#
    $114144970\",\r\n \"39.021667,-77.105556,N39º1\\\\\\\\'18\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:21:16#
    $114145050\",\r\n \"39.021667,-77.105556,N39º1\\\\\\\\'18\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:21:16#
    $114145018\",\r\n \"39.024167,-77.107778,N39º1\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:21:37#
    $114145082\",\r\n \"39.028056,-77.113056,N39º1\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:22:01#
    $114145055\",\r\n \"39.028333,-77.113333,N39º1\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:22:02#
    $114145057\",\r\n \"39.028611,-77.114444,N39º1\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:22:05#
    $114145059\",\r\n \"39.029444,-77.119167,N39º1\\\\\\\\'46\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:22:21#
    $114145091\",\r\n \"39.031389,-77.130556,N39º1\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:22:57#
    $114145101\",\r\n \"39.031944,-77.133611,N39º1\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:23:05#
    $114145111\",\r\n \"39.031944,-77.133889,N39º1\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'2\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:23:07#
    $114145121\",\r\n \"39.032222,-77.135556,N39º1\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:23:12#
    $114145129\",\r\n \"39.033056,-77.139722,N39º1\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:23:26#
    $114145162\",\r\n \"39.034167,-77.141944,N39º2\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:23:36#
    $114145137\",\r\n \"39.038611,-77.145833,N39º2\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:24:00#
    $114145152\",\r\n \"39.040833,-77.146667,N39º2\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:24:10#
    $114145167\",\r\n \"39.041667,-77.147222,N39º2\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:24:17#
    $114145180\",\r\n \"39.0475,-77.150278,N39º2\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:24:43#
    $114145201\",\r\n \"39.0475,-77.150278,N39º2\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:24:43#
    $114145246\",\r\n \"39.049722,-77.151389,N39º2\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:24:53#
    $114145253\",\r\n \"39.053333,-77.152778,N39º3\\\\\\\\'12\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:25:07#
    $114145223\",\r\n \"39.053611,-77.153056,N39º3\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:25:08#
    $114145235\",\r\n \"39.066389,-77.157222,N39º3\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:26:12#
    $114145298\",\r\n \"39.083333,-77.172222,N39º5\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:27:45#
    $114145365\",\r\n \"39.085556,-77.173056,N39º5\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:27:56#
    $114145375\",\r\n \"39.088333,-77.173889,N39º5\\\\\\\\'18\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:28:06#
    $114145387\",\r\n \"39.093333,-77.175556,N39º5\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:28:30#
    $114145409\",\r\n \"39.093611,-77.175833,N39º5\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:28:31#
    $114145411\",\r\n \"39.099167,-77.178056,N39º5\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:29:00#
    $114145473\",\r\n \"39.106944,-77.183333,N39º6\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:29:38#
    $114145493\",\r\n \"39.110556,-77.186944,N39º6\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:30:13#
    $114145520\",\r\n \"39.111111,-77.187778,N39º6\\\\\\\\'40\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:30:27#
    $114145524\",\r\n \"39.114167,-77.190833,N39º6\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'27\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:31:08#
    $114145582\",\r\n \"39.117222,-77.194167,N39º7\\\\\\\\'2\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:31:32#
    $114145583\",\r\n \"39.12,-77.196667,N39º7\\\\\\\\'12\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:31:47#
    $114145597\",\r\n \"39.131944,-77.206389,N39º7\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:32:37#
    $114145646\",\r\n \"39.134167,-77.208333,N39º8\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:32:46#
    $114145653\",\r\n \"39.134444,-77.208611,N39º8\\\\\\\\'4\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:32:48#
    $114145658\",\r\n \"39.135278,-77.209167,N39º8\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:32:51#
    $114145665\",\r\n \"39.135278,-77.209167,N39º8\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:32:52#
    $114145670\",\r\n \"39.135833,-77.209722,N39º8\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:32:55#
    $114145681\",\r\n \"39.141111,-77.212222,N39º8\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:33:27#
    $114145714\",\r\n \"39.141667,-77.210556,N39º8\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:33:42#
    $114145721\",\r\n \"39.141389,-77.210556,N39º8\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:33:52#
    $114145735\",\r\n \"39.141389,-77.210556,N39º8\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:33:59#
    $114145748\",\r\n \"39.141389,-77.210556,N39º8\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:34:03#
    $114145757\",\r\n \"39.140556,-77.213611,N39º8\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:34:48#
    $114145780\",\r\n \"39.140833,-77.215,N39º8\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:34:59#
    $114145803\",\r\n \"39.140833,-77.215278,N39º8\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:35:09#
    $114145850\",\r\n \"39.144167,-77.216389,N39º8\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:35:54#
    $114145838\",\r\n \"39.143611,-77.215,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:36:10#
    $114145865\",\r\n \"39.143611,-77.215,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:36:13#
    $114145871\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:36:45#
    $114145923\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:36:58#
    $114145909\",\r\n \"39.142778,-77.215556,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:56:04#
    $114146138\",\r\n \"39.143056,-77.215278,N39º8\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:57:39#
    $114146177\",\r\n \"39.142778,-77.215278,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:57:51#
    $114146183\",\r\n \"39.143056,-77.215,N39º8\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:59:43#
    $114146214\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:45:09#
    $114136034\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:45:09#
    $114136036\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:45:30#
    $114136081\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:45:41#
    $114136089\",\r\n \"39.143889,-77.215278,N39º8\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:46:15#
    $114136091\",\r\n \"39.144167,-77.215833,N39º8\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:46:22#
    $114136102\",\r\n \"39.144167,-77.216111,N39º8\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:46:25#
    $114136122\",\r\n \"39.147778,-77.218056,N39º8\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:47:26#
    $114136160\",\r\n \"39.15,-77.2175,N39º9\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:48:17#
    $114136223\",\r\n \"39.15,-77.2175,N39º9\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:48:17#
    $114136222\",\r\n \"39.151389,-77.218889,N39º9\\\\\\\\'5\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:48:25#
    $114136228\",\r\n \"39.151389,-77.218889,N39º9\\\\\\\\'5\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:48:25#
    $114136227\",\r\n \"39.157222,-77.226389,N39º9\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:49:05#
    $114136262\",\r\n \"39.161667,-77.234167,N39º9\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:49:37#
    $114136291\",\r\n \"39.162222,-77.235278,N39º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:49:42#
    $114136304\",\r\n \"39.164722,-77.238889,N39º9\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:50:03#
    $114136327\",\r\n \"39.164722,-77.238889,N39º9\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:50:03#
    $114136318\",\r\n \"39.17,-77.243333,N39º10\\\\\\\\'12\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:50:27#
    $114136328\",\r\n \"39.172778,-77.245,N39º10\\\\\\\\'22\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:50:37#
    $114136339\",\r\n \"39.190278,-77.258611,N39º11\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'31\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:51:49#
    $114136434\",\r\n \"39.191389,-77.259167,N39º11\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:51:54#
    $114136444\",\r\n \"39.199722,-77.265278,N39º11\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:52:29#
    $114136463\",\r\n \"39.2025,-77.268333,N39º12\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:52:43#
    $114136477\",\r\n \"39.203056,-77.268611,N39º12\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:52:44#
    $114136480\",\r\n \"39.205556,-77.271944,N39º12\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:52:59#
    $114136493\",\r\n \"39.219722,-77.278611,N39º13\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:53:57#
    $114136544\",\r\n \"39.221944,-77.279444,N39º13\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:54:07#
    $114136555\",\r\n \"39.2325,-77.285,N39º13\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:54:52#
    $114136592\",\r\n \"39.242778,-77.294444,N39º14\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:55:35#
    $114136678\",\r\n \"39.25,-77.300278,N39º15\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:56:11#
    $114136682\",\r\n \"39.251111,-77.300833,N39º15\\\\\\\\'4\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:56:16#
    $114136689\",\r\n \"39.256111,-77.304444,N39º15\\\\\\\\'22\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:56:40#
    $114136722\",\r\n \"39.265556,-77.312222,N39º15\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:57:19#
    $114136737\",\r\n \"39.266944,-77.313056,N39º16\\\\\\\\'1\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:57:24#
    $114136743\",\r\n \"39.277222,-77.322778,N39º16\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:58:10#
    $114136785\",\r\n \"39.279722,-77.324444,N39º16\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:58:20#
    $114136793\",\r\n \"39.295556,-77.333611,N39º17\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:59:31#
    $114136877\",\r\n \"39.306944,-77.343611,N39º18\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:00:22#
    $114136918\",\r\n \"39.309167,-77.346944,N39º18\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:00:37#
    $114136947\",\r\n \"39.311667,-77.349722,N39º18\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:00:51#
    $114136953\",\r\n \"39.321944,-77.354722,N39º19\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:01:40#
    $114136998\",\r\n \"39.323056,-77.355833,N39º19\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:01:45#
    $114137003\",\r\n \"39.322778,-77.355556,N39º19\\\\\\\\'22\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:01:45#
    $114137004\",\r\n \"39.329167,-77.371111,N39º19\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:02:45#
    $114137054\",\r\n \"39.329444,-77.371389,N39º19\\\\\\\\'46\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:02:46#
    $114137063\",\r\n \"39.341111,-77.384167,N39º20\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:03:45#
    $114137126\",\r\n \"39.341111,-77.384167,N39º20\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:03:45#
    $114137128\",\r\n \"39.342222,-77.385278,N39º20\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:03:51#
    $114137135\",\r\n \"39.342778,-77.385833,N39º20\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:03:54#
    $114137138\",\r\n \"39.357222,-77.395556,N39º21\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:04:59#
    $114137184\",\r\n \"39.363056,-77.398611,N39º21\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:05:24#
    $114137223\",\r\n \"39.371667,-77.403611,N39º22\\\\\\\\'18\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:06:04#
    $114137235\",\r\n \"39.391944,-77.418333,N39º23\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º25\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:07:45#
    $114137350\",\r\n \"39.395,-77.42,N39º23\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º25\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:07:59#
    $114137355\",\r\n \"39.397778,-77.417222,N39º23\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º25\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:08:20#
    $114137375\",\r\n \"39.403889,-77.3675,N39º24\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:10:43#
    $114137496\",\r\n \"39.403889,-77.347778,N39º24\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:11:33#
    $114137563\",\r\n \"39.398056,-77.331389,N39º23\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:12:23#
    $114137590\",\r\n \"39.390833,-77.320833,N39º23\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:13:03#
    $114137621\",\r\n \"39.390278,-77.319167,N39º23\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:13:08#
    $114137627\",\r\n \"39.390278,-77.319167,N39º23\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:13:08#
    $114137626\",\r\n \"39.388056,-77.31,N39º23\\\\\\\\'17\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:13:33#
    $114137666\",\r\n \"39.387222,-77.306389,N39º23\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:13:43#
    $114137654\",\r\n \"39.386111,-77.300556,N39º23\\\\\\\\'10\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:13:58#
    $114137661\",\r\n \"39.383333,-77.285556,N39º23\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:14:36#
    $114137754\",\r\n \"39.378889,-77.248056,N39º22\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:16:19#
    $114137814\",\r\n \"39.374722,-77.228889,N39º22\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:17:18#
    $114137863\",\r\n \"39.369167,-77.217222,N39º22\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'2\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:17:59#
    $114137943\",\r\n \"39.369444,-77.213056,N39º22\\\\\\\\'10\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:18:12#
    $114137907\",\r\n \"39.370278,-77.21,N39º22\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:18:22#
    $114137934\",\r\n \"39.370278,-77.21,N39º22\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:18:22#
    $114137932\",\r\n \"39.370556,-77.206667,N39º22\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:18:32#
    $114137980\",\r\n \"39.367778,-77.199722,N39º22\\\\\\\\'4\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:18:53#
    $114137998\",\r\n \"39.366389,-77.192222,N39º21\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:19:17#
    $114137995\",\r\n \"39.362778,-77.179167,N39º21\\\\\\\\'46\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:19:58#
    $114138053\",\r\n \"39.360833,-77.151667,N39º21\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:21:14#
    $114138089\",\r\n \"39.359167,-77.142778,N39º21\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:21:38#
    $114138107\",\r\n \"39.357222,-77.139722,N39º21\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:21:48#
    $114138122\",\r\n \"39.354167,-77.133611,N39º21\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:22:09#
    $114138145\",\r\n \"39.348056,-77.098056,N39º20\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:23:51#
    $114138243\",\r\n \"39.344722,-77.078611,N39º20\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:24:48#
    $114138291\",\r\n \"39.343056,-77.073611,N39º20\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:25:03#
    $114138308\",\r\n \"39.340833,-77.065833,N39º20\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:25:27#
    $114138387\",\r\n \"39.3375,-77.0525,N39º20\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:26:05#
    $114138370\",\r\n \"39.3375,-77.051944,N39º20\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:26:06#
    $114138374\",\r\n \"39.337222,-77.050556,N39º20\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'2\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:26:10#
    $114138400\",\r\n \"39.333611,-77.035,N39º20\\\\\\\\'1\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:26:56#
    $114138430\",\r\n \"39.3325,-77.0325,N39º19\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:27:05#
    $114138437\",\r\n \"39.332222,-77.031667,N39º19\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:27:06#
    $114138444\",\r\n \"39.3275,-77.018889,N39º19\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:27:47#
    $114138468\",\r\n \"39.3275,-77.018889,N39º19\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:27:47#
    $114138505\",\r\n \"39.324444,-77.010833,N39º19\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:28:10#
    $114138499\",\r\n \"39.324444,-77.010556,N39º19\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:28:12#
    $114138502\",\r\n \"39.323611,-77.008889,N39º19\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:28:16#
    $114138504\",\r\n \"39.320833,-76.991111,N39º19\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:29:08#
    $114138542\",\r\n \"39.320833,-76.991111,N39º19\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:29:08#
    $114138543\",\r\n \"39.319444,-76.985833,N39º19\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:29:22#
    $114138561\",\r\n \"39.319167,-76.985,N39º19\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:29:26#
    $114138575\",\r\n \"39.3125,-76.966667,N39º18\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:30:22#
    $114138616\",\r\n \"39.3125,-76.966389,N39º18\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:30:22#
    $114138615\",\r\n \"39.311667,-76.964722,N39º18\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:30:29#
    $114138630\",\r\n \"39.311389,-76.963889,N39º18\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:30:30#
    $114138634\",\r\n \"39.308056,-76.9475,N39º18\\\\\\\\'29\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:31:19#
    $114138679\",\r\n \"39.307778,-76.944167,N39º18\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:31:29#
    $114138687\",\r\n \"39.307222,-76.940556,N39º18\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:31:39#
    $114138698\",\r\n \"39.304722,-76.9175,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:32:44#
    $114138775\",\r\n \"39.303889,-76.898611,N39º18\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:33:40#
    $114138795\",\r\n \"39.304167,-76.8975,N39º18\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:33:43#
    $114138800\",\r\n \"39.304722,-76.895833,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:33:47#
    $114138844\",\r\n \"39.305556,-76.888333,N39º18\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:34:07#
    $114138835\",\r\n \"39.305556,-76.888333,N39º18\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:34:07#
    $114138885\",\r\n \"39.303056,-76.876111,N39º18\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:34:43#
    $114138872\",\r\n \"39.302222,-76.873889,N39º18\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:34:50#
    $114138884\",\r\n \"39.298611,-76.865833,N39º17\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:35:16#
    $114138913\",\r\n \"39.2975,-76.8625,N39º17\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:35:26#
    $114138932\",\r\n \"39.295833,-76.854444,N39º17\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:35:50#
    $114138927\",\r\n \"39.295833,-76.839722,N39º17\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:36:31#
    $114138964\",\r\n \"39.296111,-76.834444,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:36:47#
    $114138975\",\r\n \"39.296111,-76.831667,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:36:56#
    $114138995\",\r\n \"39.296111,-76.831667,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:36:56#
    $114138994\",\r\n \"39.296111,-76.828611,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:37:03#
    $114139005\",\r\n \"39.296667,-76.809444,N39º17\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:38:00#
    $114139057\",\r\n \"39.296944,-76.808333,N39º17\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:38:03#
    $114139059\",\r\n \"39.298889,-76.803333,N39º17\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:38:20#
    $114139106\",\r\n \"39.305833,-76.792222,N39º18\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:39:04#
    $114139128\",\r\n \"39.306944,-76.788056,N39º18\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:39:15#
    $114139139\",\r\n \"39.306944,-76.788056,N39º18\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:39:15#
    $114139140\",\r\n \"39.306667,-76.769167,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:40:14#
    $114139185\",\r\n \"39.307222,-76.754444,N39º18\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:41:04#
    $114139222\",\r\n \"39.307222,-76.753889,N39º18\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:41:06#
    $114139225\",\r\n \"39.305833,-76.750833,N39º18\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:41:21#
    $114139240\",\r\n \"39.305,-76.748889,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:42:11#
    $114139303\",\r\n \"39.304722,-76.748333,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:42:29#
    $114139326\",\r\n \"39.304722,-76.746944,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:43:00#
    $114139352\",\r\n \"39.304722,-76.746389,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:43:24#
    $114139364\",\r\n \"39.304722,-76.746389,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:43:25#
    $114139368\",\r\n \"39.308889,-76.743056,N39º18\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:44:19#
    $114139410\",\r\n \"39.311389,-76.744167,N39º18\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:44:31#
    $114139421\",\r\n \"39.3125,-76.744444,N39º18\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:44:36#
    $114139424\",\r\n \"39.313611,-76.744444,N39º18\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:44:39#
    $114139434\",\r\n \"39.313611,-76.744444,N39º18\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:44:39#
    $114139455\",\r\n \"39.324444,-76.744444,N39º19\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:45:24#
    $114139463\",\r\n \"39.326944,-76.744444,N39º19\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:45:34#
    $114139479\",\r\n \"39.334722,-76.744444,N39º20\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:46:06#
    $114139541\",\r\n \"39.341667,-76.744444,N39º20\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:46:31#
    $114139551\",\r\n \"39.343333,-76.744722,N39º20\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:46:40#
    $114139563\",\r\n \"39.343611,-76.744722,N39º20\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:46:41#
    $114139567\",\r\n \"39.358056,-76.746111,N39º21\\\\\\\\'29\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:47:35#
    $114139603\",\r\n \"39.361111,-76.746389,N39º21\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:47:45#
    $114139617\",\r\n \"39.363611,-76.746944,N39º21\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:47:53#
    $114139630\",\r\n \"39.363889,-76.746944,N39º21\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:47:54#
    $114139634\",\r\n \"39.367778,-76.748056,N39º22\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:48:09#
    $114139663\",\r\n \"39.380833,-76.739444,N39º22\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:49:04#
    $114139686\",\r\n \"39.383056,-76.735,N39º22\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:49:19#
    $114139718\",\r\n \"39.39,-76.720278,N39º23\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'13\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:50:14#
    $114139782\",\r\n \"39.390278,-76.713889,N39º23\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:50:35#
    $114139781\",\r\n \"39.393333,-76.703611,N39º23\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:51:09#
    $114139810\",\r\n \"39.393611,-76.703333,N39º23\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:51:10#
    $114139814\",\r\n \"39.393889,-76.702222,N39º23\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:51:13#
    $114139816\",\r\n \"39.394444,-76.700556,N39º23\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'2\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:51:18#
    $114139838\",\r\n \"39.396389,-76.685833,N39º23\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:52:05#
    $114139859\",\r\n \"39.398611,-76.682778,N39º23\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:52:18#
    $114139871\",\r\n \"39.399167,-76.681667,N39º23\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:52:23#
    $114139890\",\r\n \"39.405,-76.673056,N39º24\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:52:54#
    $114139901\",\r\n \"39.406944,-76.668333,N39º24\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:53:10#
    $114139913\",\r\n \"39.408611,-76.666667,N39º24\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:53:18#
    $114139922\",\r\n \"39.408611,-76.666667,N39º24\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:53:18#
    $114139920\",\r\n \"39.408611,-76.666389,N39º24\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:53:19#
    $114139926\",\r\n \"39.416111,-76.658333,N39º24\\\\\\\\'58\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:54:00#
    $114140000\",\r\n \"39.416667,-76.628889,N39º25\\\\\\\\'0\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:55:36#
    $114140057\",\r\n \"39.412778,-76.615,N39º24\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:56:27#
    $114140099\",\r\n \"39.413611,-76.6125,N39º24\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:56:36#
    $114140111\",\r\n \"39.413056,-76.604167,N39º24\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:57:06#
    $114140142\",\r\n \"39.412778,-76.601389,N39º24\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:57:16#
    $114140150\",\r\n \"39.408889,-76.578889,N39º24\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:58:35#
    $114140242\",\r\n \"39.408889,-76.578889,N39º24\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:58:35#
    $114140241\",\r\n \"39.4075,-76.577222,N39º24\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:58:43#
    $114140255\",\r\n \"39.4075,-76.576944,N39º24\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:58:43#
    $114140257\",\r\n \"39.406944,-76.575833,N39º24\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:58:47#
    $114140262\",\r\n \"39.404444,-76.5725,N39º24\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:59:02#
    $114140278\",\r\n \"39.401389,-76.563333,N39º24\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:59:37#
    $114140289\",\r\n \"39.401667,-76.560278,N39º24\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:59:48#
    $114140311\",\r\n \"39.401667,-76.560278,N39º24\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:59:48#
    $114140310\",\r\n \"39.399167,-76.552778,N39º23\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:00:20#
    $114140327\",\r\n \"39.390556,-76.536389,N39º23\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:01:18#
    $114140385\",\r\n \"39.386111,-76.526111,N39º23\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:01:53#
    $114140432\",\r\n \"39.385,-76.524167,N39º23\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:02:02#
    $114140440\",\r\n \"39.369167,-76.513611,N39º22\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:03:11#
    $114140493\",\r\n \"39.368889,-76.512778,N39º22\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:03:15#
    $114140498\",\r\n \"39.357222,-76.502778,N39º21\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:04:17#
    $114140549\",\r\n \"39.356667,-76.5025,N39º21\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:04:19#
    $114140550\",\r\n \"39.356389,-76.502222,N39º21\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:04:21#
    $114140554\",\r\n \"39.353333,-76.5,N39º21\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:04:35#
    $114140570\",\r\n \"39.342222,-76.513333,N39º20\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:05:40#
    $114140671\",\r\n \"39.339722,-76.514722,N39º20\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:05:51#
    $114140658\",\r\n \"39.333611,-76.518889,N39º20\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:06:15#
    $114140674\",\r\n \"39.326944,-76.525556,N39º19\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:06:46#
    $114140711\",\r\n \"39.319167,-76.533611,N39º19\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:07:22#
    $114140732\",\r\n \"39.316944,-76.534167,N39º19\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:07:30#
    $114140739\",\r\n \"39.316667,-76.534167,N39º19\\\\\\\\'0\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:07:30#
    $114140737\",\r\n \"39.314444,-76.533333,N39º18\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:07:40#
    $114140761\",\r\n \"39.311944,-76.5325,N39º18\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:07:51#
    $114140764\",\r\n \"39.301389,-76.530556,N39º18\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:08:35#
    $114140795\",\r\n \"39.301389,-76.530556,N39º18\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:08:35#
    $114140794\",\r\n \"39.300278,-76.530556,N39º18\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:08:40#
    $114140801\",\r\n \"39.3,-76.530556,N39º18\\\\\\\\'0\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:08:41#
    $114140804\",\r\n \"39.298889,-76.530556,N39º17\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:08:45#
    $114140826\",\r\n \"39.29,-76.532778,N39º17\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:09:22#
    $114140841\",\r\n \"39.284167,-76.538611,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:09:51#
    $114140932\",\r\n \"39.281667,-76.550278,N39º16\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:10:27#
    $114140919\",\r\n \"39.278889,-76.551389,N39º16\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:10:40#
    $114140940\",\r\n \"39.275556,-76.551944,N39º16\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:10:55#
    $114140957\",\r\n \"39.271111,-76.556389,N39º16\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:11:15#
    $114140956\",\r\n \"39.268056,-76.561111,N39º16\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:11:39#
    $114140985\",\r\n \"39.268056,-76.561111,N39º16\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:11:39#
    $114140986\",\r\n \"39.268056,-76.561389,N39º16\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:11:41#
    $114140988\",\r\n \"39.264444,-76.566111,N39º15\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:12:10#
    $114141001\",\r\n \"39.263056,-76.566389,N39º15\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:12:20#
    $114141051\",\r\n \"39.263889,-76.568333,N39º15\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:12:44#
    $114141035\",\r\n \"39.264167,-76.568333,N39º15\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:12:45#
    $114141038\",\r\n \"39.264722,-76.568333,N39º15\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:12:49#
    $114141041\",\r\n \"39.265278,-76.568333,N39º15\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:12:53#
    $114141047\",\r\n \"39.267222,-76.568611,N39º16\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:13:04#
    $114141052\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:14:18#
    $114141119\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:14:52#
    $114141164\",\r\n \"39.277222,-76.570833,N39º16\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:15:12#
    $114141187\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:15:23#
    $114141195\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:15:47#
    $114141212\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:16:06#
    $114141233\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:16:07#
    $114141232\",\r\n \"39.28,-76.579444,N39º16\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:16:51#
    $114141272\",\r\n \"39.280278,-76.579722,N39º16\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:16:53#
    $114141275\",\r\n \"39.280833,-76.580556,N39º16\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:17:11#
    $114141313\",\r\n \"39.282778,-76.583889,N39º16\\\\\\\\'58\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:17:56#
    $114141322\",\r\n \"39.283056,-76.584444,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:18:26#
    $114141394\",\r\n \"39.284722,-76.5875,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:19:53#
    $114141472\",\r\n \"39.284722,-76.588333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:20:26#
    $114141491\",\r\n \"39.284444,-76.59,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:20:47#
    $114141549\",\r\n \"39.284444,-76.5925,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:21:09#
    $114141512\",\r\n \"39.284167,-76.595556,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:21:39#
    $114141578\",\r\n \"39.284167,-76.598056,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:22:04#
    $114141563\",\r\n \"39.284167,-76.599167,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:22:32#
    $114141635\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:23:16#
    $114141652\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:23:23#
    $114141671\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:23:27#
    $114141675\",\r\n \"39.283889,-76.603333,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:23:58#
    $114141719\",\r\n \"39.284167,-76.603333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:24:27#
    $114141723\",\r\n \"39.285833,-76.603889,N39º17\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:25:17#
    $114141755\",\r\n \"39.287778,-76.605556,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:26:20#
    $114141820\",\r\n \"39.287778,-76.605833,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:26:31#
    $114141845\",\r\n \"39.287778,-76.605833,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:26:35#
    $114141851\",\r\n \"39.287778,-76.605833,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:26:40#
    $114141859\",\r\n \"39.287778,-76.608333,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:27:11#
    $114141879\",\r\n \"39.287778,-76.610556,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:27:35#
    $114141902\",\r\n \"39.287222,-76.6125,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:28:41#
    $114141959\",\r\n \"39.287222,-76.6125,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:28:41#
    $114141960\",\r\n \"39.287778,-76.612778,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:28:46#
    $114141966\",\r\n \"39.2875,-76.613333,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:29:00#
    $114141970\",\r\n \"39.287778,-76.613333,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:29:20#
    $114142018\",\r\n \"39.287222,-76.613056,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:29:36#
    $114142001\",\r\n \"39.285278,-76.613056,N39º17\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:29:55#
    $114142031\",\r\n \"39.283889,-76.615556,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:30:41#
    $114142086\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:32:03#
    $114142164\",\r\n \"39.278889,-76.618889,N39º16\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:32:51#
    $114142197\",\r\n \"39.275,-76.620556,N39º16\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:33:09#
    $114142226\",\r\n \"39.275,-76.620556,N39º16\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:33:10#
    $114142229\",\r\n \"39.274167,-76.620833,N39º16\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:33:13#
    $114142234\",\r\n \"39.271944,-76.621944,N39º16\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:33:23#
    $114142252\",\r\n \"39.268889,-76.630556,N39º16\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:34:09#
    $114142285\",\r\n \"39.269167,-76.631389,N39º16\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:34:12#
    $114142296\",\r\n \"39.269167,-76.631389,N39º16\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:34:13#
    $114142300\",\r\n \"39.270278,-76.639722,N39º16\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:34:38#
    $114142374\",\r\n \"39.271111,-76.648056,N39º16\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:35:02#
    $114142339\",\r\n \"39.271111,-76.648889,N39º16\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:35:04#
    $114142343\",\r\n \"39.271111,-76.648889,N39º16\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:35:04#
    $114142344\",\r\n \"39.271389,-76.651667,N39º16\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:35:12#
    $114142359\",\r\n \"39.270833,-76.655278,N39º16\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:35:21#
    $114142373\",\r\n \"39.270833,-76.655278,N39º16\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:35:21#
    $114142381\",\r\n \"39.265,-76.668889,N39º15\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:36:08#
    $114142407\",\r\n \"39.265,-76.668889,N39º15\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:36:08#
    $114142406\",\r\n \"39.261389,-76.673056,N39º15\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:36:26#
    $114142471\",\r\n \"39.249722,-76.681944,N39º14\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:37:21#
    $114142478\",\r\n \"39.249167,-76.682778,N39º14\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:37:25#
    $114142487\",\r\n \"39.248056,-76.684167,N39º14\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:37:29#
    $114142497\",\r\n \"39.239444,-76.701389,N39º14\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:38:26#
    $114142564\",\r\n \"39.238889,-76.703889,N39º14\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:38:33#
    $114142575\",\r\n \"39.228611,-76.715278,N39º13\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:39:21#
    $114142606\",\r\n \"39.226111,-76.716667,N39º13\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:39:30#
    $114142614\",\r\n \"39.222222,-76.721389,N39º13\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'17\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:39:48#
    $114142654\",\r\n \"39.215556,-76.730833,N39º12\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:40:23#
    $114142658\",\r\n \"39.213056,-76.735833,N39º12\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:40:39#
    $114142675\",\r\n \"39.2125,-76.737222,N39º12\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:40:43#
    $114142679\",\r\n \"39.2125,-76.737222,N39º12\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:40:43#
    $114142678\",\r\n \"39.209444,-76.743333,N39º12\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:41:04#
    $114142694\",\r\n \"39.207778,-76.746389,N39º12\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:41:15#
    $114142705\",\r\n \"39.204167,-76.753611,N39º12\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:41:38#
    $114142727\",\r\n \"39.203333,-76.755278,N39º12\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:41:43#
    $114142734\",\r\n \"39.201111,-76.759722,N39º12\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:41:58#
    $114142752\",\r\n \"39.198056,-76.765278,N39º11\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:42:19#
    $114142786\",\r\n \"39.196667,-76.767222,N39º11\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:42:33#
    $114142794\",\r\n \"39.196389,-76.7675,N39º11\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:42:34#
    $114142798\",\r\n \"39.195833,-76.768056,N39º11\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:42:43#
    $114142802\",\r\n \"39.195833,-76.768056,N39º11\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:42:44#
    $114142804\",\r\n \"39.195833,-76.768056,N39º11\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:42:44#
    $114142805\",\r\n \"39.195278,-76.768611,N39º11\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:42:52#
    $114142813\",\r\n \"39.190278,-76.773889,N39º11\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:43:52#
    $114142860\",\r\n \"39.181667,-76.783889,N39º10\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:45:01#
    $114142915\",\r\n \"39.180833,-76.785,N39º10\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:45:57#
    $114142979\",\r\n \"39.180833,-76.785,N39º10\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:45:58#
    $114142985\",\r\n \"39.180278,-76.785833,N39º10\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:46:17#
    $114143061\",\r\n \"39.178889,-76.787778,N39º10\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:47:18#
    $114143054\",\r\n \"39.176389,-76.792222,N39º10\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:48:18#
    $114143099\",\r\n \"39.173611,-76.797222,N39º10\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:49:35#
    $114143167\",\r\n \"39.172778,-76.798889,N39º10\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:50:10#
    $114143206\",\r\n \"39.172222,-76.8,N39º10\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:50:25#
    $114143229\",\r\n \"39.170278,-76.803611,N39º10\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:51:15#
    $114143265\",\r\n \"39.169444,-76.804722,N39º10\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:51:31#
    $114143275\",\r\n \"39.169167,-76.805,N39º10\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:51:39#
    $114143279\",\r\n \"39.169167,-76.805278,N39º10\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:51:40#
    $114143282\",\r\n \"39.169167,-76.805556,N39º10\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:51:44#
    $114143289\",\r\n \"39.168889,-76.805833,N39º10\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:51:59#
    $114143328\",\r\n \"39.168056,-76.806944,N39º10\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:52:20#
    $114143312\",\r\n \"39.167222,-76.808611,N39º10\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:52:34#
    $114143318\",\r\n \"39.166389,-76.809722,N39º9\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:52:44#
    $114143334\",\r\n \"39.165833,-76.810556,N39º9\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:52:51#
    $114143350\",\r\n \"39.163611,-76.813889,N39º9\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:53:50#
    $114143419\",\r\n \"39.163611,-76.814444,N39º9\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:53:56#
    $114143430\",\r\n \"39.162222,-76.816667,N39º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:54:58#
    $114143489\",\r\n \"39.162222,-76.816667,N39º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:54:59#
    $114143486\",\r\n \"39.161944,-76.816944,N39º9\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:55:04#
    $114143492\",\r\n \"39.161389,-76.818333,N39º9\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:55:25#
    $114143531\",\r\n \"39.160278,-76.821111,N39º9\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:56:02#
    $114143538\",\r\n \"39.160278,-76.821111,N39º9\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:56:04#
    $114143545\",\r\n \"39.160278,-76.821667,N39º9\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:56:18#
    $114143561\",\r\n \"39.16,-76.823333,N39º9\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:56:39#
    $114143563\",\r\n \"39.159722,-76.824722,N39º9\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:57:07#
    $114143600\",\r\n \"39.158889,-76.827778,N39º9\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:57:57#
    $114143659\",\r\n \"39.158611,-76.828611,N39º9\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:58:11#
    $114143681\",\r\n \"39.158333,-76.83,N39º9\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:58:46#
    $114143758\",\r\n \"39.157778,-76.831111,N39º9\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:59:00#
    $114143712\",\r\n \"39.157778,-76.831111,N39º9\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:59:01#
    $114143714\",\r\n \"39.1575,-76.831944,N39º9\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:59:17#
    $114143729\",\r\n \"39.155278,-76.835833,N39º9\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:00:27#
    $114143847\",\r\n \"39.154444,-76.836944,N39º9\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'13\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:00:38#
    $114143837\",\r\n \"39.147222,-76.8425,N39º8\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'33\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:01:23#
    $114143843\",\r\n \"39.145833,-76.843611,N39º8\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:01:32#
    $114143895\",\r\n \"39.134444,-76.853889,N39º8\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:02:27#
    $114143919\",\r\n \"39.134167,-76.855278,N39º8\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:02:31#
    $114143925\",\r\n \"39.133889,-76.855833,N39º8\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:02:33#
    $114143931\",\r\n \"39.123889,-76.866111,N39º7\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:03:22#
    $114143954\",\r\n \"39.116944,-76.871111,N39º7\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:03:52#
    $114143999\",\r\n \"39.109167,-76.880833,N39º6\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:04:28#
    $114144020\",\r\n \"39.105833,-76.885556,N39º6\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:04:45#
    $114144049\",\r\n \"39.105,-76.886667,N39º6\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:04:49#
    $114144068\",\r\n \"39.102778,-76.888611,N39º6\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:04:59#
    $114144066\",\r\n \"39.0925,-76.891944,N39º5\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:05:34#
    $114144107\",\r\n \"39.0925,-76.891944,N39º5\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:05:34#
    $114144108\",\r\n \"39.092222,-76.891944,N39º5\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:05:36#
    $114144110\",\r\n \"39.09,-76.893333,N39º5\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:05:44#
    $114144122\",\r\n \"39.087778,-76.895,N39º5\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:05:53#
    $114144129\",\r\n \"39.080278,-76.900833,N39º4\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:06:28#
    $114144158\",\r\n \"39.076111,-76.903889,N39º4\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:06:43#
    $114144167\",\r\n \"39.074167,-76.905278,N39º4\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:06:51#
    $114144173\",\r\n \"39.069722,-76.908333,N39º4\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:07:11#
    $114144189\",\r\n \"39.064722,-76.912222,N39º3\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:07:32#
    $114144212\",\r\n \"39.061667,-76.918889,N39º3\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:07:55#
    $114144225\",\r\n \"39.061111,-76.921111,N39º3\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:08:01#
    $114144233\",\r\n \"39.054444,-76.928889,N39º3\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:08:36#
    $114144264\",\r\n \"39.048611,-76.931667,N39º2\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:09:00#
    $114144288\",\r\n \"39.046667,-76.9325,N39º2\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:09:08#
    $114144294\",\r\n \"39.045556,-76.933056,N39º2\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:09:12#
    $114144306\",\r\n \"39.034167,-76.941944,N39º2\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:10:09#
    $114144364\",\r\n \"39.033333,-76.943056,N39º2\\\\\\\\'0\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:10:14#
    $114144375\",\r\n \"39.022778,-76.953056,N39º1\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:11:04#
    $114144408\",\r\n \"39.021111,-76.954722,N39º1\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:11:12#
    $114144414\",\r\n \"39.021111,-76.955,N39º1\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:11:13#
    $114144422\",\r\n \"39.018889,-76.963889,N39º1\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:11:43#
    $114144462\",\r\n \"39.018889,-76.975556,N39º1\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:12:23#
    $114144487\",\r\n \"39.019722,-76.980278,N39º1\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'49\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:12:37#
    $114144522\",\r\n \"39.016389,-76.998611,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:13:44#
    $114144593\",\r\n \"39.016389,-77.011944,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:14:38#
    $114144627\",\r\n \"39.016111,-77.029722,N39º0\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:15:43#
    $114144699\",\r\n \"39.014722,-77.032222,N39º0\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:15:53#
    $114144722\",\r\n \"39.013333,-77.044444,N39º0\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:16:37#
    $114144724\",\r\n \"39.012778,-77.063056,N39º0\\\\\\\\'46\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:17:48#
    $114144814\",\r\n \"39.0125,-77.063056,N39º0\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:17:49#
    $114144816\",\r\n \"39.005833,-77.075278,N39º0\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'31\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:18:49#
    $114144859\",\r\n \"39.005556,-77.076667,N39º0\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:18:54#
    $114144867\",\r\n \"39.005556,-77.076667,N39º0\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:18:54#
    $114144866\",\r\n \"39.006111,-77.084167,N39º0\\\\\\\\'22\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:19:18#
    $114144906\",\r\n \"39.0075,-77.086389,N39º0\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:19:29#
    $114144927\",\r\n \"39.012222,-77.093056,N39º0\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:20:02#
    $114144929\",\r\n \"39.020278,-77.104444,N39º1\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:21:02#
    $114144987\",\r\n \"39.024167,-77.107778,N39º1\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:21:37#
    $114145034\",\r\n \"39.028611,-77.114444,N39º1\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:22:06#
    $114145060\",\r\n \"39.028889,-77.116111,N39º1\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:22:11#
    $114145077\",\r\n \"39.033056,-77.139722,N39º1\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:23:26#
    $114145135\",\r\n \"39.038889,-77.145833,N39º2\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:24:02#
    $114145153\",\r\n \"39.040833,-77.146667,N39º2\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:24:10#
    $114145169\",\r\n \"39.0425,-77.147778,N39º2\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:24:22#
    $114145184\",\r\n \"39.069722,-77.159444,N39º4\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:26:31#
    $114145311\",\r\n \"39.08,-77.170278,N39º4\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:27:31#
    $114145360\",\r\n \"39.080556,-77.170833,N39º4\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:27:35#
    $114145376\",\r\n \"39.083333,-77.172222,N39º5\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:27:45#
    $114145392\",\r\n \"39.095,-77.176389,N39º5\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:28:39#
    $114145444\",\r\n \"39.101667,-77.179444,N39º6\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'46\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:29:10#
    $114145485\",\r\n \"39.104722,-77.181389,N39º6\\\\\\\\'17\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:29:23#
    $114145474\",\r\n \"39.111944,-77.188611,N39º6\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:30:43#
    $114145544\",\r\n \"39.117222,-77.194167,N39º7\\\\\\\\'2\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:31:32#
    $114145585\",\r\n \"39.118889,-77.195833,N39º7\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:31:42#
    $114145592\",\r\n \"39.12,-77.196667,N39º7\\\\\\\\'12\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:31:47#
    $114145600\",\r\n \"39.138056,-77.210833,N39º8\\\\\\\\'17\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:33:06#
    $114145715\",\r\n \"39.141389,-77.210556,N39º8\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:33:50#
    $114145733\",\r\n \"39.141111,-77.210556,N39º8\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:34:13#
    $114145769\",\r\n \"39.140833,-77.210556,N39º8\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:34:24#
    $114145764\",\r\n \"39.140556,-77.213889,N39º8\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:34:49#
    $114145783\",\r\n \"39.140833,-77.214722,N39º8\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:34:58#
    $114145800\",\r\n \"39.140833,-77.215,N39º8\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:35:03#
    $114145806\",\r\n \"39.141667,-77.2175,N39º8\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:35:29#
    $114145842\",\r\n \"39.142778,-77.216944,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:35:40#
    $114145822\",\r\n \"39.143889,-77.215556,N39º8\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:36:05#
    $114145855\",\r\n \"39.143611,-77.215,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:36:10#
    $114145864\",\r\n \"39.143611,-77.215,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:36:13#
    $114145870\",\r\n \"39.142778,-77.215556,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:55:58#
    $114146137\",\r\n \"39.142778,-77.215556,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:56:21#
    $114146161\",\r\n \"39.143056,-77.215556,N39º8\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:57:23#
    $114146174\",\r\n \"39.403889,-77.382222,N39º24\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD-ERROR^US207Dev1#DriveTest#DUMMY#2023-10-05 13:10:06#
    $114137449\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:45:15#
    $114136044\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:45:51#
    $114136099\",\r\n \"39.143611,-77.215,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:46:06#
    $114136087\",\r\n \"39.144167,-77.215833,N39º8\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:46:22#
    $114136100\",\r\n \"39.144444,-77.216667,N39º8\\\\\\\\'40\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:46:36#
    $114136114\",\r\n \"39.146389,-77.219167,N39º8\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:47:12#
    $114136147\",\r\n \"39.152778,-77.220556,N39º9\\\\\\\\'10\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:48:34#
    $114136245\",\r\n \"39.155833,-77.224444,N39º9\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:48:55#
    $114136260\",\r\n \"39.160833,-77.232222,N39º9\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:49:29#
    $114136278\",\r\n \"39.161667,-77.234167,N39º9\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:49:37#
    $114136290\",\r\n \"39.166667,-77.241111,N39º10\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:50:14#
    $114136321\",\r\n \"39.172778,-77.245,N39º10\\\\\\\\'22\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:50:37#
    $114136341\",\r\n \"39.173333,-77.245278,N39º10\\\\\\\\'24\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:50:39#
    $114136345\",\r\n \"39.175556,-77.246944,N39º10\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:50:48#
    $114136363\",\r\n \"39.187778,-77.2575,N39º11\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:51:39#
    $114136421\",\r\n \"39.19,-77.258611,N39º11\\\\\\\\'24\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:51:48#
    $114136432\",\r\n \"39.190278,-77.258611,N39º11\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:51:49#
    $114136433\",\r\n \"39.205,-77.271111,N39º12\\\\\\\\'18\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:52:54#
    $114136490\",\r\n \"39.208611,-77.274444,N39º12\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:53:13#
    $114136503\",\r\n \"39.213889,-77.276667,N39º12\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:53:34#
    $114136517\",\r\n \"39.219722,-77.278611,N39º13\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:53:58#
    $114136546\",\r\n \"39.219722,-77.278611,N39º13\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:53:58#
    $114136545\",\r\n \"39.220556,-77.278889,N39º13\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:54:02#
    $114136548\",\r\n \"39.229167,-77.283056,N39º13\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:54:38#
    $114136582\",\r\n \"39.234722,-77.286944,N39º14\\\\\\\\'5\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:55:02#
    $114136608\",\r\n \"39.235,-77.287222,N39º14\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:55:03#
    $114136609\",\r\n \"39.244722,-77.296389,N39º14\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:55:46#
    $114136684\",\r\n \"39.2475,-77.298611,N39º14\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:55:59#
    $114136669\",\r\n \"39.256111,-77.304444,N39º15\\\\\\\\'22\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:56:40#
    $114136712\",\r\n \"39.258611,-77.306389,N39º15\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:56:50#
    $114136736\",\r\n \"39.264722,-77.311389,N39º15\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:57:14#
    $114136731\",\r\n \"39.265,-77.311667,N39º15\\\\\\\\'54\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:57:15#
    $114136735\",\r\n \"39.270278,-77.313889,N39º16\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:57:34#
    $114136779\",\r\n \"39.274167,-77.319444,N39º16\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:57:55#
    $114136774\",\r\n \"39.276667,-77.3225,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:58:09#
    $114136780\",\r\n \"39.277222,-77.322778,N39º16\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:58:10#
    $114136784\",\r\n \"39.279167,-77.324167,N39º16\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:58:19#
    $114136788\",\r\n \"39.2825,-77.325556,N39º16\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'32\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:58:33#
    $114136837\",\r\n \"39.284722,-77.327222,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:58:43#
    $114136826\",\r\n \"39.2925,-77.332222,N39º17\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:59:19#
    $114136853\",\r\n \"39.295,-77.333056,N39º17\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:59:29#
    $114136874\",\r\n \"39.295833,-77.333889,N39º17\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:59:32#
    $114136881\",\r\n \"39.295833,-77.333889,N39º17\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:59:33#
    $114136882\",\r\n \"39.309167,-77.346667,N39º18\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:00:36#
    $114136943\",\r\n \"39.316111,-77.351944,N39º18\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:01:12#
    $114136962\",\r\n \"39.319167,-77.353056,N39º19\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:01:26#
    $114136972\",\r\n \"39.328333,-77.37,N39º19\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:02:40#
    $114137049\",\r\n \"39.329444,-77.371389,N39º19\\\\\\\\'46\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:02:46#
    $114137061\",\r\n \"39.3325,-77.374167,N39º19\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'27\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:03:00#
    $114137100\",\r\n \"39.341111,-77.384167,N39º20\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:03:45#
    $114137127\",\r\n \"39.342222,-77.385278,N39º20\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:03:51#
    $114137136\",\r\n \"39.345,-77.387778,N39º20\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:04:05#
    $114137141\",\r\n \"39.346944,-77.389444,N39º20\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'22\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:04:15#
    $114137187\",\r\n \"39.355556,-77.394444,N39º21\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:04:51#
    $114137178\",\r\n \"39.358333,-77.396111,N39º21\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:05:03#
    $114137188\",\r\n \"39.370556,-77.403056,N39º22\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:05:58#
    $114137230\",\r\n \"39.370833,-77.403333,N39º22\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:05:59#
    $114137231\",\r\n \"39.373056,-77.404444,N39º22\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:06:09#
    $114137240\",\r\n \"39.382222,-77.409722,N39º22\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:06:54#
    $114137283\",\r\n \"39.383889,-77.411389,N39º23\\\\\\\\'2\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:07:04#
    $114137304\",\r\n \"39.385278,-77.4125,N39º23\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:07:10#
    $114137316\",\r\n \"39.395278,-77.42,N39º23\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º25\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:08:00#
    $114137359\",\r\n \"39.398611,-77.413056,N39º23\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:08:34#
    $114137391\",\r\n \"39.399444,-77.41,N39º23\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:08:44#
    $114137396\",\r\n \"39.401111,-77.403889,N39º24\\\\\\\\'4\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:09:00#
    $114137401\",\r\n \"39.403889,-77.3825,N39º24\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:10:05#
    $114137446\",\r\n \"39.403611,-77.377222,N39º24\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:10:19#
    $114137463\",\r\n \"39.403611,-77.376667,N39º24\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:10:20#
    $114137465\",\r\n \"39.403611,-77.373889,N39º24\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:10:27#
    $114137476\",\r\n \"39.403889,-77.371667,N39º24\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:10:33#
    $114137494\",\r\n \"39.404167,-77.363333,N39º24\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:10:54#
    $114137539\",\r\n \"39.404167,-77.363333,N39º24\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:10:54#
    $114137500\",\r\n \"39.404167,-77.348611,N39º24\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:11:32#
    $114137561\",\r\n \"39.403611,-77.346667,N39º24\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:11:37#
    $114137573\",\r\n \"39.4025,-77.3425,N39º24\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:11:47#
    $114137570\",\r\n \"39.398056,-77.331389,N39º23\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:12:23#
    $114137591\",\r\n \"39.390833,-77.320833,N39º23\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:13:03#
    $114137622\",\r\n \"39.390278,-77.319444,N39º23\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:13:07#
    $114137623\",\r\n \"39.388889,-77.313889,N39º23\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:13:22#
    $114137640\",\r\n \"39.385556,-77.296667,N39º23\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:14:08#
    $114137671\",\r\n \"39.385278,-77.295556,N39º23\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:14:11#
    $114137680\",\r\n \"39.380833,-77.277222,N39º22\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:14:59#
    $114137738\",\r\n \"39.380278,-77.273056,N39º22\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:15:11#
    $114137750\",\r\n \"39.381389,-77.265556,N39º22\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:15:29#
    $114137807\",\r\n \"39.381111,-77.257778,N39º22\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:15:50#
    $114137788\",\r\n \"39.38,-77.253056,N39º22\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:16:04#
    $114137790\",\r\n \"39.379167,-77.249444,N39º22\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:16:15#
    $114137806\",\r\n \"39.378889,-77.248333,N39º22\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:16:18#
    $114137811\",\r\n \"39.375278,-77.231944,N39º22\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:17:09#
    $114137852\",\r\n \"39.374444,-77.228611,N39º22\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:17:19#
    $114137864\",\r\n \"39.373889,-77.226944,N39º22\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:17:24#
    $114137879\",\r\n \"39.373611,-77.226111,N39º22\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'34\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:17:27#
    $114137887\",\r\n \"39.370556,-77.209722,N39º22\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:18:24#
    $114137935\",\r\n \"39.367778,-77.199722,N39º22\\\\\\\\'4\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:18:53#
    $114137967\",\r\n \"39.367222,-77.196667,N39º22\\\\\\\\'2\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:19:04#
    $114137973\",\r\n \"39.367222,-77.196667,N39º22\\\\\\\\'2\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:19:04#
    $114138015\",\r\n \"39.365833,-77.189167,N39º21\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:19:28#
    $114138005\",\r\n \"39.365556,-77.188889,N39º21\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:19:29#
    $114138007\",\r\n \"39.358889,-77.171944,N39º21\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:20:22#
    $114138046\",\r\n \"39.358889,-77.168056,N39º21\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:20:32#
    $114138057\",\r\n \"39.358889,-77.168056,N39º21\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:20:32#
    $114138058\",\r\n \"39.358889,-77.1675,N39º21\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:20:33#
    $114138059\",\r\n \"39.359444,-77.163611,N39º21\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:20:43#
    $114138070\",\r\n \"39.360278,-77.155556,N39º21\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:21:04#
    $114138099\",\r\n \"39.360833,-77.151667,N39º21\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:21:14#
    $114138108\",\r\n \"39.358889,-77.1425,N39º21\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'33\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:21:40#
    $114138113\",\r\n \"39.357222,-77.139722,N39º21\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:21:48#
    $114138135\",\r\n \"39.353333,-77.124444,N39º21\\\\\\\\'12\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:22:34#
    $114138174\",\r\n \"39.352778,-77.120556,N39º21\\\\\\\\'10\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:22:44#
    $114138190\",\r\n \"39.344722,-77.078611,N39º20\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:24:48#
    $114138290\",\r\n \"39.343889,-77.075833,N39º20\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:24:56#
    $114138294\",\r\n \"39.343611,-77.075556,N39º20\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:24:56#
    $114138296\",\r\n \"39.339722,-77.061944,N39º20\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:25:37#
    $114138390\",\r\n \"39.338333,-77.056389,N39º20\\\\\\\\'18\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:25:53#
    $114138346\",\r\n \"39.337222,-77.050556,N39º20\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:26:10#
    $114138381\",\r\n \"39.336944,-77.047222,N39º20\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:26:20#
    $114138391\",\r\n \"39.336389,-77.043056,N39º20\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:26:31#
    $114138405\",\r\n \"39.3325,-77.032222,N39º19\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:27:05#
    $114138438\",\r\n \"39.325556,-77.013611,N39º19\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:28:02#
    $114138480\",\r\n \"39.323056,-77.007222,N39º19\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:28:21#
    $114138512\",\r\n \"39.313611,-76.969444,N39º18\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:30:12#
    $114138609\",\r\n \"39.3075,-76.942222,N39º18\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:31:34#
    $114138691\",\r\n \"39.3075,-76.941667,N39º18\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:31:36#
    $114138695\",\r\n \"39.306111,-76.929167,N39º18\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:32:11#
    $114138750\",\r\n \"39.304722,-76.9175,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:32:44#
    $114138751\",\r\n \"39.302222,-76.910556,N39º18\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:33:05#
    $114138798\",\r\n \"39.302778,-76.902222,N39º18\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:33:29#
    $114138782\",\r\n \"39.302778,-76.901944,N39º18\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:33:30#
    $114138784\",\r\n \"39.304167,-76.897222,N39º18\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:33:44#
    $114138804\",\r\n \"39.300278,-76.869167,N39º18\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:35:06#
    $114138920\",\r\n \"39.2975,-76.8625,N39º17\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:35:26#
    $114138911\",\r\n \"39.296389,-76.858056,N39º17\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:35:40#
    $114138916\",\r\n \"39.295833,-76.854167,N39º17\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:35:52#
    $114138930\",\r\n \"39.295556,-76.852222,N39º17\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:35:56#
    $114138948\",\r\n \"39.295556,-76.850833,N39º17\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:36:00#
    $114138955\",\r\n \"39.295556,-76.846944,N39º17\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:36:10#
    $114138958\",\r\n \"39.296111,-76.831944,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:36:55#
    $114138991\",\r\n \"39.296111,-76.830278,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:36:59#
    $114138999\",\r\n \"39.296111,-76.830278,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:37:00#
    $114139002\",\r\n \"39.296111,-76.821111,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:37:25#
    $114139013\",\r\n \"39.295833,-76.817778,N39º17\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:37:35#
    $114139074\",\r\n \"39.296944,-76.807778,N39º17\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:38:05#
    $114139061\",\r\n \"39.2975,-76.806389,N39º17\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:38:09#
    $114139069\",\r\n \"39.298889,-76.803333,N39º17\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:38:20#
    $114139086\",\r\n \"39.303056,-76.798611,N39º18\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:38:41#
    $114139129\",\r\n \"39.305,-76.794722,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:38:55#
    $114139122\",\r\n \"39.305,-76.794722,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:38:55#
    $114139120\",\r\n \"39.306389,-76.790278,N39º18\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:39:10#
    $114139135\",\r\n \"39.306389,-76.773611,N39º18\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:40:01#
    $114139173\",\r\n \"39.306667,-76.770833,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:40:10#
    $114139178\",\r\n \"39.306667,-76.770833,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:40:10#
    $114139177\",\r\n \"39.306667,-76.770556,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:40:11#
    $114139181\",\r\n \"39.306667,-76.768889,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:40:16#
    $114139188\",\r\n \"39.307222,-76.764444,N39º18\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:40:30#
    $114139195\",\r\n \"39.307778,-76.758056,N39º18\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'29\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:40:51#
    $114139251\",\r\n \"39.306111,-76.750833,N39º18\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:41:35#
    $114139254\",\r\n \"39.306111,-76.750833,N39º18\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:41:35#
    $114139282\",\r\n \"39.305,-76.748611,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:42:20#
    $114139312\",\r\n \"39.305,-76.748333,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:42:24#
    $114139319\",\r\n \"39.304722,-76.748333,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:42:25#
    $114139321\",\r\n \"39.304722,-76.746389,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:43:24#
    $114139365\",\r\n \"39.304722,-76.746111,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:43:29#
    $114139373\",\r\n \"39.304722,-76.745833,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:43:33#
    $114139376\",\r\n \"39.321389,-76.744444,N39º19\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:45:11#
    $114139456\",\r\n \"39.324722,-76.744444,N39º19\\\\\\\\'29\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:45:26#
    $114139466\",\r\n \"39.328611,-76.744444,N39º19\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:45:40#
    $114139494\",\r\n \"39.328611,-76.744444,N39º19\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:45:41#
    $114139496\",\r\n \"39.343333,-76.744722,N39º20\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:46:40#
    $114139564\",\r\n \"39.344722,-76.744722,N39º20\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:46:45#
    $114139577\",\r\n \"39.351111,-76.745556,N39º21\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:47:09#
    $114139610\",\r\n \"39.353889,-76.745833,N39º21\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:47:20#
    $114139594\",\r\n \"39.365,-76.747222,N39º21\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:47:58#
    $114139639\",\r\n \"39.367778,-76.748056,N39º22\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:48:09#
    $114139642\",\r\n \"39.373333,-76.746111,N39º22\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'46\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:48:30#
    $114139684\",\r\n \"39.377222,-76.743889,N39º22\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:48:43#
    $114139656\",\r\n \"39.379444,-76.742222,N39º22\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:48:54#
    $114139675\",\r\n \"39.381389,-76.737778,N39º22\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:49:09#
    $114139691\",\r\n \"39.383056,-76.735,N39º22\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:49:19#
    $114139695\",\r\n \"39.386944,-76.730556,N39º23\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:49:40#
    $114139714\",\r\n \"39.389444,-76.723611,N39º23\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:50:04#
    $114139753\",\r\n \"39.389444,-76.722778,N39º23\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:50:05#
    $114139759\",\r\n \"39.389722,-76.721389,N39º23\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:50:09#
    $114139761\",\r\n \"39.389722,-76.721389,N39º23\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:50:09#
    $114139762\",\r\n \"39.389722,-76.721111,N39º23\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:50:10#
    $114139763\",\r\n \"39.39,-76.720278,N39º23\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:50:13#
    $114139769\",\r\n \"39.391111,-76.710278,N39º23\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:50:45#
    $114139825\",\r\n \"39.3925,-76.705833,N39º23\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:51:00#
    $114139805\",\r\n \"39.395,-76.693056,N39º23\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:51:39#
    $114139855\",\r\n \"39.395278,-76.689722,N39º23\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:51:50#
    $114139840\",\r\n \"39.396389,-76.686111,N39º23\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:52:03#
    $114139857\",\r\n \"39.3975,-76.683889,N39º23\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:52:13#
    $114139865\",\r\n \"39.398056,-76.683611,N39º23\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:52:15#
    $114139868\",\r\n \"39.398056,-76.683611,N39º23\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:52:15#
    $114139869\",\r\n \"39.398611,-76.682778,N39º23\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:52:19#
    $114139872\",\r\n \"39.406944,-76.668333,N39º24\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:53:10#
    $114139912\",\r\n \"39.408611,-76.666389,N39º24\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:53:19#
    $114139925\",\r\n \"39.412222,-76.662778,N39º24\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:53:39#
    $114139943\",\r\n \"39.414167,-76.660556,N39º24\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:53:50#
    $114139956\",\r\n \"39.420556,-76.648611,N39º25\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:54:33#
    $114140010\",\r\n \"39.420556,-76.648611,N39º25\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:54:33#
    $114140011\",\r\n \"39.420556,-76.647778,N39º25\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:54:36#
    $114140014\",\r\n \"39.420556,-76.647778,N39º25\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:54:36#
    $114140036\",\r\n \"39.420556,-76.644167,N39º25\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:54:47#
    $114140039\",\r\n \"39.418056,-76.633056,N39º25\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:55:22#
    $114140043\",\r\n \"39.416944,-76.629722,N39º25\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:55:33#
    $114140054\",\r\n \"39.416667,-76.628889,N39º25\\\\\\\\'0\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:55:35#
    $114140056\",\r\n \"39.413611,-76.621944,N39º24\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:56:01#
    $114140109\",\r\n \"39.412778,-76.615278,N39º24\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:56:25#
    $114140096\",\r\n \"39.413333,-76.612778,N39º24\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:56:35#
    $114140104\",\r\n \"39.413611,-76.611667,N39º24\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:56:40#
    $114140118\",\r\n \"39.413333,-76.606667,N39º24\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:56:55#
    $114140152\",\r\n \"39.406944,-76.575833,N39º24\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:58:48#
    $114140263\",\r\n \"39.406667,-76.575833,N39º24\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:58:48#
    $114140265\",\r\n \"39.406667,-76.575833,N39º24\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:58:49#
    $114140267\",\r\n \"39.401389,-76.567222,N39º24\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:59:23#
    $114140276\",\r\n \"39.401667,-76.558056,N39º24\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:59:55#
    $114140314\",\r\n \"39.401667,-76.558056,N39º24\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:59:56#
    $114140318\",\r\n \"39.397778,-76.550278,N39º23\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:00:31#
    $114140337\",\r\n \"39.395556,-76.546389,N39º23\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:00:46#
    $114140354\",\r\n \"39.393889,-76.544167,N39º23\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:00:54#
    $114140358\",\r\n \"39.393889,-76.543889,N39º23\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:00:55#
    $114140357\",\r\n \"39.391667,-76.540278,N39º23\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:01:07#
    $114140377\",\r\n \"39.391667,-76.540278,N39º23\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:01:07#
    $114140376\",\r\n \"39.390556,-76.536389,N39º23\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:01:18#
    $114140420\",\r\n \"39.386389,-76.526111,N39º23\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:01:52#
    $114140427\",\r\n \"39.385,-76.524167,N39º23\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:02:02#
    $114140439\",\r\n \"39.380278,-76.520278,N39º22\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'13\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:02:25#
    $114140480\",\r\n \"39.375,-76.518611,N39º22\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:02:46#
    $114140503\",\r\n \"39.364444,-76.508333,N39º21\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:03:41#
    $114140543\",\r\n \"39.358889,-76.504167,N39º21\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:04:07#
    $114140540\",\r\n \"39.351111,-76.499444,N39º21\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º29\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:04:45#
    $114140581\",\r\n \"39.3475,-76.505,N39º20\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:05:11#
    $114140601\",\r\n \"39.345278,-76.508889,N39º20\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:05:24#
    $114140614\",\r\n \"39.345,-76.509167,N39º20\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:05:25#
    $114140621\",\r\n \"39.345,-76.509167,N39º20\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:05:25#
    $114140620\",\r\n \"39.333056,-76.519167,N39º19\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:06:16#
    $114140677\",\r\n \"39.330278,-76.522222,N39º19\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:06:31#
    $114140692\",\r\n \"39.319167,-76.533333,N39º19\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:07:20#
    $114140722\",\r\n \"39.319167,-76.533611,N39º19\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:07:22#
    $114140733\",\r\n \"39.316389,-76.534167,N39º18\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:07:32#
    $114140742\",\r\n \"39.298889,-76.530556,N39º17\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:08:45#
    $114140810\",\r\n \"39.296111,-76.531111,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:08:57#
    $114140820\",\r\n \"39.293889,-76.531667,N39º17\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:09:07#
    $114140851\",\r\n \"39.2875,-76.533333,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:09:31#
    $114140860\",\r\n \"39.284167,-76.538611,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:09:51#
    $114140896\",\r\n \"39.279444,-76.551111,N39º16\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:10:37#
    $114140939\",\r\n \"39.273056,-76.553889,N39º16\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:11:05#
    $114140954\",\r\n \"39.269167,-76.559167,N39º16\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:11:29#
    $114140976\",\r\n \"39.268056,-76.561111,N39º16\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:11:39#
    $114140984\",\r\n \"39.266667,-76.562778,N39º16\\\\\\\\'0\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'46\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:11:49#
    $114141002\",\r\n \"39.265556,-76.564444,N39º15\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:11:59#
    $114141017\",\r\n \"39.264444,-76.566111,N39º15\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:12:10#
    $114141032\",\r\n \"39.263889,-76.568333,N39º15\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:12:44#
    $114141036\",\r\n \"39.264167,-76.568333,N39º15\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:12:45#
    $114141039\",\r\n \"39.270278,-76.568611,N39º16\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:13:25#
    $114141062\",\r\n \"39.2725,-76.568889,N39º16\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:13:40#
    $114141081\",\r\n \"39.273889,-76.568889,N39º16\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:13:49#
    $114141086\",\r\n \"39.274444,-76.569167,N39º16\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:13:53#
    $114141092\",\r\n \"39.274444,-76.569167,N39º16\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:13:54#
    $114141094\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:14:28#
    $114141178\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:14:53#
    $114141167\",\r\n \"39.277222,-76.570833,N39º16\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:15:12#
    $114141217\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:15:58#
    $114141223\",\r\n \"39.277778,-76.573889,N39º16\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:16:17#
    $114141241\",\r\n \"39.278333,-76.575556,N39º16\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'32\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:16:27#
    $114141280\",\r\n \"39.280556,-76.580556,N39º16\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:17:03#
    $114141282\",\r\n \"39.280833,-76.580556,N39º16\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:17:06#
    $114141283\",\r\n \"39.281111,-76.581111,N39º16\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:17:22#
    $114141299\",\r\n \"39.283056,-76.584167,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:17:58#
    $114141323\",\r\n \"39.283056,-76.584444,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:18:06#
    $114141336\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:19:32#
    $114141443\",\r\n \"39.284722,-76.5875,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:19:53#
    $114141448\",\r\n \"39.284722,-76.588333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:20:18#
    $114141470\",\r\n \"39.284722,-76.588333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:20:21#
    $114141477\",\r\n \"39.284722,-76.588333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:20:26#
    $114141503\",\r\n \"39.284444,-76.592778,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:21:09#
    $114141511\",\r\n \"39.284444,-76.593333,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:21:14#
    $114141523\",\r\n \"39.284167,-76.598333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:22:13#
    $114141579\",\r\n \"39.283889,-76.600556,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'2\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:22:42#
    $114141638\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:23:08#
    $114141647\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:23:22#
    $114141668\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:23:24#
    $114141674\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:23:27#
    $114141676\",\r\n \"39.284167,-76.601944,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:23:38#
    $114141678\",\r\n \"39.283889,-76.603333,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:23:48#
    $114141680\",\r\n \"39.283889,-76.603333,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:23:48#
    $114141710\",\r\n \"39.283889,-76.603333,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:23:58#
    $114141683\",\r\n \"39.284167,-76.603333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:24:22#
    $114141711\",\r\n \"39.284167,-76.603333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:24:22#
    $114141713\",\r\n \"39.284167,-76.603056,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:24:41#
    $114141762\",\r\n \"39.284444,-76.603056,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:24:51#
    $114141733\",\r\n \"39.285833,-76.603889,N39º17\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:25:25#
    $114141767\",\r\n \"39.285833,-76.603889,N39º17\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:25:25#
    $114141766\",\r\n \"39.286111,-76.603889,N39º17\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:25:31#
    $114141773\",\r\n \"39.287222,-76.604444,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:25:46#
    $114141813\",\r\n \"39.287778,-76.605556,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:26:22#
    $114141825\",\r\n \"39.287778,-76.605833,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:26:36#
    $114141855\",\r\n \"39.2875,-76.611389,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:27:45#
    $114141915\",\r\n \"39.286944,-76.6125,N39º17\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:28:06#
    $114141953\",\r\n \"39.286944,-76.6125,N39º17\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:28:30#
    $114141945\",\r\n \"39.287222,-76.6125,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:28:31#
    $114141950\",\r\n \"39.2875,-76.613056,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:29:34#
    $114141999\",\r\n \"39.286389,-76.613056,N39º17\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:29:44#
    $114142014\",\r\n \"39.283889,-76.615278,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:30:41#
    $114142084\",\r\n \"39.283889,-76.615833,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:30:50#
    $114142093\",\r\n \"39.283889,-76.615833,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:30:50#
    $114142094\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:31:34#
    $114142132\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:31:47#
    $114142138\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:32:02#
    $114142161\",\r\n \"39.281944,-76.618889,N39º16\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:32:38#
    $114142235\",\r\n \"39.276667,-76.619722,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:33:01#
    $114142210\",\r\n \"39.271944,-76.621944,N39º16\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:33:23#
    $114142239\",\r\n \"39.269722,-76.623056,N39º16\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:33:34#
    $114142258\",\r\n \"39.269444,-76.633056,N39º16\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:34:17#
    $114142310\",\r\n \"39.27,-76.636389,N39º16\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:34:28#
    $114142320\",\r\n \"39.270833,-76.643333,N39º16\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:34:49#
    $114142330\",\r\n \"39.271389,-76.653889,N39º16\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:35:16#
    $114142365\",\r\n \"39.266944,-76.664444,N39º16\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:35:53#
    $114142386\",\r\n \"39.266944,-76.664444,N39º16\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:35:53#
    $114142434\",\r\n \"39.263611,-76.671389,N39º15\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:36:16#
    $114142414\",\r\n \"39.263611,-76.671389,N39º15\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:36:16#
    $114142417\",\r\n \"39.2625,-76.6725,N39º15\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:36:21#
    $114142424\",\r\n \"39.262222,-76.672778,N39º15\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:36:22#
    $114142425\",\r\n \"39.262222,-76.672778,N39º15\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:36:23#
    $114142427\",\r\n \"39.249722,-76.682222,N39º14\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:37:22#
    $114142482\",\r\n \"39.244167,-76.689444,N39º14\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'22\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:37:50#
    $114142535\",\r\n \"39.229167,-76.714722,N39º13\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:39:19#
    $114142602\",\r\n \"39.228611,-76.715278,N39º13\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:39:21#
    $114142607\",\r\n \"39.226111,-76.716667,N39º13\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:39:30#
    $114142613\",\r\n \"39.225,-76.717778,N39º13\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:39:34#
    $114142622\",\r\n \"39.225278,-76.7175,N39º13\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:39:34#
    $114142621\",\r\n \"39.224167,-76.718611,N39º13\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:39:38#
    $114142624\",\r\n \"39.218056,-76.726944,N39º13\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:40:09#
    $114142665\",\r\n \"39.214167,-76.733889,N39º12\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:40:33#
    $114142664\",\r\n \"39.205833,-76.750556,N39º12\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:41:28#
    $114142713\",\r\n \"39.203333,-76.755556,N39º12\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:41:45#
    $114142739\",\r\n \"39.201111,-76.759722,N39º12\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:41:58#
    $114142799\",\r\n \"39.198056,-76.765278,N39º11\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:42:19#
    $114142806\",\r\n \"39.195278,-76.768611,N39º11\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:42:53#
    $114142816\",\r\n \"39.195278,-76.768889,N39º11\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:42:57#
    $114142819\",\r\n \"39.193333,-76.770556,N39º11\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:43:28#
    $114142863\",\r\n \"39.187222,-76.777222,N39º11\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:44:15#
    $114142895\",\r\n \"39.185556,-76.779444,N39º11\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:44:25#
    $114142888\",\r\n \"39.181389,-76.784444,N39º10\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:45:07#
    $114142928\",\r\n \"39.181389,-76.784444,N39º10\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:45:22#
    $114142944\",\r\n \"39.180556,-76.785556,N39º10\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:46:07#
    $114143003\",\r\n \"39.180556,-76.785556,N39º10\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:46:12#
    $114143008\",\r\n \"39.179444,-76.786944,N39º10\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'13\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:46:48#
    $114143058\",\r\n \"39.179444,-76.786944,N39º10\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:47:03#
    $114143041\",\r\n \"39.178611,-76.788333,N39º10\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:47:21#
    $114143070\",\r\n \"39.176389,-76.791944,N39º10\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:48:06#
    $114143078\",\r\n \"39.176111,-76.792778,N39º10\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:48:25#
    $114143102\",\r\n \"39.176111,-76.793056,N39º10\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:48:26#
    $114143104\",\r\n \"39.176111,-76.792778,N39º10\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:48:26#
    $114143103\",\r\n \"39.175833,-76.793333,N39º10\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:48:30#
    $114143111\",\r\n \"39.172222,-76.8,N39º10\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:50:25#
    $114143228\",\r\n \"39.171944,-76.800833,N39º10\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:50:39#
    $114143242\",\r\n \"39.170556,-76.802778,N39º10\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:51:05#
    $114143277\",\r\n \"39.168889,-76.805556,N39º10\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:51:45#
    $114143291\",\r\n \"39.168889,-76.805556,N39º10\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:51:49#
    $114143302\",\r\n \"39.167222,-76.808611,N39º10\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:52:34#
    $114143316\",\r\n \"39.165556,-76.811111,N39º9\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:52:55#
    $114143373\",\r\n \"39.163611,-76.814167,N39º9\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:53:52#
    $114143422\",\r\n \"39.162222,-76.816667,N39º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:54:44#
    $114143464\",\r\n \"39.162222,-76.816667,N39º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:54:58#
    $114143484\",\r\n \"39.160556,-76.820278,N39º9\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:55:49#
    $114143525\",\r\n \"39.160556,-76.820556,N39º9\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:55:50#
    $114143529\",\r\n \"39.160556,-76.821111,N39º9\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:55:59#
    $114143534\",\r\n \"39.160278,-76.821111,N39º9\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:56:04#
    $114143543\",\r\n \"39.160278,-76.822222,N39º9\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:56:28#
    $114143585\",\r\n \"39.158611,-76.828611,N39º9\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:58:10#
    $114143676\",\r\n \"39.158611,-76.828889,N39º9\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:58:15#
    $114143683\",\r\n \"39.158611,-76.829444,N39º9\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'46\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:58:36#
    $114143717\",\r\n \"39.158333,-76.83,N39º9\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:58:46#
    $114143707\",\r\n \"39.1575,-76.831667,N39º9\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:59:15#
    $114143724\",\r\n \"39.156389,-76.834167,N39º9\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:00:08#
    $114143776\",\r\n \"39.149444,-76.840833,N39º8\\\\\\\\'58\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:01:12#
    $114143834\",\r\n \"39.141389,-76.846667,N39º8\\\\\\\\'29\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:01:53#
    $114143922\",\r\n \"39.138889,-76.848333,N39º8\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:02:03#
    $114143902\",\r\n \"39.134444,-76.854444,N39º8\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:02:28#
    $114143921\",\r\n \"39.133889,-76.855556,N39º8\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:02:32#
    $114143928\",\r\n \"39.120556,-76.868333,N39º7\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:03:37#
    $114143985\",\r\n \"39.120278,-76.868611,N39º7\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:03:38#
    $114143991\",\r\n \"39.109167,-76.880833,N39º6\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:04:28#
    $114144021\",\r\n \"39.1075,-76.882778,N39º6\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:04:36#
    $114144037\",\r\n \"39.107222,-76.883056,N39º6\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:04:38#
    $114144041\",\r\n \"39.106111,-76.885278,N39º6\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:04:44#
    $114144045\",\r\n \"39.105556,-76.885833,N39º6\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:04:46#
    $114144050\",\r\n \"39.096667,-76.890833,N39º5\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'27\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:05:20#
    $114144120\",\r\n \"39.084444,-76.8975,N39º5\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:06:07#
    $114144139\",\r\n \"39.0825,-76.899167,N39º4\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:06:18#
    $114144146\",\r\n \"39.080278,-76.900833,N39º4\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:06:28#
    $114144170\",\r\n \"39.076111,-76.903889,N39º4\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:06:43#
    $114144168\",\r\n \"39.071944,-76.906667,N39º4\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:07:00#
    $114144184\",\r\n \"39.071944,-76.906667,N39º4\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:07:00#
    $114144183\",\r\n \"39.064722,-76.912222,N39º3\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:07:32#
    $114144230\",\r\n \"39.0625,-76.916667,N39º3\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:07:47#
    $114144219\",\r\n \"39.061111,-76.920556,N39º3\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:08:00#
    $114144231\",\r\n \"39.061111,-76.920278,N39º3\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:08:00#
    $114144232\",\r\n \"39.061111,-76.921111,N39º3\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:08:01#
    $114144234\",\r\n \"39.060556,-76.921944,N39º3\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:08:05#
    $114144239\",\r\n \"39.060556,-76.921944,N39º3\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:08:05#
    $114144237\",\r\n \"39.059167,-76.925,N39º3\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:08:15#
    $114144282\",\r\n \"39.050278,-76.930833,N39º3\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:08:51#
    $114144279\",\r\n \"39.048333,-76.931667,N39º2\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:09:01#
    $114144293\",\r\n \"39.046389,-76.932778,N39º2\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:09:09#
    $114144298\",\r\n \"39.046389,-76.932778,N39º2\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:09:09#
    $114144296\",\r\n \"39.045556,-76.933056,N39º2\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:09:13#
    $114144307\",\r\n \"39.036111,-76.939722,N39º2\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:09:58#
    $114144354\",\r\n \"39.033333,-76.943056,N39º2\\\\\\\\'0\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:10:14#
    $114144376\",\r\n \"39.019444,-76.960278,N39º1\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:11:32#
    $114144453\",\r\n \"39.018333,-76.971111,N39º1\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:12:09#
    $114144459\",\r\n \"39.018611,-76.974167,N39º1\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'27\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:12:18#
    $114144473\",\r\n \"39.018333,-76.991111,N39º1\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:13:13#
    $114144528\",\r\n \"39.017778,-76.993056,N39º1\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:13:22#
    $114144557\",\r\n \"39.016944,-76.995833,N39º1\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:13:33#
    $114144573\",\r\n \"39.016944,-76.995833,N39º1\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:13:33#
    $114144602\",\r\n \"39.015556,-77.001389,N39º0\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:13:54#
    $114144618\",\r\n \"39.016111,-77.014722,N39º0\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:14:48#
    $114144669\",\r\n \"39.015833,-77.0175,N39º0\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:14:59#
    $114144636\",\r\n \"39.016389,-77.028889,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:15:39#
    $114144680\",\r\n \"39.013333,-77.041667,N39º0\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:16:27#
    $114144715\",\r\n \"39.013333,-77.044444,N39º0\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:16:38#
    $114144727\",\r\n \"39.014167,-77.059444,N39º0\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:17:33#
    $114144794\",\r\n \"39.013611,-77.061944,N39º0\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:17:43#
    $114144808\",\r\n \"39.005556,-77.0775,N39º0\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:18:57#
    $114144870\",\r\n \"39.005556,-77.0775,N39º0\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:18:58#
    $114144871\",\r\n \"39.01,-77.088611,N39º0\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:19:42#
    $114144901\",\r\n \"39.010278,-77.088889,N39º0\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:19:44#
    $114144905\",\r\n \"39.011111,-77.090833,N39º0\\\\\\\\'40\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:19:52#
    $114144910\",\r\n \"39.011111,-77.091111,N39º0\\\\\\\\'40\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:19:54#
    $114144914\",\r\n \"39.015833,-77.096667,N39º0\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:20:23#
    $114144945\",\r\n \"39.019722,-77.103611,N39º1\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:20:57#
    $114144973\",\r\n \"39.020556,-77.104722,N39º1\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'17\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:21:06#
    $114145035\",\r\n \"39.028056,-77.113056,N39º1\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:22:01#
    $114145054\",\r\n \"39.028889,-77.116111,N39º1\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:22:10#
    $114145075\",\r\n \"39.031389,-77.130278,N39º1\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:22:55#
    $114145096\",\r\n \"39.031944,-77.133611,N39º1\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:23:06#
    $114145110\",\r\n \"39.032222,-77.136389,N39º1\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:23:15#
    $114145138\",\r\n \"39.035833,-77.144167,N39º2\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:23:47#
    $114145142\",\r\n \"39.035833,-77.144167,N39º2\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:23:47#
    $114145176\",\r\n \"39.0425,-77.147778,N39º2\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:24:22#
    $114145202\",\r\n \"39.049722,-77.151389,N39º2\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:24:53#
    $114145203\",\r\n \"39.066667,-77.157222,N39º4\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:26:14#
    $114145301\",\r\n \"39.070278,-77.16,N39º4\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:26:35#
    $114145315\",\r\n \"39.072222,-77.162222,N39º4\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:26:46#
    $114145348\",\r\n \"39.075,-77.165833,N39º4\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:27:06#
    $114145335\",\r\n \"39.075556,-77.166667,N39º4\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:27:11#
    $114145344\",\r\n \"39.075556,-77.166667,N39º4\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:27:11#
    $114145343\",\r\n \"39.093333,-77.175556,N39º5\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:28:30#
    $114145410\",\r\n \"39.095,-77.176389,N39º5\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:28:39#
    $114145427\",\r\n \"39.104722,-77.181389,N39º6\\\\\\\\'17\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:29:23#
    $114145476\",\r\n \"39.106389,-77.182778,N39º6\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:29:33#
    $114145486\",\r\n \"39.107222,-77.183611,N39º6\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:29:39#
    $114145494\",\r\n \"39.109167,-77.185556,N39º6\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:29:53#
    $114145506\",\r\n \"39.110278,-77.186667,N39º6\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:30:03#
    $114145517\",\r\n \"39.111111,-77.187778,N39º6\\\\\\\\'40\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:30:29#
    $114145528\",\r\n \"39.111667,-77.188333,N39º6\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:30:37#
    $114145534\",\r\n \"39.111667,-77.188333,N39º6\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:30:38#
    $114145538\",\r\n \"39.112222,-77.188889,N39º6\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:30:47#
    $114145577\",\r\n \"39.117222,-77.194167,N39º7\\\\\\\\'2\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:31:33#
    $114145586\",\r\n \"39.117222,-77.194167,N39º7\\\\\\\\'2\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:31:33#
    $114145587\",\r\n \"39.12,-77.196944,N39º7\\\\\\\\'12\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:31:48#
    $114145605\",\r\n \"39.135278,-77.209167,N39º8\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:32:51#
    $114145666\",\r\n \"39.138056,-77.210833,N39º8\\\\\\\\'17\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:33:06#
    $114145702\",\r\n \"39.141389,-77.210556,N39º8\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:33:59#
    $114145752\",\r\n \"39.141111,-77.210556,N39º8\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:34:13#
    $114145761\",\r\n \"39.140833,-77.210556,N39º8\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:34:24#
    $114145791\",\r\n \"39.140556,-77.214722,N39º8\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:34:58#
    $114145798\",\r\n \"39.140833,-77.215,N39º8\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:35:04#
    $114145810\",\r\n \"39.140833,-77.215278,N39º8\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:35:08#
    $114145812\",\r\n \"39.141111,-77.216389,N39º8\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:35:19#
    $114145815\",\r\n \"39.143611,-77.215,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:36:10#
    $114145866\",\r\n \"39.143611,-77.215,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:36:13#
    $114145900\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:36:45#
    $114145894\",\r\n \"39.143056,-77.215278,N39º8\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:57:39#
    $114146178\",\r\n \"39.142778,-77.215278,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:57:55#
    $114146186\",\r\n \"39.142778,-77.215278,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:58:02#
    $114146189\",\r\n \"39.143056,-77.215278,N39º8\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:58:06#
    $114146191\",\r\n \"39.143056,-77.215,N39º8\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:59:47#
    $114146216\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:45:10#
    $114136039\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:45:51#
    $114136079\",\r\n \"39.144167,-77.215833,N39º8\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:46:20#
    $114136096\",\r\n \"39.147222,-77.218611,N39º8\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:47:22#
    $114136158\",\r\n \"39.147778,-77.218056,N39º8\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:47:26#
    $114136159\",\r\n \"39.151667,-77.219167,N39º9\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:48:26#
    $114136230\",\r\n \"39.152222,-77.219722,N39º9\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:48:30#
    $114136234\",\r\n \"39.1525,-77.22,N39º9\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:48:31#
    $114136235\",\r\n \"39.157222,-77.226389,N39º9\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:49:05#
    $114136317\",\r\n \"39.160833,-77.232222,N39º9\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:49:28#
    $114136277\",\r\n \"39.160833,-77.232222,N39º9\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:49:29#
    $114136279\",\r\n \"39.160833,-77.2325,N39º9\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:49:30#
    $114136281\",\r\n \"39.163333,-77.237222,N39º9\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:49:53#
    $114136315\",\r\n \"39.170278,-77.243611,N39º10\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:50:28#
    $114136332\",\r\n \"39.175278,-77.246944,N39º10\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:50:47#
    $114136360\",\r\n \"39.189722,-77.258611,N39º11\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:51:48#
    $114136431\",\r\n \"39.189722,-77.258611,N39º11\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:51:48#
    $114136430\",\r\n \"39.191389,-77.259167,N39º11\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:51:54#
    $114136442\",\r\n \"39.192222,-77.259722,N39º11\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:51:58#
    $114136448\",\r\n \"39.205556,-77.271944,N39º12\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:52:59#
    $114136496\",\r\n \"39.219444,-77.278611,N39º13\\\\\\\\'10\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:53:57#
    $114136542\",\r\n \"39.221944,-77.279444,N39º13\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'46\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:54:07#
    $114136569\",\r\n \"39.224444,-77.280833,N39º13\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:54:17#
    $114136561\",\r\n \"39.229167,-77.283056,N39º13\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:54:38#
    $114136611\",\r\n \"39.2325,-77.285,N39º13\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:54:52#
    $114136590\",\r\n \"39.234722,-77.286944,N39º14\\\\\\\\'5\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:55:02#
    $114136607\",\r\n \"39.237222,-77.289444,N39º14\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:55:11#
    $114136614\",\r\n \"39.242778,-77.294444,N39º14\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:55:35#
    $114136651\",\r\n \"39.250833,-77.300833,N39º15\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:56:15#
    $114136686\",\r\n \"39.251111,-77.300833,N39º15\\\\\\\\'4\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:56:16#
    $114136690\",\r\n \"39.266111,-77.3125,N39º15\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:57:20#
    $114136742\",\r\n \"39.279167,-77.324167,N39º16\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:58:19#
    $114136790\",\r\n \"39.281944,-77.325278,N39º16\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:58:29#
    $114136804\",\r\n \"39.298611,-77.337222,N39º17\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:59:46#
    $114136926\",\r\n \"39.304167,-77.339722,N39º18\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:00:07#
    $114136911\",\r\n \"39.306667,-77.343056,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:00:21#
    $114136915\",\r\n \"39.308333,-77.345556,N39º18\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:00:31#
    $114136931\",\r\n \"39.311667,-77.349722,N39º18\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:00:51#
    $114136970\",\r\n \"39.316111,-77.351944,N39º18\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:01:12#
    $114136996\",\r\n \"39.323889,-77.358333,N39º19\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:01:56#
    $114137007\",\r\n \"39.324722,-77.361389,N39º19\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:02:06#
    $114137010\",\r\n \"39.325278,-77.364444,N39º19\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:02:17#
    $114137012\",\r\n \"39.326944,-77.368333,N39º19\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:02:32#
    $114137033\",\r\n \"39.328333,-77.37,N39º19\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:02:40#
    $114137048\",\r\n \"39.328611,-77.370556,N39º19\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:02:42#
    $114137050\",\r\n \"39.334722,-77.376389,N39º20\\\\\\\\'5\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:03:11#
    $114137116\",\r\n \"39.342778,-77.385833,N39º20\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:03:54#
    $114137149\",\r\n \"39.355,-77.394167,N39º21\\\\\\\\'18\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:04:49#
    $114137176\",\r\n \"39.355556,-77.394444,N39º21\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:04:51#
    $114137177\",\r\n \"39.356944,-77.395278,N39º21\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:04:57#
    $114137181\",\r\n \"39.357222,-77.395556,N39º21\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:04:59#
    $114137183\",\r\n \"39.3775,-77.406389,N39º22\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:06:30#
    $114137268\",\r\n \"39.383889,-77.411389,N39º23\\\\\\\\'2\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:07:04#
    $114137302\",\r\n \"39.384167,-77.411667,N39º23\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:07:05#
    $114137306\",\r\n \"39.385833,-77.413056,N39º23\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:07:14#
    $114137320\",\r\n \"39.39,-77.416667,N39º23\\\\\\\\'24\\\\\\\\'\\\\\\\\' W77º25\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:07:35#
    $114137360\",\r\n \"39.395,-77.42,N39º23\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º25\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:07:59#
    $114137354\",\r\n \"39.397222,-77.42,N39º23\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º25\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:08:10#
    $114137366\",\r\n \"39.397778,-77.416389,N39º23\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:08:23#
    $114137377\",\r\n \"39.404167,-77.390833,N39º24\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:09:39#
    $114137439\",\r\n \"39.403611,-77.376667,N39º24\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:10:20#
    $114137466\",\r\n \"39.403611,-77.373611,N39º24\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:10:28#
    $114137482\",\r\n \"39.404722,-77.353056,N39º24\\\\\\\\'17\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:11:20#
    $114137537\",\r\n \"39.404722,-77.353056,N39º24\\\\\\\\'17\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:11:20#
    $114137536\",\r\n \"39.404444,-77.349722,N39º24\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:11:28#
    $114137555\",\r\n \"39.403889,-77.347778,N39º24\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:11:33#
    $114137564\",\r\n \"39.403611,-77.346667,N39º24\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:11:36#
    $114137567\",\r\n \"39.395833,-77.329167,N39º23\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:12:33#
    $114137607\",\r\n \"39.390833,-77.321111,N39º23\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:13:02#
    $114137620\",\r\n \"39.39,-77.318056,N39º23\\\\\\\\'24\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:13:12#
    $114137629\",\r\n \"39.385556,-77.297222,N39º23\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:14:07#
    $114137670\",\r\n \"39.385,-77.293611,N39º23\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:14:15#
    $114137717\",\r\n \"39.380278,-77.273056,N39º22\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:15:11#
    $114137752\",\r\n \"39.380556,-77.271389,N39º22\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:15:15#
    $114137762\",\r\n \"39.380556,-77.269722,N39º22\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:15:19#
    $114137772\",\r\n \"39.379722,-77.252222,N39º22\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:16:06#
    $114137794\",\r\n \"39.378889,-77.247778,N39º22\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:16:20#
    $114137817\",\r\n \"39.376944,-77.239722,N39º22\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:16:45#
    $114137837\",\r\n \"39.375278,-77.231389,N39º22\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:17:10#
    $114137854\",\r\n \"39.373611,-77.226111,N39º22\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:17:27#
    $114137884\",\r\n \"39.369722,-77.2125,N39º22\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:18:14#
    $114137911\",\r\n \"39.370556,-77.209722,N39º22\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:18:24#
    $114137936\",\r\n \"39.370556,-77.206667,N39º22\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:18:32#
    $114137945\",\r\n \"39.366389,-77.191944,N39º21\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:19:19#
    $114138000\",\r\n \"39.364167,-77.1825,N39º21\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:19:48#
    $114138049\",\r\n \"39.360556,-77.176111,N39º21\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:20:09#
    $114138030\",\r\n \"39.360833,-77.146111,N39º21\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:21:28#
    $114138102\",\r\n \"39.358889,-77.1425,N39º21\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:21:40#
    $114138112\",\r\n \"39.355556,-77.136944,N39º21\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'13\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:21:58#
    $114138158\",\r\n \"39.3525,-77.118889,N39º21\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:22:49#
    $114138195\",\r\n \"39.352222,-77.118333,N39º21\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:22:50#
    $114138197\",\r\n \"39.351944,-77.116667,N39º21\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:22:55#
    $114138204\",\r\n \"39.350833,-77.112778,N39º21\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'46\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:23:05#
    $114138232\",\r\n \"39.348333,-77.101389,N39º20\\\\\\\\'54\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:23:40#
    $114138237\",\r\n \"39.348333,-77.101111,N39º20\\\\\\\\'54\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:23:41#
    $114138238\",\r\n \"39.3475,-77.094722,N39º20\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:24:01#
    $114138257\",\r\n \"39.346944,-77.090833,N39º20\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:24:12#
    $114138269\",\r\n \"39.343333,-77.074167,N39º20\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:25:01#
    $114138306\",\r\n \"39.3375,-77.051111,N39º20\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:26:10#
    $114138382\",\r\n \"39.333889,-77.035556,N39º20\\\\\\\\'2\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:26:55#
    $114138420\",\r\n \"39.331667,-77.030278,N39º19\\\\\\\\'54\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:27:11#
    $114138455\",\r\n \"39.328611,-77.021944,N39º19\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:27:36#
    $114138514\",\r\n \"39.323889,-77.009167,N39º19\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:28:16#
    $114138503\",\r\n \"39.321944,-77,N39º19\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:28:42#
    $114138521\",\r\n \"39.320278,-76.988333,N39º19\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:29:16#
    $114138551\",\r\n \"39.311389,-76.964444,N39º18\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:30:30#
    $114138632\",\r\n \"39.311111,-76.963056,N39º18\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:30:34#
    $114138654\",\r\n \"39.308611,-76.9525,N39º18\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:31:05#
    $114138684\",\r\n \"39.308056,-76.947222,N39º18\\\\\\\\'29\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:31:20#
    $114138681\",\r\n \"39.307222,-76.940556,N39º18\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:31:39#
    $114138699\",\r\n \"39.307222,-76.940556,N39º18\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'26\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:31:39#
    $114138723\",\r\n \"39.305556,-76.924722,N39º18\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:32:24#
    $114138728\",\r\n \"39.305556,-76.923889,N39º18\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:32:26#
    $114138732\",\r\n \"39.305278,-76.921111,N39º18\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:32:34#
    $114138738\",\r\n \"39.305,-76.919444,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:32:39#
    $114138744\",\r\n \"39.305,-76.918889,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:32:40#
    $114138745\",\r\n \"39.305,-76.918889,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:32:40#
    $114138746\",\r\n \"39.305,-76.918889,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:32:40#
    $114138747\",\r\n \"39.303611,-76.914167,N39º18\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:32:54#
    $114138759\",\r\n \"39.302778,-76.901944,N39º18\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:33:30#
    $114138779\",\r\n \"39.303889,-76.898611,N39º18\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:33:40#
    $114138794\",\r\n \"39.302222,-76.873611,N39º18\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:34:52#
    $114138887\",\r\n \"39.301667,-76.8725,N39º18\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:34:55#
    $114138893\",\r\n \"39.295556,-76.846944,N39º17\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'49\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:36:10#
    $114138965\",\r\n \"39.296111,-76.835278,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:36:45#
    $114138973\",\r\n \"39.296111,-76.828611,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:37:04#
    $114139010\",\r\n \"39.296389,-76.812778,N39º17\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:37:50#
    $114139041\",\r\n \"39.305833,-76.792222,N39º18\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:39:04#
    $114139126\",\r\n \"39.306111,-76.791667,N39º18\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:39:05#
    $114139131\",\r\n \"39.306111,-76.791667,N39º18\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:39:05#
    $114139130\",\r\n \"39.306389,-76.790556,N39º18\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:39:09#
    $114139133\",\r\n \"39.306389,-76.774167,N39º18\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:40:00#
    $114139170\",\r\n \"39.3075,-76.761389,N39º18\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:40:40#
    $114139243\",\r\n \"39.307778,-76.758056,N39º18\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:40:51#
    $114139209\",\r\n \"39.306389,-76.751389,N39º18\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:41:15#
    $114139230\",\r\n \"39.306111,-76.750833,N39º18\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:41:19#
    $114139237\",\r\n \"39.306111,-76.750833,N39º18\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:41:20#
    $114139238\",\r\n \"39.305833,-76.750833,N39º18\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:41:24#
    $114139244\",\r\n \"39.305,-76.748611,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:42:20#
    $114139313\",\r\n \"39.304722,-76.746389,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:43:24#
    $114139366\",\r\n \"39.304722,-76.746111,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:43:29#
    $114139371\",\r\n \"39.306389,-76.743333,N39º18\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:44:05#
    $114139404\",\r\n \"39.306389,-76.743333,N39º18\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:44:05#
    $114139436\",\r\n \"39.310833,-76.744167,N39º18\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:44:29#
    $114139417\",\r\n \"39.312222,-76.744167,N39º18\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:44:34#
    $114139423\",\r\n \"39.326667,-76.744444,N39º19\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:45:34#
    $114139478\",\r\n \"39.331944,-76.744444,N39º19\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:45:55#
    $114139548\",\r\n \"39.337222,-76.744444,N39º20\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:46:16#
    $114139568\",\r\n \"39.337222,-76.744444,N39º20\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:46:16#
    $114139538\",\r\n \"39.344444,-76.744722,N39º20\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:46:44#
    $114139570\",\r\n \"39.344722,-76.744722,N39º20\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:46:45#
    $114139579\",\r\n \"39.345556,-76.745,N39º20\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:46:48#
    $114139585\",\r\n \"39.3575,-76.746111,N39º21\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:47:34#
    $114139597\",\r\n \"39.360556,-76.746389,N39º21\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:47:43#
    $114139618\",\r\n \"39.365,-76.747222,N39º21\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:47:58#
    $114139638\",\r\n \"39.370833,-76.7475,N39º22\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'51\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:48:19#
    $114139668\",\r\n \"39.377778,-76.743611,N39º22\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:48:45#
    $114139661\",\r\n \"39.388611,-76.726389,N39º23\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:49:54#
    $114139730\",\r\n \"39.39,-76.720278,N39º23\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:50:14#
    $114139768\",\r\n \"39.390278,-76.716944,N39º23\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:50:24#
    $114139776\",\r\n \"39.390278,-76.713889,N39º23\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:50:35#
    $114139821\",\r\n \"39.393611,-76.703333,N39º23\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:51:10#
    $114139813\",\r\n \"39.393889,-76.701944,N39º23\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:51:15#
    $114139818\",\r\n \"39.394444,-76.700556,N39º23\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:51:18#
    $114139824\",\r\n \"39.396389,-76.686111,N39º23\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:52:03#
    $114139856\",\r\n \"39.418333,-76.654444,N39º25\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:54:13#
    $114139990\",\r\n \"39.419722,-76.651667,N39º25\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:54:23#
    $114140001\",\r\n \"39.420556,-76.648611,N39º25\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:54:33#
    $114140009\",\r\n \"39.417222,-76.630278,N39º25\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:55:31#
    $114140052\",\r\n \"39.416389,-76.628611,N39º24\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:55:37#
    $114140061\",\r\n \"39.416111,-76.6275,N39º24\\\\\\\\'58\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:55:40#
    $114140070\",\r\n \"39.412778,-76.615,N39º24\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:56:26#
    $114140098\",\r\n \"39.413056,-76.597222,N39º24\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:57:30#
    $114140162\",\r\n \"39.413333,-76.596389,N39º24\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:57:31#
    $114140163\",\r\n \"39.413333,-76.596389,N39º24\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:57:31#
    $114140165\",\r\n \"39.414167,-76.592778,N39º24\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:57:44#
    $114140186\",\r\n \"39.414167,-76.592222,N39º24\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:57:45#
    $114140187\",\r\n \"39.411389,-76.582222,N39º24\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:58:20#
    $114140229\",\r\n \"39.407222,-76.576667,N39º24\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:58:44#
    $114140259\",\r\n \"39.406111,-76.575,N39º24\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:58:52#
    $114140273\",\r\n \"39.404444,-76.5725,N39º24\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:59:02#
    $114140271\",\r\n \"39.401389,-76.563333,N39º24\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:59:37#
    $114140288\",\r\n \"39.399167,-76.552778,N39º23\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:00:20#
    $114140363\",\r\n \"39.3925,-76.541389,N39º23\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:01:03#
    $114140367\",\r\n \"39.392222,-76.541111,N39º23\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:01:04#
    $114140371\",\r\n \"39.386389,-76.526111,N39º23\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:01:52#
    $114140428\",\r\n \"39.383611,-76.522778,N39º23\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:02:09#
    $114140446\",\r\n \"39.3825,-76.521667,N39º22\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:02:15#
    $114140457\",\r\n \"39.369444,-76.513889,N39º22\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:03:10#
    $114140495\",\r\n \"39.369167,-76.513611,N39º22\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'49\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:03:11#
    $114140494\",\r\n \"39.355833,-76.501667,N39º21\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:04:24#
    $114140559\",\r\n \"39.346111,-76.507222,N39º20\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:05:19#
    $114140608\",\r\n \"39.345278,-76.508889,N39º20\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:05:24#
    $114140613\",\r\n \"39.339722,-76.514722,N39º20\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:05:51#
    $114140678\",\r\n \"39.331389,-76.520833,N39º19\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:06:25#
    $114140687\",\r\n \"39.3225,-76.530278,N39º19\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:07:07#
    $114140716\",\r\n \"39.315278,-76.533611,N39º18\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:07:37#
    $114140754\",\r\n \"39.315278,-76.533611,N39º18\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:07:37#
    $114140756\",\r\n \"39.309444,-76.531667,N39º18\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:08:01#
    $114140767\",\r\n \"39.301389,-76.530556,N39º18\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:08:35#
    $114140796\",\r\n \"39.301111,-76.530556,N39º18\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:08:37#
    $114140799\",\r\n \"39.3,-76.530556,N39º18\\\\\\\\'0\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:08:41#
    $114140805\",\r\n \"39.287222,-76.533333,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:09:32#
    $114140867\",\r\n \"39.286111,-76.533889,N39º17\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:09:36#
    $114140881\",\r\n \"39.286111,-76.533889,N39º17\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:09:36#
    $114140883\",\r\n \"39.278611,-76.551389,N39º16\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:10:40#
    $114140941\",\r\n \"39.278611,-76.551389,N39º16\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:10:41#
    $114140945\",\r\n \"39.278611,-76.551389,N39º16\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:10:41#
    $114140942\",\r\n \"39.278611,-76.551389,N39º16\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:10:41#
    $114140943\",\r\n \"39.269167,-76.559444,N39º16\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:11:31#
    $114140978\",\r\n \"39.262778,-76.567778,N39º15\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:12:34#
    $114141028\",\r\n \"39.268889,-76.568611,N39º16\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:13:14#
    $114141084\",\r\n \"39.270278,-76.568611,N39º16\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:13:25#
    $114141089\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:14:42#
    $114141145\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:14:57#
    $114141170\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:14:57#
    $114141171\",\r\n \"39.276944,-76.569167,N39º16\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:15:02#
    $114141200\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:15:57#
    $114141219\",\r\n \"39.280278,-76.579722,N39º16\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:16:53#
    $114141274\",\r\n \"39.280833,-76.580556,N39º16\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:17:08#
    $114141287\",\r\n \"39.281111,-76.581111,N39º16\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:17:22#
    $114141318\",\r\n \"39.281667,-76.582222,N39º16\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:17:32#
    $114141312\",\r\n \"39.283056,-76.584444,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:18:16#
    $114141358\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:18:47#
    $114141411\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:19:03#
    $114141406\",\r\n \"39.284722,-76.588333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:20:22#
    $114141486\",\r\n \"39.284722,-76.588333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:20:22#
    $114141484\",\r\n \"39.284167,-76.598333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:22:12#
    $114141580\",\r\n \"39.284167,-76.598333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:22:16#
    $114141584\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:23:08#
    $114141645\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:23:27#
    $114141682\",\r\n \"39.283889,-76.603333,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:24:12#
    $114141692\",\r\n \"39.283889,-76.603333,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:24:13#
    $114141697\",\r\n \"39.284167,-76.603333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:24:23#
    $114141718\",\r\n \"39.285833,-76.603889,N39º17\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:25:27#
    $114141768\",\r\n \"39.287778,-76.605833,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:26:30#
    $114141840\",\r\n \"39.287778,-76.605833,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:26:37#
    $114141856\",\r\n \"39.287778,-76.609722,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:27:25#
    $114141894\",\r\n \"39.287778,-76.61,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:27:26#
    $114141896\",\r\n \"39.286944,-76.6125,N39º17\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:28:16#
    $114141958\",\r\n \"39.2875,-76.612778,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:28:44#
    $114141962\",\r\n \"39.287778,-76.613056,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:28:49#
    $114141968\",\r\n \"39.284444,-76.613056,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:30:16#
    $114142058\",\r\n \"39.283889,-76.615278,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:30:40#
    $114142081\",\r\n \"39.283889,-76.615833,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:30:57#
    $114142102\",\r\n \"39.283889,-76.617778,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:31:23#
    $114142159\",\r\n \"39.281944,-76.618889,N39º16\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:32:38#
    $114142192\",\r\n \"39.278333,-76.618889,N39º16\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:32:53#
    $114142200\",\r\n \"39.268333,-76.627778,N39º16\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:33:58#
    $114142266\",\r\n \"39.268333,-76.627778,N39º16\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:33:58#
    $114142267\",\r\n \"39.269444,-76.633056,N39º16\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:34:18#
    $114142328\",\r\n \"39.270833,-76.643333,N39º16\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:34:49#
    $114142377\",\r\n \"39.271389,-76.651667,N39º16\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:35:13#
    $114142361\",\r\n \"39.271111,-76.654444,N39º16\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:35:17#
    $114142368\",\r\n \"39.271111,-76.654444,N39º16\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:35:18#
    $114142369\",\r\n \"39.265,-76.668611,N39º15\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:36:06#
    $114142402\",\r\n \"39.265,-76.668611,N39º15\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:36:06#
    $114142404\",\r\n \"39.254444,-76.677778,N39º15\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:36:57#
    $114142485\",\r\n \"39.254444,-76.677778,N39º15\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:36:57#
    $114142447\",\r\n \"39.249722,-76.682222,N39º14\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:37:22#
    $114142481\",\r\n \"39.248889,-76.683056,N39º14\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:37:26#
    $114142491\",\r\n \"39.24,-76.696944,N39º14\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:38:15#
    $114142549\",\r\n \"39.24,-76.6975,N39º14\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:38:16#
    $114142550\",\r\n \"39.239167,-76.702778,N39º14\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:38:30#
    $114142571\",\r\n \"39.239167,-76.702778,N39º14\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:38:30#
    $114142572\",\r\n \"39.238889,-76.703889,N39º14\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:38:33#
    $114142576\",\r\n \"39.237222,-76.707222,N39º14\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:38:44#
    $114142578\",\r\n \"39.226389,-76.716667,N39º13\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:39:29#
    $114142612\",\r\n \"39.225278,-76.7175,N39º13\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:39:34#
    $114142619\",\r\n \"39.222222,-76.721389,N39º13\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:39:48#
    $114142629\",\r\n \"39.214167,-76.733611,N39º12\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:40:33#
    $114142666\",\r\n \"39.213056,-76.735833,N39º12\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:40:39#
    $114142672\",\r\n \"39.210833,-76.740556,N39º12\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:40:54#
    $114142684\",\r\n \"39.207778,-76.746389,N39º12\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:41:15#
    $114142742\",\r\n \"39.204167,-76.753889,N39º12\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:41:40#
    $114142731\",\r\n \"39.203333,-76.755556,N39º12\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:41:45#
    $114142737\",\r\n \"39.199444,-76.763056,N39º11\\\\\\\\'58\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:42:09#
    $114142778\",\r\n \"39.194167,-76.769722,N39º11\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:43:18#
    $114142835\",\r\n \"39.194167,-76.769722,N39º11\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:43:18#
    $114142850\",\r\n \"39.190278,-76.773889,N39º11\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:43:53#
    $114142862\",\r\n \"39.189444,-76.774722,N39º11\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:43:59#
    $114142867\",\r\n \"39.183889,-76.781389,N39º11\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:44:36#
    $114142891\",\r\n \"39.181389,-76.784444,N39º10\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:45:22#
    $114142972\",\r\n \"39.181111,-76.784722,N39º10\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:45:43#
    $114142958\",\r\n \"39.180556,-76.785556,N39º10\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:46:11#
    $114143009\",\r\n \"39.180278,-76.785556,N39º10\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:46:13#
    $114143013\",\r\n \"39.179444,-76.787222,N39º10\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:47:12#
    $114143047\",\r\n \"39.179167,-76.787222,N39º10\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:47:13#
    $114143050\",\r\n \"39.178611,-76.788333,N39º10\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:47:21#
    $114143059\",\r\n \"39.1775,-76.790278,N39º10\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'25\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:47:42#
    $114143081\",\r\n \"39.176389,-76.792222,N39º10\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:48:16#
    $114143097\",\r\n \"39.176111,-76.792778,N39º10\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:48:25#
    $114143106\",\r\n \"39.175278,-76.794444,N39º10\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:48:51#
    $114143116\",\r\n \"39.175,-76.794444,N39º10\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:49:01#
    $114143119\",\r\n \"39.174444,-76.795556,N39º10\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:49:17#
    $114143146\",\r\n \"39.174167,-76.796667,N39º10\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:49:26#
    $114143157\",\r\n \"39.173611,-76.7975,N39º10\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'51\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:49:39#
    $114143193\",\r\n \"39.173333,-76.798056,N39º10\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:49:49#
    $114143184\",\r\n \"39.173333,-76.798333,N39º10\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:49:59#
    $114143194\",\r\n \"39.1725,-76.799722,N39º10\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:50:23#
    $114143227\",\r\n \"39.171944,-76.800833,N39º10\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:50:39#
    $114143243\",\r\n \"39.170278,-76.803611,N39º10\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'13\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:51:15#
    $114143284\",\r\n \"39.169444,-76.804722,N39º10\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:51:29#
    $114143270\",\r\n \"39.169167,-76.805,N39º10\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:51:39#
    $114143280\",\r\n \"39.169167,-76.805278,N39º10\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:51:40#
    $114143283\",\r\n \"39.169167,-76.805278,N39º10\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:51:44#
    $114143288\",\r\n \"39.168889,-76.805556,N39º10\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:51:45#
    $114143290\",\r\n \"39.168333,-76.806389,N39º10\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:52:10#
    $114143309\",\r\n \"39.168056,-76.806944,N39º10\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'25\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:52:20#
    $114143332\",\r\n \"39.164722,-76.8125,N39º9\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:53:16#
    $114143386\",\r\n \"39.163611,-76.814167,N39º9\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'51\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:53:52#
    $114143423\",\r\n \"39.163611,-76.814444,N39º9\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:53:56#
    $114143431\",\r\n \"39.162778,-76.815556,N39º9\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:54:31#
    $114143495\",\r\n \"39.162222,-76.816667,N39º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:54:44#
    $114143468\",\r\n \"39.162222,-76.816667,N39º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:54:54#
    $114143479\",\r\n \"39.161944,-76.816944,N39º9\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:55:03#
    $114143491\",\r\n \"39.160556,-76.820278,N39º9\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:55:49#
    $114143524\",\r\n \"39.160556,-76.820556,N39º9\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:55:50#
    $114143527\",\r\n \"39.160556,-76.821111,N39º9\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:55:59#
    $114143535\",\r\n \"39.160278,-76.821389,N39º9\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:56:07#
    $114143548\",\r\n \"39.159722,-76.824444,N39º9\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:57:02#
    $114143589\",\r\n \"39.159722,-76.824444,N39º9\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:57:02#
    $114143590\",\r\n \"39.159444,-76.825833,N39º9\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:57:21#
    $114143614\",\r\n \"39.157778,-76.831111,N39º9\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:59:00#
    $114143709\",\r\n \"39.157778,-76.831389,N39º9\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:59:10#
    $114143719\",\r\n \"39.1575,-76.831944,N39º9\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:59:21#
    $114143767\",\r\n \"39.156389,-76.834167,N39º9\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:00:06#
    $114143771\",\r\n \"39.155833,-76.835,N39º9\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:00:16#
    $114143780\",\r\n \"39.155833,-76.835278,N39º9\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:00:18#
    $114143782\",\r\n \"39.155556,-76.835556,N39º9\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:00:24#
    $114143785\",\r\n \"39.143611,-76.845,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:01:42#
    $114143888\",\r\n \"39.135556,-76.851944,N39º8\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:02:20#
    $114143908\",\r\n \"39.123889,-76.866389,N39º7\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:03:23#
    $114143965\",\r\n \"39.120278,-76.868611,N39º7\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:03:38#
    $114143993\",\r\n \"39.119444,-76.868889,N39º7\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:03:42#
    $114143995\",\r\n \"39.115,-76.873611,N39º6\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'25\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:04:02#
    $114144034\",\r\n \"39.1125,-76.876667,N39º6\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:04:13#
    $114144042\",\r\n \"39.1075,-76.882778,N39º6\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:04:36#
    $114144036\",\r\n \"39.086944,-76.895556,N39º5\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:05:56#
    $114144136\",\r\n \"39.086944,-76.895556,N39º5\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:05:57#
    $114144137\",\r\n \"39.0825,-76.899167,N39º4\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:06:18#
    $114144166\",\r\n \"39.076667,-76.903611,N39º4\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:06:42#
    $114144165\",\r\n \"39.073889,-76.905556,N39º4\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:06:53#
    $114144175\",\r\n \"39.062778,-76.916389,N39º3\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:07:45#
    $114144218\",\r\n \"39.0625,-76.916667,N39º3\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:07:47#
    $114144220\",\r\n \"39.061667,-76.919167,N39º3\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:07:55#
    $114144224\",\r\n \"39.061389,-76.919444,N39º3\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:07:57#
    $114144228\",\r\n \"39.061111,-76.921111,N39º3\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:08:02#
    $114144236\",\r\n \"39.050833,-76.930556,N39º3\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:08:50#
    $114144273\",\r\n \"39.046389,-76.932778,N39º2\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:09:09#
    $114144297\",\r\n \"39.043611,-76.934444,N39º2\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:09:23#
    $114144324\",\r\n \"39.039167,-76.9375,N39º2\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:09:44#
    $114144371\",\r\n \"39.035833,-76.94,N39º2\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:09:59#
    $114144357\",\r\n \"39.034444,-76.941667,N39º2\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:10:07#
    $114144360\",\r\n \"39.033056,-76.943889,N39º1\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:10:17#
    $114144394\",\r\n \"39.026667,-76.951667,N39º1\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:10:49#
    $114144443\",\r\n \"39.021111,-76.955,N39º1\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:11:13#
    $114144421\",\r\n \"39.018889,-76.975556,N39º1\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:12:23#
    $114144486\",\r\n \"39.019167,-76.976944,N39º1\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:12:26#
    $114144493\",\r\n \"39.019722,-76.983333,N39º1\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:12:48#
    $114144536\",\r\n \"39.017778,-76.993056,N39º1\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:13:22#
    $114144556\",\r\n \"39.017778,-76.993056,N39º1\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:13:23#
    $114144561\",\r\n \"39.015833,-77.0075,N39º0\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:14:20#
    $114144608\",\r\n \"39.016389,-77.01,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:14:29#
    $114144617\",\r\n \"39.016389,-77.011111,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:14:34#
    $114144621\",\r\n \"39.016111,-77.020278,N39º0\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'13\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:15:09#
    $114144686\",\r\n \"39.016667,-77.027222,N39º1\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:15:33#
    $114144673\",\r\n \"39.016667,-77.0275,N39º1\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:15:34#
    $114144676\",\r\n \"39.014722,-77.032222,N39º0\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:15:53#
    $114144689\",\r\n \"39.013611,-77.0525,N39º0\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:17:09#
    $114144759\",\r\n \"39.013611,-77.061944,N39º0\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:17:43#
    $114144807\",\r\n \"39.012778,-77.063056,N39º0\\\\\\\\'46\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:17:48#
    $114144815\",\r\n \"39.01,-77.065278,N39º0\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:18:03#
    $114144844\",\r\n \"39.008056,-77.066944,N39º0\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:18:14#
    $114144853\",\r\n \"39.008056,-77.066944,N39º0\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:18:14#
    $114144836\",\r\n \"39.006667,-77.068889,N39º0\\\\\\\\'24\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:18:24#
    $114144860\",\r\n \"39.005833,-77.074722,N39º0\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:18:48#
    $114144856\",\r\n \"39.005278,-77.080833,N39º0\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:19:08#
    $114144879\",\r\n \"39.005278,-77.080833,N39º0\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'51\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:19:08#
    $114144895\",\r\n \"39.010278,-77.088889,N39º0\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:19:44#
    $114144904\",\r\n \"39.018333,-77.102222,N39º1\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:20:47#
    $114144965\",\r\n \"39.020278,-77.104167,N39º1\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:21:01#
    $114144984\",\r\n \"39.020278,-77.104444,N39º1\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:21:02#
    $114144985\",\r\n \"39.028333,-77.113333,N39º1\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:22:02#
    $114145058\",\r\n \"39.028611,-77.114722,N39º1\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:22:07#
    $114145066\",\r\n \"39.029444,-77.119167,N39º1\\\\\\\\'46\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:22:21#
    $114145080\",\r\n \"39.03,-77.123056,N39º1\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:22:31#
    $114145105\",\r\n \"39.031389,-77.130278,N39º1\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:22:55#
    $114145095\",\r\n \"39.038889,-77.145833,N39º2\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:24:02#
    $114145154\",\r\n \"39.040833,-77.146667,N39º2\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:24:10#
    $114145168\",\r\n \"39.041667,-77.147222,N39º2\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:24:16#
    $114145177\",\r\n \"39.057222,-77.154167,N39º3\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:25:23#
    $114145258\",\r\n \"39.057222,-77.154167,N39º3\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:25:23#
    $114145259\",\r\n \"39.057222,-77.154444,N39º3\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:25:24#
    $114145262\",\r\n \"39.068056,-77.158333,N39º4\\\\\\\\'5\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:26:22#
    $114145305\",\r\n \"39.068333,-77.158333,N39º4\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:26:24#
    $114145307\",\r\n \"39.079444,-77.17,N39º4\\\\\\\\'46\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:27:30#
    $114145356\",\r\n \"39.080556,-77.170833,N39º4\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:27:35#
    $114145363\",\r\n \"39.096944,-77.177222,N39º5\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:28:49#
    $114145464\",\r\n \"39.1075,-77.183889,N39º6\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:29:42#
    $114145499\",\r\n \"39.107778,-77.184167,N39º6\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:29:42#
    $114145498\",\r\n \"39.112222,-77.188889,N39º6\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:30:47#
    $114145549\",\r\n \"39.118889,-77.195833,N39º7\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:31:42#
    $114145593\",\r\n \"39.118889,-77.195833,N39º7\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:31:43#
    $114145595\",\r\n \"39.118889,-77.195833,N39º7\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:31:43#
    $114145596\",\r\n \"39.128889,-77.203611,N39º7\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'13\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:32:23#
    $114145683\",\r\n \"39.1325,-77.206944,N39º7\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:32:38#
    $114145649\",\r\n \"39.1325,-77.206944,N39º7\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:32:38#
    $114145650\",\r\n \"39.135833,-77.209722,N39º8\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:32:55#
    $114145680\",\r\n \"39.14,-77.211944,N39º8\\\\\\\\'24\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:33:16#
    $114145717\",\r\n \"39.141667,-77.210833,N39º8\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:33:40#
    $114145718\",\r\n \"39.141389,-77.210556,N39º8\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:34:03#
    $114145756\",\r\n \"39.140278,-77.211111,N39º8\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:34:34#
    $114145814\",\r\n \"39.140556,-77.214722,N39º8\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:34:58#
    $114145799\",\r\n \"39.140833,-77.215,N39º8\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:34:59#
    $114145804\",\r\n \"39.140833,-77.215,N39º8\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:35:03#
    $114145805\",\r\n \"39.140833,-77.215,N39º8\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:35:04#
    $114145808\",\r\n \"39.144167,-77.216111,N39º8\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:35:55#
    $114145844\",\r\n \"39.143889,-77.215556,N39º8\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:36:04#
    $114145851\",\r\n \"39.143611,-77.215,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:36:08#
    $114145860\",\r\n \"39.142778,-77.215556,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:55:58#
    $114146136\",\r\n \"39.142778,-77.215556,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:56:23#
    $114146165\",\r\n \"39.142778,-77.215278,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:57:51#
    $114146184\",\r\n \"39.142778,-77.215278,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:58:02#
    $114146190\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:45:00#
    $114136029\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:45:19#
    $114136049\",\r\n \"39.147222,-77.218611,N39º8\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:47:20#
    $114136154\",\r\n \"39.147778,-77.218056,N39º8\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:47:26#
    $114136163\",\r\n \"39.148056,-77.2175,N39º8\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:47:30#
    $114136167\",\r\n \"39.148056,-77.2175,N39º8\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:47:30#
    $114136204\",\r\n \"39.148889,-77.216111,N39º8\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:47:40#
    $114136181\",\r\n \"39.148611,-77.215,N39º8\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:47:51#
    $114136205\",\r\n \"39.151667,-77.219167,N39º9\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:48:26#
    $114136231\",\r\n \"39.161944,-77.234167,N39º9\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:49:38#
    $114136295\",\r\n \"39.181944,-77.252222,N39º10\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:51:14#
    $114136419\",\r\n \"39.184167,-77.254444,N39º11\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:51:24#
    $114136385\",\r\n \"39.1875,-77.257222,N39º11\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:51:38#
    $114136410\",\r\n \"39.1875,-77.257222,N39º11\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:51:38#
    $114136412\",\r\n \"39.192222,-77.259722,N39º11\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:51:58#
    $114136456\",\r\n \"39.195,-77.261111,N39º11\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:52:08#
    $114136453\",\r\n \"39.1975,-77.263056,N39º11\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:52:19#
    $114136455\",\r\n \"39.217222,-77.277778,N39º13\\\\\\\\'2\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:53:47#
    $114136534\",\r\n \"39.217222,-77.277778,N39º13\\\\\\\\'2\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:53:47#
    $114136533\",\r\n \"39.217222,-77.277778,N39º13\\\\\\\\'2\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:53:49#
    $114136536\",\r\n \"39.217222,-77.277778,N39º13\\\\\\\\'2\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:53:49#
    $114136538\",\r\n \"39.232778,-77.285556,N39º13\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:54:53#
    $114136597\",\r\n \"39.237222,-77.289167,N39º14\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:55:10#
    $114136612\",\r\n \"39.237222,-77.289444,N39º14\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:55:11#
    $114136616\",\r\n \"39.247778,-77.298889,N39º14\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:56:01#
    $114136673\",\r\n \"39.249444,-77.3,N39º14\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:56:09#
    $114136681\",\r\n \"39.261944,-77.309167,N39º15\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:57:04#
    $114136724\",\r\n \"39.262222,-77.309444,N39º15\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:57:06#
    $114136728\",\r\n \"39.262222,-77.309444,N39º15\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:57:06#
    $114136727\",\r\n \"39.265833,-77.312222,N39º15\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:57:19#
    $114136738\",\r\n \"39.266111,-77.3125,N39º15\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:57:21#
    $114136740\",\r\n \"39.2725,-77.316111,N39º16\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:57:45#
    $114136771\",\r\n \"39.276667,-77.3225,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:58:09#
    $114136782\",\r\n \"39.281667,-77.325,N39º16\\\\\\\\'54\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:58:28#
    $114136801\",\r\n \"39.2825,-77.325556,N39º16\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:58:33#
    $114136809\",\r\n \"39.287222,-77.329167,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:58:53#
    $114136841\",\r\n \"39.289167,-77.331111,N39º17\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:59:04#
    $114136895\",\r\n \"39.295833,-77.333889,N39º17\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:59:32#
    $114136879\",\r\n \"39.296389,-77.334444,N39º17\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:59:36#
    $114136896\",\r\n \"39.304167,-77.339722,N39º18\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:00:07#
    $114136941\",\r\n \"39.309167,-77.346667,N39º18\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:00:36#
    $114136942\",\r\n \"39.31,-77.347778,N39º18\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:00:40#
    $114136950\",\r\n \"39.31,-77.347778,N39º18\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:00:41#
    $114136960\",\r\n \"39.321111,-77.353889,N39º19\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:01:36#
    $114136989\",\r\n \"39.326667,-77.367778,N39º19\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:02:30#
    $114137026\",\r\n \"39.329722,-77.371667,N39º19\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:02:47#
    $114137059\",\r\n \"39.338611,-77.381944,N39º20\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:03:36#
    $114137120\",\r\n \"39.342778,-77.385833,N39º20\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:03:54#
    $114137139\",\r\n \"39.346944,-77.389444,N39º20\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:04:15#
    $114137145\",\r\n \"39.349444,-77.391389,N39º20\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'29\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:04:26#
    $114137173\",\r\n \"39.355,-77.394167,N39º21\\\\\\\\'18\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:04:49#
    $114137174\",\r\n \"39.357222,-77.395278,N39º21\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:04:58#
    $114137182\",\r\n \"39.360556,-77.397222,N39º21\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:05:14#
    $114137193\",\r\n \"39.365278,-77.4,N39º21\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:05:34#
    $114137215\",\r\n \"39.3725,-77.404167,N39º22\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:06:05#
    $114137238\",\r\n \"39.3775,-77.406389,N39º22\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:06:30#
    $114137282\",\r\n \"39.3825,-77.41,N39º22\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:06:55#
    $114137287\",\r\n \"39.385,-77.412222,N39º23\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:07:09#
    $114137312\",\r\n \"39.385833,-77.413056,N39º23\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:07:14#
    $114137319\",\r\n \"39.391944,-77.418333,N39º23\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º25\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:07:45#
    $114137365\",\r\n \"39.400556,-77.405833,N39º24\\\\\\\\'2\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:08:55#
    $114137419\",\r\n \"39.404444,-77.3875,N39º24\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:09:50#
    $114137441\",\r\n \"39.403611,-77.377222,N39º24\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:10:19#
    $114137460\",\r\n \"39.404167,-77.359444,N39º24\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:11:04#
    $114137519\",\r\n \"39.404167,-77.349167,N39º24\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:11:29#
    $114137559\",\r\n \"39.390278,-77.319444,N39º23\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:13:07#
    $114137624\",\r\n \"39.39,-77.318056,N39º23\\\\\\\\'24\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:13:12#
    $114137630\",\r\n \"39.385278,-77.295556,N39º23\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:14:11#
    $114137675\",\r\n \"39.385278,-77.295278,N39º23\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:14:12#
    $114137681\",\r\n \"39.384167,-77.289722,N39º23\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:14:26#
    $114137709\",\r\n \"39.383333,-77.285556,N39º23\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:14:36#
    $114137712\",\r\n \"39.380278,-77.273333,N39º22\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:15:09#
    $114137748\",\r\n \"39.380278,-77.273333,N39º22\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:15:09#
    $114137747\",\r\n \"39.380278,-77.271667,N39º22\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:15:13#
    $114137758\",\r\n \"39.380556,-77.271389,N39º22\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:15:15#
    $114137764\",\r\n \"39.380556,-77.269722,N39º22\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:15:19#
    $114137785\",\r\n \"39.38,-77.253056,N39º22\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:16:04#
    $114137791\",\r\n \"39.379167,-77.249722,N39º22\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:16:14#
    $114137803\",\r\n \"39.378611,-77.246389,N39º22\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:16:24#
    $114137827\",\r\n \"39.378611,-77.246389,N39º22\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:16:24#
    $114137836\",\r\n \"39.377778,-77.243056,N39º22\\\\\\\\'40\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:16:34#
    $114137843\",\r\n \"39.376389,-77.236389,N39º22\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:16:55#
    $114137866\",\r\n \"39.375278,-77.231389,N39º22\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:17:10#
    $114137853\",\r\n \"39.374444,-77.228333,N39º22\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'42\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:17:20#
    $114137870\",\r\n \"39.374167,-77.2275,N39º22\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:17:23#
    $114137878\",\r\n \"39.373611,-77.226111,N39º22\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:17:27#
    $114137883\",\r\n \"39.370278,-77.220556,N39º22\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:17:48#
    $114137889\",\r\n \"39.37,-77.203333,N39º22\\\\\\\\'12\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:18:43#
    $114137971\",\r\n \"39.37,-77.203333,N39º22\\\\\\\\'12\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:18:43#
    $114137953\",\r\n \"39.365278,-77.1875,N39º21\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:19:33#
    $114138012\",\r\n \"39.359167,-77.165556,N39º21\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:20:38#
    $114138061\",\r\n \"39.359167,-77.165278,N39º21\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:20:39#
    $114138068\",\r\n \"39.358056,-77.141111,N39º21\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:21:44#
    $114138117\",\r\n \"39.353611,-77.13,N39º21\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:22:19#
    $114138191\",\r\n \"39.353056,-77.121111,N39º21\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:22:43#
    $114138185\",\r\n \"39.352778,-77.120833,N39º21\\\\\\\\'10\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:22:43#
    $114138187\",\r\n \"39.353056,-77.121111,N39º21\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:22:43#
    $114138186\",\r\n \"39.352222,-77.118333,N39º21\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:22:50#
    $114138198\",\r\n \"39.350278,-77.109444,N39º21\\\\\\\\'1\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'34\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:23:15#
    $114138234\",\r\n \"39.348333,-77.101111,N39º20\\\\\\\\'54\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:23:41#
    $114138240\",\r\n \"39.347778,-77.096111,N39º20\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:23:57#
    $114138251\",\r\n \"39.3475,-77.094444,N39º20\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:24:01#
    $114138259\",\r\n \"39.343611,-77.075278,N39º20\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'31\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:24:58#
    $114138297\",\r\n \"39.342778,-77.072778,N39º20\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:25:06#
    $114138313\",\r\n \"39.340833,-77.065833,N39º20\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:25:27#
    $114138330\",\r\n \"39.337778,-77.053611,N39º20\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:26:01#
    $114138361\",\r\n \"39.3375,-77.051944,N39º20\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:26:06#
    $114138372\",\r\n \"39.336944,-77.047222,N39º20\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:26:20#
    $114138428\",\r\n \"39.333889,-77.035556,N39º20\\\\\\\\'2\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:26:55#
    $114138421\",\r\n \"39.3325,-77.0325,N39º19\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:27:05#
    $114138439\",\r\n \"39.331111,-77.028889,N39º19\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:27:15#
    $114138461\",\r\n \"39.325556,-77.013611,N39º19\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:28:02#
    $114138479\",\r\n \"39.324444,-77.010833,N39º19\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:28:11#
    $114138500\",\r\n \"39.323056,-77.007222,N39º19\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:28:21#
    $114138511\",\r\n \"39.322222,-77.003889,N39º19\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:28:32#
    $114138516\",\r\n \"39.321111,-76.991667,N39º19\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:29:06#
    $114138541\",\r\n \"39.320278,-76.988333,N39º19\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:29:16#
    $114138552\",\r\n \"39.32,-76.988056,N39º19\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:29:16#
    $114138550\",\r\n \"39.32,-76.9875,N39º19\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:29:17#
    $114138553\",\r\n \"39.319167,-76.985,N39º19\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:29:26#
    $114138563\",\r\n \"39.316944,-76.978056,N39º19\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:29:47#
    $114138570\",\r\n \"39.312778,-76.966944,N39º18\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:30:21#
    $114138614\",\r\n \"39.311389,-76.964444,N39º18\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:30:30#
    $114138633\",\r\n \"39.311111,-76.963056,N39º18\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:30:33#
    $114138642\",\r\n \"39.311111,-76.963056,N39º18\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:30:34#
    $114138641\",\r\n \"39.308889,-76.956111,N39º18\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:30:54#
    $114138659\",\r\n \"39.308611,-76.9525,N39º18\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:31:05#
    $114138672\",\r\n \"39.307778,-76.944167,N39º18\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:31:28#
    $114138688\",\r\n \"39.305,-76.918611,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:32:41#
    $114138748\",\r\n \"39.301944,-76.907222,N39º18\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:33:15#
    $114138777\",\r\n \"39.302778,-76.902222,N39º18\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:33:29#
    $114138781\",\r\n \"39.303889,-76.898889,N39º18\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:33:39#
    $114138791\",\r\n \"39.304167,-76.897222,N39º18\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:33:44#
    $114138801\",\r\n \"39.304444,-76.896111,N39º18\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:33:48#
    $114138807\",\r\n \"39.305278,-76.891944,N39º18\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'31\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:33:57#
    $114138904\",\r\n \"39.303333,-76.876944,N39º18\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:34:41#
    $114138870\",\r\n \"39.298611,-76.865833,N39º17\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:35:16#
    $114138908\",\r\n \"39.295833,-76.854444,N39º17\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:35:50#
    $114138928\",\r\n \"39.295833,-76.854444,N39º17\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:35:50#
    $114138929\",\r\n \"39.296111,-76.835278,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:36:45#
    $114138972\",\r\n \"39.296111,-76.831944,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:36:55#
    $114138990\",\r\n \"39.296667,-76.809444,N39º17\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'34\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:38:00#
    $114139058\",\r\n \"39.2975,-76.806389,N39º17\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:38:09#
    $114139068\",\r\n \"39.306944,-76.781667,N39º18\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:39:36#
    $114139144\",\r\n \"39.306667,-76.769167,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:40:15#
    $114139184\",\r\n \"39.306944,-76.7675,N39º18\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:40:19#
    $114139234\",\r\n \"39.307222,-76.764444,N39º18\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:40:30#
    $114139227\",\r\n \"39.3075,-76.761389,N39º18\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:40:40#
    $114139199\",\r\n \"39.307222,-76.754444,N39º18\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:41:04#
    $114139221\",\r\n \"39.305556,-76.75,N39º18\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:41:56#
    $114139314\",\r\n \"39.305278,-76.749167,N39º18\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:42:09#
    $114139294\",\r\n \"39.304722,-76.748333,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:42:29#
    $114139325\",\r\n \"39.304722,-76.748333,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:42:29#
    $114139338\",\r\n \"39.304722,-76.746667,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:43:14#
    $114139357\",\r\n \"39.304722,-76.746111,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:43:30#
    $114139375\",\r\n \"39.305,-76.745,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:43:44#
    $114139384\",\r\n \"39.305,-76.745,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'42\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:43:44#
    $114139401\",\r\n \"39.308889,-76.743056,N39º18\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:44:19#
    $114139408\",\r\n \"39.316389,-76.744444,N39º18\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:44:50#
    $114139472\",\r\n \"39.318611,-76.744444,N39º19\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:45:00#
    $114139476\",\r\n \"39.321389,-76.744444,N39º19\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:45:11#
    $114139514\",\r\n \"39.328611,-76.744444,N39º19\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:45:40#
    $114139497\",\r\n \"39.334722,-76.744444,N39º20\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:46:06#
    $114139524\",\r\n \"39.345833,-76.745,N39º20\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:46:49#
    $114139586\",\r\n \"39.351111,-76.745556,N39º21\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:47:09#
    $114139591\",\r\n \"39.361111,-76.746389,N39º21\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:47:45#
    $114139620\",\r\n \"39.363889,-76.746944,N39º21\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:47:54#
    $114139631\",\r\n \"39.380833,-76.739444,N39º22\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:49:04#
    $114139685\",\r\n \"39.381389,-76.737778,N39º22\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:49:09#
    $114139702\",\r\n \"39.385278,-76.732778,N39º23\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:49:30#
    $114139737\",\r\n \"39.386944,-76.730556,N39º23\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:49:40#
    $114139749\",\r\n \"39.389722,-76.721111,N39º23\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:50:10#
    $114139765\",\r\n \"39.397778,-76.683889,N39º23\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:52:13#
    $114139866\",\r\n \"39.409722,-76.665278,N39º24\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:53:24#
    $114139928\",\r\n \"39.414167,-76.660556,N39º24\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:53:50#
    $114139997\",\r\n \"39.419444,-76.651944,N39º25\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:54:23#
    $114140002\",\r\n \"39.419722,-76.651667,N39º25\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:54:24#
    $114140003\",\r\n \"39.419722,-76.651389,N39º25\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:54:25#
    $114140005\",\r\n \"39.420556,-76.644167,N39º25\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:54:47#
    $114140021\",\r\n \"39.417222,-76.630278,N39º25\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:55:31#
    $114140053\",\r\n \"39.416389,-76.628611,N39º24\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:55:36#
    $114140063\",\r\n \"39.416111,-76.6275,N39º24\\\\\\\\'58\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:55:40#
    $114140091\",\r\n \"39.413611,-76.621944,N39º24\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:56:01#
    $114140089\",\r\n \"39.412778,-76.619444,N39º24\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:56:11#
    $114140134\",\r\n \"39.412778,-76.619444,N39º24\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:56:11#
    $114140092\",\r\n \"39.412778,-76.615278,N39º24\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:56:25#
    $114140095\",\r\n \"39.413333,-76.613056,N39º24\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:56:35#
    $114140103\",\r\n \"39.413611,-76.6125,N39º24\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:56:36#
    $114140110\",\r\n \"39.413611,-76.611667,N39º24\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:56:39#
    $114140115\",\r\n \"39.413611,-76.610278,N39º24\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:56:45#
    $114140125\",\r\n \"39.412778,-76.601389,N39º24\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:57:16#
    $114140184\",\r\n \"39.413889,-76.593333,N39º24\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:57:41#
    $114140176\",\r\n \"39.414167,-76.592778,N39º24\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:57:44#
    $114140181\",\r\n \"39.412778,-76.584722,N39º24\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:58:09#
    $114140222\",\r\n \"39.411389,-76.582222,N39º24\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:58:20#
    $114140244\",\r\n \"39.408889,-76.578889,N39º24\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:58:33#
    $114140240\",\r\n \"39.4075,-76.576944,N39º24\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:58:43#
    $114140256\",\r\n \"39.406667,-76.575833,N39º24\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:58:48#
    $114140264\",\r\n \"39.406111,-76.575,N39º24\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:58:52#
    $114140268\",\r\n \"39.377778,-76.519444,N39º22\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:02:36#
    $114140469\",\r\n \"39.377778,-76.519444,N39º22\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:02:36#
    $114140483\",\r\n \"39.375,-76.518611,N39º22\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:02:46#
    $114140481\",\r\n \"39.371667,-76.516389,N39º22\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:03:00#
    $114140484\",\r\n \"39.368611,-76.5125,N39º22\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:03:16#
    $114140500\",\r\n \"39.368056,-76.511667,N39º22\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:03:20#
    $114140506\",\r\n \"39.366389,-76.509722,N39º21\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:03:31#
    $114140535\",\r\n \"39.356389,-76.502222,N39º21\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:04:21#
    $114140556\",\r\n \"39.355556,-76.501667,N39º21\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:04:24#
    $114140578\",\r\n \"39.353333,-76.5,N39º21\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:04:35#
    $114140586\",\r\n \"39.351111,-76.499444,N39º21\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º29\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:04:45#
    $114140607\",\r\n \"39.345833,-76.507778,N39º20\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:05:20#
    $114140612\",\r\n \"39.344444,-76.510278,N39º20\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:05:30#
    $114140625\",\r\n \"39.331389,-76.520833,N39º19\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:06:25#
    $114140686\",\r\n \"39.331389,-76.520833,N39º19\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:06:25#
    $114140685\",\r\n \"39.33,-76.5225,N39º19\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:06:32#
    $114140697\",\r\n \"39.315278,-76.533611,N39º18\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:07:37#
    $114140755\",\r\n \"39.303889,-76.530556,N39º18\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:08:25#
    $114140779\",\r\n \"39.303889,-76.530556,N39º18\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:08:25#
    $114140778\",\r\n \"39.299722,-76.530556,N39º17\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:08:42#
    $114140807\",\r\n \"39.290278,-76.5325,N39º17\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:09:21#
    $114140840\",\r\n \"39.2875,-76.533333,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:09:31#
    $114140861\",\r\n \"39.275556,-76.551944,N39º16\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:10:55#
    $114140950\",\r\n \"39.268889,-76.559722,N39º16\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:11:31#
    $114140979\",\r\n \"39.267222,-76.562222,N39º16\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:11:45#
    $114140993\",\r\n \"39.266944,-76.5625,N39º16\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:11:49#
    $114140996\",\r\n \"39.262778,-76.568056,N39º15\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:12:35#
    $114141030\",\r\n \"39.263889,-76.568333,N39º15\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:12:44#
    $114141034\",\r\n \"39.264444,-76.568333,N39º15\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:12:49#
    $114141040\",\r\n \"39.264722,-76.568333,N39º15\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:12:50#
    $114141045\",\r\n \"39.267222,-76.568611,N39º16\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:13:04#
    $114141070\",\r\n \"39.2725,-76.568889,N39º16\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:13:39#
    $114141080\",\r\n \"39.273889,-76.568889,N39º16\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:13:50#
    $114141090\",\r\n \"39.274444,-76.569167,N39º16\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:13:54#
    $114141095\",\r\n \"39.276111,-76.569167,N39º16\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:14:08#
    $114141137\",\r\n \"39.276111,-76.569167,N39º16\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:14:08#
    $114141108\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:14:18#
    $114141155\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:14:28#
    $114141134\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:14:58#
    $114141175\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:15:47#
    $114141213\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:15:57#
    $114141221\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:15:58#
    $114141222\",\r\n \"39.277778,-76.573889,N39º16\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'26\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:16:17#
    $114141267\",\r\n \"39.278333,-76.575556,N39º16\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:16:27#
    $114141257\",\r\n \"39.280556,-76.580278,N39º16\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:17:01#
    $114141277\",\r\n \"39.280833,-76.580556,N39º16\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:17:11#
    $114141290\",\r\n \"39.283056,-76.584444,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:18:11#
    $114141345\",\r\n \"39.283056,-76.584444,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:18:12#
    $114141343\",\r\n \"39.283056,-76.584444,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:18:16#
    $114141380\",\r\n \"39.283056,-76.584444,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:18:26#
    $114141369\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:19:18#
    $114141427\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:19:18#
    $114141425\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:19:21#
    $114141433\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:19:21#
    $114141432\",\r\n \"39.284722,-76.588333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:20:18#
    $114141471\",\r\n \"39.284444,-76.593056,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:21:13#
    $114141522\",\r\n \"39.284444,-76.593333,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:21:14#
    $114141524\",\r\n \"39.284444,-76.593611,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:21:18#
    $114141529\",\r\n \"39.284167,-76.598056,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:22:04#
    $114141565\",\r\n \"39.284167,-76.598333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:22:17#
    $114141585\",\r\n \"39.284167,-76.598333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:22:18#
    $114141590\",\r\n \"39.283889,-76.600556,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:22:42#
    $114141624\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:23:22#
    $114141667\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:23:23#
    $114141672\",\r\n \"39.283889,-76.603333,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:24:12#
    $114141693\",\r\n \"39.284167,-76.603333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:24:27#
    $114141722\",\r\n \"39.285833,-76.603889,N39º17\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:25:17#
    $114141756\",\r\n \"39.285833,-76.603889,N39º17\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:25:26#
    $114141765\",\r\n \"39.285833,-76.603889,N39º17\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:25:27#
    $114141769\",\r\n \"39.286389,-76.604167,N39º17\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:25:35#
    $114141778\",\r\n \"39.287222,-76.604722,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'17\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:25:56#
    $114141829\",\r\n \"39.287778,-76.605556,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:26:22#
    $114141823\",\r\n \"39.287778,-76.605833,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:26:30#
    $114141841\",\r\n \"39.287778,-76.605833,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:26:50#
    $114141886\",\r\n \"39.287778,-76.606667,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:27:01#
    $114141912\",\r\n \"39.287778,-76.609722,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:27:25#
    $114141893\",\r\n \"39.2875,-76.611389,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:27:45#
    $114141928\",\r\n \"39.286944,-76.6125,N39º17\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:27:55#
    $114141943\",\r\n \"39.286944,-76.6125,N39º17\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:28:06#
    $114141927\",\r\n \"39.287222,-76.6125,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:28:40#
    $114141957\",\r\n \"39.287778,-76.612778,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:28:46#
    $114141963\",\r\n \"39.286111,-76.613056,N39º17\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:29:45#
    $114142016\",\r\n \"39.285556,-76.613333,N39º17\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:29:50#
    $114142027\",\r\n \"39.285556,-76.613333,N39º17\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:29:51#
    $114142026\",\r\n \"39.284444,-76.613056,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:30:16#
    $114142090\",\r\n \"39.283889,-76.615833,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:30:50#
    $114142092\",\r\n \"39.283889,-76.615833,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:30:58#
    $114142103\",\r\n \"39.283889,-76.616111,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:31:02#
    $114142110\",\r\n \"39.283889,-76.616111,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:31:03#
    $114142111\",\r\n \"39.283889,-76.616111,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:31:03#
    $114142135\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:32:01#
    $114142160\",\r\n \"39.278889,-76.618889,N39º16\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:32:51#
    $114142195\",\r\n \"39.276667,-76.619722,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:33:01#
    $114142209\",\r\n \"39.268333,-76.624722,N39º16\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:33:44#
    $114142256\",\r\n \"39.268889,-76.630833,N39º16\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:34:10#
    $114142288\",\r\n \"39.269444,-76.633056,N39º16\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:34:18#
    $114142312\",\r\n \"39.270278,-76.639722,N39º16\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:34:38#
    $114142324\",\r\n \"39.271111,-76.654444,N39º16\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:35:18#
    $114142366\",\r\n \"39.268333,-76.661389,N39º16\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:35:42#
    $114142380\",\r\n \"39.263611,-76.671389,N39º15\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:36:16#
    $114142415\",\r\n \"39.258889,-76.674722,N39º15\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:36:36#
    $114142443\",\r\n \"39.251944,-76.68,N39º15\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:37:11#
    $114142461\",\r\n \"39.251389,-76.680278,N39º15\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:37:12#
    $114142469\",\r\n \"39.248611,-76.683333,N39º14\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:37:26#
    $114142494\",\r\n \"39.229167,-76.714722,N39º13\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:39:19#
    $114142604\",\r\n \"39.22,-76.724167,N39º13\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'27\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:39:59#
    $114142656\",\r\n \"39.213056,-76.735833,N39º12\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:40:39#
    $114142674\",\r\n \"39.2125,-76.737222,N39º12\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:40:43#
    $114142716\",\r\n \"39.205278,-76.751111,N39º12\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:41:30#
    $114142719\",\r\n \"39.191944,-76.772222,N39º11\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:43:42#
    $114142845\",\r\n \"39.189444,-76.774722,N39º11\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:43:58#
    $114142865\",\r\n \"39.189444,-76.774722,N39º11\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:43:59#
    $114142866\",\r\n \"39.188889,-76.775556,N39º11\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:44:03#
    $114142882\",\r\n \"39.187222,-76.777222,N39º11\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:44:15#
    $114142886\",\r\n \"39.181667,-76.783889,N39º10\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:44:59#
    $114142913\",\r\n \"39.181667,-76.783889,N39º10\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'2\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:45:01#
    $114142916\",\r\n \"39.180556,-76.785556,N39º10\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:46:08#
    $114143006\",\r\n \"39.180556,-76.785556,N39º10\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:46:08#
    $114143004\",\r\n \"39.18,-76.786111,N39º10\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:46:27#
    $114143023\",\r\n \"39.179444,-76.787222,N39º10\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:47:12#
    $114143048\",\r\n \"39.176389,-76.792222,N39º10\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:48:16#
    $114143092\",\r\n \"39.174444,-76.795556,N39º10\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:49:16#
    $114143145\",\r\n \"39.174444,-76.795556,N39º10\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:49:17#
    $114143147\",\r\n \"39.174167,-76.796389,N39º10\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:49:26#
    $114143158\",\r\n \"39.173611,-76.797222,N39º10\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:49:35#
    $114143166\",\r\n \"39.173611,-76.7975,N39º10\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:49:38#
    $114143170\",\r\n \"39.172222,-76.800278,N39º10\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:50:33#
    $114143234\",\r\n \"39.171944,-76.800556,N39º10\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:50:35#
    $114143238\",\r\n \"39.171667,-76.801111,N39º10\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:50:44#
    $114143249\",\r\n \"39.168889,-76.805833,N39º10\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:51:59#
    $114143307\",\r\n \"39.166389,-76.809722,N39º9\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:52:44#
    $114143335\",\r\n \"39.166389,-76.809722,N39º9\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:52:45#
    $114143337\",\r\n \"39.165833,-76.810556,N39º9\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:52:49#
    $114143347\",\r\n \"39.165,-76.811944,N39º9\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:53:06#
    $114143362\",\r\n \"39.164722,-76.8125,N39º9\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:53:27#
    $114143375\",\r\n \"39.164444,-76.813056,N39º9\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:53:40#
    $114143390\",\r\n \"39.163611,-76.814444,N39º9\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:53:56#
    $114143428\",\r\n \"39.163333,-76.814444,N39º9\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:54:00#
    $114143436\",\r\n \"39.162222,-76.816667,N39º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:54:54#
    $114143480\",\r\n \"39.162222,-76.816667,N39º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:54:55#
    $114143481\",\r\n \"39.161667,-76.817778,N39º9\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:55:14#
    $114143509\",\r\n \"39.160556,-76.821111,N39º9\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:55:58#
    $114143533\",\r\n \"39.159722,-76.824444,N39º9\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:57:02#
    $114143591\",\r\n \"39.159444,-76.825,N39º9\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:57:11#
    $114143605\",\r\n \"39.159167,-76.826667,N39º9\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:57:32#
    $114143673\",\r\n \"39.158611,-76.828611,N39º9\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:58:11#
    $114143677\",\r\n \"39.158611,-76.829167,N39º9\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:58:25#
    $114143711\",\r\n \"39.157222,-76.8325,N39º9\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:59:32#
    $114143745\",\r\n \"39.157222,-76.8325,N39º9\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:59:32#
    $114143769\",\r\n \"39.157222,-76.832778,N39º9\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:59:42#
    $114143821\",\r\n \"39.157222,-76.832778,N39º9\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:59:42#
    $114143761\",\r\n \"39.156944,-76.833056,N39º9\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:59:53#
    $114143798\",\r\n \"39.151667,-76.839444,N39º9\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:00:58#
    $114143823\",\r\n \"39.146667,-76.842778,N39º8\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:01:27#
    $114143852\",\r\n \"39.146667,-76.843056,N39º8\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:01:28#
    $114143854\",\r\n \"39.145833,-76.843611,N39º8\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:01:32#
    $114143862\",\r\n \"39.134444,-76.853889,N39º8\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:02:27#
    $114143917\",\r\n \"39.133889,-76.855833,N39º8\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:02:33#
    $114143929\",\r\n \"39.123889,-76.866389,N39º7\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:03:23#
    $114143964\",\r\n \"39.109444,-76.880278,N39º6\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:04:26#
    $114144015\",\r\n \"39.102778,-76.888611,N39º6\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:04:59#
    $114144082\",\r\n \"39.099722,-76.889722,N39º5\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:05:10#
    $114144069\",\r\n \"39.09,-76.893333,N39º5\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:05:44#
    $114144119\",\r\n \"39.089722,-76.893611,N39º5\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:05:45#
    $114144123\",\r\n \"39.087778,-76.895,N39º5\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:05:52#
    $114144126\",\r\n \"39.087778,-76.895,N39º5\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:05:53#
    $114144134\",\r\n \"39.073056,-76.905833,N39º4\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:06:56#
    $114144178\",\r\n \"39.071944,-76.906667,N39º4\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:07:00#
    $114144201\",\r\n \"39.066944,-76.910278,N39º4\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:07:21#
    $114144197\",\r\n \"39.061667,-76.919167,N39º3\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:07:55#
    $114144226\",\r\n \"39.033056,-76.943889,N39º1\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:10:17#
    $114144379\",\r\n \"39.020556,-76.956111,N39º1\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:11:17#
    $114144425\",\r\n \"39.020278,-76.9575,N39º1\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:11:22#
    $114144435\",\r\n \"39.019444,-76.960278,N39º1\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:11:32#
    $114144447\",\r\n \"39.018889,-76.963889,N39º1\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:11:43#
    $114144449\",\r\n \"39.018333,-76.970833,N39º1\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:12:07#
    $114144456\",\r\n \"39.018611,-76.973611,N39º1\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:12:17#
    $114144469\",\r\n \"39.019722,-76.980278,N39º1\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:12:37#
    $114144498\",\r\n \"39.019444,-76.986667,N39º1\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:12:58#
    $114144515\",\r\n \"39.017778,-76.993056,N39º1\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:13:23#
    $114144560\",\r\n \"39.0175,-76.994444,N39º1\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:13:28#
    $114144565\",\r\n \"39.0175,-76.994444,N39º1\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:13:28#
    $114144566\",\r\n \"39.0175,-76.994722,N39º1\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:13:29#
    $114144567\",\r\n \"39.015556,-77.001389,N39º0\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:13:54#
    $114144585\",\r\n \"39.015278,-77.003889,N39º0\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:14:05#
    $114144586\",\r\n \"39.015833,-77.007222,N39º0\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:14:18#
    $114144598\",\r\n \"39.015833,-77.0075,N39º0\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:14:20#
    $114144610\",\r\n \"39.016389,-77.011389,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:14:34#
    $114144622\",\r\n \"39.016111,-77.014722,N39º0\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:14:48#
    $114144631\",\r\n \"39.016667,-77.028333,N39º1\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:15:37#
    $114144678\",\r\n \"39.013611,-77.034722,N39º0\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:16:03#
    $114144733\",\r\n \"39.013333,-77.038056,N39º0\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'17\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:16:14#
    $114144742\",\r\n \"39.013333,-77.045833,N39º0\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:16:43#
    $114144734\",\r\n \"39.013611,-77.05,N39º0\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:16:59#
    $114144792\",\r\n \"39.013611,-77.0525,N39º0\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:17:09#
    $114144786\",\r\n \"39.013611,-77.062222,N39º0\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:17:45#
    $114144810\",\r\n \"39.0125,-77.063056,N39º0\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:17:49#
    $114144818\",\r\n \"39.005556,-77.076389,N39º0\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:18:53#
    $114144861\",\r\n \"39.011389,-77.091667,N39º0\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:19:57#
    $114144915\",\r\n \"39.011667,-77.092222,N39º0\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:19:58#
    $114144918\",\r\n \"39.012222,-77.093056,N39º0\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:20:02#
    $114144956\",\r\n \"39.018611,-77.102222,N39º1\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:20:49#
    $114144968\",\r\n \"39.019722,-77.103889,N39º1\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:20:58#
    $114144975\",\r\n \"39.022778,-77.106667,N39º1\\\\\\\\'22\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:21:27#
    $114145027\",\r\n \"39.026667,-77.110278,N39º1\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:21:51#
    $114145042\",\r\n \"39.026667,-77.110278,N39º1\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:21:51#
    $114145040\",\r\n \"39.028611,-77.114722,N39º1\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:22:07#
    $114145064\",\r\n \"39.031944,-77.133056,N39º1\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:23:05#
    $114145109\",\r\n \"39.031944,-77.133889,N39º1\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:23:07#
    $114145120\",\r\n \"39.032222,-77.135278,N39º1\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:23:11#
    $114145125\",\r\n \"39.032222,-77.135278,N39º1\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:23:11#
    $114145126\",\r\n \"39.040833,-77.146944,N39º2\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'49\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:24:11#
    $114145173\",\r\n \"39.041944,-77.1475,N39º2\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:24:17#
    $114145179\",\r\n \"39.044722,-77.148889,N39º2\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:24:32#
    $114145193\",\r\n \"39.053333,-77.152778,N39º3\\\\\\\\'12\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:25:07#
    $114145225\",\r\n \"39.055833,-77.153889,N39º3\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:25:17#
    $114145247\",\r\n \"39.055833,-77.153889,N39º3\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:25:17#
    $114145248\",\r\n \"39.055833,-77.153889,N39º3\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:25:18#
    $114145250\",\r\n \"39.060556,-77.155278,N39º3\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:25:38#
    $114145281\",\r\n \"39.060556,-77.155278,N39º3\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:25:38#
    $114145271\",\r\n \"39.063889,-77.156111,N39º3\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:25:59#
    $114145280\",\r\n \"39.066667,-77.157222,N39º4\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:26:14#
    $114145300\",\r\n \"39.08,-77.170278,N39º4\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:27:31#
    $114145358\",\r\n \"39.091111,-77.175,N39º5\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:28:20#
    $114145396\",\r\n \"39.091111,-77.175,N39º5\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:28:20#
    $114145395\",\r\n \"39.091389,-77.175,N39º5\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:28:22#
    $114145397\",\r\n \"39.101667,-77.179444,N39º6\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:29:10#
    $114145466\",\r\n \"39.106389,-77.182778,N39º6\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:29:35#
    $114145489\",\r\n \"39.106944,-77.183333,N39º6\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:29:38#
    $114145492\",\r\n \"39.111667,-77.188333,N39º6\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:30:37#
    $114145535\",\r\n \"39.113056,-77.189722,N39º6\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:30:57#
    $114145562\",\r\n \"39.114167,-77.190833,N39º6\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:31:08#
    $114145576\",\r\n \"39.118889,-77.195833,N39º7\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:31:42#
    $114145594\",\r\n \"39.120833,-77.1975,N39º7\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:31:51#
    $114145611\",\r\n \"39.121111,-77.197778,N39º7\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:31:52#
    $114145610\",\r\n \"39.128889,-77.203611,N39º7\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:32:23#
    $114145636\",\r\n \"39.134167,-77.208333,N39º8\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:32:47#
    $114145652\",\r\n \"39.141389,-77.210556,N39º8\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:33:50#
    $114145731\",\r\n \"39.141389,-77.210556,N39º8\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:33:59#
    $114145751\",\r\n \"39.141667,-77.2175,N39º8\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:35:29#
    $114145820\",\r\n \"39.143889,-77.215556,N39º8\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:36:03#
    $114145852\",\r\n \"39.143889,-77.215556,N39º8\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:36:04#
    $114145853\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:36:24#
    $114145888\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:36:34#
    $114145887\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:36:58#
    $114145908\",\r\n \"39.284444,-76.591111,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD-ERROR^US207Dev1#DriveTest#DUMMY#2023-10-05 14:20:56#
    $114141504\",\r\n \"39.075833,-77.166944,N39º4\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD-ERROR^US207Dev1#DriveTest#DUMMY#2023-10-05 15:27:12#
    $114145346\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:45:00#
    $114136031\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:45:15#
    $114136045\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:45:20#
    $114136048\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:45:30#
    $114136056\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:45:41#
    $114136064\",\r\n \"39.143889,-77.215278,N39º8\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:46:14#
    $114136093\",\r\n \"39.144722,-77.218333,N39º8\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:46:46#
    $114136140\",\r\n \"39.146389,-77.219167,N39º8\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:47:10#
    $114136142\",\r\n \"39.147222,-77.218611,N39º8\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:47:20#
    $114136155\",\r\n \"39.147222,-77.218611,N39º8\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:47:22#
    $114136157\",\r\n \"39.152222,-77.219722,N39º9\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:48:30#
    $114136236\",\r\n \"39.154167,-77.222222,N39º9\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:48:44#
    $114136276\",\r\n \"39.159444,-77.229722,N39º9\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:49:19#
    $114136268\",\r\n \"39.159444,-77.229722,N39º9\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:49:19#
    $114136270\",\r\n \"39.159722,-77.23,N39º9\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:49:20#
    $114136273\",\r\n \"39.160833,-77.2325,N39º9\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:49:30#
    $114136282\",\r\n \"39.170278,-77.243611,N39º10\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:50:28#
    $114136330\",\r\n \"39.173333,-77.245278,N39º10\\\\\\\\'24\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:50:39#
    $114136346\",\r\n \"39.184167,-77.254444,N39º11\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:51:24#
    $114136445\",\r\n \"39.191111,-77.259167,N39º11\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:51:52#
    $114136438\",\r\n \"39.191111,-77.259167,N39º11\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:51:53#
    $114136440\",\r\n \"39.1975,-77.263056,N39º11\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:52:19#
    $114136467\",\r\n \"39.206389,-77.272778,N39º12\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'22\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:53:02#
    $114136529\",\r\n \"39.208611,-77.274444,N39º12\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:53:13#
    $114136554\",\r\n \"39.237222,-77.289444,N39º14\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:55:11#
    $114136615\",\r\n \"39.238056,-77.29,N39º14\\\\\\\\'17\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:55:15#
    $114136664\",\r\n \"39.247778,-77.298889,N39º14\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:56:01#
    $114136676\",\r\n \"39.249722,-77.3,N39º14\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:56:10#
    $114136679\",\r\n \"39.251111,-77.300833,N39º15\\\\\\\\'4\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:56:16#
    $114136691\",\r\n \"39.251667,-77.301389,N39º15\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:56:19#
    $114136692\",\r\n \"39.261944,-77.309167,N39º15\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:57:04#
    $114136723\",\r\n \"39.2675,-77.313056,N39º16\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:57:24#
    $114136745\",\r\n \"39.279167,-77.324167,N39º16\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:58:19#
    $114136789\",\r\n \"39.281389,-77.325,N39º16\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 12:58:28#
    $114136800\",\r\n \"39.2825,-77.325556,N39º16\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:58:32#
    $114136808\",\r\n \"39.284722,-77.327222,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:58:43#
    $114136854\",\r\n \"39.294722,-77.333056,N39º17\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:59:27#
    $114136873\",\r\n \"39.308333,-77.345556,N39º18\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:00:31#
    $114136927\",\r\n \"39.309444,-77.347222,N39º18\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:00:37#
    $114136946\",\r\n \"39.31,-77.347778,N39º18\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:00:41#
    $114136951\",\r\n \"39.319167,-77.353056,N39º19\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:01:27#
    $114136977\",\r\n \"39.328333,-77.37,N39º19\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:02:40#
    $114137046\",\r\n \"39.328611,-77.370556,N39º19\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:02:42#
    $114137051\",\r\n \"39.3325,-77.374167,N39º19\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:03:00#
    $114137069\",\r\n \"39.334722,-77.376389,N39º20\\\\\\\\'5\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:03:11#
    $114137075\",\r\n \"39.360556,-77.397222,N39º21\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:05:14#
    $114137216\",\r\n \"39.370833,-77.403333,N39º22\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:05:59#
    $114137232\",\r\n \"39.373056,-77.404444,N39º22\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:06:09#
    $114137242\",\r\n \"39.38,-77.407778,N39º22\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:06:40#
    $114137293\",\r\n \"39.385,-77.412222,N39º23\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:07:09#
    $114137313\",\r\n \"39.385278,-77.4125,N39º23\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:07:10#
    $114137315\",\r\n \"39.395278,-77.42,N39º23\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º25\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:08:00#
    $114137358\",\r\n \"39.398611,-77.413056,N39º23\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:08:34#
    $114137400\",\r\n \"39.400556,-77.405833,N39º24\\\\\\\\'2\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:08:55#
    $114137399\",\r\n \"39.401111,-77.403889,N39º24\\\\\\\\'4\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:09:00#
    $114137402\",\r\n \"39.403333,-77.395278,N39º24\\\\\\\\'12\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:09:25#
    $114137423\",\r\n \"39.404167,-77.384167,N39º24\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:10:00#
    $114137443\",\r\n \"39.403611,-77.377222,N39º24\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:10:19#
    $114137461\",\r\n \"39.403611,-77.373056,N39º24\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:10:29#
    $114137487\",\r\n \"39.404722,-77.353056,N39º24\\\\\\\\'17\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:11:18#
    $114137532\",\r\n \"39.404722,-77.353056,N39º24\\\\\\\\'17\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:11:18#
    $114137534\",\r\n \"39.404444,-77.35,N39º24\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:11:28#
    $114137553\",\r\n \"39.404444,-77.349722,N39º24\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:11:28#
    $114137554\",\r\n \"39.404167,-77.349167,N39º24\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:11:29#
    $114137557\",\r\n \"39.403889,-77.347778,N39º24\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:11:33#
    $114137566\",\r\n \"39.401667,-77.339167,N39º24\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:11:57#
    $114137572\",\r\n \"39.401667,-77.339167,N39º24\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:11:57#
    $114137589\",\r\n \"39.400833,-77.336111,N39º24\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:12:08#
    $114137610\",\r\n \"39.390278,-77.319167,N39º23\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:13:08#
    $114137625\",\r\n \"39.388056,-77.31,N39º23\\\\\\\\'17\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:13:33#
    $114137651\",\r\n \"39.386111,-77.300833,N39º23\\\\\\\\'10\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:13:57#
    $114137658\",\r\n \"39.385556,-77.297222,N39º23\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:14:06#
    $114137667\",\r\n \"39.380278,-77.273889,N39º22\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:15:09#
    $114137746\",\r\n \"39.380278,-77.271667,N39º22\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:15:14#
    $114137759\",\r\n \"39.381111,-77.257778,N39º22\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:15:50#
    $114137831\",\r\n \"39.376944,-77.239722,N39º22\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:16:45#
    $114137856\",\r\n \"39.376389,-77.236389,N39º22\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:16:55#
    $114137840\",\r\n \"39.375278,-77.231944,N39º22\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:17:09#
    $114137850\",\r\n \"39.373889,-77.226944,N39º22\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:17:24#
    $114137876\",\r\n \"39.371944,-77.223056,N39º22\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:17:38#
    $114137886\",\r\n \"39.370278,-77.21,N39º22\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:18:23#
    $114137933\",\r\n \"39.370556,-77.208611,N39º22\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:18:27#
    $114137938\",\r\n \"39.370556,-77.208333,N39º22\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:18:28#
    $114137939\",\r\n \"39.370556,-77.208333,N39º22\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:18:28#
    $114137940\",\r\n \"39.365833,-77.189167,N39º21\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:19:27#
    $114138006\",\r\n \"39.365278,-77.186111,N39º21\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:19:37#
    $114138017\",\r\n \"39.365278,-77.186111,N39º21\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:19:37#
    $114138018\",\r\n \"39.358889,-77.171111,N39º21\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:20:24#
    $114138052\",\r\n \"39.359444,-77.163611,N39º21\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'49\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:20:43#
    $114138075\",\r\n \"39.360278,-77.155556,N39º21\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:21:04#
    $114138082\",\r\n \"39.360833,-77.146111,N39º21\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:21:28#
    $114138103\",\r\n \"39.358056,-77.141389,N39º21\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:21:43#
    $114138115\",\r\n \"39.358056,-77.141111,N39º21\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:21:44#
    $114138119\",\r\n \"39.357222,-77.139722,N39º21\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:21:48#
    $114138123\",\r\n \"39.355556,-77.136944,N39º21\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:21:58#
    $114138129\",\r\n \"39.354167,-77.133611,N39º21\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:22:09#
    $114138171\",\r\n \"39.352778,-77.120556,N39º21\\\\\\\\'10\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:22:44#
    $114138189\",\r\n \"39.352222,-77.118333,N39º21\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:22:50#
    $114138199\",\r\n \"39.350833,-77.112778,N39º21\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:23:05#
    $114138215\",\r\n \"39.350278,-77.109444,N39º21\\\\\\\\'1\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:23:15#
    $114138227\",\r\n \"39.349444,-77.106389,N39º20\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:23:26#
    $114138231\",\r\n \"39.348056,-77.098056,N39º20\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:23:51#
    $114138245\",\r\n \"39.347778,-77.096389,N39º20\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:23:56#
    $114138252\",\r\n \"39.3475,-77.094444,N39º20\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:24:01#
    $114138279\",\r\n \"39.345,-77.079167,N39º20\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:24:46#
    $114138288\",\r\n \"39.342778,-77.072778,N39º20\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'22\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:25:06#
    $114138331\",\r\n \"39.341667,-77.069444,N39º20\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:25:16#
    $114138349\",\r\n \"39.338611,-77.057222,N39º20\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:25:51#
    $114138341\",\r\n \"39.335278,-77.039722,N39º20\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:26:41#
    $114138413\",\r\n \"39.324444,-77.010833,N39º19\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:28:10#
    $114138494\",\r\n \"39.324444,-77.010556,N39º19\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:28:12#
    $114138501\",\r\n \"39.321389,-76.996389,N39º19\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:28:52#
    $114138522\",\r\n \"39.32,-76.9875,N39º19\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:29:17#
    $114138554\",\r\n \"39.318056,-76.981389,N39º19\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:29:36#
    $114138566\",\r\n \"39.315833,-76.974444,N39º18\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:29:57#
    $114138584\",\r\n \"39.313611,-76.969444,N39º18\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:30:12#
    $114138607\",\r\n \"39.309722,-76.959722,N39º18\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:30:44#
    $114138647\",\r\n \"39.309722,-76.959722,N39º18\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:30:44#
    $114138675\",\r\n \"39.307778,-76.944167,N39º18\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:31:28#
    $114138686\",\r\n \"39.3075,-76.941944,N39º18\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:31:34#
    $114138692\",\r\n \"39.306944,-76.936667,N39º18\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:31:50#
    $114138725\",\r\n \"39.306667,-76.933056,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:32:00#
    $114138736\",\r\n \"39.306111,-76.929167,N39º18\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:32:11#
    $114138724\",\r\n \"39.302222,-76.910556,N39º18\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:33:05#
    $114138774\",\r\n \"39.304722,-76.895833,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:33:47#
    $114138808\",\r\n \"39.305278,-76.884444,N39º18\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:34:18#
    $114138910\",\r\n \"39.304167,-76.879444,N39º18\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:34:33#
    $114138862\",\r\n \"39.303333,-76.876944,N39º18\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:34:41#
    $114138868\",\r\n \"39.303056,-76.876111,N39º18\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'34\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:34:43#
    $114138871\",\r\n \"39.301667,-76.8725,N39º18\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:34:55#
    $114138907\",\r\n \"39.295556,-76.8525,N39º17\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:35:55#
    $114138940\",\r\n \"39.295556,-76.852222,N39º17\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:35:56#
    $114138950\",\r\n \"39.295833,-76.843611,N39º17\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'37\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:36:21#
    $114138961\",\r\n \"39.295833,-76.839722,N39º17\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:36:31#
    $114139006\",\r\n \"39.296111,-76.831944,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:36:55#
    $114138989\",\r\n \"39.296111,-76.825,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:37:14#
    $114139034\",\r\n \"39.296389,-76.812778,N39º17\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:37:50#
    $114139043\",\r\n \"39.296667,-76.809722,N39º17\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:37:59#
    $114139054\",\r\n \"39.300833,-76.800833,N39º18\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:38:30#
    $114139123\",\r\n \"39.303056,-76.798611,N39º18\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:38:41#
    $114139098\",\r\n \"39.304722,-76.795278,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:38:54#
    $114139116\",\r\n \"39.305833,-76.792222,N39º18\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:39:04#
    $114139127\",\r\n \"39.306389,-76.79,N39º18\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:39:10#
    $114139138\",\r\n \"39.306944,-76.785,N39º18\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:39:25#
    $114139172\",\r\n \"39.306944,-76.781667,N39º18\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:39:36#
    $114139165\",\r\n \"39.306389,-76.773333,N39º18\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:40:01#
    $114139174\",\r\n \"39.306389,-76.751667,N39º18\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:41:14#
    $114139228\",\r\n \"39.306111,-76.751111,N39º18\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:41:16#
    $114139232\",\r\n \"39.305278,-76.749167,N39º18\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'57\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:42:09#
    $114139295\",\r\n \"39.304722,-76.748333,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:42:25#
    $114139322\",\r\n \"39.304722,-76.748333,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:42:26#
    $114139320\",\r\n \"39.304722,-76.747778,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:42:50#
    $114139355\",\r\n \"39.304722,-76.746667,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:43:14#
    $114139356\",\r\n \"39.304722,-76.745833,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:43:34#
    $114139405\",\r\n \"39.304722,-76.745833,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:43:34#
    $114139377\",\r\n \"39.309444,-76.743333,N39º18\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:44:20#
    $114139412\",\r\n \"39.310833,-76.744167,N39º18\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:44:29#
    $114139419\",\r\n \"39.311389,-76.744167,N39º18\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:44:31#
    $114139420\",\r\n \"39.316389,-76.744444,N39º18\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:44:50#
    $114139449\",\r\n \"39.318611,-76.744444,N39º19\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:45:00#
    $114139452\",\r\n \"39.327222,-76.744444,N39º19\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:45:36#
    $114139484\",\r\n \"39.341667,-76.744444,N39º20\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:46:31#
    $114139553\",\r\n \"39.363889,-76.746944,N39º21\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:47:54#
    $114139632\",\r\n \"39.365,-76.747222,N39º21\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:47:58#
    $114139648\",\r\n \"39.379722,-76.742222,N39º22\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'32\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:48:55#
    $114139678\",\r\n \"39.380556,-76.739722,N39º22\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:49:03#
    $114139682\",\r\n \"39.380556,-76.739722,N39º22\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:49:03#
    $114139683\",\r\n \"39.385278,-76.732778,N39º23\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:49:30#
    $114139704\",\r\n \"39.389444,-76.723056,N39º23\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:50:04#
    $114139752\",\r\n \"39.392222,-76.706389,N39º23\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:50:59#
    $114139802\",\r\n \"39.396389,-76.685833,N39º23\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:52:05#
    $114139860\",\r\n \"39.399167,-76.681667,N39º23\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:52:23#
    $114139877\",\r\n \"39.401111,-76.679167,N39º24\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:52:33#
    $114139904\",\r\n \"39.403056,-76.676389,N39º24\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:52:44#
    $114139908\",\r\n \"39.406667,-76.668611,N39º24\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:53:08#
    $114139910\",\r\n \"39.409722,-76.665278,N39º24\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:53:25#
    $114139931\",\r\n \"39.410556,-76.664444,N39º24\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:53:29#
    $114139942\",\r\n \"39.418611,-76.654167,N39º25\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:54:15#
    $114139992\",\r\n \"39.420278,-76.649444,N39º25\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:54:31#
    $114140007\",\r\n \"39.419167,-76.637778,N39º25\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:55:07#
    $114140068\",\r\n \"39.419167,-76.637778,N39º25\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:55:07#
    $114140037\",\r\n \"39.417222,-76.630278,N39º25\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:55:31#
    $114140051\",\r\n \"39.416111,-76.6275,N39º24\\\\\\\\'58\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:55:40#
    $114140069\",\r\n \"39.413611,-76.611389,N39º24\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:56:40#
    $114140120\",\r\n \"39.413889,-76.593889,N39º24\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:57:39#
    $114140173\",\r\n \"39.414167,-76.592222,N39º24\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:57:45#
    $114140185\",\r\n \"39.414167,-76.591111,N39º24\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:57:48#
    $114140221\",\r\n \"39.407222,-76.576667,N39º24\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:58:44#
    $114140258\",\r\n \"39.406111,-76.575,N39º24\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:58:52#
    $114140269\",\r\n \"39.4025,-76.57,N39º24\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:59:13#
    $114140296\",\r\n \"39.401389,-76.562778,N39º24\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:59:38#
    $114140290\",\r\n \"39.401389,-76.562778,N39º24\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 13:59:38#
    $114140292\",\r\n \"39.401667,-76.560556,N39º24\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:59:47#
    $114140308\",\r\n \"39.401389,-76.556944,N39º24\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:59:59#
    $114140322\",\r\n \"39.401389,-76.556944,N39º24\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:00:00#
    $114140323\",\r\n \"39.400278,-76.555,N39º24\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:00:10#
    $114140356\",\r\n \"39.400278,-76.555,N39º24\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:00:10#
    $114140325\",\r\n \"39.392222,-76.541111,N39º23\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:01:04#
    $114140369\",\r\n \"39.384722,-76.523889,N39º23\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:02:03#
    $114140443\",\r\n \"39.383611,-76.522778,N39º23\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:02:10#
    $114140450\",\r\n \"39.368611,-76.5125,N39º22\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:03:16#
    $114140501\",\r\n \"39.368056,-76.511667,N39º22\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:03:20#
    $114140504\",\r\n \"39.364444,-76.508333,N39º21\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:03:41#
    $114140530\",\r\n \"39.357222,-76.502778,N39º21\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:04:17#
    $114140548\",\r\n \"39.346111,-76.5075,N39º20\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:05:19#
    $114140610\",\r\n \"39.344444,-76.510278,N39º20\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:05:30#
    $114140660\",\r\n \"39.342222,-76.513333,N39º20\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:05:40#
    $114140650\",\r\n \"39.336944,-76.516389,N39º20\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:06:01#
    $114140690\",\r\n \"39.33,-76.5225,N39º19\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:06:32#
    $114140696\",\r\n \"39.329167,-76.523333,N39º19\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:06:36#
    $114140707\",\r\n \"39.314444,-76.533333,N39º18\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:07:40#
    $114140766\",\r\n \"39.303333,-76.530556,N39º18\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:08:27#
    $114140782\",\r\n \"39.301111,-76.530556,N39º18\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:08:37#
    $114140800\",\r\n \"39.300278,-76.530556,N39º18\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:08:40#
    $114140802\",\r\n \"39.2875,-76.533333,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:09:31#
    $114140859\",\r\n \"39.286389,-76.533611,N39º17\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:09:35#
    $114140875\",\r\n \"39.284444,-76.542222,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:10:01#
    $114140904\",\r\n \"39.28,-76.551111,N39º16\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:10:36#
    $114140937\",\r\n \"39.277778,-76.551667,N39º16\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:10:44#
    $114140947\",\r\n \"39.266667,-76.562778,N39º16\\\\\\\\'0\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:11:49#
    $114140997\",\r\n \"39.263056,-76.566389,N39º15\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:12:20#
    $114141009\",\r\n \"39.273889,-76.568889,N39º16\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:13:48#
    $114141087\",\r\n \"39.273889,-76.568889,N39º16\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:13:49#
    $114141088\",\r\n \"39.273889,-76.568889,N39º16\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:13:50#
    $114141091\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:14:44#
    $114141149\",\r\n \"39.276944,-76.569167,N39º16\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:15:02#
    $114141181\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:15:33#
    $114141208\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:15:48#
    $114141216\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:15:57#
    $114141220\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:16:03#
    $114141227\",\r\n \"39.28,-76.579444,N39º16\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:16:51#
    $114141270\",\r\n \"39.280556,-76.580556,N39º16\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:17:03#
    $114141281\",\r\n \"39.280833,-76.580556,N39º16\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:17:11#
    $114141289\",\r\n \"39.281667,-76.582222,N39º16\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:17:32#
    $114141326\",\r\n \"39.282778,-76.583889,N39º16\\\\\\\\'58\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:17:56#
    $114141321\",\r\n \"39.283056,-76.584167,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:17:58#
    $114141324\",\r\n \"39.283056,-76.584444,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:18:06#
    $114141334\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:18:47#
    $114141391\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:19:02#
    $114141401\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:19:11#
    $114141413\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:19:13#
    $114141419\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:19:21#
    $114141445\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:19:32#
    $114141449\",\r\n \"39.284722,-76.588333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:20:06#
    $114141451\",\r\n \"39.284722,-76.588333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:20:22#
    $114141485\",\r\n \"39.284722,-76.589167,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:20:37#
    $114141506\",\r\n \"39.284444,-76.59,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:20:47#
    $114141499\",\r\n \"39.284444,-76.591389,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:21:00#
    $114141507\",\r\n \"39.284444,-76.592778,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'34\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:21:10#
    $114141517\",\r\n \"39.284444,-76.595,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'42\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:21:28#
    $114141543\",\r\n \"39.284167,-76.595556,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:21:39#
    $114141545\",\r\n \"39.284444,-76.596389,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:21:49#
    $114141550\",\r\n \"39.284167,-76.598333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:22:14#
    $114141582\",\r\n \"39.284167,-76.598333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:22:18#
    $114141589\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:23:06#
    $114141639\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:23:16#
    $114141657\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:23:18#
    $114141659\",\r\n \"39.284167,-76.603333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:24:26#
    $114141721\",\r\n \"39.286389,-76.604167,N39º17\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:25:35#
    $114141777\",\r\n \"39.287778,-76.605833,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:26:35#
    $114141853\",\r\n \"39.287778,-76.605833,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:26:36#
    $114141854\",\r\n \"39.287778,-76.605833,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:26:50#
    $114141866\",\r\n \"39.287778,-76.610556,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:27:36#
    $114141904\",\r\n \"39.287778,-76.610556,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:27:36#
    $114141905\",\r\n \"39.287222,-76.6125,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:28:31#
    $114141949\",\r\n \"39.287778,-76.612778,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:28:46#
    $114141964\",\r\n \"39.287778,-76.613056,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:28:49#
    $114141967\",\r\n \"39.2875,-76.613611,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'49\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:29:10#
    $114141997\",\r\n \"39.2875,-76.613056,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:29:34#
    $114142000\",\r\n \"39.285556,-76.613333,N39º17\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:29:50#
    $114142025\",\r\n \"39.284722,-76.613333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:30:05#
    $114142039\",\r\n \"39.283889,-76.615278,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:30:40#
    $114142082\",\r\n \"39.283889,-76.617222,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'2\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:31:13#
    $114142137\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:31:47#
    $114142139\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:31:49#
    $114142143\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:31:57#
    $114142155\",\r\n \"39.276667,-76.619722,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:33:02#
    $114142212\",\r\n \"39.274167,-76.620833,N39º16\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:33:13#
    $114142246\",\r\n \"39.268333,-76.628056,N39º16\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:34:00#
    $114142268\",\r\n \"39.269167,-76.631944,N39º16\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:34:14#
    $114142302\",\r\n \"39.270833,-76.655278,N39º16\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:35:21#
    $114142372\",\r\n \"39.268333,-76.661389,N39º16\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:35:42#
    $114142422\",\r\n \"39.251944,-76.68,N39º15\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:37:11#
    $114142462\",\r\n \"39.248889,-76.683056,N39º14\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:37:26#
    $114142490\",\r\n \"39.248056,-76.684167,N39º14\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:37:30#
    $114142509\",\r\n \"39.244167,-76.689444,N39º14\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:37:50#
    $114142508\",\r\n \"39.24,-76.696944,N39º14\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:38:15#
    $114142547\",\r\n \"39.24,-76.6975,N39º14\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'51\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:38:16#
    $114142551\",\r\n \"39.239444,-76.700556,N39º14\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:38:24#
    $114142559\",\r\n \"39.238889,-76.703889,N39º14\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:38:33#
    $114142580\",\r\n \"39.226389,-76.716667,N39º13\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:39:29#
    $114142611\",\r\n \"39.224167,-76.718611,N39º13\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:39:38#
    $114142623\",\r\n \"39.22,-76.724167,N39º13\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'27\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:39:59#
    $114142638\",\r\n \"39.205833,-76.750556,N39º12\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:41:28#
    $114142714\",\r\n \"39.204167,-76.753611,N39º12\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:41:38#
    $114142729\",\r\n \"39.203333,-76.755278,N39º12\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:41:43#
    $114142735\",\r\n \"39.202778,-76.756667,N39º12\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:41:48#
    $114142780\",\r\n \"39.196389,-76.767222,N39º11\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:42:33#
    $114142793\",\r\n \"39.195833,-76.768056,N39º11\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:42:43#
    $114142801\",\r\n \"39.195833,-76.768056,N39º11\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:42:43#
    $114142803\",\r\n \"39.195278,-76.768611,N39º11\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:42:54#
    $114142815\",\r\n \"39.195,-76.768889,N39º11\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:43:07#
    $114142833\",\r\n \"39.191944,-76.772222,N39º11\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:43:42#
    $114142844\",\r\n \"39.191667,-76.7725,N39º11\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:43:43#
    $114142849\",\r\n \"39.190278,-76.773889,N39º11\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:43:52#
    $114142858\",\r\n \"39.185556,-76.779444,N39º11\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'46\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:44:25#
    $114142908\",\r\n \"39.181944,-76.783611,N39º10\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:44:49#
    $114142897\",\r\n \"39.181944,-76.783611,N39º10\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:44:51#
    $114142901\",\r\n \"39.181667,-76.783889,N39º10\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'2\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:44:59#
    $114142912\",\r\n \"39.181389,-76.784444,N39º10\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:45:08#
    $114142927\",\r\n \"39.181389,-76.784444,N39º10\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:45:09#
    $114142932\",\r\n \"39.180278,-76.785833,N39º10\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'9\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:46:17#
    $114143016\",\r\n \"39.179444,-76.786944,N39º10\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:47:03#
    $114143042\",\r\n \"39.179444,-76.787222,N39º10\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'14\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:47:11#
    $114143049\",\r\n \"39.178611,-76.788333,N39º10\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:47:21#
    $114143060\",\r\n \"39.178056,-76.789444,N39º10\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:47:32#
    $114143065\",\r\n \"39.1775,-76.790278,N39º10\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'25\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:47:42#
    $114143071\",\r\n \"39.176389,-76.791944,N39º10\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:48:06#
    $114143080\",\r\n \"39.176389,-76.791944,N39º10\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:48:08#
    $114143083\",\r\n \"39.176389,-76.791944,N39º10\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:48:08#
    $114143082\",\r\n \"39.175833,-76.793333,N39º10\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:48:30#
    $114143108\",\r\n \"39.175278,-76.794444,N39º10\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:48:51#
    $114143129\",\r\n \"39.175,-76.794444,N39º10\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:49:01#
    $114143163\",\r\n \"39.173889,-76.796667,N39º10\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'48\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:49:27#
    $114143160\",\r\n \"39.173889,-76.796667,N39º10\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:49:27#
    $114143161\",\r\n \"39.173611,-76.797222,N39º10\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:49:34#
    $114143165\",\r\n \"39.172222,-76.800278,N39º10\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:50:33#
    $114143236\",\r\n \"39.171944,-76.800833,N39º10\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:50:40#
    $114143246\",\r\n \"39.171944,-76.800833,N39º10\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:50:40#
    $114143245\",\r\n \"39.171667,-76.801111,N39º10\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:50:44#
    $114143260\",\r\n \"39.171389,-76.801667,N39º10\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:50:55#
    $114143253\",\r\n \"39.171389,-76.801667,N39º10\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:50:55#
    $114143266\",\r\n \"39.170556,-76.802778,N39º10\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:51:05#
    $114143261\",\r\n \"39.168889,-76.805556,N39º10\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:51:46#
    $114143292\",\r\n \"39.168889,-76.805556,N39º10\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:51:49#
    $114143311\",\r\n \"39.166944,-76.808611,N39º10\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:52:35#
    $114143323\",\r\n \"39.165833,-76.810556,N39º9\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:52:50#
    $114143348\",\r\n \"39.165833,-76.810556,N39º9\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:52:51#
    $114143349\",\r\n \"39.163333,-76.814722,N39º9\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:54:10#
    $114143483\",\r\n \"39.163333,-76.814722,N39º9\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:54:10#
    $114143444\",\r\n \"39.163056,-76.815,N39º9\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:54:21#
    $114143477\",\r\n \"39.162778,-76.815556,N39º9\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:54:31#
    $114143451\",\r\n \"39.162222,-76.816667,N39º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:54:45#
    $114143469\",\r\n \"39.162222,-76.816667,N39º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'0\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:54:59#
    $114143488\",\r\n \"39.159722,-76.823889,N39º9\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:56:52#
    $114143578\",\r\n \"39.159722,-76.823889,N39º9\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:56:54#
    $114143582\",\r\n \"39.159722,-76.823889,N39º9\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:56:54#
    $114143581\",\r\n \"39.159722,-76.824444,N39º9\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'28\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:57:04#
    $114143592\",\r\n \"39.159444,-76.825,N39º9\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:57:11#
    $114143655\",\r\n \"39.159167,-76.826667,N39º9\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'36\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:57:32#
    $114143621\",\r\n \"39.159167,-76.827222,N39º9\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:57:42#
    $114143685\",\r\n \"39.159167,-76.827222,N39º9\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:57:42#
    $114143641\",\r\n \"39.158889,-76.828611,N39º9\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:58:07#
    $114143671\",\r\n \"39.158611,-76.828889,N39º9\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:58:15#
    $114143684\",\r\n \"39.158611,-76.829444,N39º9\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'46\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:58:36#
    $114143695\",\r\n \"39.157778,-76.831111,N39º9\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 14:59:01#
    $114143713\",\r\n \"39.157778,-76.831389,N39º9\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:59:10#
    $114143718\",\r\n \"39.157778,-76.831389,N39º9\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:59:11#
    $114143722\",\r\n \"39.155833,-76.835278,N39º9\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:00:18#
    $114143781\",\r\n \"39.154444,-76.836944,N39º9\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:00:38#
    $114143799\",\r\n \"39.147222,-76.8425,N39º8\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:01:23#
    $114143842\",\r\n \"39.146389,-76.843056,N39º8\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:01:28#
    $114143855\",\r\n \"39.135556,-76.851944,N39º8\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'7\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:02:20#
    $114143909\",\r\n \"39.133889,-76.855833,N39º8\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'21\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:02:33#
    $114143934\",\r\n \"39.131944,-76.859444,N39º7\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'34\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:02:47#
    $114143994\",\r\n \"39.129722,-76.861944,N39º7\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:02:58#
    $114143945\",\r\n \"39.121944,-76.8675,N39º7\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'3\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:03:32#
    $114143971\",\r\n \"39.121389,-76.867778,N39º7\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:03:33#
    $114143979\",\r\n \"39.121389,-76.867778,N39º7\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'4\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:03:33#
    $114143978\",\r\n \"39.105,-76.886667,N39º6\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:04:49#
    $114144055\",\r\n \"39.092222,-76.891944,N39º5\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:05:36#
    $114144112\",\r\n \"39.089722,-76.893611,N39º5\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:05:45#
    $114144124\",\r\n \"39.084444,-76.8975,N39º5\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'51\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:06:07#
    $114144161\",\r\n \"39.076667,-76.903611,N39º4\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:06:42#
    $114144164\",\r\n \"39.073056,-76.906111,N39º4\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:06:56#
    $114144177\",\r\n \"39.073056,-76.906111,N39º4\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:06:57#
    $114144182\",\r\n \"39.073056,-76.906111,N39º4\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'22\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:06:57#
    $114144179\",\r\n \"39.061389,-76.919444,N39º3\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'10\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:07:57#
    $114144227\",\r\n \"39.059167,-76.925,N39º3\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:08:15#
    $114144247\",\r\n \"39.056944,-76.9275,N39º3\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:08:26#
    $114144258\",\r\n \"39.048611,-76.931667,N39º2\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:09:00#
    $114144291\",\r\n \"39.039167,-76.9375,N39º2\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:09:44#
    $114144345\",\r\n \"39.035833,-76.94,N39º2\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:09:59#
    $114144356\",\r\n \"39.034167,-76.941944,N39º2\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'31\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:10:09#
    $114144363\",\r\n \"39.033611,-76.942778,N39º2\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:10:13#
    $114144372\",\r\n \"39.033333,-76.943056,N39º2\\\\\\\\'0\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'35\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:10:14#
    $114144377\",\r\n \"39.031111,-76.947222,N39º1\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:10:28#
    $114144392\",\r\n \"39.031111,-76.947222,N39º1\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:10:28#
    $114144398\",\r\n \"39.026667,-76.951667,N39º1\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'6\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:10:49#
    $114144397\",\r\n \"39.022778,-76.953056,N39º1\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:11:04#
    $114144409\",\r\n \"39.018333,-76.970833,N39º1\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'15\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:12:07#
    $114144458\",\r\n \"39.018611,-76.973889,N39º1\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:12:17#
    $114144471\",\r\n \"39.018333,-76.990556,N39º1\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:13:12#
    $114144523\",\r\n \"39.015833,-77.007222,N39º0\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'26\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:14:18#
    $114144599\",\r\n \"39.016389,-77.011389,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'41\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:14:34#
    $114144624\",\r\n \"39.016389,-77.028611,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'43\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:15:38#
    $114144679\",\r\n \"39.016389,-77.028889,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:15:39#
    $114144683\",\r\n \"39.013611,-77.034722,N39º0\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:16:03#
    $114144692\",\r\n \"39.013333,-77.042222,N39º0\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:16:29#
    $114144719\",\r\n \"39.013333,-77.046389,N39º0\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'47\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:16:45#
    $114144737\",\r\n \"39.013889,-77.055556,N39º0\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'20\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:17:19#
    $114144782\",\r\n \"39.013611,-77.062222,N39º0\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'44\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:17:45#
    $114144811\",\r\n \"39.01,-77.065278,N39º0\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:18:03#
    $114144823\",\r\n \"39.006667,-77.068889,N39º0\\\\\\\\'24\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:18:24#
    $114144843\",\r\n \"39.006111,-77.073056,N39º0\\\\\\\\'22\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:18:40#
    $114144851\",\r\n \"39.005833,-77.074722,N39º0\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'29\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:18:48#
    $114144854\",\r\n \"39.011111,-77.091111,N39º0\\\\\\\\'40\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:19:54#
    $114144913\",\r\n \"39.011667,-77.092222,N39º0\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:19:58#
    $114144920\",\r\n \"39.011667,-77.092222,N39º0\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:19:58#
    $114144917\",\r\n \"39.016667,-77.099444,N39º1\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:20:33#
    $114144952\",\r\n \"39.018333,-77.102222,N39º1\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:20:47#
    $114144964\",\r\n \"39.018611,-77.102222,N39º1\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'8\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:20:49#
    $114144969\",\r\n \"39.019444,-77.103611,N39º1\\\\\\\\'10\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:20:57#
    $114144972\",\r\n \"39.019722,-77.103611,N39º1\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:20:57#
    $114144974\",\r\n \"39.020556,-77.104722,N39º1\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'17\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:21:06#
    $114144990\",\r\n \"39.022778,-77.106667,N39º1\\\\\\\\'22\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:21:27#
    $114145076\",\r\n \"39.026944,-77.110833,N39º1\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'39\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:21:52#
    $114145043\",\r\n \"39.03,-77.123056,N39º1\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'23\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:22:31#
    $114145083\",\r\n \"39.034167,-77.141944,N39º2\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'31\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:23:36#
    $114145143\",\r\n \"39.041667,-77.147222,N39º2\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:24:17#
    $114145181\",\r\n \"39.0425,-77.147778,N39º2\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'52\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:24:22#
    $114145183\",\r\n \"39.044722,-77.148889,N39º2\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:24:32#
    $114145210\",\r\n \"39.053611,-77.153056,N39º3\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'11\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:25:08#
    $114145236\",\r\n \"39.057222,-77.154444,N39º3\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:25:24#
    $114145260\",\r\n \"39.058056,-77.154444,N39º3\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:25:27#
    $114145264\",\r\n \"39.058056,-77.154444,N39º3\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:25:28#
    $114145265\",\r\n \"39.068056,-77.158333,N39º4\\\\\\\\'5\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:26:22#
    $114145304\",\r\n \"39.068333,-77.158333,N39º4\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:26:24#
    $114145308\",\r\n \"39.079444,-77.17,N39º4\\\\\\\\'46\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'12\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:27:30#
    $114145355\",\r\n \"39.08,-77.170278,N39º4\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'13\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:27:32#
    $114145359\",\r\n \"39.085556,-77.173056,N39º5\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:27:56#
    $114145402\",\r\n \"39.088333,-77.173889,N39º5\\\\\\\\'18\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'26\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:28:06#
    $114145413\",\r\n \"39.091389,-77.175,N39º5\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'30\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:28:22#
    $114145399\",\r\n \"39.093333,-77.175556,N39º5\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'32\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:28:30#
    $114145408\",\r\n \"39.093611,-77.175833,N39º5\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'33\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:28:31#
    $114145412\",\r\n \"39.094444,-77.176111,N39º5\\\\\\\\'40\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:28:35#
    $114145420\",\r\n \"39.094444,-77.176111,N39º5\\\\\\\\'40\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'34\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:28:35#
    $114145421\",\r\n \"39.096944,-77.177222,N39º5\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:28:49#
    $114145429\",\r\n \"39.105,-77.181389,N39º6\\\\\\\\'18\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'53\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:29:25#
    $114145477\",\r\n \"39.106389,-77.182778,N39º6\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'58\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:29:33#
    $114145487\",\r\n \"39.107222,-77.183611,N39º6\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'1\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:29:39#
    $114145495\",\r\n \"39.110556,-77.186944,N39º6\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'13\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:30:13#
    $114145541\",\r\n \"39.111111,-77.187778,N39º6\\\\\\\\'40\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'16\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:30:27#
    $114145525\",\r\n \"39.111667,-77.188333,N39º6\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'18\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:30:37#
    $114145536\",\r\n \"39.111944,-77.188611,N39º6\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:30:42#
    $114145543\",\r\n \"39.111944,-77.188611,N39º6\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'19\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:30:42#
    $114145542\",\r\n \"39.115278,-77.191944,N39º6\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'31\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:31:18#
    $114145579\",\r\n \"39.12,-77.196944,N39º7\\\\\\\\'12\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'49\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:31:48#
    $114145598\",\r\n \"39.126389,-77.201389,N39º7\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'5\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:32:13#
    $114145627\",\r\n \"39.132222,-77.206667,N39º7\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'24\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:32:37#
    $114145645\",\r\n \"39.134444,-77.208611,N39º8\\\\\\\\'4\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'31\\\\\\\\'\\\\\\\\' ^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:32:48#
    $114145659\",\r\n \"39.135278,-77.209167,N39º8\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'33\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:32:52#
    $114145673\",\r\n \"39.141667,-77.210556,N39º8\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:33:42#
    $114145723\",\r\n \"39.141389,-77.210556,N39º8\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:33:58#
    $114145749\",\r\n \"39.140556,-77.213889,N39º8\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'50\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:34:49#
    $114145782\",\r\n \"39.140833,-77.215,N39º8\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:35:04#
    $114145807\",\r\n \"39.140833,-77.215278,N39º8\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:35:09#
    $114145811\",\r\n \"39.144167,-77.216389,N39º8\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'59\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:35:54#
    $114145833\",\r\n \"39.142778,-77.215556,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:56:04#
    $114146139\",\r\n \"39.143056,-77.215556,N39º8\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:57:23#
    $114146175\",\r\n \"39.143056,-77.215278,N39º8\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\'^VQUAD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:58:06#
    $114146192\",\r\n \"39.265,-77.311667,N39º15\\\\\\\\'54\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'42\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:57:15#
    $114136734\",\r\n \"39.321389,-77.354167,N39º19\\\\\\\\'17\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:01:37#
    $114136992\",\r\n \"39.358889,-77.1675,N39º21\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:20:33#
    $114138060\",\r\n \"39.305278,-76.920833,N39º18\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:32:35#
    $114138742\",\r\n \"39.287778,-76.605833,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:26:31#
    $114141846\",\r\n \"39.213889,-76.734167,N39º12\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:40:34#
    $114142669\",\r\n \"39.176389,-76.792222,N39º10\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'32\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:48:18#
    $114143098\",\r\n \"39.160556,-76.821111,N39º9\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:56:00#
    $114143537\",\r\n \"39.157778,-76.831389,N39º9\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:59:11#
    $114143721\",\r\n \"39.134444,-76.854444,N39º8\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:02:28#
    $114143920\",\r\n \"39.013333,-77.044722,N39º0\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:16:39#
    $114144728\",\r\n \"39.078889,-77.169444,N39º4\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:27:27#
    $114145353\",\r\n \"39.143889,-77.215556,N39º8\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:36:05#
    $114145854\",\r\n \"39.25,-77.300278,N39º15\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:56:11#
    $114136683\",\r\n \"39.397222,-77.42,N39º23\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º25\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:08:10#
    $114137367\",\r\n \"39.4025,-77.398056,N39º24\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:09:15#
    $114137414\",\r\n \"39.385556,-77.296667,N39º23\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:14:08#
    $114137672\",\r\n \"39.348056,-77.097778,N39º20\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:23:52#
    $114138247\",\r\n \"39.295833,-76.854167,N39º17\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:35:52#
    $114138931\",\r\n \"39.389444,-76.722778,N39º23\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'22\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:50:05#
    $114139758\",\r\n \"39.393611,-76.543611,N39º23\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:00:56#
    $114140362\",\r\n \"39.384722,-76.523889,N39º23\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'26\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:02:03#
    $114140444\",\r\n \"39.331389,-76.521111,N39º19\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:06:26#
    $114140689\",\r\n \"39.279722,-76.551111,N39º16\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:10:37#
    $114140938\",\r\n \"39.284167,-76.598333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:22:14#
    $114141583\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:23:18#
    $114141658\",\r\n \"39.283889,-76.615833,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:30:51#
    $114142096\",\r\n \"39.271389,-76.652222,N39º16\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:35:14#
    $114142363\",\r\n \"39.263333,-76.671667,N39º15\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:36:17#
    $114142419\",\r\n \"39.190278,-76.773889,N39º11\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'26\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:43:53#
    $114142861\",\r\n \"39.171944,-76.800556,N39º10\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'2\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:50:35#
    $114143239\",\r\n \"39.162222,-76.816667,N39º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:54:55#
    $114143482\",\r\n \"39.107222,-76.883056,N39º6\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:04:38#
    $114144040\",\r\n \"39.073889,-76.905556,N39º4\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:06:53#
    $114144176\",\r\n \"39.019722,-77.103889,N39º1\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:20:58#
    $114144979\",\r\n \"39.055833,-77.153889,N39º3\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:25:18#
    $114145251\",\r\n \"39.106389,-77.182778,N39º6\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:29:35#
    $114145490\",\r\n \"39.142778,-77.215556,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^PDD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:56:21#
    $114146162\",\r\n \"39.143889,-77.215278,N39º8\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:46:16#
    $114136095\",\r\n \"39.235,-77.287222,N39º14\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:55:03#
    $114136610\",\r\n \"39.308611,-77.345833,N39º18\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:00:32#
    $114136933\",\r\n \"39.341111,-77.384444,N39º20\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:03:46#
    $114137129\",\r\n \"39.384167,-77.411667,N39º23\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'42\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:07:05#
    $114137305\",\r\n \"39.337778,-77.053333,N39º20\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:26:02#
    $114138367\",\r\n \"39.307778,-76.943611,N39º18\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:31:30#
    $114138690\",\r\n \"39.419722,-76.651389,N39º25\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:54:25#
    $114140004\",\r\n \"39.283056,-76.584444,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:18:08#
    $114141338\",\r\n \"39.284167,-76.603333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:24:23#
    $114141717\",\r\n \"39.286111,-76.613056,N39º17\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:29:45#
    $114142015\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:31:59#
    $114142158\",\r\n \"39.276667,-76.619722,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:33:02#
    $114142213\",\r\n \"39.268889,-76.630833,N39º16\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'51\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:34:10#
    $114142289\",\r\n \"39.159722,-76.824444,N39º9\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:57:04#
    $114143593\",\r\n \"39.016667,-77.0275,N39º1\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:15:34#
    $114144675\",\r\n \"39.031944,-77.133889,N39º1\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'2\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:23:07#
    $114145121\",\r\n \"39.141389,-77.210556,N39º8\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:33:52#
    $114145735\",\r\n \"39.190278,-77.258611,N39º11\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'31\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:51:49#
    $114136434\",\r\n \"39.279722,-77.324444,N39º16\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:58:20#
    $114136793\",\r\n \"39.390833,-77.320833,N39º23\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:13:03#
    $114137621\",\r\n \"39.332222,-77.031667,N39º19\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:27:06#
    $114138444\",\r\n \"39.3125,-76.966667,N39º18\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:30:22#
    $114138616\",\r\n \"39.296111,-76.831667,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:36:56#
    $114138994\",\r\n \"39.304722,-76.746389,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:43:25#
    $114139368\",\r\n \"39.343611,-76.744722,N39º20\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:46:41#
    $114139567\",\r\n \"39.408611,-76.666389,N39º24\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:53:19#
    $114139926\",\r\n \"39.413611,-76.6125,N39º24\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:56:36#
    $114140111\",\r\n \"39.401667,-76.560278,N39º24\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:59:48#
    $114140311\",\r\n \"39.357222,-76.502778,N39º21\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:04:17#
    $114140549\",\r\n \"39.268056,-76.561389,N39º16\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:11:41#
    $114140988\",\r\n \"39.287222,-76.6125,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:28:41#
    $114141960\",\r\n \"39.239444,-76.701389,N39º14\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:38:26#
    $114142564\",\r\n \"39.226111,-76.716667,N39º13\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:39:30#
    $114142614\",\r\n \"39.195833,-76.768056,N39º11\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:42:44#
    $114142804\",\r\n \"39.169167,-76.805278,N39º10\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:51:40#
    $114143282\",\r\n \"39.147222,-76.8425,N39º8\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'33\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:01:23#
    $114143843\",\r\n \"39.005833,-77.075278,N39º0\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'31\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:18:49#
    $114144859\",\r\n \"39.173333,-77.245278,N39º10\\\\\\\\'24\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:50:39#
    $114136345\",\r\n \"39.205,-77.271111,N39º12\\\\\\\\'18\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:52:54#
    $114136490\",\r\n \"39.219722,-77.278611,N39º13\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:53:58#
    $114136546\",\r\n \"39.295,-77.333056,N39º17\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:59:29#
    $114136874\",\r\n \"39.355556,-77.394444,N39º21\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:04:51#
    $114137178\",\r\n \"39.370833,-77.403333,N39º22\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:05:59#
    $114137231\",\r\n \"39.380278,-77.273056,N39º22\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:15:11#
    $114137750\",\r\n \"39.379167,-77.249444,N39º22\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:16:15#
    $114137806\",\r\n \"39.365556,-77.188889,N39º21\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:19:29#
    $114138007\",\r\n \"39.358889,-77.1425,N39º21\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'33\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:21:40#
    $114138113\",\r\n \"39.352778,-77.120556,N39º21\\\\\\\\'10\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:22:44#
    $114138190\",\r\n \"39.306667,-76.770556,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:40:11#
    $114139181\",\r\n \"39.305,-76.748611,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:42:20#
    $114139312\",\r\n \"39.398056,-76.683611,N39º23\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:52:15#
    $114139868\",\r\n \"39.416944,-76.629722,N39º25\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:55:33#
    $114140054\",\r\n \"39.316389,-76.534167,N39º18\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:07:32#
    $114140742\",\r\n \"39.264167,-76.568333,N39º15\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:12:45#
    $114141039\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:14:53#
    $114141167\",\r\n \"39.280556,-76.580556,N39º16\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:17:03#
    $114141282\",\r\n \"39.284722,-76.588333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:20:18#
    $114141470\",\r\n \"39.249722,-76.682222,N39º14\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:37:22#
    $114142482\",\r\n \"39.048333,-76.931667,N39º2\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:09:01#
    $114144293\",\r\n \"39.018611,-76.974167,N39º1\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'27\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:12:18#
    $114144473\",\r\n \"39.111667,-77.188333,N39º6\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:30:38#
    $114145538\",\r\n \"39.142778,-77.215278,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^PDD^US207Dev2#DriveTest#DUMMY#2023-10-05 15:58:02#
    $114146189\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:45:10#
    $114136039\",\r\n \"39.147222,-77.218611,N39º8\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:47:22#
    $114136158\",\r\n \"39.160833,-77.2325,N39º9\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:49:30#
    $114136281\",\r\n \"39.328611,-77.370556,N39º19\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:02:42#
    $114137050\",\r\n \"39.403611,-77.376667,N39º24\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:10:20#
    $114137466\",\r\n \"39.395833,-77.329167,N39º23\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:12:33#
    $114137607\",\r\n \"39.370556,-77.209722,N39º22\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:18:24#
    $114137936\",\r\n \"39.303889,-76.898611,N39º18\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:33:40#
    $114138794\",\r\n \"39.306111,-76.791667,N39º18\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:39:05#
    $114139130\",\r\n \"39.393611,-76.703333,N39º23\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:51:10#
    $114139813\",\r\n \"39.407222,-76.576667,N39º24\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:58:44#
    $114140259\",\r\n \"39.369167,-76.513611,N39º22\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'49\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:03:11#
    $114140494\",\r\n \"39.287222,-76.533333,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:09:32#
    $114140867\",\r\n \"39.204167,-76.753889,N39º12\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:41:40#
    $114142731\",\r\n \"39.179167,-76.787222,N39º10\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:47:13#
    $114143050\",\r\n \"39.163611,-76.814167,N39º9\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'51\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:53:52#
    $114143423\",\r\n \"39.155833,-76.835278,N39º9\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:00:18#
    $114143782\",\r\n \"39.061389,-76.919444,N39º3\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:07:57#
    $114144228\",\r\n \"39.021111,-76.955,N39º1\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:11:13#
    $114144421\",\r\n \"39.016389,-77.01,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:14:29#
    $114144617\",\r\n \"39.028333,-77.113333,N39º1\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:22:02#
    $114145058\",\r\n \"39.068333,-77.158333,N39º4\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:26:24#
    $114145307\",\r\n \"39.118889,-77.195833,N39º7\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:31:43#
    $114145596\",\r\n \"39.140833,-77.215,N39º8\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:34:59#
    $114145804\",\r\n \"39.142778,-77.215556,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:55:58#
    $114146136\",\r\n \"39.142778,-77.215278,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:57:51#
    $114146184\",\r\n \"39.151667,-77.219167,N39º9\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 12:48:26#
    $114136231\",\r\n \"39.404167,-77.349167,N39º24\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:11:29#
    $114137559\",\r\n \"39.374444,-77.228333,N39º22\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'42\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:17:20#
    $114137870\",\r\n \"39.343611,-77.075278,N39º20\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'31\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:24:58#
    $114138297\",\r\n \"39.296667,-76.809444,N39º17\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'34\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:38:00#
    $114139058\",\r\n \"39.361111,-76.746389,N39º21\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:47:45#
    $114139620\",\r\n \"39.413889,-76.593333,N39º24\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:57:41#
    $114140176\",\r\n \"39.345833,-76.507778,N39º20\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:05:20#
    $114140612\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:15:58#
    $114141222\",\r\n \"39.285833,-76.603889,N39º17\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:25:27#
    $114141769\",\r\n \"39.181667,-76.783889,N39º10\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'2\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:45:01#
    $114142916\",\r\n \"39.180556,-76.785556,N39º10\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:46:08#
    $114143006\",\r\n \"39.166389,-76.809722,N39º9\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:52:45#
    $114143337\",\r\n \"39.017778,-76.993056,N39º1\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:13:23#
    $114144560\",\r\n \"39.013611,-77.062222,N39º0\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:17:45#
    $114144810\",\r\n \"39.040833,-77.146944,N39º2\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'49\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:24:11#
    $114145173\",\r\n \"39.324444,-77.010556,N39º19\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:28:12#
    $114138501\",\r\n \"39.32,-76.9875,N39º19\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:29:17#
    $114138554\",\r\n \"39.303056,-76.876111,N39º18\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'34\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:34:43#
    $114138871\",\r\n \"39.306111,-76.751111,N39º18\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:41:16#
    $114139232\",\r\n \"39.311389,-76.744167,N39º18\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:44:31#
    $114139420\",\r\n \"39.327222,-76.744444,N39º19\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:45:36#
    $114139484\",\r\n \"39.379722,-76.742222,N39º22\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'32\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 13:48:55#
    $114139678\",\r\n \"39.301111,-76.530556,N39º18\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:08:37#
    $114140800\",\r\n \"39.273889,-76.568889,N39º16\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:13:50#
    $114141091\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:19:13#
    $114141419\",\r\n \"39.284444,-76.592778,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'34\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:21:10#
    $114141517\",\r\n \"39.287778,-76.610556,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:27:36#
    $114141905\",\r\n \"39.173889,-76.796667,N39º10\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:49:27#
    $114143161\",\r\n \"39.158889,-76.828611,N39º9\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 14:58:07#
    $114143671\",\r\n \"39.121389,-76.867778,N39º7\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:03:33#
    $114143979\",\r\n \"39.089722,-76.893611,N39º5\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:05:45#
    $114144124\",\r\n \"39.034167,-76.941944,N39º2\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'31\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:10:09#
    $114144363\",\r\n \"39.011111,-77.091111,N39º0\\\\\\\\'40\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:19:54#
    $114144913\",\r\n \"39.093611,-77.175833,N39º5\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'33\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:28:31#
    $114145412\",\r\n \"39.134444,-77.208611,N39º8\\\\\\\\'4\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'31\\\\\\\\'\\\\\\\\' ^PDD^US207Dev1#DriveTest#DUMMY#2023-10-05 15:32:48#
    $114145659\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:45:20#
    ^2.62$6615229\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:45:30#
    ^3.06$6615230\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:45:41#
    ^2.48$6615231\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:45:51#
    ^3.2$6615233\",\r\n \"39.144167,-77.216111,N39º8\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:46:25#
    ^3.06$6615236\",\r\n \"39.144444,-77.216667,N39º8\\\\\\\\'40\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:46:36#
    ^3.33$6615238\",\r\n \"39.144722,-77.218333,N39º8\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:46:46#
    ^2.39$6615239\",\r\n \"39.145,-77.219722,N39º8\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:46:57#
    ^2.67$6615240\",\r\n \"39.148056,-77.2175,N39º8\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:47:30#
    ^2.27$6615241\",\r\n \"39.148889,-77.216111,N39º8\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:47:40#
    ^3.38$6615242\",\r\n \"39.148611,-77.215,N39º8\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:47:51#
    ^2.97$6615243\",\r\n \"39.148056,-77.215556,N39º8\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:48:01#
    ^3.17$6615244\",\r\n \"39.152778,-77.220556,N39º9\\\\\\\\'10\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:48:34#
    ^3.17$6615245\",\r\n \"39.154167,-77.222222,N39º9\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:48:44#
    ^3.31$6615248\",\r\n \"39.155833,-77.224444,N39º9\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:48:55#
    ^3.51$6615253\",\r\n \"39.157222,-77.226389,N39º9\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:49:05#
    ^2.95$6615254\",\r\n \"39.162222,-77.235278,N39º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:49:42#
    ^3.46$6615256\",\r\n \"39.163333,-77.237222,N39º9\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:49:53#
    ^2.86$6615257\",\r\n \"39.164722,-77.238889,N39º9\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:50:03#
    ^2.93$6615259\",\r\n \"39.166667,-77.241111,N39º10\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:50:14#
    ^3.51$6615262\",\r\n \"39.176944,-77.248056,N39º10\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:50:53#
    ^3.55$6615263\",\r\n \"39.179444,-77.25,N39º10\\\\\\\\'46\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:51:03#
    ^3.66$6615264\",\r\n \"39.181944,-77.252222,N39º10\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:51:14#
    ^3.58$6615265\",\r\n \"39.184167,-77.254444,N39º11\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:51:24#
    ^2.9$6615266\",\r\n \"39.192222,-77.259722,N39º11\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:51:58#
    ^2.44$6615267\",\r\n \"39.195,-77.261111,N39º11\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:52:08#
    ^3.4$6615269\",\r\n \"39.1975,-77.263056,N39º11\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:52:19#
    ^3.13$6615268\",\r\n \"39.199722,-77.265278,N39º11\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:52:29#
    ^3.46$6615270\",\r\n \"39.206389,-77.272778,N39º12\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'22\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:53:02#
    ^3.47$6615275\",\r\n \"39.208611,-77.274444,N39º12\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:53:13#
    ^3.02$6615280\",\r\n \"39.211389,-77.275833,N39º12\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'33\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:53:23#
    ^1.55$6615278\",\r\n \"39.213889,-77.276667,N39º12\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:53:34#
    ^3.09$6615282\",\r\n \"39.221944,-77.279444,N39º13\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'46\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:54:07#
    ^2.81$6615284\",\r\n \"39.224444,-77.280833,N39º13\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'51\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:54:17#
    ^3.25$6615286\",\r\n \"39.226944,-77.281944,N39º13\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:54:28#
    ^3.34$6615287\",\r\n \"39.229167,-77.283056,N39º13\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:54:38#
    ^3.42$6615288\",\r\n \"39.238056,-77.29,N39º14\\\\\\\\'17\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:55:15#
    ^3.43$6615290\",\r\n \"39.240278,-77.292222,N39º14\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'32\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:55:25#
    ^3.47$6615289\",\r\n \"39.242778,-77.294444,N39º14\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:55:35#
    ^2.93$6615291\",\r\n \"39.244722,-77.296389,N39º14\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:55:46#
    ^3.62$6615292\",\r\n \"39.251667,-77.301389,N39º15\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:56:19#
    ^2.62$6615293\",\r\n \"39.253889,-77.302778,N39º15\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:56:30#
    ^3.24$6615294\",\r\n \"39.256111,-77.304444,N39º15\\\\\\\\'22\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:56:40#
    ^2.31$6615295\",\r\n \"39.258611,-77.306389,N39º15\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:56:50#
    ^3.56$6615296\",\r\n \"39.2675,-77.313056,N39º16\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:57:24#
    ^2.38$6615304\",\r\n \"39.270278,-77.313889,N39º16\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:57:34#
    ^3.58$6615305\",\r\n \"39.2725,-77.316111,N39º16\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:57:45#
    ^3.36$6615309\",\r\n \"39.274167,-77.319444,N39º16\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:57:55#
    ^3.44$6615307\",\r\n \"39.2825,-77.325556,N39º16\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'32\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:58:33#
    ^3.22$6615311\",\r\n \"39.284722,-77.327222,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:58:43#
    ^3.33$6615313\",\r\n \"39.287222,-77.329167,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:58:53#
    ^3.44$6615312\",\r\n \"39.289167,-77.331111,N39º17\\\\\\\\'21\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:59:04#
    ^3.56$6615314\",\r\n \"39.296667,-77.334722,N39º17\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:59:36#
    ^3.21$6615315\",\r\n \"39.298611,-77.337222,N39º17\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 12:59:46#
    ^3.08$6615317\",\r\n \"39.301111,-77.338611,N39º18\\\\\\\\'4\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 12:59:57#
    ^2.82$6615316\",\r\n \"39.304167,-77.339722,N39º18\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:00:07#
    ^3.3$6615318\",\r\n \"39.31,-77.347778,N39º18\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:00:41#
    ^2.28$6615319\",\r\n \"39.311667,-77.349722,N39º18\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:00:51#
    ^3.37$6615320\",\r\n \"39.313889,-77.351111,N39º18\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:01:02#
    ^2.94$6615321\",\r\n \"39.316111,-77.351944,N39º18\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:01:12#
    ^3.56$6615322\",\r\n \"39.323056,-77.355833,N39º19\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:01:45#
    ^3.34$6615325\",\r\n \"39.323889,-77.358333,N39º19\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:01:56#
    ^3.46$6615328\",\r\n \"39.324722,-77.361389,N39º19\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:02:06#
    ^3.19$6615329\",\r\n \"39.325278,-77.364444,N39º19\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:02:17#
    ^3.4$6615330\",\r\n \"39.330278,-77.372222,N39º19\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:02:50#
    ^3.1$6615331\",\r\n \"39.3325,-77.374167,N39º19\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'27\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:03:00#
    ^3.49$6615332\",\r\n \"39.334722,-77.376389,N39º20\\\\\\\\'5\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:03:11#
    ^1.65$6615333\",\r\n \"39.336389,-77.378611,N39º20\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:03:21#
    ^1.42$6615334\",\r\n \"39.342778,-77.385833,N39º20\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:03:54#
    ^1.57$6615335\",\r\n \"39.345,-77.387778,N39º20\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:04:05#
    ^3.49$6615338\",\r\n \"39.346944,-77.389444,N39º20\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'22\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:04:15#
    ^2.46$6615337\",\r\n \"39.349444,-77.391389,N39º20\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'29\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:04:26#
    ^1.01$6615336\",\r\n \"39.358333,-77.396111,N39º21\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'46\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:05:03#
    ^3.25$6615339\",\r\n \"39.360556,-77.397222,N39º21\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:05:14#
    ^3.06$6615341\",\r\n \"39.363056,-77.398611,N39º21\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:05:24#
    ^3.58$6615343\",\r\n \"39.365278,-77.4,N39º21\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:05:34#
    ^3.37$6615345\",\r\n \"39.373056,-77.404444,N39º22\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:06:09#
    ^2.44$6615347\",\r\n \"39.375556,-77.405278,N39º22\\\\\\\\'32\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:06:19#
    ^3.4$6615348\",\r\n \"39.3775,-77.406389,N39º22\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:06:30#
    ^3.05$6615349\",\r\n \"39.38,-77.407778,N39º22\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:06:40#
    ^3.44$6615350\",\r\n \"39.385833,-77.413056,N39º23\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:07:14#
    ^3.25$6615351\",\r\n \"39.387778,-77.414722,N39º23\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:07:24#
    ^1.69$6615352\",\r\n \"39.39,-77.416667,N39º23\\\\\\\\'24\\\\\\\\'\\\\\\\\' W77º25\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:07:35#
    ^3.43$6615353\",\r\n \"39.391944,-77.418333,N39º23\\\\\\\\'31\\\\\\\\'\\\\\\\\' W77º25\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:07:45#
    ^3.31$6615354\",\r\n \"39.398611,-77.413056,N39º23\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:08:34#
    ^1.01$6615355\",\r\n \"39.400556,-77.405833,N39º24\\\\\\\\'2\\\\\\\\'\\\\\\\\' W77º24\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:08:55#
    ^1.01$6615356\",\r\n \"39.404167,-77.390833,N39º24\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'27\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:09:39#
    ^1.01$6615360\",\r\n \"39.404167,-77.384167,N39º24\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º23\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:10:00#
    ^1.01$6615362\",\r\n \"39.403889,-77.371667,N39º24\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:10:33#
    ^3.48$6615363\",\r\n \"39.403889,-77.3675,N39º24\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º22\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:10:43#
    ^1.14$6615364\",\r\n \"39.404167,-77.363333,N39º24\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:10:54#
    ^3.12$6615365\",\r\n \"39.404167,-77.359444,N39º24\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º21\\\\\\\\'34\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:11:04#
    ^3.27$6615366\",\r\n \"39.403611,-77.346667,N39º24\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:11:37#
    ^3.46$6615367\",\r\n \"39.4025,-77.3425,N39º24\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'33\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:11:47#
    ^3.16$6615368\",\r\n \"39.401667,-77.339167,N39º24\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:11:57#
    ^1.73$6615369\",\r\n \"39.400833,-77.336111,N39º24\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º20\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:12:08#
    ^3.11$6615370\",\r\n \"39.39,-77.318056,N39º23\\\\\\\\'24\\\\\\\\'\\\\\\\\' W77º19\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:13:12#
    ^2.8$6615375\",\r\n \"39.388889,-77.313889,N39º23\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:13:22#
    ^3.54$6615373\",\r\n \"39.388056,-77.31,N39º23\\\\\\\\'17\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:13:33#
    ^3.32$6615377\",\r\n \"39.387222,-77.306389,N39º23\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º18\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:13:43#
    ^3.58$6615378\",\r\n \"39.385,-77.293611,N39º23\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:14:15#
    ^2.72$6615379\",\r\n \"39.384167,-77.289722,N39º23\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:14:26#
    ^3.42$6615380\",\r\n \"39.383333,-77.285556,N39º23\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º17\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:14:36#
    ^3.26$6615381\",\r\n \"39.382778,-77.282222,N39º22\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:14:46#
    ^3.54$6615382\",\r\n \"39.380556,-77.269722,N39º22\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º16\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:15:19#
    ^3.53$6615383\",\r\n \"39.381389,-77.265556,N39º22\\\\\\\\'53\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:15:29#
    ^3.6$6615384\",\r\n \"39.381667,-77.261667,N39º22\\\\\\\\'54\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'42\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:15:40#
    ^3.64$6615385\",\r\n \"39.381111,-77.257778,N39º22\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º15\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:15:50#
    ^3.54$6615386\",\r\n \"39.378611,-77.246389,N39º22\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:16:24#
    ^3.6$6615387\",\r\n \"39.377778,-77.243056,N39º22\\\\\\\\'40\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:16:34#
    ^3.5$6615388\",\r\n \"39.376944,-77.239722,N39º22\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:16:45#
    ^3.23$6615389\",\r\n \"39.376389,-77.236389,N39º22\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º14\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:16:55#
    ^3.43$6615391\",\r\n \"39.373611,-77.226111,N39º22\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'34\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:17:27#
    ^3.15$6615394\",\r\n \"39.371944,-77.223056,N39º22\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:17:38#
    ^3.19$6615396\",\r\n \"39.370278,-77.220556,N39º22\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:17:48#
    ^2.97$6615397\",\r\n \"39.369167,-77.217222,N39º22\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'2\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:17:59#
    ^3.51$6615398\",\r\n \"39.370556,-77.206667,N39º22\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:18:32#
    ^3.19$6615400\",\r\n \"39.37,-77.203333,N39º22\\\\\\\\'12\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:18:43#
    ^0$6615399\",\r\n \"39.367778,-77.199722,N39º22\\\\\\\\'4\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:18:53#
    ^3.28$6615401\",\r\n \"39.367222,-77.196667,N39º22\\\\\\\\'2\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:19:04#
    ^3.35$6615402\",\r\n \"39.365278,-77.186111,N39º21\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:19:37#
    ^3.56$6615403\",\r\n \"39.364167,-77.1825,N39º21\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:19:48#
    ^3.57$6615404\",\r\n \"39.362778,-77.179167,N39º21\\\\\\\\'46\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:19:58#
    ^3.17$6615405\",\r\n \"39.360556,-77.176111,N39º21\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'34\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:20:09#
    ^3.32$6615406\",\r\n \"39.359444,-77.163611,N39º21\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'49\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:20:43#
    ^3.52$6615407\",\r\n \"39.359722,-77.159722,N39º21\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:20:54#
    ^3.19$6615410\",\r\n \"39.360278,-77.155556,N39º21\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:21:04#
    ^3.09$6615411\",\r\n \"39.360833,-77.151667,N39º21\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:21:14#
    ^3.14$6615413\",\r\n \"39.357222,-77.139722,N39º21\\\\\\\\'26\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:21:48#
    ^3.3$6615415\",\r\n \"39.355556,-77.136944,N39º21\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'13\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:21:58#
    ^3.29$6615416\",\r\n \"39.354167,-77.133611,N39º21\\\\\\\\'15\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:22:09#
    ^3.45$6615417\",\r\n \"39.353611,-77.13,N39º21\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:22:19#
    ^3.41$6615418\",\r\n \"39.351944,-77.116667,N39º21\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:22:55#
    ^3.6$6615419\",\r\n \"39.350833,-77.112778,N39º21\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'46\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:23:05#
    ^3.41$6615420\",\r\n \"39.350278,-77.109444,N39º21\\\\\\\\'1\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'34\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:23:15#
    ^3.49$6615421\",\r\n \"39.349444,-77.106389,N39º20\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:23:26#
    ^2.44$6615422\",\r\n \"39.3475,-77.094444,N39º20\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:24:01#
    ^2.9$6615423\",\r\n \"39.346944,-77.090833,N39º20\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'27\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:24:12#
    ^2.72$6615424\",\r\n \"39.346389,-77.0875,N39º20\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:24:22#
    ^2.92$6615425\",\r\n \"39.345833,-77.083611,N39º20\\\\\\\\'45\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:24:33#
    ^2.8$6615426\",\r\n \"39.342778,-77.072778,N39º20\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'22\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:25:06#
    ^2.66$6615429\",\r\n \"39.341667,-77.069444,N39º20\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:25:16#
    ^3.49$6615432\",\r\n \"39.340833,-77.065833,N39º20\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:25:27#
    ^2.12$6615433\",\r\n \"39.339722,-77.061944,N39º20\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:25:37#
    ^1.1$6615434\",\r\n \"39.337222,-77.050556,N39º20\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'2\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:26:10#
    ^3.37$6615435\",\r\n \"39.336944,-77.047222,N39º20\\\\\\\\'13\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:26:20#
    ^3.35$6615436\",\r\n \"39.336389,-77.043056,N39º20\\\\\\\\'11\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:26:31#
    ^3.09$6615438\",\r\n \"39.335278,-77.039722,N39º20\\\\\\\\'7\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:26:41#
    ^3.52$6615437\",\r\n \"39.331111,-77.028889,N39º19\\\\\\\\'52\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:27:15#
    ^3.01$6615439\",\r\n \"39.33,-77.025556,N39º19\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'32\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:27:26#
    ^3.58$6615440\",\r\n \"39.328611,-77.021944,N39º19\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:27:36#
    ^3.37$6615442\",\r\n \"39.3275,-77.018889,N39º19\\\\\\\\'39\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:27:47#
    ^2.88$6615441\",\r\n \"39.323056,-77.007222,N39º19\\\\\\\\'23\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'26\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:28:21#
    ^3.49$6615443\",\r\n \"39.322222,-77.003889,N39º19\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:28:32#
    ^3.32$6615444\",\r\n \"39.321944,-77,N39º19\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:28:42#
    ^2.67$6615446\",\r\n \"39.321389,-76.996389,N39º19\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:28:52#
    ^3.26$6615448\",\r\n \"39.319167,-76.985,N39º19\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:29:26#
    ^3.42$6615451\",\r\n \"39.318056,-76.981389,N39º19\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:29:36#
    ^3.43$6615452\",\r\n \"39.316944,-76.978056,N39º19\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:29:47#
    ^3.12$6615453\",\r\n \"39.315833,-76.974444,N39º18\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:29:57#
    ^2.82$6615454\",\r\n \"39.311111,-76.963056,N39º18\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:30:34#
    ^2.77$6615455\",\r\n \"39.309722,-76.959722,N39º18\\\\\\\\'35\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:30:44#
    ^2.83$6615456\",\r\n \"39.308889,-76.956111,N39º18\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'22\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:30:54#
    ^2.85$6615457\",\r\n \"39.308611,-76.9525,N39º18\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:31:05#
    ^3.21$6615458\",\r\n \"39.307222,-76.940556,N39º18\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'26\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:31:39#
    ^3.36$6615459\",\r\n \"39.306944,-76.936667,N39º18\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:31:50#
    ^3.21$6615460\",\r\n \"39.306667,-76.933056,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:32:00#
    ^3.18$6615461\",\r\n \"39.306111,-76.929167,N39º18\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:32:11#
    ^2.94$6615462\",\r\n \"39.304722,-76.9175,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:32:44#
    ^3.59$6615465\",\r\n \"39.302222,-76.910556,N39º18\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:33:05#
    ^3.36$6615468\",\r\n \"39.301944,-76.907222,N39º18\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'26\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:33:15#
    ^3.37$6615469\",\r\n \"39.304722,-76.895833,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:33:47#
    ^3.17$6615470\",\r\n \"39.305278,-76.891944,N39º18\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'31\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:33:57#
    ^2.92$6615472\",\r\n \"39.305556,-76.888333,N39º18\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:34:07#
    ^3.47$6615471\",\r\n \"39.305278,-76.884444,N39º18\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:34:18#
    ^3.1$6615474\",\r\n \"39.301667,-76.8725,N39º18\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:34:55#
    ^3.12$6615473\",\r\n \"39.300278,-76.869167,N39º18\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:35:06#
    ^2.63$6615476\",\r\n \"39.298611,-76.865833,N39º17\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:35:16#
    ^2.82$6615475\",\r\n \"39.2975,-76.8625,N39º17\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:35:26#
    ^3.08$6615477\",\r\n \"39.295556,-76.850833,N39º17\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:36:00#
    ^3.58$6615478\",\r\n \"39.295556,-76.846944,N39º17\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'49\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:36:10#
    ^3.15$6615479\",\r\n \"39.295833,-76.843611,N39º17\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:36:21#
    ^3.32$6615481\",\r\n \"39.295833,-76.839722,N39º17\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:36:31#
    ^2.79$6615483\",\r\n \"39.296111,-76.828611,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:37:04#
    ^2.29$6615485\",\r\n \"39.296111,-76.825,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:37:14#
    ^3.04$6615487\",\r\n \"39.296111,-76.821111,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:37:25#
    ^2.43$6615488\",\r\n \"39.295833,-76.817778,N39º17\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:37:35#
    ^1.45$6615489\",\r\n \"39.2975,-76.806389,N39º17\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:38:09#
    ^3.16$6615490\",\r\n \"39.298889,-76.803333,N39º17\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:38:20#
    ^3.22$6615491\",\r\n \"39.300833,-76.800833,N39º18\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:38:30#
    ^3.05$6615492\",\r\n \"39.303056,-76.798611,N39º18\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:38:41#
    ^2.65$6615493\",\r\n \"39.306944,-76.788056,N39º18\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'17\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:39:15#
    ^3.39$6615494\",\r\n \"39.306944,-76.785,N39º18\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:39:25#
    ^2.88$6615496\",\r\n \"39.306944,-76.781667,N39º18\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:39:36#
    ^3.48$6615495\",\r\n \"39.306667,-76.778611,N39º18\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:39:46#
    ^3.06$6615497\",\r\n \"39.306944,-76.7675,N39º18\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:40:19#
    ^3.17$6615501\",\r\n \"39.3075,-76.761389,N39º18\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:40:40#
    ^3.02$6615503\",\r\n \"39.307778,-76.758056,N39º18\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'29\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:40:51#
    ^3.24$6615504\",\r\n \"39.305833,-76.750833,N39º18\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:41:24#
    ^2.76$6615505\",\r\n \"39.306111,-76.750833,N39º18\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:41:35#
    ^2.91$6615506\",\r\n \"39.305833,-76.750833,N39º18\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:41:45#
    ^3.29$6615507\",\r\n \"39.305556,-76.75,N39º18\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:41:56#
    ^2.46$6615508\",\r\n \"39.304722,-76.748333,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:42:29#
    ^3.12$6615509\",\r\n \"39.304722,-76.748333,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:42:39#
    ^3.04$6615510\",\r\n \"39.304722,-76.747778,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:42:50#
    ^3.03$6615511\",\r\n \"39.304722,-76.746944,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'49\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:43:00#
    ^2.46$6615512\",\r\n \"39.304722,-76.745833,N39º18\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:43:34#
    ^3.19$6615514\",\r\n \"39.305,-76.745,N39º18\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'42\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:43:44#
    ^3.26$6615513\",\r\n \"39.305556,-76.744167,N39º18\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:43:54#
    ^2.78$6615515\",\r\n \"39.306389,-76.743333,N39º18\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:44:05#
    ^2.89$6615517\",\r\n \"39.313611,-76.744444,N39º18\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:44:39#
    ^2.97$6615521\",\r\n \"39.316389,-76.744444,N39º18\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:44:50#
    ^2.89$6615525\",\r\n \"39.318611,-76.744444,N39º19\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:45:00#
    ^2.93$6615526\",\r\n \"39.321389,-76.744444,N39º19\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:45:11#
    ^2.25$6615529\",\r\n \"39.329444,-76.744444,N39º19\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:45:45#
    ^3.47$6615530\",\r\n \"39.331944,-76.744444,N39º19\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:45:55#
    ^3.05$6615532\",\r\n \"39.334722,-76.744444,N39º20\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:46:06#
    ^3.29$6615531\",\r\n \"39.337222,-76.744444,N39º20\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:46:16#
    ^3.23$6615533\",\r\n \"39.345833,-76.745,N39º20\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'42\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:46:49#
    ^3.46$6615535\",\r\n \"39.348611,-76.745278,N39º20\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:46:59#
    ^3.41$6615534\",\r\n \"39.351111,-76.745556,N39º21\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:47:09#
    ^3.18$6615536\",\r\n \"39.353889,-76.745833,N39º21\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:47:20#
    ^3.04$6615537\",\r\n \"39.365,-76.747222,N39º21\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:47:58#
    ^3.39$6615539\",\r\n \"39.367778,-76.748056,N39º22\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:48:09#
    ^2.77$6615541\",\r\n \"39.370833,-76.7475,N39º22\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'51\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:48:19#
    ^1.1$6615542\",\r\n \"39.373333,-76.746111,N39º22\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'46\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:48:30#
    ^2.28$6615544\",\r\n \"39.381389,-76.737778,N39º22\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:49:09#
    ^3.08$6615546\",\r\n \"39.383056,-76.735,N39º22\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:49:19#
    ^2.86$6615547\",\r\n \"39.385278,-76.732778,N39º23\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:49:30#
    ^2.79$6615548\",\r\n \"39.386944,-76.730556,N39º23\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:49:40#
    ^3.53$6615549\",\r\n \"39.39,-76.720278,N39º23\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'13\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:50:14#
    ^3.09$6615550\",\r\n \"39.390278,-76.716944,N39º23\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:50:24#
    ^3.02$6615551\",\r\n \"39.390278,-76.713889,N39º23\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:50:35#
    ^2.73$6615552\",\r\n \"39.391111,-76.710278,N39º23\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:50:45#
    ^2.69$6615553\",\r\n \"39.394444,-76.700556,N39º23\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'2\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:51:18#
    ^3.66$6615554\",\r\n \"39.394722,-76.697222,N39º23\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:51:29#
    ^3.14$6615555\",\r\n \"39.395,-76.693056,N39º23\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:51:39#
    ^2.91$6615556\",\r\n \"39.395278,-76.689722,N39º23\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:51:50#
    ^2.2$6615557\",\r\n \"39.399167,-76.681667,N39º23\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:52:23#
    ^2.94$6615560\",\r\n \"39.401111,-76.679167,N39º24\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:52:33#
    ^3.37$6615562\",\r\n \"39.403056,-76.676389,N39º24\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:52:44#
    ^3.34$6615564\",\r\n \"39.405,-76.673056,N39º24\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:52:54#
    ^3.28$6615565\",\r\n \"39.410556,-76.664444,N39º24\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:53:29#
    ^3.38$6615566\",\r\n \"39.412222,-76.662778,N39º24\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'46\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:53:39#
    ^3.31$6615567\",\r\n \"39.414167,-76.660556,N39º24\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:53:50#
    ^2.38$6615568\",\r\n \"39.416111,-76.658333,N39º24\\\\\\\\'58\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:54:00#
    ^2.94$6615569\",\r\n \"39.420556,-76.647778,N39º25\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:54:36#
    ^3.21$6615570\",\r\n \"39.420556,-76.644167,N39º25\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:54:47#
    ^2.92$6615571\",\r\n \"39.42,-76.640833,N39º25\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'27\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:54:57#
    ^3.19$6615572\",\r\n \"39.419167,-76.637778,N39º25\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:55:07#
    ^3.43$6615573\",\r\n \"39.416111,-76.6275,N39º24\\\\\\\\'58\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:55:40#
    ^2.89$6615574\",\r\n \"39.415,-76.624722,N39º24\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'29\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:55:50#
    ^3.07$6615577\",\r\n \"39.412778,-76.619444,N39º24\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:56:11#
    ^3.05$6615579\",\r\n \"39.413611,-76.610278,N39º24\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:56:45#
    ^3.48$6615581\",\r\n \"39.413333,-76.606667,N39º24\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:56:55#
    ^2.73$6615582\",\r\n \"39.413056,-76.604167,N39º24\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:57:06#
    ^2.44$6615583\",\r\n \"39.412778,-76.601389,N39º24\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:57:16#
    ^2.59$6615584\",\r\n \"39.414167,-76.591111,N39º24\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:57:48#
    ^2.81$6615585\",\r\n \"39.413889,-76.587778,N39º24\\\\\\\\'50\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:57:59#
    ^3.39$6615586\",\r\n \"39.412778,-76.584722,N39º24\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:58:09#
    ^2.95$6615587\",\r\n \"39.411389,-76.582222,N39º24\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:58:20#
    ^3.05$6615588\",\r\n \"39.406111,-76.575,N39º24\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:58:52#
    ^3.31$6615589\",\r\n \"39.404444,-76.5725,N39º24\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:59:02#
    ^3.61$6615590\",\r\n \"39.4025,-76.57,N39º24\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 13:59:13#
    ^3.29$6615591\",\r\n \"39.401389,-76.567222,N39º24\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'2\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 13:59:23#
    ^3.15$6615592\",\r\n \"39.401389,-76.556944,N39º24\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'25\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:00:00#
    ^3.22$6615594\",\r\n \"39.400278,-76.555,N39º24\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:00:10#
    ^2.49$6615597\",\r\n \"39.399167,-76.552778,N39º23\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:00:20#
    ^2.51$6615598\",\r\n \"39.397778,-76.550278,N39º23\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:00:31#
    ^3.34$6615600\",\r\n \"39.391667,-76.540278,N39º23\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'25\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:01:07#
    ^3.56$6615602\",\r\n \"39.390556,-76.536389,N39º23\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:01:18#
    ^2.78$6615601\",\r\n \"39.389167,-76.533056,N39º23\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:01:28#
    ^3.19$6615603\",\r\n \"39.388333,-76.530278,N39º23\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'49\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:01:38#
    ^2.9$6615604\",\r\n \"39.3825,-76.521667,N39º22\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:02:15#
    ^1.59$6615605\",\r\n \"39.380278,-76.520278,N39º22\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'13\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:02:25#
    ^3.17$6615606\",\r\n \"39.377778,-76.519444,N39º22\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:02:36#
    ^3.52$6615607\",\r\n \"39.375,-76.518611,N39º22\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:02:46#
    ^3.19$6615608\",\r\n \"39.368056,-76.511667,N39º22\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'42\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:03:20#
    ^3.21$6615609\",\r\n \"39.366389,-76.509722,N39º21\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:03:31#
    ^2.55$6615610\",\r\n \"39.364444,-76.508333,N39º21\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:03:41#
    ^3.35$6615612\",\r\n \"39.3625,-76.506667,N39º21\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:03:52#
    ^3.21$6615613\",\r\n \"39.355556,-76.501667,N39º21\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:04:24#
    ^2.64$6615616\",\r\n \"39.353333,-76.5,N39º21\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:04:35#
    ^3.08$6615618\",\r\n \"39.351111,-76.499444,N39º21\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º29\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:04:45#
    ^2.34$6615619\",\r\n \"39.349444,-76.501389,N39º20\\\\\\\\'58\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:04:55#
    ^3.2$6615620\",\r\n \"39.344444,-76.510278,N39º20\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:05:30#
    ^3.63$6615621\",\r\n \"39.342222,-76.513333,N39º20\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:05:40#
    ^3.34$6615622\",\r\n \"39.339722,-76.514722,N39º20\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:05:51#
    ^3.28$6615623\",\r\n \"39.336944,-76.516389,N39º20\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º30\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:06:01#
    ^2.46$6615624\",\r\n \"39.329167,-76.523333,N39º19\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:06:36#
    ^3.65$6615625\",\r\n \"39.326944,-76.525556,N39º19\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'32\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:06:46#
    ^2.88$6615626\",\r\n \"39.324444,-76.528056,N39º19\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:06:56#
    ^3.01$6615628\",\r\n \"39.3225,-76.530278,N39º19\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'49\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:07:07#
    ^3.42$6615627\",\r\n \"39.314444,-76.533333,N39º18\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:07:40#
    ^2.81$6615629\",\r\n \"39.311944,-76.5325,N39º18\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:07:51#
    ^3.2$6615634\",\r\n \"39.309444,-76.531667,N39º18\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:08:01#
    ^2.61$6615633\",\r\n \"39.307222,-76.531111,N39º18\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:08:11#
    ^3.45$6615636\",\r\n \"39.298889,-76.530556,N39º17\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:08:45#
    ^3.45$6615637\",\r\n \"39.296667,-76.531111,N39º17\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:08:55#
    ^3.09$6615640\",\r\n \"39.296111,-76.531111,N39º17\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:08:57#
    ^3.09$6615641\",\r\n \"39.293889,-76.531667,N39º17\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º31\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:09:07#
    ^0$6615639\",\r\n \"39.285,-76.534722,N39º17\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:09:40#
    ^1.01$6615647\",\r\n \"39.284167,-76.538611,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:09:51#
    ^3.39$6615649\",\r\n \"39.284444,-76.542222,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'32\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:10:01#
    ^1.04$6615648\",\r\n \"39.284167,-76.546111,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º32\\\\\\\\'46\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:10:12#
    ^2.7$6615650\",\r\n \"39.277778,-76.551667,N39º16\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:10:44#
    ^2.98$6615651\",\r\n \"39.275556,-76.551944,N39º16\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:10:55#
    ^2.94$6615652\",\r\n \"39.273056,-76.553889,N39º16\\\\\\\\'23\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:11:05#
    ^3.11$6615653\",\r\n \"39.271111,-76.556389,N39º16\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:11:15#
    ^3.36$6615654\",\r\n \"39.266667,-76.562778,N39º16\\\\\\\\'0\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'46\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:11:49#
    ^2.78$6615655\",\r\n \"39.265556,-76.564444,N39º15\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:11:59#
    ^3.37$6615656\",\r\n \"39.264444,-76.566111,N39º15\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:12:10#
    ^3.24$6615657\",\r\n \"39.263056,-76.566389,N39º15\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º33\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:12:20#
    ^1.47$6615658\",\r\n \"39.265278,-76.568333,N39º15\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:12:54#
    ^3.28$6615659\",\r\n \"39.267222,-76.568611,N39º16\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:13:04#
    ^3.22$6615662\",\r\n \"39.268889,-76.568611,N39º16\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:13:14#
    ^3.33$6615663\",\r\n \"39.270278,-76.568611,N39º16\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:13:25#
    ^3.29$6615665\",\r\n \"39.275,-76.569167,N39º16\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:13:57#
    ^2.14$6615668\",\r\n \"39.276111,-76.569167,N39º16\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:14:08#
    ^3.31$6615667\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:14:18#
    ^3.3$6615669\",\r\n \"39.276667,-76.569167,N39º16\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:14:28#
    ^3.08$6615670\",\r\n \"39.276944,-76.569167,N39º16\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:15:02#
    ^3.08$6615671\",\r\n \"39.277222,-76.570833,N39º16\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:15:12#
    ^3.25$6615673\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:15:23#
    ^3.25$6615672\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:15:33#
    ^3.08$6615674\",\r\n \"39.2775,-76.572222,N39º16\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:16:07#
    ^2.51$6615681\",\r\n \"39.277778,-76.573889,N39º16\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'26\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:16:17#
    ^1.66$6615682\",\r\n \"39.278333,-76.575556,N39º16\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'32\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:16:27#
    ^3.1$6615683\",\r\n \"39.278889,-76.5775,N39º16\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:16:38#
    ^3.01$6615684\",\r\n \"39.280833,-76.580556,N39º16\\\\\\\\'51\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:17:11#
    ^2.89$6615687\",\r\n \"39.281111,-76.581111,N39º16\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:17:22#
    ^2.73$6615689\",\r\n \"39.281667,-76.582222,N39º16\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:17:32#
    ^3.14$6615691\",\r\n \"39.282222,-76.583056,N39º16\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º34\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:17:42#
    ^3.42$6615692\",\r\n \"39.283056,-76.584444,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:18:16#
    ^2.26$6615693\",\r\n \"39.283056,-76.584444,N39º16\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:18:26#
    ^2.84$6615694\",\r\n \"39.283611,-76.585556,N39º17\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:18:37#
    ^2.13$6615695\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:18:47#
    ^3.04$6615696\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:19:21#
    ^2.76$6615697\",\r\n \"39.284167,-76.586389,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:19:32#
    ^2.67$6615698\",\r\n \"39.284444,-76.586667,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:19:42#
    ^3.27$6615699\",\r\n \"39.284722,-76.5875,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:19:53#
    ^3.04$6615700\",\r\n \"39.284722,-76.588333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:20:26#
    ^1.01$6615701\",\r\n \"39.284722,-76.589167,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:20:37#
    ^3.09$6615702\",\r\n \"39.284444,-76.593611,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:21:18#
    ^2.54$6615707\",\r\n \"39.284444,-76.595,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'42\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:21:28#
    ^2.58$6615708\",\r\n \"39.284167,-76.595556,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:21:39#
    ^3.08$6615709\",\r\n \"39.284444,-76.596389,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:21:49#
    ^2.75$6615710\",\r\n \"39.284167,-76.598333,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:22:21#
    ^2.46$6615711\",\r\n \"39.284167,-76.599167,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º35\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:22:32#
    ^2.91$6615712\",\r\n \"39.283889,-76.600556,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'2\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:22:42#
    ^2.7$6615713\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:22:53#
    ^3.19$6615714\",\r\n \"39.283889,-76.601389,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:23:27#
    ^2.44$6615715\",\r\n \"39.284167,-76.601944,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:23:38#
    ^3.27$6615716\",\r\n \"39.283889,-76.603333,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:23:48#
    ^3.26$6615717\",\r\n \"39.283889,-76.603333,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:23:58#
    ^2.36$6615718\",\r\n \"39.284167,-76.603056,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:24:31#
    ^3.21$6615719\",\r\n \"39.284167,-76.603056,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:24:41#
    ^2.47$6615723\",\r\n \"39.284444,-76.603056,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:24:51#
    ^3$6615722\",\r\n \"39.284722,-76.603056,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:25:02#
    ^3.02$6615726\",\r\n \"39.286389,-76.604167,N39º17\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:25:35#
    ^3.46$6615727\",\r\n \"39.287222,-76.604444,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:25:46#
    ^2.7$6615728\",\r\n \"39.287222,-76.604722,N39º17\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'17\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:25:56#
    ^2.92$6615729\",\r\n \"39.2875,-76.604722,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'17\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:26:07#
    ^2.52$6615730\",\r\n \"39.287778,-76.605833,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:26:40#
    ^3.07$6615731\",\r\n \"39.287778,-76.605833,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:26:50#
    ^2.5$6615732\",\r\n \"39.287778,-76.606667,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:27:01#
    ^2.9$6615734\",\r\n \"39.287778,-76.608333,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:27:11#
    ^3.01$6615733\",\r\n \"39.2875,-76.611389,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:27:45#
    ^2.84$6615735\",\r\n \"39.286944,-76.6125,N39º17\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:27:55#
    ^3.46$6615736\",\r\n \"39.286944,-76.6125,N39º17\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:28:06#
    ^3.38$6615737\",\r\n \"39.286944,-76.6125,N39º17\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:28:16#
    ^2.9$6615738\",\r\n \"39.287778,-76.613056,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:28:49#
    ^2$6615741\",\r\n \"39.2875,-76.613333,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:29:00#
    ^3.28$6615745\",\r\n \"39.2875,-76.613611,N39º17\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'49\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:29:10#
    ^3.09$6615743\",\r\n \"39.287778,-76.613333,N39º17\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:29:20#
    ^2.31$6615746\",\r\n \"39.285278,-76.613056,N39º17\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:29:55#
    ^2.78$6615747\",\r\n \"39.284722,-76.613333,N39º17\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:30:05#
    ^3.1$6615748\",\r\n \"39.284444,-76.613056,N39º17\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:30:16#
    ^3.43$6615749\",\r\n \"39.284167,-76.613611,N39º17\\\\\\\\'3\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'49\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:30:26#
    ^3.3$6615750\",\r\n \"39.283889,-76.616111,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º36\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:31:03#
    ^3.46$6615757\",\r\n \"39.283889,-76.617222,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'2\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:31:13#
    ^2.47$6615758\",\r\n \"39.283889,-76.617778,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:31:23#
    ^3.24$6615760\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:31:34#
    ^2.79$6615765\",\r\n \"39.283889,-76.618056,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:32:06#
    ^2.96$6615768\",\r\n \"39.283889,-76.618333,N39º17\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:32:17#
    ^2.58$6615771\",\r\n \"39.283333,-76.618889,N39º17\\\\\\\\'0\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:32:27#
    ^3.32$6615772\",\r\n \"39.281944,-76.618889,N39º16\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:32:38#
    ^3.46$6615774\",\r\n \"39.274167,-76.620833,N39º16\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:33:13#
    ^2.95$6615776\",\r\n \"39.271944,-76.621944,N39º16\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:33:23#
    ^1.51$6615777\",\r\n \"39.269722,-76.623056,N39º16\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:33:34#
    ^1.91$6615778\",\r\n \"39.268333,-76.624722,N39º16\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'29\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:33:44#
    ^3.47$6615779\",\r\n \"39.269444,-76.633056,N39º16\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º37\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:34:18#
    ^3.39$6615780\",\r\n \"39.27,-76.636389,N39º16\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:34:28#
    ^2.83$6615787\",\r\n \"39.270278,-76.639722,N39º16\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:34:38#
    ^2.84$6615788\",\r\n \"39.270833,-76.643333,N39º16\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º38\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:34:49#
    ^1.49$6615789\",\r\n \"39.270833,-76.655278,N39º16\\\\\\\\'15\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:35:21#
    ^1.6$6615791\",\r\n \"39.269444,-76.658333,N39º16\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:35:32#
    ^2.74$6615796\",\r\n \"39.268333,-76.661389,N39º16\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:35:42#
    ^3.17$6615797\",\r\n \"39.266944,-76.664444,N39º16\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º39\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:35:53#
    ^3.4$6615798\",\r\n \"39.261389,-76.673056,N39º15\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:36:26#
    ^2.9$6615803\",\r\n \"39.258889,-76.674722,N39º15\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'29\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:36:36#
    ^3.41$6615805\",\r\n \"39.256667,-76.676111,N39º15\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'34\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:36:47#
    ^2.72$6615802\",\r\n \"39.254444,-76.677778,N39º15\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º40\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:36:57#
    ^3.16$6615806\",\r\n \"39.248056,-76.684167,N39º14\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:37:30#
    ^3.19$6615807\",\r\n \"39.246389,-76.686667,N39º14\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:37:40#
    ^3.51$6615809\",\r\n \"39.244167,-76.689444,N39º14\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'22\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:37:50#
    ^2.8$6615808\",\r\n \"39.242222,-76.6925,N39º14\\\\\\\\'32\\\\\\\\'\\\\\\\\' W76º41\\\\\\\\'33\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:38:01#
    ^3.12$6615810\",\r\n \"39.238889,-76.703889,N39º14\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:38:33#
    ^3.4$6615811\",\r\n \"39.237222,-76.707222,N39º14\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'26\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:38:44#
    ^3.29$6615812\",\r\n \"39.235278,-76.71,N39º14\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:38:54#
    ^2.75$6615813\",\r\n \"39.2325,-76.7125,N39º13\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º42\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:39:05#
    ^3.43$6615814\",\r\n \"39.224167,-76.718611,N39º13\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'7\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:39:38#
    ^3$6615815\",\r\n \"39.222222,-76.721389,N39º13\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'17\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:39:48#
    ^2.25$6615816\",\r\n \"39.22,-76.724167,N39º13\\\\\\\\'12\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'27\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:39:59#
    ^2.96$6615817\",\r\n \"39.218056,-76.726944,N39º13\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º43\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:40:09#
    ^3.26$6615819\",\r\n \"39.210833,-76.740556,N39º12\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'26\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:40:54#
    ^3.46$6615823\",\r\n \"39.209444,-76.743333,N39º12\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:41:04#
    ^1.04$6615824\",\r\n \"39.207778,-76.746389,N39º12\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º44\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:41:15#
    ^3.12$6615825\",\r\n \"39.202778,-76.756667,N39º12\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:41:48#
    ^3.52$6615826\",\r\n \"39.201111,-76.759722,N39º12\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:41:58#
    ^2.98$6615828\",\r\n \"39.199444,-76.763056,N39º11\\\\\\\\'58\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:42:09#
    ^2.85$6615827\",\r\n \"39.198056,-76.765278,N39º11\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º45\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:42:19#
    ^2.97$6615829\",\r\n \"39.195278,-76.768889,N39º11\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:42:57#
    ^3.35$6615831\",\r\n \"39.195,-76.768889,N39º11\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:43:07#
    ^2.65$6615830\",\r\n \"39.194167,-76.769722,N39º11\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:43:18#
    ^3.11$6615832\",\r\n \"39.193333,-76.770556,N39º11\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:43:28#
    ^3.18$6615833\",\r\n \"39.188889,-76.775556,N39º11\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'32\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:44:04#
    ^3.5$6615835\",\r\n \"39.187222,-76.777222,N39º11\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:44:15#
    ^3.3$6615837\",\r\n \"39.185556,-76.779444,N39º11\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'46\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:44:25#
    ^2.98$6615838\",\r\n \"39.183889,-76.781389,N39º11\\\\\\\\'2\\\\\\\\'\\\\\\\\' W76º46\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:44:36#
    ^2.92$6615840\",\r\n \"39.181389,-76.784444,N39º10\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:45:12#
    ^2.82$6615848\",\r\n \"39.181389,-76.784444,N39º10\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:45:22#
    ^3.35$6615849\",\r\n \"39.181111,-76.784722,N39º10\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:45:33#
    ^3.6$6615850\",\r\n \"39.181111,-76.784722,N39º10\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:45:43#
    ^2.82$6615851\",\r\n \"39.180278,-76.785833,N39º10\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:46:17#
    ^2.62$6615855\",\r\n \"39.18,-76.786111,N39º10\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:46:27#
    ^3.34$6615853\",\r\n \"39.179722,-76.786667,N39º10\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:46:38#
    ^2.85$6615852\",\r\n \"39.179444,-76.786944,N39º10\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'13\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:46:48#
    ^2.07$6615854\",\r\n \"39.178611,-76.788333,N39º10\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:47:21#
    ^2.39$6615856\",\r\n \"39.178056,-76.789444,N39º10\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'22\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:47:32#
    ^2.57$6615857\",\r\n \"39.1775,-76.790278,N39º10\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'25\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:47:42#
    ^2.85$6615858\",\r\n \"39.176944,-76.791111,N39º10\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:47:53#
    ^3.06$6615859\",\r\n \"39.175833,-76.793333,N39º10\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:48:30#
    ^3.26$6615865\",\r\n \"39.175278,-76.794167,N39º10\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:48:40#
    ^3.26$6615867\",\r\n \"39.175278,-76.794444,N39º10\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:48:51#
    ^2.65$6615864\",\r\n \"39.175,-76.794444,N39º10\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:49:01#
    ^3.27$6615866\",\r\n \"39.173611,-76.7975,N39º10\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'51\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:49:39#
    ^3.25$6615868\",\r\n \"39.173333,-76.798056,N39º10\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:49:49#
    ^2.56$6615871\",\r\n \"39.173333,-76.798333,N39º10\\\\\\\\'24\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:49:59#
    ^3.35$6615876\",\r\n \"39.172778,-76.798889,N39º10\\\\\\\\'22\\\\\\\\'\\\\\\\\' W76º47\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:50:10#
    ^3.3$6615877\",\r\n \"39.171667,-76.801111,N39º10\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:50:44#
    ^2.99$6615878\",\r\n \"39.171389,-76.801667,N39º10\\\\\\\\'17\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:50:55#
    ^3.18$6615879\",\r\n \"39.170556,-76.802778,N39º10\\\\\\\\'14\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:51:05#
    ^2.2$6615880\",\r\n \"39.170278,-76.803611,N39º10\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'13\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:51:15#
    ^3.16$6615881\",\r\n \"39.168889,-76.805556,N39º10\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:51:49#
    ^2.53$6615883\",\r\n \"39.168889,-76.805833,N39º10\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:51:59#
    ^3.21$6615886\",\r\n \"39.168333,-76.806389,N39º10\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:52:10#
    ^2.81$6615885\",\r\n \"39.168056,-76.806944,N39º10\\\\\\\\'5\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'25\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:52:20#
    ^2.94$6615888\",\r\n \"39.165556,-76.811111,N39º9\\\\\\\\'56\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:52:55#
    ^3.2$6615890\",\r\n \"39.165,-76.811944,N39º9\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:53:06#
    ^3.21$6615891\",\r\n \"39.164722,-76.8125,N39º9\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:53:16#
    ^2.55$6615892\",\r\n \"39.164722,-76.8125,N39º9\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:53:27#
    ^2.61$6615893\",\r\n \"39.163333,-76.814444,N39º9\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:54:00#
    ^3.62$6615900\",\r\n \"39.163333,-76.814722,N39º9\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:54:10#
    ^2.38$6615902\",\r\n \"39.163056,-76.815,N39º9\\\\\\\\'47\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:54:21#
    ^2.95$6615901\",\r\n \"39.162778,-76.815556,N39º9\\\\\\\\'46\\\\\\\\'\\\\\\\\' W76º48\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:54:31#
    ^2.94$6615903\",\r\n \"39.161944,-76.816944,N39º9\\\\\\\\'43\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:55:04#
    ^3.2$6615904\",\r\n \"39.161667,-76.817778,N39º9\\\\\\\\'42\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:55:14#
    ^3.19$6615905\",\r\n \"39.161389,-76.818333,N39º9\\\\\\\\'41\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:55:25#
    ^3.62$6615906\",\r\n \"39.161111,-76.818889,N39º9\\\\\\\\'40\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:55:35#
    ^3.46$6615907\",\r\n \"39.160278,-76.821389,N39º9\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'17\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:56:07#
    ^2.93$6615912\",\r\n \"39.160278,-76.821667,N39º9\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'18\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:56:18#
    ^3.33$6615910\",\r\n \"39.160278,-76.822222,N39º9\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:56:28#
    ^2.07$6615914\",\r\n \"39.16,-76.823333,N39º9\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:56:39#
    ^2.52$6615915\",\r\n \"39.159444,-76.825,N39º9\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:57:11#
    ^3.44$6615917\",\r\n \"39.159444,-76.825833,N39º9\\\\\\\\'34\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'33\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:57:21#
    ^3.5$6615916\",\r\n \"39.159167,-76.826667,N39º9\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:57:32#
    ^3.01$6615918\",\r\n \"39.159167,-76.827222,N39º9\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:57:42#
    ^2.75$6615919\",\r\n \"39.158611,-76.828889,N39º9\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:58:15#
    ^3.1$6615920\",\r\n \"39.158611,-76.829167,N39º9\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:58:25#
    ^2.82$6615921\",\r\n \"39.158611,-76.829444,N39º9\\\\\\\\'31\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'46\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:58:36#
    ^3.07$6615922\",\r\n \"39.158333,-76.83,N39º9\\\\\\\\'30\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:58:46#
    ^2.22$6615927\",\r\n \"39.1575,-76.831944,N39º9\\\\\\\\'27\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:59:21#
    ^2.8$6615930\",\r\n \"39.157222,-76.8325,N39º9\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:59:32#
    ^2.78$6615931\",\r\n \"39.157222,-76.832778,N39º9\\\\\\\\'26\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 14:59:42#
    ^3.01$6615937\",\r\n \"39.156944,-76.833056,N39º9\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:59:53#
    ^1.58$6615939\",\r\n \"39.156944,-76.833056,N39º9\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º49\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 14:59:53#
    ^0$6615934\",\r\n \"39.155278,-76.835833,N39º9\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:00:27#
    ^2.69$6615940\",\r\n \"39.154444,-76.836944,N39º9\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'13\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:00:38#
    ^1.09$6615938\",\r\n \"39.151667,-76.839444,N39º9\\\\\\\\'6\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'22\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:00:58#
    ^0$6615941\",\r\n \"39.145833,-76.843611,N39º8\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:01:32#
    ^2.87$6615942\",\r\n \"39.143611,-76.845,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'42\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:01:42#
    ^1.88$6615943\",\r\n \"39.141389,-76.846667,N39º8\\\\\\\\'29\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:01:53#
    ^3.38$6615945\",\r\n \"39.138889,-76.848333,N39º8\\\\\\\\'20\\\\\\\\'\\\\\\\\' W76º50\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:02:03#
    ^2.96$6615944\",\r\n \"39.133333,-76.856944,N39º8\\\\\\\\'0\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'25\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:02:37#
    ^1.01$6615950\",\r\n \"39.131944,-76.859444,N39º7\\\\\\\\'55\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'34\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:02:47#
    ^1.44$6615951\",\r\n \"39.1275,-76.863889,N39º7\\\\\\\\'39\\\\\\\\'\\\\\\\\' W76º51\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:03:08#
    ^3.02$6615956\",\r\n \"39.119444,-76.868889,N39º7\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:03:42#
    ^3.34$6615958\",\r\n \"39.116944,-76.871111,N39º7\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:03:52#
    ^2.59$6615962\",\r\n \"39.115,-76.873611,N39º6\\\\\\\\'54\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'25\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:04:02#
    ^3.46$6615959\",\r\n \"39.1125,-76.876667,N39º6\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º52\\\\\\\\'36\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:04:13#
    ^2.38$6615961\",\r\n \"39.105,-76.886667,N39º6\\\\\\\\'18\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:04:49#
    ^2.77$6615963\",\r\n \"39.102778,-76.888611,N39º6\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:04:59#
    ^3.25$6615964\",\r\n \"39.099722,-76.889722,N39º5\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:05:10#
    ^2.38$6615965\",\r\n \"39.096667,-76.890833,N39º5\\\\\\\\'48\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'27\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:05:20#
    ^3.64$6615966\",\r\n \"39.086944,-76.895556,N39º5\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:05:57#
    ^3.18$6615967\",\r\n \"39.084444,-76.8975,N39º5\\\\\\\\'4\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'51\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:06:07#
    ^2.98$6615968\",\r\n \"39.0825,-76.899167,N39º4\\\\\\\\'57\\\\\\\\'\\\\\\\\' W76º53\\\\\\\\'57\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:06:18#
    ^3$6615969\",\r\n \"39.080278,-76.900833,N39º4\\\\\\\\'49\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:06:28#
    ^2.57$6615970\",\r\n \"39.071944,-76.906667,N39º4\\\\\\\\'19\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:07:00#
    ^3$6615971\",\r\n \"39.069722,-76.908333,N39º4\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:07:11#
    ^2.43$6615972\",\r\n \"39.066944,-76.910278,N39º4\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:07:21#
    ^3.29$6615973\",\r\n \"39.064722,-76.912222,N39º3\\\\\\\\'53\\\\\\\\'\\\\\\\\' W76º54\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:07:32#
    ^3.17$6615975\",\r\n \"39.060556,-76.921944,N39º3\\\\\\\\'38\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:08:05#
    ^3.42$6615978\",\r\n \"39.059167,-76.925,N39º3\\\\\\\\'33\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'30\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:08:15#
    ^2.87$6615981\",\r\n \"39.056944,-76.9275,N39º3\\\\\\\\'25\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:08:26#
    ^2.65$6615980\",\r\n \"39.054444,-76.928889,N39º3\\\\\\\\'16\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:08:36#
    ^2.97$6615982\",\r\n \"39.045556,-76.933056,N39º2\\\\\\\\'44\\\\\\\\'\\\\\\\\' W76º55\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:09:13#
    ^2.46$6615983\",\r\n \"39.043611,-76.934444,N39º2\\\\\\\\'37\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'4\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:09:23#
    ^3.01$6615984\",\r\n \"39.041111,-76.936111,N39º2\\\\\\\\'28\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'10\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:09:33#
    ^3.37$6615985\",\r\n \"39.039167,-76.9375,N39º2\\\\\\\\'21\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:09:44#
    ^2.82$6615986\",\r\n \"39.033056,-76.943889,N39º1\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:10:17#
    ^2.96$6615987\",\r\n \"39.031111,-76.947222,N39º1\\\\\\\\'52\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:10:28#
    ^3.27$6615988\",\r\n \"39.029167,-76.949722,N39º1\\\\\\\\'45\\\\\\\\'\\\\\\\\' W76º56\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:10:38#
    ^3.41$6615989\",\r\n \"39.026667,-76.951667,N39º1\\\\\\\\'36\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'6\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:10:49#
    ^3.01$6615990\",\r\n \"39.020278,-76.9575,N39º1\\\\\\\\'13\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'27\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:11:22#
    ^3.08$6615992\",\r\n \"39.019444,-76.960278,N39º1\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:11:32#
    ^3.27$6615993\",\r\n \"39.018889,-76.963889,N39º1\\\\\\\\'8\\\\\\\\'\\\\\\\\' W76º57\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:11:43#
    ^2.91$6615995\",\r\n \"39.018611,-76.966667,N39º1\\\\\\\\'7\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:11:53#
    ^3.19$6615997\",\r\n \"39.019167,-76.976944,N39º1\\\\\\\\'9\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'37\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:12:27#
    ^3.24$6615999\",\r\n \"39.019722,-76.980278,N39º1\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º58\\\\\\\\'49\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:12:37#
    ^3.53$6616000\",\r\n \"39.019722,-76.983333,N39º1\\\\\\\\'11\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:12:48#
    ^3.48$6616001\",\r\n \"39.019444,-76.986667,N39º1\\\\\\\\'10\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:12:58#
    ^3.64$6616002\",\r\n \"39.016944,-76.995833,N39º1\\\\\\\\'1\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'45\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:13:33#
    ^3.08$6616004\",\r\n \"39.016389,-76.998611,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W76º59\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:13:44#
    ^3.31$6616003\",\r\n \"39.015556,-77.001389,N39º0\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:13:54#
    ^2.62$6616005\",\r\n \"39.015278,-77.003889,N39º0\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'14\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:14:05#
    ^3.53$6616006\",\r\n \"39.016389,-77.011944,N39º0\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:14:38#
    ^2.64$6616012\",\r\n \"39.016111,-77.014722,N39º0\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º0\\\\\\\\'53\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:14:48#
    ^2.87$6616014\",\r\n \"39.015833,-77.0175,N39º0\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:14:59#
    ^3.37$6616015\",\r\n \"39.016111,-77.020278,N39º0\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'13\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:15:09#
    ^3.36$6616016\",\r\n \"39.016111,-77.029722,N39º0\\\\\\\\'58\\\\\\\\'\\\\\\\\' W77º1\\\\\\\\'47\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:15:43#
    ^3.19$6616019\",\r\n \"39.013611,-77.034722,N39º0\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:16:03#
    ^3.34$6616022\",\r\n \"39.013333,-77.038056,N39º0\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'17\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:16:14#
    ^3.34$6616023\",\r\n \"39.013611,-77.047222,N39º0\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º2\\\\\\\\'50\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:16:48#
    ^3.12$6616024\",\r\n \"39.013611,-77.05,N39º0\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'0\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:16:59#
    ^3.06$6616026\",\r\n \"39.013611,-77.0525,N39º0\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:17:09#
    ^3.34$6616025\",\r\n \"39.013889,-77.055556,N39º0\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:17:19#
    ^3.62$6616027\",\r\n \"39.011944,-77.063611,N39º0\\\\\\\\'43\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'49\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:17:53#
    ^3.44$6616028\",\r\n \"39.01,-77.065278,N39º0\\\\\\\\'36\\\\\\\\'\\\\\\\\' W77º3\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:18:03#
    ^2.87$6616029\",\r\n \"39.008056,-77.066944,N39º0\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:18:14#
    ^2.46$6616030\",\r\n \"39.006667,-77.068889,N39º0\\\\\\\\'24\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:18:24#
    ^3.55$6616031\",\r\n \"39.005556,-77.0775,N39º0\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:18:58#
    ^2.8$6616033\",\r\n \"39.005278,-77.080833,N39º0\\\\\\\\'19\\\\\\\\'\\\\\\\\' W77º4\\\\\\\\'51\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:19:08#
    ^3.51$6616032\",\r\n \"39.006111,-77.084167,N39º0\\\\\\\\'22\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:19:18#
    ^2.98$6616035\",\r\n \"39.0075,-77.086389,N39º0\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:19:29#
    ^2.71$6616037\",\r\n \"39.012222,-77.093056,N39º0\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:20:02#
    ^3.02$6616041\",\r\n \"39.014167,-77.094444,N39º0\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:20:13#
    ^3.24$6616040\",\r\n \"39.015833,-77.096667,N39º0\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'48\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:20:23#
    ^3.19$6616042\",\r\n \"39.016667,-77.099444,N39º1\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º5\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:20:33#
    ^3.33$6616043\",\r\n \"39.020556,-77.104722,N39º1\\\\\\\\'14\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'17\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:21:06#
    ^3.31$6616047\",\r\n \"39.021667,-77.105556,N39º1\\\\\\\\'18\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:21:16#
    ^3.45$6616051\",\r\n \"39.022778,-77.106667,N39º1\\\\\\\\'22\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'24\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:21:27#
    ^3.06$6616052\",\r\n \"39.024167,-77.107778,N39º1\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'28\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:21:37#
    ^3.63$6616053\",\r\n \"39.028889,-77.116111,N39º1\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º6\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:22:11#
    ^3.12$6616054\",\r\n \"39.029444,-77.119167,N39º1\\\\\\\\'46\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'9\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:22:21#
    ^3.26$6616055\",\r\n \"39.03,-77.123056,N39º1\\\\\\\\'48\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:22:31#
    ^3.63$6616056\",\r\n \"39.030556,-77.125833,N39º1\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º7\\\\\\\\'33\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:22:42#
    ^3.15$6616057\",\r\n \"39.032222,-77.136389,N39º1\\\\\\\\'56\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'11\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:23:15#
    ^3.41$6616059\",\r\n \"39.033056,-77.139722,N39º1\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:23:26#
    ^2.69$6616063\",\r\n \"39.034167,-77.141944,N39º2\\\\\\\\'3\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'31\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:23:36#
    ^3.4$6616061\",\r\n \"39.035833,-77.144167,N39º2\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:23:47#
    ^3.11$6616064\",\r\n \"39.0425,-77.147778,N39º2\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:24:22#
    ^3.37$6616066\",\r\n \"39.044722,-77.148889,N39º2\\\\\\\\'41\\\\\\\\'\\\\\\\\' W77º8\\\\\\\\'56\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:24:32#
    ^3.33$6616067\",\r\n \"39.0475,-77.150278,N39º2\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:24:43#
    ^2.93$6616068\",\r\n \"39.049722,-77.151389,N39º2\\\\\\\\'59\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:24:53#
    ^3.21$6616069\",\r\n \"39.058056,-77.154444,N39º3\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'16\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:25:28#
    ^2.44$6616070\",\r\n \"39.060556,-77.155278,N39º3\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'19\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:25:38#
    ^3.31$6616071\",\r\n \"39.062222,-77.155833,N39º3\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'21\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:25:48#
    ^2.7$6616072\",\r\n \"39.063889,-77.156111,N39º3\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'22\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:25:59#
    ^3.46$6616073\",\r\n \"39.072222,-77.162222,N39º4\\\\\\\\'20\\\\\\\\'\\\\\\\\' W77º9\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:26:46#
    ^1.01$6616074\",\r\n \"39.080556,-77.170833,N39º4\\\\\\\\'50\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'15\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:27:35#
    ^3.46$6616077\",\r\n \"39.083333,-77.172222,N39º5\\\\\\\\'0\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:27:45#
    ^2.88$6616080\",\r\n \"39.085556,-77.173056,N39º5\\\\\\\\'8\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:27:56#
    ^2.24$6616081\",\r\n \"39.088333,-77.173889,N39º5\\\\\\\\'18\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'26\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:28:06#
    ^2.71$6616082\",\r\n \"39.095,-77.176389,N39º5\\\\\\\\'42\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:28:39#
    ^3.37$6616083\",\r\n \"39.096944,-77.177222,N39º5\\\\\\\\'49\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:28:49#
    ^2.2$6616084\",\r\n \"39.099167,-77.178056,N39º5\\\\\\\\'57\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'41\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:29:00#
    ^3.26$6616085\",\r\n \"39.101667,-77.179444,N39º6\\\\\\\\'6\\\\\\\\'\\\\\\\\' W77º10\\\\\\\\'46\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:29:10#
    ^2.61$6616086\",\r\n \"39.107778,-77.184167,N39º6\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:29:42#
    ^3.53$6616087\",\r\n \"39.109167,-77.185556,N39º6\\\\\\\\'33\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'8\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:29:53#
    ^3.13$6616088\",\r\n \"39.110278,-77.186667,N39º6\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'12\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:30:03#
    ^3.01$6616089\",\r\n \"39.110556,-77.186944,N39º6\\\\\\\\'38\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'13\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:30:13#
    ^2.88$6616091\",\r\n \"39.112222,-77.188889,N39º6\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'20\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:30:47#
    ^2.27$6616097\",\r\n \"39.113056,-77.189722,N39º6\\\\\\\\'47\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'23\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:30:57#
    ^2.55$6616098\",\r\n \"39.114167,-77.190833,N39º6\\\\\\\\'51\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'27\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:31:08#
    ^3.03$6616100\",\r\n \"39.115278,-77.191944,N39º6\\\\\\\\'55\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'31\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:31:18#
    ^3.45$6616102\",\r\n \"39.121111,-77.197778,N39º7\\\\\\\\'16\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'52\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:31:52#
    ^2.83$6616105\",\r\n \"39.123611,-77.199444,N39º7\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º11\\\\\\\\'58\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:32:02#
    ^2.93$6616106\",\r\n \"39.126389,-77.201389,N39º7\\\\\\\\'35\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'5\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:32:13#
    ^3.17$6616107\",\r\n \"39.128889,-77.203611,N39º7\\\\\\\\'44\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'13\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:32:23#
    ^2.78$6616108\",\r\n \"39.135833,-77.209722,N39º8\\\\\\\\'9\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'35\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:32:55#
    ^3.38$6616109\",\r\n \"39.138056,-77.210833,N39º8\\\\\\\\'17\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'39\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:33:06#
    ^2.92$6616110\",\r\n \"39.14,-77.211944,N39º8\\\\\\\\'24\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'43\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:33:16#
    ^3.55$6616111\",\r\n \"39.141111,-77.212222,N39º8\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'44\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:33:27#
    ^2.77$6616116\",\r\n \"39.141389,-77.210556,N39º8\\\\\\\\'29\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:34:03#
    ^3.1$6616120\",\r\n \"39.141111,-77.210556,N39º8\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:34:13#
    ^2.75$6616119\",\r\n \"39.140833,-77.210556,N39º8\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'38\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:34:24#
    ^3.14$6616121\",\r\n \"39.140278,-77.211111,N39º8\\\\\\\\'25\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'40\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:34:34#
    ^3.17$6616122\",\r\n \"39.140833,-77.215278,N39º8\\\\\\\\'27\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:35:09#
    ^3.11$6616129\",\r\n \"39.141111,-77.216389,N39º8\\\\\\\\'28\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'59\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:35:19#
    ^3.09$6616125\",\r\n \"39.141667,-77.2175,N39º8\\\\\\\\'30\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'3\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:35:29#
    ^3.45$6616127\",\r\n \"39.142778,-77.216944,N39º8\\\\\\\\'34\\\\\\\\'\\\\\\\\' W77º13\\\\\\\\'1\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:35:40#
    ^2.72$6616130\",\r\n \"39.143611,-77.215,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'54\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:36:13#
    ^3.04$6616132\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:36:24#
    ^3.08$6616131\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev2#DriveTest#DUMMY#2023-10-05 15:36:34#
    ^3.16$6616133\",\r\n \"39.143611,-77.215278,N39º8\\\\\\\\'37\\\\\\\\'\\\\\\\\' W77º12\\\\\\\\'55\\\\\\\\'\\\\\\\\' ^POLQA^US207Dev1#DriveTest#DUMMY#2023-10-05 15:36:45#
    ^3.02$6616134\",\r\n \"39.14,-77.22,NONE^VQUADAPP-VQuadDown^192.168.10.139#RBICHOFFTESTPC#IGNORETS-VQUAD-
    $1\",\r\n \"12.9273,77.6009,NONE^VQUADAPP-VQuadDown^192.168.1.212#Raga#IGNORETS-VQUAD-
    $381\",\r\n \"12.93,77.6,NONE^VQUADAPP-VQuadDown^192.168.1.199#GLIN-87#IGNORETS-VQUAD-
    $681\",\r\n \"39.1434,-77.2155,NONE^VQUADAPP-VQuadDown^192.168.2.223#DESKTOP-SS11JLK#IGNORETS-VQUAD-
    $761\",\r\n \"39.1434,-77.2155,NONE^VQUADAPP-VQuadDown^192.168.56.1#LYEDKTP21#IGNORETS-VQUAD-
    $9\",\r\n \"39.1434,-77.2155,NONE^VQUADAPP-VQuadDown^192.168.30.100#LAPTOP-LBSOJTKI#IGNORETS-VQUAD-
    $661\",\r\n \"12.93,77.6,NONE^VQUADAPP-VQuadDown^160213#v5p1-VM213osc#IGNORETS-VQUAD-
    $641\",\r\n \"35.1222,-79.3625,NONE^VQUADAPP-VQuadDown^192.168.30.57#MSI#IGNORETS-VQUAD-
    $601\",\r\n \"12.9267,77.6011,NONE^VQUADAPP-VQuadDown^192.168.1.212#GLIN-23#IGNORETS-VQUAD-
    $221\",\r\n \"39.143,-77.2154,NONE^VQUADAPP-ScriptRunning^192.168.10.139#RBICHOFFTESTPC#IGNORETS-VQUAD-
    $721\",\r\n \"12.9265,77.6012,NONE^VQUADAPP-VQuadDown^160045#Zhiyong22#IGNORETS-VQUAD-
    $21\",\r\n \"39.1434,-77.2155,NONE^VQUADAPP-VQuadDown^192.168.10.146#TVO23#IGNORETS-VQUAD-
    $741\",\r\n \"39.143,-77.216,NONE^MOBILEAPP-NotConnected^000033#..2785 - velvetUS#IGNORETS-MOBILE-
    $2369\",\r\n \"39.143,-77.216,NONE^MOBILEAPP-NotConnected^000019#..2153 - RobiPhone2#IGNORETS-MOBILE-
    $2367\",\r\n \"39.346,-76.704,NONE^MOBILEAPP-NotConnected^000039#..ec48 - A53#IGNORETS-MOBILE-
    $2368\",\r\n \"12.926518,77.601155,NONE^VMOBILEAPP-Down^#v5p1-160105-India100#IGNORETS-VMOBILE-
    $4\",\r\n \"12.928928,77.597015,NONE^VMOBILEAPP-Down^#v5p1-VM203#IGNORETS-VMOBILE-
    $7\",\r\n \"12.926389,77.601111,NONE^VMOBILEAPP-Down^#v5p1-160105-India3000#IGNORETS-VMOBILE-
    $141\",\r\n \"12.926389,77.601111,NONE^VMOBILEAPP-Down^##IGNORETS-VMOBILE-
    $142\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#VM206-TIN#IGNORETS-VMOBILE-
    $144\",\r\n \"12.926944,77.600833,NONE^VMOBILEAPP-Down^#v5p1-160105-IND#IGNORETS-VMOBILE-
    $321\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-vm107#IGNORETS-VMOBILE-
    $522\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#MSI#IGNORETS-VMOBILE-
    $601\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#DESKTOP-SS11JLK#IGNORETS-VMOBILE-
    $761\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM217#IGNORETS-VMOBILE-
    $762\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM248#IGNORETS-VMOBILE-
    $962\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#US-vMobile215#IGNORETS-VMOBILE-
    $1081\",\r\n \"7.361111,3.836111,NONE^VMOBILEAPP-Down^#vMobile-160201#IGNORETS-VMOBILE-
    $1303\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Up^#v5p1-VM219SW#IGNORETS-VMOBILE-
    $1341\",\r\n \"39.143056,-77.215278,NONE^VMOBILEAPP-Up^#v226-nearside#IGNORETS-VMOBILE-
    $1401\",\r\n \"39.143056,-77.215833,NONE^VMOBILEAPP-Down^#v206-farside#IGNORETS-VMOBILE-
    $1402\",\r\n \"12.925087,77.601717,NONE^VMOBILEAPP-Down^#GLIndia_Dev_Unit#IGNORETS-VMOBILE-
    $1\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#vMobile-Dev1#IGNORETS-VMOBILE-
    $181\",\r\n \"39.143333,-77.215556,NONE^VMOBILEAPP-Down^#vMobile-Dev2#IGNORETS-VMOBILE-
    $182\",\r\n \"39.143333,-77.215556,NONE^VMOBILEAPP-Down^#v5p1-VM202-Tin#IGNORETS-VMOBILE-
    $183\",\r\n \"12.931667,77.598889,NONE^VMOBILEAPP-Down^#vMobile-IndiaDev1#IGNORETS-VMOBILE-
    $184\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM218#IGNORETS-VMOBILE-
    $202\",\r\n \"39.143611,-77.214722,NONE^VMOBILEAPP-Down^#v5p1-Zhiyong#IGNORETS-VMOBILE-
    $204\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM213#IGNORETS-VMOBILE-
    $226\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM213-GL-Communication818-diamond-USAMd#IGNORETS-VMOBILE-
    $228\",\r\n \"39.143388,-77.21553,NONE^VMOBILEAPP-Down^#v5p1-VM201a#IGNORETS-VMOBILE-
    $241\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#Stat214-test#IGNORETS-VMOBILE-
    $245\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#Mobile-v246#IGNORETS-VMOBILE-
    $421\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1209#IGNORETS-VMOBILE-
    $422\",\r\n \"39.143333,-77.215556,NONE^VMOBILEAPP-Down^#v5p1-VM215#IGNORETS-VMOBILE-
    $722\",\r\n \"39.143889,-77.215833,NONE^VMOBILEAPP-Down^#vMob-version51-serial160214USA#IGNORETS-VMOBILE-
    $801\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#vMob-version51-serial160215USA#IGNORETS-VMOBILE-
    $802\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM219#IGNORETS-VMOBILE-
    $822\",\r\n \"-41.280833,174.775833,NONE^VMOBILEAPP-Down^#v5p1-VM220#IGNORETS-VMOBILE-
    $824\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM202#IGNORETS-VMOBILE-
    $1201\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM206#IGNORETS-VMOBILE-
    $6\",\r\n \"31.643056,122.118889,NONE^VMOBILEAPP-Down^#LYEDKTP21#IGNORETS-VMOBILE-
    $9\",\r\n \"39.143398,-77.215563,NONE^VMOBILEAPP-Down^#v5p1-VM107#IGNORETS-VMOBILE-
    $10\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#Zhiyong22#IGNORETS-VMOBILE-
    $21\",\r\n \"39.143337,-77.215497,NONE^VMOBILEAPP-Down^#v5p1-VM249#IGNORETS-VMOBILE-
    $22\",\r\n \"39.104167,-77.228056,NONE^VMOBILEAPP-Down^#Sonny50m#IGNORETS-VMOBILE-
    $23\",\r\n \"39.143333,-77.215556,NONE^VMOBILEAPP-Down^#v5p1-VM246#IGNORETS-VMOBILE-
    $42\",\r\n \"39.143333,-77.215556,NONE^VMOBILEAPP-Down^#v5p1-VM201#IGNORETS-VMOBILE-
    $43\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM245#IGNORETS-VMOBILE-
    $81\",\r\n \"52.337222,-.194167,NONE^VMOBILEAPP-Down^#GL-Demo1#IGNORETS-VMOBILE-
    $101\",\r\n \"12.926389,77.601111,NONE^VMOBILEAPP-Down^#vMobile-v5p1-160105-India3000#IGNORETS-VMOBILE-
    $143\",\r\n \"12.9275,77.601667,NONE^VMOBILEAPP-Down^#vMobile-IndiaDev1-160203#IGNORETS-VMOBILE-
    $203\",\r\n \"12.926944,77.6,NONE^VMOBILEAPP-Down^#vMobile Name saved#IGNORETS-VMOBILE-
    $221\",\r\n \"12.926389,77.601111,NONE^VMOBILEAPP-Down^#1vMobile-v5p1-160105-India3000#IGNORETS-VMOBILE-
    $223\",\r\n \"39.143889,-77.213611,NONE^VMOBILEAPP-Down^#v5p1-VM214-Test14#IGNORETS-VMOBILE-
    $227\",\r\n \"39.143333,-77.215556,NONE^VMOBILEAPP-Down^#v5p1-VM214#IGNORETS-VMOBILE-
    $242\",\r\n \"39.143056,-77.215278,NONE^VMOBILEAPP-Down^#Mobile-246#IGNORETS-VMOBILE-
    $243\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#Station-245#IGNORETS-VMOBILE-
    $244\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#Mob213-test#IGNORETS-VMOBILE-
    $246\",\r\n \"39.143056,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM207#IGNORETS-VMOBILE-
    $263\",\r\n \"39.143056,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM208#IGNORETS-VMOBILE-
    $264\",\r\n \"12.926389,77.601111,NONE^VMOBILEAPP-Down^#1vMobile-105#IGNORETS-VMOBILE-
    $341\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM210#IGNORETS-VMOBILE-
    $382\",\r\n \"39.143056,-77.215278,NONE^VMOBILEAPP-Down^#vMobile Name saved#IGNORETS-VMOBILE-
    $302\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM213#IGNORETS-VMOBILE-
    $621\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM214OS#IGNORETS-VMOBILE-
    $622\",\r\n \"39.143056,-77.215556,NONE^VMOBILEAPP-Down^#v5p1-VM214#IGNORETS-VMOBILE-
    $623\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM213OS#IGNORETS-VMOBILE-
    $624\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM207R#IGNORETS-VMOBILE-
    $625\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM210-osc#IGNORETS-VMOBILE-
    $626\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1209-osc#IGNORETS-VMOBILE-
    $627\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#Station-VM210-osc#IGNORETS-VMOBILE-
    $628\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#Mobile-VM209-osc#IGNORETS-VMOBILE-
    $629\",\r\n \"52.337222,-.194444,NONE^VMOBILEAPP-Down^#StationVM210-osc#IGNORETS-VMOBILE-
    $630\",\r\n \"52.337222,-.194722,NONE^VMOBILEAPP-Down^#MobileVM209-osc#IGNORETS-VMOBILE-
    $631\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM213osc#IGNORETS-VMOBILE-
    $641\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#GLIN-87#IGNORETS-VMOBILE-
    $681\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM210osc#IGNORETS-VMOBILE-
    $683\",\r\n \"-41.280556,174.771389,NONE^VMOBILEAPP-Down^#v5p1-VM221#IGNORETS-VMOBILE-
    $862\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM208TV#IGNORETS-VMOBILE-
    $901\",\r\n \"39.143333,-77.215556,NONE^VMOBILEAPP-Down^#v5p1-VM208TinVmobile#IGNORETS-VMOBILE-
    $921\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM208TV1#IGNORETS-VMOBILE-
    $922\",\r\n \"39.143333,-77.215833,NONE^VMOBILEAPP-Up^#v5p1-VM208V#IGNORETS-VMOBILE-
    $923\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#vMob-version51#IGNORETS-VMOBILE-
    $941\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM227#IGNORETS-VMOBILE-
    $963\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM204#IGNORETS-VMOBILE-
    $1041\",\r\n \"12.928333,77.593889,NONE^VMOBILEAPP-Down^#v5p1-160105#IGNORETS-VMOBILE-
    $1061\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VMPTT#IGNORETS-VMOBILE-
    $1101\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM202#IGNORETS-VMOBILE-
    $1102\",\r\n \"52.3375,-.194722,NONE^VMOBILEAPP-Down^#GL-Demo2#IGNORETS-VMOBILE-
    $102\",\r\n \"12.926389,77.601111,NONE^VMOBILEAPP-Down^#ZDINGDKTP#IGNORETS-VMOBILE-
    $121\",\r\n \"39.143056,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM201rob#IGNORETS-VMOBILE-
    $301\",\r\n \"39.143056,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM201Rob#IGNORETS-VMOBILE-
    $303\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#V5p1-VM202Tin#IGNORETS-VMOBILE-
    $305\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM209#IGNORETS-VMOBILE-
    $363\",\r\n \"38.761944,-77.190278,NONE^VMOBILEAPP-Down^#v5p1-VM212#IGNORETS-VMOBILE-
    $462\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#TVO23#IGNORETS-VMOBILE-
    $561\",\r\n \"39.144444,-77.216389,NONE^VMOBILEAPP-Down^#v5p1-Zhiyong#IGNORETS-VMOBILE-
    $562\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-Zhiyong#IGNORETS-VMOBILE-
    $563\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM210OS#IGNORETS-VMOBILE-
    $682\",\r\n \"-41.169722,175.133611,NONE^VMOBILEAPP-Down^#v5p1-VM222#IGNORETS-VMOBILE-
    $843\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM226#IGNORETS-VMOBILE-
    $965\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#TVM201osc#IGNORETS-VMOBILE-
    $981\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM204#IGNORETS-VMOBILE-
    $982\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM219#IGNORETS-VMOBILE-
    $1062\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#vMob-version51#IGNORETS-VMOBILE-
    $1065\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM208V#IGNORETS-VMOBILE-
    $1066\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM244#IGNORETS-VMOBILE-
    $1161\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM104-5G#IGNORETS-VMOBILE-
    $1164\",\r\n \"39.143333,-77.215556,NONE^VMOBILEAPP-Down^#v5p1-VM0202#IGNORETS-VMOBILE-
    $1165\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM213V#IGNORETS-VMOBILE-
    $1221\",\r\n \"39.143333,-77.215556,NONE^VMOBILEAPP-Down^#v5p1-VM230#IGNORETS-VMOBILE-
    $1261\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM239#IGNORETS-VMOBILE-
    $1285\",\r\n \"39.143333,-77.215278,NONE^VMOBILEAPP-Down^#v5p1-VM241#IGNORETS-VMOBILE-
    $1286\"\r\n]`;\r\n\r\n let rows: any[] = JSON.parse(dummy) as any[];\r\n debugger;\r\n console.log(rows);\r\n return rows;\r\n\r\n }\r\n\r\n stCord = [];\r\n GetStateCoordinates() {\r\n this.stCord = [[75.51466825899215, 14.376174226459902], [75.5161627878276, 14.37688192058442], [75.51686275652774, 14.377285975105078], [75.5174150870165, 14.378093609856803], [75.51869267429534, 14.378196679491772], [75.5195401619036, 14.377908556359822], [75.5204088194652, 14.376791082826744], [75.52069620508168, 14.3745942991449], [75.52000475939683, 14.372702196848788], [75.51987327878648, 14.371337491561796], [75.52016907342416, 14.36996121172113], [75.51954936898134, 14.368809348278559], [75.51927490385394, 14.367727542866946], [75.51957383463031, 14.366213413587099], [75.51959704180476, 14.363619712919096], [75.5190584080418, 14.360636539630779], [75.51865751926961, 14.358329451994235], [75.51826669862257, 14.356710606592797], [75.5177258070103, 14.35481885401588], [75.51691995900597, 14.353079841738612], [75.51651432829408, 14.352012318132497], [75.51681871555503, 14.349683006455622], [75.51752500895681, 14.34842560797229], [75.51807681497229, 14.347035383013441], [75.51836099544296, 14.345513777953293], [75.51864613433662, 14.343729902145355], [75.51864617133768, 14.340845506643353], [75.51836435041804, 14.33865935804457], [75.51780137366754, 14.335412797578451], [75.51615745444865, 14.328665720137472], [75.51518969144085, 14.325429493730175], [75.51411096712575, 14.32578054406758], [75.51224265404444, 14.326456531816495], [75.51119593723985, 14.32672355955344], [75.5102706690137, 14.326792235595471], [75.50797357360764, 14.327851431670002], [75.50689518825497, 14.328533217676606], [75.50584705696576, 14.330013683243786], [75.50533898845988, 14.331243975165082], [75.50466167462866, 14.33269656623072], [75.50366872380259, 14.334192232889402], [75.50217421686732, 14.335211108167615], [75.5033224208447, 14.337579089456852], [75.50376757316246, 14.340168926887786], [75.50444988216866, 14.34390953834205], [75.50502758127725, 14.345927453791338], [75.50546028778952, 14.34834220410933], [75.50550203646551, 14.351686102681759], [75.50542894193185, 14.35337295974887], [75.50594015508818, 14.354836807827576], [75.50684423836726, 14.356107270375547], [75.50774204714406, 14.357944299627595], [75.50769160308685, 14.35964593817015], [75.50783244171913, 14.36170916088897], [75.50755304273937, 14.364752638931607], [75.50826049985608, 14.367761118051698], [75.50922953970182, 14.369065459134557], [75.51038304563541, 14.369977097232006], [75.51175768908057, 14.370896990513405], [75.51352494743588, 14.371799090722744], [75.51469052779282, 14.37253332692392], [75.51526697025827, 14.374245481271783], [75.51466825899215, 14.376174226459902]];\r\n\r\n }\r\n\r\n //******************************* *************************************** MAIN CODE **********************************************************\r\n\r\n modifyFilter() {\r\n //this._router.navigate([{ outlets: { filterPopup: ['filters'], configPopup: null } }]);\r\n let selectedMainFilterCrieriaName = 'null';\r\n this.commonFilterService.mainFilter_CriteriaName.subscribe(res => selectedMainFilterCrieriaName = res);\r\n this._router.navigate([{ outlets: { filterPopup: ['filters', selectedMainFilterCrieriaName], configPopup: null } }]);\r\n\r\n /////// when calling modify search set mainfilter to initial values\r\n //this.commonFilterService.SetMainFilter(0);// set selected mainfilter id\r\n //this.commonFilterService.setMFCustDT(\"\");\r\n ////this.commonFilterService.basicRefresh();\r\n }\r\n\r\n clearAllFilters() {\r\n //this.table.sorter.sortMeta = [];\r\n //this.table.events.onSort();//IMP- to reset sorting sel cols to none\r\n\r\n //if (this.table.dataFilter.hasFilters()) {\r\n // this.table.dataFilter.clear();\r\n // //console.log(this.table.dataFilter.hasFilters())\r\n // this.table.events.onFilter();\r\n // //this.table.events.onFilterClear();\r\n // this.clearFilters.emit();\r\n //}\r\n }\r\n\r\n ngOnDestroy() {\r\n // Clear out the old markers.\r\n this.markers = [];\r\n }\r\n\r\n parentEvent() {\r\n //debugger;\r\n this.title = rsltTypeInTitle(this.rsltType);\r\n this.childTitleEvent.emit(this.title);\r\n }\r\n\r\n status1: boolean = false;\r\n status2: boolean = false;\r\n togglePanes(type) {\r\n if (type == 1) {\r\n this.status1 = !this.status1;\r\n this.status2 = false;\r\n }\r\n else if (type == 2) {\r\n this.status2 = !this.status2;\r\n this.status1 = false;\r\n }\r\n }\r\n\r\n //legendList: any\r\n SetPinLegnd(legendList: any) {\r\n //debugger;\r\n this.dynamicPinLegends = [];\r\n let legList = legendList.split('#');\r\n //console.log(legendList)\r\n for (let i = 1; i < legList.length; i++) {\r\n let item = legList[i].split('@');\r\n //console.log(item[5])\r\n this.dynamicPinLegends.push(\r\n {\r\n queryCount: item[0].split('-')[1],\r\n imgSrc: item[1].split('-')[1],\r\n resultType: item[2].split('-')[1],\r\n thresholdType: item[3].indexOf('- -') != -1 ? item[3].split('- -')[1].split(',')[0].trim() : item[3].split('-')[1].split(',')[0].trim(),//susheel - pass fail test-fail\r\n pinType: item[4].split('-')[1],\r\n //condVal: item[5].indexOf(' -') != -1 ? item[5].split('-')[1] + '-' + item[5].split('-')[2] : item[5].split('-')[1],//susheel - check if filter value is -ve\r\n condVal: item[5].replace(/::true/gi, '').replace(/::false/gi, '').replace(/condVal-/gi, ''),//susheel\r\n noOfRows: item[6].split('-')[1]\r\n }\r\n );\r\n }\r\n //console.log(this.dynamicPinLegends)\r\n\r\n //this.dynamicPinLegends = [\r\n // {\r\n // queryCount:'100',\r\n // imgSrc:'https://chart.googleapis.com/chart?chst=d_map_xpin_letter&chld=pin||00FF00|FFFFFF',\r\n // resultType: 'LegAll',\r\n // thresholdType : 'PASS',\r\n // pinType: 'Threshold Type',\r\n // condVal: 'Battery Level() >= 90 < font style = color: green > AND < /font>
    RSSI(dBm) <= 100',\r\n // noOfRows:'0'\r\n // }\r\n //];\r\n }\r\n\r\n\r\n DynamicHtmlEvent() {\r\n //var body = \"\";\r\n //this.test = this.sanitizer.bypassSecurityTrustHtml(body);\r\n }\r\n\r\n ngAfterViewInit() {\r\n //debugger;\r\n\r\n //var el = document.getElementById(\"img12\");\r\n //el.onclick = this.ShowMapLegendWin;\r\n\r\n //this.elRef.nativeElement.querySelector('img').addEventListner('click', this.ShowMapLegendWin.bind(this));\r\n //this.elRef.nativeElement.querySelector('button').addEventListner('click', this.ShowMapLegendWin.bind(this));\r\n // setTimeout(() => { this.map.triggerResize(); }, 500)\r\n\r\n }\r\n\r\n ///private event: MouseEvent;\r\n\r\n // initial center position for the map///////////////////////////////// start Pin Marker\r\n clickedMarker(infowindow, index: number) {\r\n //console.log(this.previous)\r\n ///// close previous window\r\n if (this.previous) {\r\n //console.log(this.previous[\"isOpen\"])\r\n if (this.previous[\"isOpen\"] == true)\r\n this.previous.close();\r\n }\r\n this.previous = infowindow;\r\n //console.log(index);//susheel\r\n //if (index != 11) {\r\n if (this.bluetoothData[index].indexOf('IGNORETS-VQUAD') > -1) {\r\n //console.log(this.bluetoothData[index])//susheel\r\n this.bluetoothText = this.bluetoothData[index].split('$')[1];//this.bluetoothData[index].split('(')[2].split(')')[0];\r\n this.isBlutoothButton = true;\r\n }\r\n else\r\n this.isBlutoothButton = false;\r\n\r\n let latlng = {\r\n lat: infowindow.hostMarker.latitude,\r\n lng: infowindow.hostMarker.longitude\r\n }\r\n\r\n this.geocode(latlng).then(place => {\r\n this.currentPinLocation = place.formatted_address;\r\n let pinInfo = this.infowindowArray[index].replace('Loading...', this.currentPinLocation)\r\n this.infoWindowbody = this.sanitizer.bypassSecurityTrustHtml(pinInfo);\r\n this.previous.open();\r\n this.previous[\"isOpen\"] = true;//susheel\r\n\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n });\r\n\r\n //}\r\n //else {\r\n\r\n // this.infoWindowbody = this.sanitizer.bypassSecurityTrustHtml(\"fsf\");\r\n //}\r\n //console.log(this.infowindowArray[index]);\r\n }\r\n\r\n //mapClicked($event: MouseEvent) {\r\n // this.markers.push({\r\n // lat: $event.coords.lat,\r\n // lng: $event.coords.lng,\r\n // draggable: true\r\n // });\r\n //}\r\n\r\n\r\n // //markerDragEnd(m: marker, $event: MouseEvent) \r\n markerDragEnd() {\r\n alert(1);\r\n console.log('dragEnd');\r\n }\r\n\r\n markers: marker[] = [\r\n {\r\n lat: this.lat.toString(),\r\n lng: this.lng.toString(),\r\n //lat: this.lat,\r\n //lng: this.lng,\r\n label: '', //'A',\r\n draggable: true,\r\n iconurl: '',// this.iurl,\r\n widthImg: 0,\r\n heightImg: 0,\r\n resultType: '',\r\n popUpRsltType: '',\r\n itemID: ''\r\n },\r\n\r\n ]\r\n\r\n\r\n ///////to get address based on lat n lng\r\n geocode(latlng: any): Promise {\r\n const geocoder = new google.maps.Geocoder();\r\n return new Promise((resolve, reject) => {\r\n geocoder.geocode(\r\n {\r\n 'location': latlng\r\n },\r\n (results, status) => {\r\n if (status === google.maps.GeocoderStatus.OK) {\r\n resolve(results[0]);\r\n } else {\r\n reject(new Error(status));\r\n }\r\n }\r\n );\r\n });\r\n }\r\n\r\n\r\n //*********** Marker Cluster\r\n zoomChanged(event: any) {\r\n console.log(event);\r\n //this.markers = [];\r\n this.zoom = event;\r\n\r\n }\r\n\r\n dragEndMap(event: any) {\r\n console.log(event);\r\n }\r\n\r\n\r\n CalCluster() {\r\n console.log(this.markers);\r\n }\r\n //***********\r\n\r\n\r\n /////////////////////////////////// End Pin Marker\r\n\r\n /////////////// start Polygon\r\n\r\n paths = [\r\n [\r\n { lat: this.lat, lng: this.lng },\r\n { lat: this.lat, lng: this.lng + 0.1 },\r\n { lat: this.lat + 0.1, lng: this.lng + 0.1 },\r\n { lat: this.lat + 0.1, lng: this.lng },\r\n { lat: this.lat, lng: this.lng },\r\n ], [\r\n { lat: this.lat1, lng: this.lng1 },\r\n { lat: this.lat1, lng: this.lng1 + 0.1 },\r\n { lat: this.lat1 + 0.1, lng: this.lng1 + 0.1 },\r\n { lat: this.lat1 + 0.1, lng: this.lng1 },\r\n { lat: this.lat1, lng: this.lng1 },\r\n ], [\r\n { lat: this.lat2, lng: this.lng2 },\r\n { lat: this.lat2, lng: this.lng2 + 0.1 },\r\n { lat: this.lat2 + 0.1, lng: this.lng2 + 0.1 },\r\n { lat: this.lat2 + 0.1, lng: this.lng2 },\r\n { lat: this.lat2, lng: this.lng2 },\r\n ]\r\n ];\r\n\r\n ToggleMapRegion() {\r\n if (!this.toggleMapRegion) {\r\n this.btnRegioncolor = \"btnToggle2\";\r\n this.tempMarker = this.markers;\r\n this.markers = [];\r\n }\r\n else {\r\n this.btnRegioncolor = \"btnToggle1\";\r\n this.markers = this.tempMarker;\r\n this.tempMarker = [];\r\n }\r\n this.toggleMapRegion = !this.toggleMapRegion;\r\n\r\n }\r\n\r\n onMouseOver($event, infoWindow, path) {\r\n if (this.previous) {\r\n this.previous.close();\r\n }\r\n this.previous = infoWindow;\r\n // alert($event.latLng.lat());\r\n //console.log($event.coords.lat)//-susheel\r\n this.polyLat = $event.coords.lat;\r\n this.polyLng = $event.coords.lng;\r\n this.infoRegionbody = path.label;\r\n infoWindow.open();\r\n }\r\n\r\n onMouseOut($event, infoWindow) {\r\n //infoWindow.close();\r\n }\r\n\r\n GetAllMapRegion() {\r\n\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapRegion';\r\n\r\n this.GetMapConfigData_Service().subscribe((res: any) => {\r\n //console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n\r\n this.mapRegionList = rows;\r\n //this.GetMapConfigData();\r\n });\r\n }\r\n\r\n GetMapRegionDetail(criteriaName) {\r\n\r\n if (criteriaName == \"0\") {\r\n this.paths = [];\r\n }\r\n\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapRegion?criteriaName=' + criteriaName;\r\n\r\n this.GetMapConfigData_Service().subscribe((res: any) => {\r\n //console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n\r\n this.BindMapRegion(rows);\r\n });\r\n }\r\n\r\n BindMapRegion(mapRegion) {\r\n //debugger;\r\n this.paths = [];\r\n if (mapRegion.length > 0) {\r\n // if ($(hiddenArrayRegs[ha] + txtId).val().length > 0) {//hidden field of dataquery.aspx page\r\n var province = \";\";\r\n for (let h = 0; h < mapRegion.split('()').length - 1; h++) {\r\n var splitEachReg = ((mapRegion.split('()'))[h].split('~'))[0].split(';');\r\n var chosenColorLoad = \"#\" + ((mapRegion.split('()'))[h].split('~'))[1];\r\n var polyLabel = ((mapRegion.split('()'))[h].split('~'))[2];\r\n var regionArr = [];\r\n for (let i = 0; i <= splitEachReg.length - 2; i++) {\r\n\r\n if ((splitEachReg[i].split('^'))[1] != 3) {//place, Degrees or co-ordinates\r\n var Lat = parseFloat(((splitEachReg[i].split('^'))[0].split(','))[0]);\r\n var Lng = parseFloat(((splitEachReg[i].split('^'))[0].split(','))[1]);\r\n\r\n //var latLng = new google.maps.LatLng(Lat, Lng);//parseFloat(\r\n regionArr.push({ lat: Lat, lng: Lng, label: polyLabel, polyColor: chosenColorLoad });\r\n\r\n }\r\n else {//Province\r\n province += ((splitEachReg[i].split('^'))[0].split(','))[1] + \"@\" + polyLabel + \"@\" + chosenColorLoad + \";\";\r\n }\r\n }\r\n this.paths.push(regionArr);\r\n //if (regionArr.length > 0) {\r\n // if (splitEachReg.length >= 4) {\r\n // var flightPath = makePolygon(regionArr, chosenColorLoad, polyLabel);\r\n // arrPolys.push(flightPath);\r\n // }\r\n // else\r\n // drawCircle(regionArr, map, chosenColorLoad, polyLabel);\r\n //}\r\n }\r\n // }\r\n }\r\n }\r\n\r\n /////////////// end Polygon\r\n\r\n /// start Toggle Div\r\n DivToggle(controlName) {\r\n\r\n switch (controlName) {\r\n case 'showAnalysis':\r\n this.showAnalysis = !this.showAnalysis;\r\n break;\r\n case 'showNetTest':\r\n this.showNetTest = !this.showNetTest;\r\n break;\r\n case 'showMobileInfo':\r\n this.showMobileInfo = !this.showMobileInfo;\r\n break;\r\n case 'showErrorEvents':\r\n this.showErrorEvents = !this.showErrorEvents;\r\n break;\r\n case 'showTypes':\r\n this.showTypes = !this.showTypes;\r\n break;\r\n case 'showResults':\r\n this.showResults = !this.showResults;\r\n break;\r\n }\r\n\r\n }\r\n /// end toggle div\r\n\r\n //////////////////// start Check ALL / UnCheck ALL\r\n CheckBox(event) {\r\n const checked = event.target.checked;\r\n //this.nontrade.forEach(item => item.selected = checked);\r\n }\r\n\r\n GetMapChanges(controlName = '') {//shoukd be similar to below GetMapConfigByID function\r\n if (controlName != '')\r\n this.DivToggle(controlName);\r\n\r\n this.GetDispaylOption();\r\n ////\r\n this.preDefinedConfigParam = new PredefinedConfig();\r\n this.preDefinedConfigParam.strStartDate = this.commonFilterDates.split('^')[0];\r\n this.preDefinedConfigParam.strEndDate = this.commonFilterDates.split('^')[1];\r\n this.preDefinedConfigParam.strLastRecord = '';\r\n this.preDefinedConfigParam.TimeStamp_Type = this.TSSelected.toString();\r\n //console.log(this.TSSelected)\r\n this.preDefinedConfigParam.FilterOnOff = 1;\r\n this.mapDisplayOptions.PredefinedConfig = this.preDefinedConfigParam;\r\n\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapOnChangeEvent';\r\n\r\n this.commonFilterService.AllGeneralFilter.subscribe(res => {\r\n let genArr = res.filter(el => {\r\n return el[\"ColumnName\"].toUpperCase() != this.SetTimestampSearch(this.TSSelected).toUpperCase();\r\n });\r\n this.preDefinedConfigParam.generalFilter = genArr;\r\n this.GetMapDispayOptions_Service().subscribe((res: any) => {\r\n console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n ////console.log(rows)\r\n //if (rows != null)\r\n // this.BindMapDetails(rows);\r\n if (rows != null) {\r\n if (rows.length > 1) {\r\n this.SetPinLegnd(rows[rows.length - 2]);\r\n\r\n //// legend popup data\r\n this.dynamicLegendPopupData = [];\r\n this.dynamicLegendPopupData.push(JSON.parse(rows[rows.length - 1]));\r\n //console.log(this.dynamicLegendPopupData);\r\n //this.legendPopupData = this.dynamicLegendPopupData;\r\n\r\n rows.pop();\r\n rows.pop();\r\n this.BindMapDetails(rows);//susheel\r\n }\r\n }\r\n else\r\n this.markers = [];\r\n\r\n });\r\n\r\n });\r\n\r\n }\r\n\r\n GetDispaylOption() {\r\n\r\n this.mapDisplayOptions.mapConfigID = this.mapConfigID;\r\n this.mapDisplayOptions.usePredefinedConfig = this.usePredefinedConfig == \"OFF\" ? 0 : 1;\r\n this.mapDisplayOptions.analysisEnabled = this.analysisEnabled;\r\n this.mapDisplayOptions.netTestEnabled = this.netTestEnabled;\r\n this.mapDisplayOptions.mobileInfoEnabled = this.mobileInfoEnabled;\r\n this.mapDisplayOptions.errorEventsEnabled = this.errorEventsEnabled;\r\n this.mapDisplayOptions.DisplayResultList = this.DisplayResultList;//DisplayResultList\r\n this.mapDisplayOptions.AnalysisList = this.AnalysisList;\r\n this.mapDisplayOptions.NetTestList = this.NetTestList;\r\n this.mapDisplayOptions.MobileInfoList = this.MobileInfoList;\r\n this.mapDisplayOptions.ErrorEventList = this.ErrorEventList;\r\n this.mapDisplayOptions.TypeList = this.TypeList;\r\n this.mapDisplayOptions.ResultList = this.ResultList;\r\n }\r\n\r\n //////////////////// end Check ALL / UnCheck ALL\r\n\r\n ////////////////// start Get PageLoad Data\r\n test: string;\r\n selMapConfig: string;\r\n GetPredefinedConfig(prevConfigID?) {\r\n if (this.previous) {\r\n //console.log(this.previous[\"isOpen\"])\r\n if (this.previous[\"isOpen\"] == true)\r\n this.previous[\"isOpen\"] = false;\r\n }\r\n\r\n this.commonFilterService.setUsePredefinedConfigData(this.usePredefinedConfig);\r\n\r\n if (this.usePredefinedConfig == \"ON\") {\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapFilter';\r\n\r\n this.GetMapConfigData_Service().subscribe((res: any) => {\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //console.log(rows)\r\n\r\n //debugger;\r\n this.mapFilterConfigList = rows;\r\n if (rows.length > 0)//susheel\r\n {\r\n //console.log(prevConfigID)\r\n if (!prevConfigID)\r\n this.selMapConfig = rows[0].ID;\r\n this.GetMapConfigByID(this.selMapConfig);\r\n }\r\n\r\n this.GetAllMapRegion();\r\n });\r\n }\r\n else {\r\n this.GetMapConfigData();\r\n }\r\n }\r\n\r\n GetMapConfigData() {\r\n this.Loading = \"Loading ...\"\r\n //this.isLoading = true;\r\n\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapConfigData';\r\n\r\n ////// Common filter dates \r\n //let dates = formatDate(new Date(Date.now() + -1 * 600 * 1000)) + \"^\" + formatDate(new Date());//\"06/02/2019 11:00:00^06/02/2019 20:00:00\"; \r\n this.commonFilterService.TSBetween.subscribe(res => this.commonFilterDates = res);//latest dates selected is set here from service\r\n //Added to set proper dates here based on range selection\r\n this.commonFilterService.TSRangeFilter.subscribe(res => {\r\n if (res.RangeType !== \"custom\") { this.commonFilterDates = lastDateFunc(res.RangeType) }\r\n });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n\r\n this.commonFilterService.setDatesProperties(this.commonFilterDates);\r\n\r\n\r\n //// common filter date range\r\n //let dates = formatDate(new Date(Date.now() + -1 * 600 * 1000)) + \"^\" + formatDate(new Date());//\"06/02/2019 11:00:00^06/02/2019 20:00:00\"; \r\n //this.commonFilterService.TSBetween.subscribe(res => dates = res);//latest dates selected is set here from service\r\n ////Added to set proper dates here based on range selection\r\n //this.commonFilterService.TSRangeFilter.subscribe(res => { if (res.RangeType !== \"custom\") { dates = lastDateFunc(res.RangeType) } });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n //this.PredefinedConfigOff.push({\r\n this.preDefinedConfigParam = new PredefinedConfig();\r\n this.preDefinedConfigParam.strStartDate = this.commonFilterDates.split('^')[0];\r\n this.preDefinedConfigParam.strEndDate = this.commonFilterDates.split('^')[1];\r\n this.preDefinedConfigParam.strLastRecord = '';\r\n this.preDefinedConfigParam.TimeStamp_Type = this.TSSelected.toString();\r\n this.preDefinedConfigParam.FilterOnOff = 1;\r\n this.commonFilterService.mainFilterID.subscribe(res => this.preDefinedConfigParam.MainFilterID = res);\r\n if (this.preDefinedConfigParam.MainFilterID > 0)\r\n this.preDefinedConfigParam.FilterOnOff = 0;\r\n // //});\r\n this.commonFilterService.AllGeneralFilter.subscribe(res => {\r\n let genArr = res.filter(el => {\r\n return el[\"ColumnName\"].toUpperCase() != this.SetTimestampSearch(this.TSSelected).toUpperCase();\r\n });\r\n this.preDefinedConfigParam.generalFilter = genArr;\r\n this.GetMapConfigData_Service().subscribe((res: any) => {\r\n //console.log(res);// - susheel\r\n debugger;\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //let data = rows;\r\n //debugger;\r\n //if (this.usePredefinedConfig == \"OFF\") {\r\n // if (rows != null) {\r\n // if (rows.length > 0) {\r\n // this.pinLegends = rows[rows.length - 1].replace('[', '').replace(']', '').split(',');\r\n // rows.pop();\r\n // }\r\n // }\r\n //}\r\n //else {\r\n // //this.divPinLegends = this.sanitizer.bypassSecurityTrustHtml(rows[rows.length - 1]);\r\n // //rows.pop();\r\n //}\r\n\r\n //this.bluetoothData = rows;\r\n //console.log(rows);// - susheel\r\n //debugger;\r\n if (rows != null) {\r\n\r\n this.BindMapDetails(rows);\r\n }\r\n else\r\n this.markers = [];\r\n\r\n this.Loading = \"\";\r\n //this.isLoading = false;\r\n //let str = \"1,2,3\"; \r\n //console.log(str.split(\",\"));\r\n });\r\n });\r\n //setTimeout(() => { this.map.triggerResize(); }, 500)\r\n }\r\n\r\n async updateMarkers(newBounds: LatLngBounds) {\r\n debugger;\r\n\r\n this.cd.detectChanges();\r\n //this.markers = [];\r\n // const bounds1: LatLngBounds = new google.maps.LatLngBounds();\r\n\r\n setTimeout(() => {\r\n\r\n //this.markers = this.markerCollection.filter(marker => newBounds.contains(new google.maps.LatLng(marker.lat, marker.lng)));\r\n }, 1000);\r\n\r\n // setTimeout(() => { this.map.triggerResize(); }, 500)\r\n }\r\n\r\n BindMapDetails(mapData) {\r\n this.mapData = mapData;\r\n this.markers = [];\r\n this.markerCollection = [];\r\n\r\n if (this.usePredefinedConfig == \"OFF\") {\r\n if (this.mapData != null) {\r\n if (this.mapData.length > 0) {\r\n this.pinLegends = this.mapData[this.mapData.length - 1].replace('[', '').replace(']', '').split(',');\r\n this.mapData.pop();\r\n }\r\n }\r\n }\r\n this.bluetoothData = this.mapData;\r\n //this.test = this.mapData[0].MERGED;\r\n\r\n if (this.mapData != null) {\r\n this.Initialize(this.mapData, \"VQuad \", 1);\r\n }\r\n\r\n //console.log(this.markers);\r\n\r\n //for (let i = 0; i < this.mapData.length; i++) {\r\n // var data = this.mapData[i].MERGED.split(\",\");\r\n //this.pinMarker = new marker();GetMapRegion\r\n //this.pinMarker.lat = data[0];\r\n //this.pinMarker.lng = data[1];\r\n //this.pinMarker.label = \"Z\" + i;\r\n //this.pinMarker.iconurl = this.iurl_b;\r\n\r\n //this.markers.push(this.pinMarker);\r\n //}\r\n }\r\n\r\n //////////////// end Get pageload data\r\n\r\n ///////////////////////////////// start get map config byID\r\n\r\n GetMapConfigByID(mapConfigID, mapLegendApplied = 0) {\r\n if (this.previous) {\r\n //console.log(this.previous[\"isOpen\"])\r\n if (this.previous[\"isOpen\"] == true)\r\n this.previous[\"isOpen\"] = false;\r\n }\r\n\r\n this.Loading = \"Loading ...\";\r\n //this.isLoading = true;\r\n\r\n this.mapConfigID = mapConfigID;\r\n this.GetDispaylOption();\r\n\r\n let dRoute = this.DrawRoute == \"ON\" ? 1 : 0;\r\n\r\n this.preDefinedConfigParam = new PredefinedConfig();\r\n this.preDefinedConfigParam.strStartDate = this.commonFilterDates.split('^')[0];\r\n this.preDefinedConfigParam.strEndDate = this.commonFilterDates.split('^')[1];\r\n this.preDefinedConfigParam.strLastRecord = '';\r\n this.preDefinedConfigParam.TimeStamp_Type = this.TSSelected.toString();\r\n this.preDefinedConfigParam.FilterOnOff = 1;\r\n this.preDefinedConfigParam.gMapConfigID = mapConfigID;\r\n this.preDefinedConfigParam.drawRoute = dRoute;\r\n this.commonFilterService.mainFilterID.subscribe(res => this.preDefinedConfigParam.MainFilterID = res);\r\n if (this.preDefinedConfigParam.MainFilterID > 0)\r\n this.preDefinedConfigParam.FilterOnOff = 0;\r\n\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapConfigDataByID';\r\n if (mapLegendApplied == 1) {\r\n this.preDefinedConfigParam.thresholdLegends = this.thresholdLegends;\r\n this.preDefinedConfigParam.thresholdLegendsCount = this.thresholdLegendsCount;\r\n this.preDefinedConfigParam.callIDLegends = this.callIDLegends;//susheel\r\n this.preDefinedConfigParam.devIDLegends = this.devIDLegends;\r\n this.preDefinedConfigParam.callEventsLegends = this.callEventsLegends;\r\n\r\n }\r\n\r\n this.mapDisplayOptions.PredefinedConfig = this.preDefinedConfigParam;\r\n this.commonFilterService.AllGeneralFilter.subscribe(res => {\r\n let genArr = res.filter(el => {\r\n return el[\"ColumnName\"].toUpperCase() != this.SetTimestampSearch(this.TSSelected).toUpperCase();\r\n });\r\n this.preDefinedConfigParam.generalFilter = genArr;\r\n this.GetMapConfigDataByID_Service().subscribe((res: any) => {\r\n //console.log(res);\r\n debugger;\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //console.log(rows);\r\n\r\n //debugger;\r\n this.infowindowArray = [];\r\n //this.divPinLegends = this.sanitizer.bypassSecurityTrustHtml(rows[rows.length - 1]);\r\n if (rows != null) {\r\n if (rows.length > 1) {\r\n this.SetPinLegnd(rows[rows.length - 2]);\r\n\r\n //// legend popup data\r\n this.dynamicLegendPopupData = [];\r\n this.dynamicLegendPopupData.push(JSON.parse(rows[rows.length - 1]));\r\n //console.log(this.dynamicLegendPopupData);\r\n //this.legendPopupData = this.dynamicLegendPopupData;\r\n\r\n rows.pop();\r\n rows.pop();\r\n this.BindMapDetails(rows);//susheel\r\n }\r\n }\r\n else\r\n this.markers = [];\r\n\r\n this.Loading = \"\";\r\n //this.isLoading = false;\r\n });\r\n });\r\n }\r\n //////////////////////////////// end get map config byID\r\n\r\n\r\n /////////////////////////// Start Initialize Map From old webviewer function\r\n Initialize(latlngValMain, timestampTypeMain, outputGPS) {//provides array of locations\r\n //debugger;\r\n this.latlngValMainAgain = latlngValMain;\r\n this.infowindowArray = [];\r\n\r\n\r\n var arrPolys = 0;///selectedRegConfigApply(1, map);//Draw polygons commented by elumalai\r\n ////ZOOM LIMIT\r\n ////Changes zoom levels when the projection is available.\r\n //google.maps.event.addListenerOnce(map, \"projection_changed\", function () {\r\n // map.setMapTypeId(google.maps.MapTypeId.HYBRID); //Changes the MapTypeId in short time.\r\n // setZoomLimit(map, google.maps.MapTypeId.ROADMAP);\r\n // setZoomLimit(map, google.maps.MapTypeId.HYBRID);\r\n // setZoomLimit(map, google.maps.MapTypeId.SATELLITE);\r\n // setZoomLimit(map, google.maps.MapTypeId.TERRAIN);\r\n // map.setMapTypeId(google.maps.MapTypeId.ROADMAP); //Sets the MapTypeId to original.\r\n //});\r\n\r\n\r\n /////////Get zoom and position\r\n //google.maps.event.addListener(map, \"bounds_changed\", function () {\r\n // document.getElementById(\"boundHid\").value = latlngZoomCenter;\r\n // document.getElementById(\"zoomHid\").value = map.getZoom();\r\n // var bounds = map.getBounds();\r\n\r\n //});\r\n\r\n\r\n ////////Set marker position to center when Zoom changed\r\n //google.maps.event.addListener(map, \"zoom_changed\", function () {\r\n // map.setCenter(latlngZoomCenter);\r\n // if (map.getZoom() == 3)\r\n // map.setCenter(new google.maps.LatLng(40.4230, -98.7372));\r\n //});\r\n\r\n //codeLatLng('N39º08\\'36\\'\\' W077º12\\'57\\'\\'');\r\n //let rsltTypeEach = new Array();\r\n this.rsltTypeEach = new Array();\r\n //debugger\r\n //console.log(latlngValMain)\r\n var loopcnt = 0\r\n var loopInterval = 1000;\r\n for (var varLatLong = 0; varLatLong < latlngValMain.length; varLatLong++)//add marker for each location\r\n {\r\n loopcnt = varLatLong;\r\n if (latlngValMain.length > 1000 && loopcnt == loopInterval) {\r\n setTimeout(() => {\r\n //// delay map binding by 5 secs for large data\r\n }, 15000);\r\n loopInterval = loopInterval + 1000;\r\n }\r\n this.pinMarker = new marker();\r\n if (latlngValMain[varLatLong] != null) {\r\n if (latlngValMain[varLatLong].length > 0) {\r\n //console.log(latlngValMain[varLatLong])\r\n var latlngValMainSplit = latlngValMain[varLatLong].split(\"^\");// split to seperate orig value - Co-or^Rslt^Device ID#DateTime^(imgPath#Thresh-Params/VQLoc/VQPhID/CallEvents-COND button)^Threshold Type^RSLT btn\r\n //console.log(latlngValMainSplit)// - susheel\r\n if (latlngValMainSplit[0].length > 0)//check for NULL latlong\r\n {\r\n var typeNameMain = latlngValMainSplit[1].indexOf('_') != -1 ? (latlngValMainSplit[1].split('_'))[0] : latlngValMainSplit[1];//Type of result\r\n var typeName = latlngValMainSplit[1].indexOf('_') != -1 ? (latlngValMainSplit[1].split('_'))[0] : latlngValMainSplit[1];//Type of result\r\n if (typeName == 'VQUAD')\r\n typeName = 'CALL EVENTS';\r\n else if (typeName == 'TDM')\r\n typeName = 'Audio and Delay';\r\n else if (typeName.indexOf('GENERAL') != -1)\r\n typeName = typeName.replace('GENERAL', 'PHONEINFO');\r\n else if (typeName.indexOf('VQT') != -1)\r\n typeName = typeName.replace('VQT', 'PESQ');\r\n else if (typeName.indexOf('VQUADAPP') != -1)\r\n typeName = 'VQUAD NODE';\r\n else if (typeName.indexOf('MOBILEAPP') != -1)\r\n typeName = 'MOBILE';\r\n\r\n this.rsltTypeEach[this.count] = latlngValMainSplit[1].indexOf('_') != -1 ? (latlngValMainSplit[1].split('_'))[1] : latlngValMainSplit[1];//add results into results array\r\n\r\n var TSPhID = \"\";\r\n if (latlngValMainSplit.length > 2)\r\n TSPhID = latlngValMainSplit[2];//Device ID#Timestamp\r\n\r\n var pinImgSrc = \"\";\r\n if (latlngValMainSplit.length > 3)\r\n pinImgSrc = (latlngValMainSplit[3].split(\"@\"))[0];//imgSrcMain+Param + (@COND btn - not required)\r\n //alert(pinImgSrc); \r\n var rsltBtn = \"\";\r\n var rsltHead = \"\";\r\n var rsltVals = \"\";\r\n var ThresholdType = \"\";\r\n\r\n if (latlngValMainSplit.length == 5)//RSLT btn for other than Threshold(because no Pass/Fail val in split) \r\n {\r\n rsltVals = (latlngValMainSplit[4].split('@'))[1];\r\n rsltHead = (latlngValMainSplit[4].split('@'))[0];\r\n }\r\n else if (latlngValMainSplit.length == 6)//RSLT btn for Threshold \r\n {\r\n if (latlngValMainSplit[4].indexOf(\"PASS\") != -1)\r\n ThresholdType = \"PASS\";\r\n else if (latlngValMainSplit[4].indexOf(\"FAILED\") != -1)\r\n ThresholdType = \"TEST FAILED\";\r\n else if (latlngValMainSplit[4].indexOf(\"FAIL\") != -1)\r\n ThresholdType = \"FAIL\";\r\n typeName = typeName + latlngValMainSplit[4];// add pass / fail to rsltType \r\n rsltVals = (latlngValMainSplit[5].split('@'))[1];\r\n rsltHead = (latlngValMainSplit[5].split('@'))[0];\r\n }\r\n //rsltVals = rsltVals.replace(/\\'/g,\"'\"); \r\n //rsltVals = rsltVals.replace(/º/g,\"°\");\r\n if (latlngValMainSplit.length > 4) {\r\n rsltVals = rsltVals.replace(/\\s/g, \" \");\r\n rsltBtn = rsltHead + \"@\" + rsltVals + '\\\"); class=popupButton>Result Display

    ';\r\n }\r\n\r\n //rsltBtn = rsltBtn.replace(/\\'/g,\"'\"); \r\n //rsltBtn = rsltBtn.replace(/º/g,\"°\");\r\n //alert(rsltBtn);\r\n var startLatLang = \"0,0,\";\r\n var endLatLang = latlngValMainSplit[0];\r\n\r\n //French\r\n if (endLatLang.split(\",\").length > 3) {\r\n var arrGPS = endLatLang.split(\",\");\r\n endLatLang = \"\";\r\n for (var x = 0; x < arrGPS.length; x++) {\r\n var delim = \",\";\r\n if (x % 2 == 0 && x < 3)\r\n delim = \".\";\r\n endLatLang += arrGPS[x] + delim;\r\n }\r\n if (endLatLang != \"\")\r\n endLatLang = endLatLang.substring(0, endLatLang.length - 1);\r\n }\r\n\r\n var routeColor;\r\n if (latlngValMainSplit[0].indexOf(\"@\") != -1) {//start information\r\n startLatLang = (latlngValMainSplit[0].split(\"@\"))[1].trim();\r\n endLatLang = (latlngValMainSplit[0].split(\"@\"))[0];\r\n routeColor = (latlngValMainSplit[0].split(\"@\"))[2].trim();\r\n }\r\n\r\n /////// to get result id from each array item to pass in popup model\r\n if (this.usePredefinedConfig == \"ON\")\r\n rsltVals = rsltVals.split('!')[0];\r\n else\r\n rsltVals = latlngValMain[varLatLong].split('$')[1];\r\n //debugger;\r\n this.CodeLatLng(endLatLang, typeNameMain, this.count, endLatLang, TSPhID, pinImgSrc, rsltBtn, ThresholdType, startLatLang, routeColor, arrPolys, timestampTypeMain, outputGPS, rsltVals);//end GPS location, result-type, coutVal, again end GPS, PhID+TS, ImgPath+Params+COND btn, RSLT btn, start GPS\r\n this.count++;\r\n }\r\n }\r\n }\r\n }\r\n //console.log(this.markers)// - susheel\r\n //this.cd.detectChanges();\r\n\r\n //this.Lmap.addLayer(this.markerClusterGroup);\r\n\r\n }\r\n //else {\r\n // __doPostBack(\"btnRefresh\", \"OnClick\");\r\n //}\r\n // end of initialize function\r\n\r\n CodeLatLng(latlngVal, rsltType, myCount, LatLongOrig1, TimeStamp, NewImgSrc, FinalRsltBtn, ThresholdType, startLatLang, routeColor, arrPolys, timestampTypeMain, outputGPS, rsltVals) {\r\n\r\n //loc, result type, count val, GPS Co-orditanes, PhID+TS, Image path+Params+COND btn, RSLT btn, start GPS\r\n //console.log(latlngVal + \",\" + rsltType + \",\" + myCount + \",\" + LatLongOrig1 + \",\" + TimeStamp + \",\" + NewImgSrc + \",\" + FinalRsltBtn + \",\" + ThresholdType + \",\" + startLatLang);\r\n\r\n //if (ThresholdType != \"\") // susheel\r\n // debugger\r\n\r\n var input = latlngVal;\r\n var NewTS = TimeStamp.split('#'); //Split Phone ID and TS\r\n NewImgSrc = NewImgSrc.replace('Call Control Event', 'Call Control Event ')\r\n var extrSpacesThreshold = \"                \";\r\n if (NewTS[2] == \"DUMMY\")\r\n extrSpacesThreshold = \" \"\r\n if (ThresholdType.length > 0)\r\n ThresholdType = \"
    THRESHOLD \" + extrSpacesThreshold + \"             \" + ThresholdType + \"
    \";\r\n\r\n if (input.length > 0) {\r\n var latlngStr = input.split(',', 3); //GPS co-or\r\n var latConvert = latlngStr[0].length > 0 ? latlngStr[0] : \"0\";\r\n var lngConvert = latlngStr[1].length > 0 ? latlngStr[1] : \"0\";\r\n var displayEndGPS = latlngStr[2];\r\n\r\n var startlatlngStr = startLatLang.split(',', 3); //start GPS co-or\r\n var startlatConvert = startlatlngStr[0].length > 0 ? startlatlngStr[0] : \"0\";\r\n var startlngConvert = startlatlngStr[1].length > 0 ? startlatlngStr[1] : \"0\";\r\n\r\n if (latConvert == \"0\" && lngConvert == \"0\")//check for 0 latlong\r\n {\r\n this.count--;\r\n return;\r\n }\r\n\r\n\r\n var splitNewImg = NewImgSrc.split(\"#\"); //Pin img path + Params + COND btn\r\n if (displayEndGPS == \"NONE\")\r\n displayEndGPS = LatLongOrig1.replace(',NONE', '');\r\n var latDecimalSpaces = \"                    \";//20\r\n var lngDecimalSpaces = \"                \";//16\r\n if (outputGPS == 0) {\r\n var newLatLongOrig1 = \"
    \" + \"VQuad GPS               \" + displayEndGPS + \"
    \"; //End GPS Loc\r\n if ((startlatConvert + \",\" + startlngConvert) != \"0,0\" && startlatlngStr[2] != displayEndGPS)\r\n newLatLongOrig1 = \"
    \" + \"Device GPS (Start)                 \" + startlatlngStr[2] + \"
    \" + newLatLongOrig1.replace('VQuad GPS            ', 'Device GPS (End)                '); //Start and End GPS Loc\r\n if (NewImgSrc.length > 0)//new info added\r\n newLatLongOrig1 = splitNewImg[1] + newLatLongOrig1; //(Params + COND btn) + GPS Loc + RSLT btn\r\n this.LatLongOriginal[this.count] = newLatLongOrig1; //GPS InfoBubble\r\n }\r\n else {\r\n var newLatLongOrig1 = \"
    \" + \"Latitude \" + latDecimalSpaces + \" \" + latConvert + \"
    \"; //End GPS Lat\r\n newLatLongOrig1 += \"
    \" + \"Longitude \" + lngDecimalSpaces + \" \" + lngConvert + \"
    \"; //End GPS Long\r\n if ((startlatConvert + \",\" + startlngConvert) != \"0,0\" && startlatlngStr[2] != displayEndGPS)\r\n newLatLongOrig1 = \"
    \" + \"Device Latitude (Start) \" + latDecimalSpaces + \" \" + startlatConvert + \"
    \"\r\n + \"
    \" + \"Device Longitude (Start) \" + lngDecimalSpaces + \" \" + startlngConvert + \"
    \"\r\n + newLatLongOrig1.replace('Latitude ' + latDecimalSpaces, 'Device Latitude (End) ' + latDecimalSpaces).replace('Longitude ' + lngDecimalSpaces, 'Device Longitude (End) ' + lngDecimalSpaces); //Start and End GPS Loc\r\n if (NewImgSrc.length > 0)//new info added\r\n newLatLongOrig1 = splitNewImg[1] + newLatLongOrig1; //(Params + COND btn) + GPS Loc + RSLT btn\r\n this.LatLongOriginal[this.count] = newLatLongOrig1; //GPS InfoBubble\r\n }\r\n\r\n var lat = parseFloat(latConvert);\r\n var lng = parseFloat(lngConvert);\r\n var ImgRslt = \"Yellow\";\r\n var rsltTypePopUp = \"pesq\";\r\n var timestampNameRsltType = timestampTypeMain;//\"VQuad \";\r\n if (rsltType == \"VQT\" || rsltType == \"POLQA\") {\r\n ImgRslt = \"Yellow\";\r\n if (rsltType == \"POLQA\")\r\n rsltTypePopUp = \"polqa\";\r\n }\r\n else {\r\n if (timestampNameRsltType == \"VQT \")\r\n timestampNameRsltType = \"VQuad \";\r\n\r\n rsltTypePopUp = rsltType.toLowerCase();\r\n if (rsltType.indexOf(\"VQUAD\") != -1 || rsltType.indexOf(\"TDM\") != -1 || rsltType.indexOf(\"RTD\") != -1 || rsltType.indexOf(\"SNR\") != -1 || rsltType.indexOf(\"OWD\") != -1 || rsltType.indexOf(\"PDD\") != -1) {\r\n ImgRslt = \"Green\";\r\n rsltTypePopUp = \"audio-delay\";\r\n if (rsltType.indexOf(\"VQUAD\") != -1)\r\n rsltTypePopUp = \"call-events\";\r\n }\r\n else if (rsltType == \"VBA\")\r\n ImgRslt = \"Pink\";\r\n else if (rsltType == \"EMU\")\r\n ImgRslt = \"Orange\";\r\n //else if (rsltType == \"POLQA\")\r\n // ImgRslt = \"Red\";\r\n else if (rsltType.indexOf(\"FAX\") != -1)\r\n ImgRslt = \"Black\";\r\n else if (rsltType.indexOf(\"VAC\") != -1) {\r\n ImgRslt = \"Purple\";\r\n timestampNameRsltType = \"Device \";\r\n }\r\n else if (rsltType == \"CONNDROP\") {\r\n ImgRslt = \"Red\";\r\n timestampNameRsltType = \"Device \";\r\n }\r\n else if (rsltType.indexOf(\"GENERAL\") != -1 || rsltType.indexOf(\"SIM\") != -1 || rsltType.indexOf(\"UE\") != -1) {\r\n ImgRslt = \"GreenNew\";\r\n timestampNameRsltType = \"Device \";\r\n rsltTypePopUp = \"mobileinfo-\" + rsltType;\r\n }\r\n else//NetTest\r\n {\r\n ImgRslt = \"Blue\";\r\n timestampNameRsltType = \"Device \";\r\n rsltTypePopUp = \"nettest-\" + rsltType;\r\n }\r\n }\r\n\r\n if (rsltType.indexOf(\"-FAIL\") != -1)\r\n ImgRslt = \"Red\";\r\n\r\n var image = './assets/images/Marks/' + ImgRslt + 'Mark.png';\r\n\r\n if (rsltType.indexOf(\"-ERROR\") != -1 && rsltType.indexOf(\"FAX\") != -1) {\r\n image = 'https://chart.googleapis.com/chart?chst=d_map_xpin_letter&chld=pin|E|000000|FFFFFF';\r\n rsltTypePopUp = \"fax\";\r\n }\r\n else if (rsltType.indexOf(\"-ERROR\") != -1 && (rsltType.indexOf(\"VQUAD\") != -1 || rsltType.indexOf(\"RTD\") != -1 || rsltType.indexOf(\"SNR\") != -1 || rsltType.indexOf(\"OWD\") != -1 || rsltType.indexOf(\"PDD\") != -1)) {\r\n image = 'https://chart.googleapis.com/chart?chst=d_map_xpin_letter&chld=pin|E|009900|000000';\r\n rsltTypePopUp = \"audio-delay\";\r\n if (rsltType.indexOf(\"VQUAD\") != -1)\r\n rsltTypePopUp = \"call-events\";\r\n }\r\n else if (rsltType.indexOf(\"-FAIL\") != -1) {\r\n image = 'https://chart.googleapis.com/chart?chst=d_map_xpin_letter&chld=pin|F|BC1E1E|000000';\r\n if (rsltType.indexOf(\"VAC\") != -1)\r\n rsltTypePopUp = \"vac\";\r\n else if (rsltType.indexOf(\"GENERAL\") != -1 || rsltType.indexOf(\"SIM\") != -1 || rsltType.indexOf(\"UE\") != -1)\r\n rsltTypePopUp = \"mobileinfo-\" + (rsltType.split('-'))[0];\r\n else\r\n rsltTypePopUp = \"nettest-\" + (rsltType.split('-'))[0];\r\n }\r\n\r\n //for image size vary dynamically based on pin / bubble\r\n var widthImg = 24;\r\n var heightImg = 30;\r\n\r\n //for mobile and vquad status\r\n if (rsltType.indexOf(\"MOBILEAPP\") != -1) {\r\n image = './assets/images/Marks/Apps/' + (rsltType.split(\"-\"))[1] + '.png';\r\n rsltTypePopUp = \"mobileapp\";\r\n }\r\n else if (rsltType.indexOf(\"VQUADAPP\") != -1) {\r\n widthImg = 40;\r\n heightImg = 25;\r\n image = './assets/images/Marks/Apps/' + (rsltType.split(\"-\"))[1] + '.png';\r\n rsltTypePopUp = \"vquadapp\";\r\n }\r\n if (NewImgSrc.length > 0)//new image\r\n image = splitNewImg[0];\r\n\r\n /////// start new code elumalai bind lat lng to marker array\r\n //this.pinMarker = new marker();\r\n this.pinMarker.lat = lat.toString();\r\n this.pinMarker.lng = lng.toString();\r\n this.pinMarker.label = \"\";//(rsltType.split(\"-\"))[1];\r\n this.pinMarker.iconurl = image; //this.iurl_b;\r\n this.pinMarker.widthImg = widthImg;//susheel\r\n this.pinMarker.heightImg = heightImg;\r\n this.pinMarker.resultType = rsltType.replace(\"GENERAL\", \"PHONEINFO\");//susheel\r\n this.pinMarker.popUpRsltType = rsltTypePopUp;\r\n this.pinMarker.itemID = rsltVals;\r\n\r\n // this.markers.push(this.pinMarker); ///commented by elumalai for performance purpose\r\n\r\n this.markerCollection.push(this.pinMarker); //elumalai for boundchange event \r\n\r\n ///********** Leaflet Marker\r\n //const marker = new Marker([lat, lng])\r\n // .setIcon(\r\n // icon({\r\n // iconSize: [25, 41],\r\n // iconAnchor: [13, 41],\r\n // iconUrl: './assets/images/Marks/BlueMark.png'\r\n // }));\r\n //// data.push(marker);\r\n\r\n //marker.bindPopup('lat = '+lat +',
    lng = '+lng ); \r\n // //marker.bindPopup('Hello world!').on('click', function () { }).addTo(this.map);\r\n // //marker.addTo(this.map);\r\n // //marker.addTo(this.markerClusterGroup);\r\n\r\n //this.markerClusterGroup.addLayer(marker);\r\n //marker.addTo(this.Lmap);\r\n\r\n ///***********\r\n\r\n\r\n\r\n\r\n var lat_lng_mine = new Array();\r\n //https://roufid.com/angular-uncaught-referenceerror-google-not-defined/ - refer to region config component getloc \r\n //https://www.digitalocean.com/community/tutorials/angular-angular-google-maps\r\n //https://stackoverflow.com/questions/47198904/angular-google-is-not-defined\r\n this.mapsAPILoader.load().then(() => {// - susheel\r\n\r\n var latlngNewMain = new google.maps.LatLng(lat, lng);\r\n\r\n //// commented by elumalai\r\n var startlatlngNewMain = new google.maps.LatLng(parseFloat(startlatConvert), parseFloat(startlngConvert));\r\n lat_lng_mine.push(startlatlngNewMain);//start\r\n lat_lng_mine.push(latlngNewMain);//end\r\n\r\n if ((startlatConvert + \",\" + startlngConvert) != \"0,0\" && (latConvert + \",\" + lngConvert) != \"0,0\" && (startlatlngStr[2] != displayEndGPS))\r\n this.routeLatLng.push({ origin: startlatlngNewMain, destination: latlngNewMain, color: routeColor });// to draw followpath route by elumalai\r\n\r\n\r\n //this.cd.detectChanges();\r\n });\r\n\r\n var resu = \"Loading...\";\r\n var finalResu = resu;\r\n //map.setZoom(myZoom);\r\n\r\n //set and open windows\r\n var TSandPhID = \"\";\r\n if (TimeStamp.length > 0) {\r\n var phoneIDHead = \"VQuad Device ID \";\r\n var locHead = \"VQuad Call ID  \";\r\n var extrSpaceVQuadTS = \"\";\r\n var infoWindowWidth = 300;\r\n var VQuadNodeSpaces = \"       \";\r\n var VQuadNodeGPSSpaces = this.LatLongOriginal[myCount];\r\n var phoneIDValue = NewTS[0];\r\n var locValue = NewTS[1];\r\n if (NewTS[2].indexOf('IGNORETS') != 0) {\r\n if (timestampNameRsltType == \"Device \") {\r\n extrSpaceVQuadTS = \"                 \";\r\n infoWindowWidth = 400;\r\n phoneIDHead += extrSpaceVQuadTS.replace(extrSpaceVQuadTS, '           ');\r\n locHead += extrSpaceVQuadTS.replace(extrSpaceVQuadTS, '           ');\r\n TSandPhID = \"
    \" + timestampNameRsltType + \"Timestamp (Start)  \" + NewTS[2] + \"
    \";\r\n TSandPhID += \"
    \" + timestampNameRsltType + \"Timestamp (End)     \" + NewTS[3] + \"
    \";\r\n if (VQuadNodeGPSSpaces !== undefined) {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('PARAMETERS  ', 'PARAMETERS ' + extrSpaceVQuadTS);\r\n if (outputGPS == 0) {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('VQuad GPS        ', 'VQuad GPS ' + extrSpaceVQuadTS + '       ');\r\n }\r\n else {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Latitude ' + latDecimalSpaces, 'Latitude ' + extrSpaceVQuadTS + latDecimalSpaces);\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Longitude ' + lngDecimalSpaces, 'Longitude ' + extrSpaceVQuadTS + lngDecimalSpaces);\r\n }\r\n }\r\n }\r\n else {\r\n var endTS = NewTS[2];\r\n if (NewTS[2] == \"DUMMY\")\r\n endTS = NewTS[3];\r\n extrSpaceVQuadTS = \" \";\r\n TSandPhID = \"
    \" + timestampNameRsltType + \"Timestamp  \" + endTS + \"
    \";\r\n if (VQuadNodeGPSSpaces !== undefined) {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('PARAMETERS  ', 'PARAMETERS ' + extrSpaceVQuadTS);\r\n if (outputGPS == 0) {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('VQuad GPS        ', 'VQuad GPS ' + extrSpaceVQuadTS + '       ');\r\n }\r\n else {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Latitude ' + latDecimalSpaces, 'Latitude ' + extrSpaceVQuadTS + latDecimalSpaces);\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Longitude ' + lngDecimalSpaces, 'Longitude ' + extrSpaceVQuadTS + lngDecimalSpaces);\r\n }\r\n }\r\n }\r\n TSandPhID += ThresholdType;\r\n phoneIDValue = \" \" + phoneIDValue;\r\n }\r\n else if (NewTS[2].indexOf('IGNORETS') == 0)//VQuad Or Mobile App\r\n {\r\n FinalRsltBtn = (NewTS[2].split(\"-\"))[2];\r\n if (NewTS[2].indexOf('-VQUAD') != -1)//VQUAD\r\n {\r\n phoneIDHead = \"IP Address\";\r\n locHead = \"Node Name\";\r\n phoneIDValue = \"        \" + phoneIDValue;\r\n //locValue = \"        \" + locValue;\r\n VQuadNodeSpaces = \"\";\r\n finalResu = resu.replace(/       /g, '
    ');//have to be done only once\r\n if (VQuadNodeGPSSpaces !== undefined) {\r\n if (outputGPS == 0) {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('VQuad GPS        ', 'VQuad GPS ');\r\n }\r\n else {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Latitude ' + latDecimalSpaces, 'Latitude          ');\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Longitude ' + lngDecimalSpaces, 'Longitude        ');\r\n }\r\n }\r\n }\r\n else//MOBILE\r\n {\r\n locValue = (locValue.split(\"-\"))[1];\r\n phoneIDHead = \"Device PhoneID   \";\r\n locHead = \"Device Name \";\r\n locValue = \"  \" + locValue;\r\n if (VQuadNodeGPSSpaces !== undefined) {\r\n if (outputGPS == 0) {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('VQuad GPS        ', 'Device GPS      ');\r\n }\r\n else {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Latitude ' + latDecimalSpaces, 'Device Latitude' + '    ' + ' ');\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Longitude ' + lngDecimalSpaces, 'Device Longitude' + '  ' + ' ');\r\n }\r\n }\r\n }\r\n }\r\n if (NewTS[0] != \"IGNOREDEVICE\")\r\n TSandPhID += \"
    \" + phoneIDHead + \"  \" + phoneIDValue + \"
    \";\r\n if (NewTS[1] != \"IGNORELOCATION\")\r\n TSandPhID += \"
    \" + locHead + \"        \" + locValue + \"
    \";\r\n\r\n if (NewTS[4] != undefined && NewTS[4].indexOf('Result Display') != -1)\r\n FinalRsltBtn = NewTS[4];\r\n }\r\n\r\n var substrResu = finalResu.substring(0, finalResu.indexOf(\"
     \"));\r\n var chkWidthResu = infoWindowWidth;\r\n if (substrResu.length > 30)\r\n chkWidthResu = infoWindowWidth + (substrResu.length - 30) * 10;\r\n this.infowindowArray.push(\"
    RESULT \" + extrSpaceVQuadTS + \"               \" + VQuadNodeSpaces + this.rsltTypeEach[myCount].replace('TDM', 'Audio and Delay') + \"
    \" + TSandPhID + VQuadNodeGPSSpaces + \"
    LOCATION \" + extrSpaceVQuadTS + \"         \" + VQuadNodeSpaces + finalResu + \"
    \" + \"
    \");\r\n } //end return \r\n\r\n ////// commeneted by elumalai drawroute\r\n if ((startlatConvert + \",\" + startlngConvert) != \"0,0\" && (latConvert + \",\" + lngConvert) != \"0,0\" && (startlatlngStr[2] != displayEndGPS))\r\n this.DrawMapRoute(lat_lng_mine, routeColor);\r\n }// end of codelatlng function N12º55'35'' E77º36'04''\r\n\r\n /////////////////////////// End Initialize Map From old webviewer function\r\n\r\n /////////////////////////// Start Draw Route\r\n onMapReady1(map: any) {\r\n //console.log(map);\r\n\r\n //const bounds: LatLngBounds = new google.maps.LatLngBounds();\r\n //for (const mm of this.markers) {\r\n // bounds.extend(new google.maps.LatLng(mm.lat, mm.lng));\r\n //}\r\n //map.fitBounds(bounds);\r\n\r\n\r\n\r\n //const bounds: LatLngBounds = new google.maps.LatLngBounds();\r\n //this.updateMarkers(bounds);\r\n //// dragend idle\r\n // map.addListener(\"idle\", this.updateMarkers(bounds));\r\n\r\n\r\n this.map = map;\r\n //this.DrawMapRoute();\r\n }\r\n\r\n DrawMapRoute(lat_lng, routeColor) {\r\n // DrawMapRoute() {\r\n //debugger;\r\n if (this.DrawRoute == \"OFF\")\r\n return;\r\n\r\n //var lineSymbol = {\r\n // path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW\r\n //};\r\n\r\n if (this.DrawLine == \"1\") { ///Draw short parabola route or Plane/sea routes\r\n\r\n //const flightPlanCoordinates = [\r\n // { lat: this.lat1, lng: this.lng1 },\r\n // // { lat: this.lat1, lng: this.lng1},\r\n // { lat: this.lat2, lng: this.lng2 },\r\n //];\r\n\r\n const line = new google.maps.Polyline({\r\n strokeOpacity: 0.5,\r\n path: lat_lng, //[],\r\n map: this.map\r\n });\r\n\r\n }\r\n else {// //Draw road route in actual way google mentioned road ways\r\n if (this.routeLatLng.length > 0)\r\n this.showDrawRouteDirection = true\r\n }\r\n\r\n\r\n }\r\n\r\n ////////////////////////// End Draw Route\r\n\r\n /////////////////////////// start Popup Section bluetooth and status display\r\n //VQuad node Bluetooth List \r\n OpenBTFXODialog() {\r\n\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"40%\";\r\n //debugger;\r\n\r\n\r\n dailogConfig.data = { pageValue: this.bluetoothText, nodeStatus: true };\r\n\r\n this.dialog.open(VquadbtfxoComponent, dailogConfig);\r\n }\r\n\r\n //VQuad or Mobile Nodes N/W status\r\n OpenStatusDialog(itemID, resultType) {\r\n // alert(resultType);\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"70%\";\r\n //debugger;\r\n\r\n let vquadID = \"\";\r\n //itemID = \"21\";\r\n //resultType = \"call-events\";\r\n\r\n if (this.usePredefinedConfig == \"OFF\")\r\n vquadID = itemID + \"@true\" + \"$\" + this.usePredefinedConfig; // for testing itemid =21\r\n else\r\n vquadID = itemID + \"@\" + resultType + \"$\" + this.usePredefinedConfig; // for testing itemid =37014543 and resultype=\"call-events\"\r\n\r\n dailogConfig.data = { pageValue: vquadID };\r\n\r\n this.dialog.open(GooglemapstatuspopupComponent, dailogConfig);\r\n }\r\n\r\n //Results window\r\n OpenBasicDialog(requestID, rsltType) {\r\n //console.log(requestID + ',' + rsltType)\r\n const dailogConfig = new MatDialogConfig();\r\n //dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"40%\";\r\n let newRsltType = rsltType;\r\n let selectedSubResults = \"\";\r\n if (rsltType.indexOf(\"mobileinfo\") != -1 || rsltType.indexOf(\"nettest\") != -1) {\r\n newRsltType = (rsltType.split('-'))[0];\r\n\r\n selectedSubResults = (rsltType.split('-'))[1];\r\n\r\n //got from sub-results-selection component\r\n let netTestData = [\r\n { id: 1, name: 'TCP' },\r\n { id: 2, name: 'UDP' },\r\n { id: 3, name: 'VOIP' },\r\n { id: 4, name: 'ROUTE' },\r\n { id: 5, name: 'HTTP' },\r\n { id: 6, name: 'FTP' },\r\n { id: 7, name: 'DNS' },\r\n { id: 8, name: 'SMS' },\r\n { id: 9, name: 'EMAIL' }\r\n ];\r\n let mobileInfoData = [\r\n { id: 1, name: 'GENERAL' },\r\n { id: 2, name: 'SIM' },\r\n { id: 3, name: 'UE' }\r\n ];\r\n let rsltIndex = -1;\r\n if (newRsltType == \"nettest\")\r\n rsltIndex = netTestData.find(x => x.name == selectedSubResults).id;\r\n else\r\n rsltIndex = mobileInfoData.find(x => x.name == selectedSubResults).id;\r\n this.resultsService.setNetTestOrMobInfoByID(rsltIndex);\r\n\r\n selectedSubResults += newRsltType == \"nettest\" ? \"DATA\" : \"INFO\";\r\n }\r\n\r\n dailogConfig.data = { popupOrNot: true, requestID: requestID, rsltType: newRsltType, TSSelected: this.TSSelected };\r\n\r\n //https://stackoverflow.com/questions/41357021/passing-input-values-to-dialog-component\r\n let dialogRef = this.dialog.open(BasicComponent, dailogConfig);\r\n let instance = dialogRef.componentInstance;\r\n instance.selectedSubResults = selectedSubResults;\r\n\r\n //dialogRef.afterClosed().subscribe(\r\n // data => { this.successMsgBasic = data; }\r\n //);\r\n }\r\n\r\n ShowMapLegendWin(rsltType, condVal, pinType) {\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"50%\";\r\n //debugger;\r\n this.legendPopupData = this.dynamicLegendPopupData;\r\n //console.log(this.legendPopupData[0])\r\n this.legendPopupData = this.legendPopupData[0].filter(m => m.ConditionValue.replace(/::true/gi, '').replace(/::false/gi, '') == condVal && m.RsltType == rsltType);\r\n\r\n let currPinRsltIndx = this.legendPopupData[0].RsltIndex; //-1;\r\n //let currListEachRsltCondVal = \"\";\r\n //this.dynamicLegendPopupData[0].every(item => {\r\n // if (currListEachRsltCondVal != item.ConditionValue) {\r\n // currListEachRsltCondVal = item.ConditionValue;\r\n // currPinRsltIndx++;\r\n\r\n // if (currListEachRsltCondVal == this.legendPopupData[0].ConditionValue)\r\n // return false; \r\n // }\r\n // return true;\r\n //});\r\n //console.log(currListEachRsltCondVal)\r\n\r\n if (this.legendPopupData.length <= 0) {\r\n return;\r\n }\r\n else {\r\n /// mark threshold.isapplied =1 if already applied\r\n for (let i = 0; i < this.appliedLegendThreshold.length; i++) {\r\n if (this.appliedLegendThreshold[i].replace(/::true/gi, '').replace(/::false/gi, '') == condVal) {\r\n //debugger\r\n this.legendPopupData[0].IsApplied = 1;//as fetched from orig list, set isApplied again everytime\r\n this.appliedLegendThreshold.splice(i);//if already applied remove and add freshly condVal below again everytime\r\n }\r\n }\r\n }\r\n //console.log(this.legendPopupData)\r\n\r\n dailogConfig.data = { pageValue: this.legendPopupData, pinType: pinType };\r\n\r\n let dialogResult = this.dialog.open(GooglemaplegendpopupComponent, dailogConfig);\r\n\r\n dialogResult.afterClosed().subscribe((resultData) => {\r\n\r\n if (resultData) {\r\n let tLegends = resultData;\r\n //debugger;\r\n\r\n if (tLegends[0].IsApplied == 1)//susheel\r\n this.appliedLegendThreshold.push(tLegends[0].ConditionValue.replace(/::true/gi, '').replace(/::false/gi, ''));//add or re-add applied new threshold\r\n\r\n if (pinType == \"Threshold Type\") {\r\n let allTRs = \";\" + this.thresholdLegendsCount;//document.getElementById(\"hidMapLegendsApplyOrNot\").value;//All applied TRs\r\n let entireThresholds = \";\" + this.thresholdLegends; // document.getElementById(\"hidMapLegendsThresholds\").value;\r\n\r\n if (allTRs.indexOf(';' + currPinRsltIndx + ';') != -1) {//leg each pin index\r\n allTRs = allTRs.replace(';' + currPinRsltIndx + ';', ';');//remove existing pin index applied\r\n\r\n var subVal = entireThresholds.substring(entireThresholds.indexOf(';' + currPinRsltIndx + '@'), entireThresholds.indexOf('@' + currPinRsltIndx + ';') + 3); //entireThresholds.substring(entireThresholds.indexOf(';' + document.getElementById(\"hidMapLegends\").value + '@'), entireThresholds.indexOf('@' + document.getElementById(\"hidMapLegends\").value + ';') + 3);\r\n entireThresholds = entireThresholds.replace(subVal, ';');//empty existing pin index's threshold val applied\r\n }\r\n else//Current applied tr newly\r\n {\r\n allTRs += currPinRsltIndx + ';'; //add pin index\r\n entireThresholds += currPinRsltIndx + \"@\"; //Indicating respective pin Index\r\n\r\n for (let i = 0; i < tLegends.length; i++) {\r\n //console.log(tLegends[i].OperatorDropDown)\r\n // $('#trMapLeg' + document.getElementById(\"hidMapLegends\").value).find(\"input\").each(function () {\r\n var x = \"\";\r\n //if (this.id.indexOf('DevID') != -1) //Device ID ^ as start\r\n // x = this.value + \"$\";\r\n //else if (this.id.indexOf('txtMapLeg') != -1)//Operator ~ threshold ~ AND/OR of each parameter\r\n // x = (document.getElementById(this.id.replace('txt', 'ddl')) != null ? document.getElementById(this.id.replace('txt', 'ddl')).selectedIndex : \"0\") + \"-\" + this.value + \"^\" + (document.getElementById(this.id.replace('txtMapLeg', 'ddlAndOrMapLeg')) != null ? document.getElementById(this.id.replace('txtMapLeg', 'ddlAndOrMapLeg')).value : \"AND\") + \",\";\r\n if (tLegends[i].IsVquadData == 1) {\r\n x = tLegends[i].Text + \"$\";\r\n }\r\n else {\r\n x = tLegends[i].newOperatorIndex + \"-\" + tLegends[i].Text + \"^\" + (tLegends[i].AndORDropDown != null ? tLegends[i].AndORDropDown : \"AND\") + \",\";\r\n }\r\n\r\n entireThresholds += x;//single or multi thresholds set here\r\n // });\r\n }\r\n entireThresholds += \"@\" + currPinRsltIndx + \";\"; //closing with respective pin Index\r\n\r\n }\r\n ///document.getElementById(\"hidMapLegendsThresholds\").value = entireThresholds.substring(1, entireThresholds.length);//Remove first and last ;'s\r\n ///document.getElementById(\"hidMapLegendsApplyOrNot\").value = allTRs.substring(1, allTRs.length);//Remove first and last ;'s\r\n this.thresholdLegends = entireThresholds.substring(1, entireThresholds.length);//Remove first and last ;'s\r\n this.thresholdLegendsCount = allTRs.substring(1, allTRs.length);//Remove first and last ;'s\r\n //console.log(this.thresholdLegends)\r\n //console.log(this.thresholdLegendsCount)\r\n }\r\n else if (pinType == \"VQuad Call ID Type\") {\r\n let allTRs = \";\" + this.thresholdLegendsCount;\r\n if (allTRs.indexOf(';' + currPinRsltIndx + ';') == -1)\r\n allTRs += currPinRsltIndx + ';'; //add rslt index\r\n\r\n let entireCallIDs = \";\" + this.callIDLegends;\r\n\r\n entireCallIDs += tLegends[0].currCritListValue;\r\n\r\n //entireCallIDs += \"@\" + currPinRsltIndx + \";\";\r\n this.callIDLegends = entireCallIDs;\r\n\r\n this.thresholdLegendsCount = allTRs.substring(1, allTRs.length);//Remove first and last ;'s\r\n //console.log(entireCallIDs)\r\n //console.log(this.thresholdLegendsCount)\r\n }\r\n else if (pinType == \"VQuad Device ID Type\") {\r\n let allTRs = \";\" + this.thresholdLegendsCount;\r\n if (allTRs.indexOf(';' + currPinRsltIndx + ';') == -1)\r\n allTRs += currPinRsltIndx + ';'; //add rslt index\r\n\r\n let entireDevIDs = \";\" + this.devIDLegends;\r\n\r\n entireDevIDs += tLegends[0].currCritListValue;\r\n\r\n //entireDevIDs += \"@\" + currPinRsltIndx + \";\";\r\n this.devIDLegends = entireDevIDs;\r\n\r\n this.thresholdLegendsCount = allTRs.substring(1, allTRs.length);//Remove first and last ;'s\r\n //console.log(entireDevIDs)\r\n //console.log(this.thresholdLegendsCount)\r\n }\r\n else if (pinType == \"Call Control Event Type\") {\r\n let allTRs = \";\" + this.thresholdLegendsCount;\r\n if (allTRs.indexOf(';' + currPinRsltIndx + ';') == -1)\r\n allTRs += currPinRsltIndx + ';'; //add rslt index\r\n\r\n let entireCCEs = \";\" + this.callEventsLegends;\r\n\r\n entireCCEs += tLegends[0].currCritListValue;\r\n\r\n //entireCCEs += \"@\" + currPinRsltIndx + \";\";\r\n this.callEventsLegends = entireCCEs;\r\n\r\n this.thresholdLegendsCount = allTRs.substring(1, allTRs.length);//Remove first and last ;'s\r\n //console.log(entireDevIDs)\r\n //console.log(this.thresholdLegendsCount)\r\n }\r\n\r\n this.GetMapConfigByID(this.mapConfigID, 1);\r\n\r\n } else {\r\n //this.pinColor = 'Nothing...';\r\n }\r\n });\r\n\r\n\r\n\r\n //this.showPopupLegend = true;\r\n }\r\n\r\n CloseMapLegendWin() {\r\n // this.showPopupLegend = false;\r\n }\r\n\r\n /////////////////////////// end Popup Section bluetooth and status display\r\n\r\n ////////////////// left panel Checkbox list\r\n\r\n\r\n\r\n DisplayResultList = [\r\n {\r\n Name: \"Results\",\r\n Value: \"0\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"Failures\",\r\n Value: \"1\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"VQuad Nodes\",\r\n Value: \"2\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"Mobile Devices\",\r\n Value: \"3\",\r\n Checked: true\r\n }\r\n ];\r\n\r\n AnalysisList = [\r\n //{\r\n // Name: \"Check/UnCheck All\",\r\n // Value: \"1\",\r\n // Checked: true\r\n //},\r\n {\r\n Name: \"Failures\",\r\n Value: \"2\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"Call Events\",\r\n Value: \"3\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"PESQ\",\r\n Value: \"4\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"POLQA\",\r\n Value: \"5\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"RTD\",\r\n Value: \"6\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"OWD\",\r\n Value: \"7\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"PDD\",\r\n Value: \"8\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"SNR\",\r\n Value: \"9\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"EModule\",\r\n Value: \"10\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"EMU\",\r\n Value: \"11\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"FAX\",\r\n Value: \"12\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"VAC\",\r\n Value: \"13\",\r\n Checked: true\r\n },\r\n ];\r\n\r\n NetTestList = [\r\n //{\r\n // Name: \"Check/UnCheck All\",\r\n // Value: \"0\",\r\n // Checked: true\r\n //},\r\n {\r\n Name: \"Failures\",\r\n Value: \"1\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"Connection Drop\",\r\n Value: \"2\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"TCP\",\r\n Value: \"3\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"UDP\",\r\n Value: \"4\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"VOIP\",\r\n Value: \"5\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"ROUTE\",\r\n Value: \"6\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"HTTP\",\r\n Value: \"7\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"FTP\",\r\n Value: \"8\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"DNS\",\r\n Value: \"9\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"SMS\",\r\n Value: \"10\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"EMAIL\",\r\n Value: \"11\",\r\n Checked: true\r\n }\r\n ];\r\n\r\n MobileInfoList = [\r\n //{\r\n // Name: \"Check/UnChecl All\",\r\n // Value: \"0\",\r\n // Checked: true\r\n //},\r\n {\r\n Name: \"Failures\",\r\n Value: \"1\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"PHONEINFO\",\r\n Value: \"2\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"SIM\",\r\n Value: \"3\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"UE\",\r\n Value: \"4\",\r\n Checked: true\r\n }\r\n ];\r\n\r\n ErrorEventList = [\r\n //{\r\n // Name: \"Check/UnCheck All\",\r\n // Value: \"0\",\r\n // Checked: true\r\n //},\r\n {\r\n Name: \"Call Events\",\r\n Value: \"1\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"RTD\",\r\n Value: \"2\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"OWD\",\r\n Value: \"3\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"PDD\",\r\n Value: \"4\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"SNR\",\r\n Value: \"5\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"FAX\",\r\n Value: \"6\",\r\n Checked: true\r\n }\r\n ];\r\n\r\n TypeList = [\r\n {\r\n Name: \"Threshold Settings\",\r\n Value: \"0\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"VQuad Call ID\",\r\n Value: \"1\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"VQuad Devcie ID\",\r\n Value: \"2\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"Call Events\",\r\n Value: \"3\",\r\n Checked: false\r\n }\r\n ];\r\n\r\n ResultList = [\r\n {\r\n Name: \"VQT PESQ\",\r\n Value: \"VQTDATA|0|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"VQT POLQA\",\r\n Value: \"VQTPOLQA|1|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"VQuad Call Events\",\r\n Value: \"VQUADDATA|2|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"Audio and Delay Analysis\",\r\n Value: \"VQUADDATA|3|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"TCP\",\r\n Value: \"TCPDATA|4|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"UDP\",\r\n Value: \"UDPDATA|5|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"VOIP\",\r\n Value: \"VOIPDATA|6|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"ROUTE\",\r\n Value: \"ROUTEDATA|7|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"HTTP\",\r\n Value: \"HTTPDATA|8|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"FTP\",\r\n Value: \"FTPDATA|9|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"DNS\",\r\n Value: \"DNSDATA|10|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"SMS\",\r\n Value: \"SMSDATA|11|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"EMAIL\",\r\n Value: \"EMAILDATA|12|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"Phone Info\",\r\n Value: \"GENERALINFO|13|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"SIM\",\r\n Value: \"SIMINFO|14|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"UE\",\r\n Value: \"UEINFO|15|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"EMU\",\r\n Value: \"EMUDATA|16|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"FAX\",\r\n Value: \"FAXDATA|17|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"EModule\",\r\n Value: \"EModule|18|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"Connection Drop\",\r\n Value: \"CONNDROPDATA|19|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"VAC\",\r\n Value: \"VACDATA|20|\",\r\n Checked: false\r\n }\r\n ];\r\n\r\n ////////////////// left panel Checkbox list\r\n\r\n ////////////////////////////////////////////////////////////// SERVICES /////////////////////////////////////////////////////\r\n\r\n GetMapConfigData_Service() {\r\n //debugger\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, this.preDefinedConfigParam, options);\r\n\r\n }\r\n\r\n GetMapConfigDataByID_Service() {\r\n //debugger\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, this.mapDisplayOptions, options);\r\n\r\n }\r\n\r\n GetMapDispayOptions_Service() {\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, this.mapDisplayOptions, options);\r\n\r\n }\r\n\r\n SetTimestampSearch(tsSearch) {\r\n switch (tsSearch) {\r\n case 0:\r\n return \"CALL_TIMESTAMP\";\r\n case 1:\r\n return \"VQUAD_TIMESTAMP\";\r\n case 2:\r\n return \"VQT_Timestamp\";\r\n case 3:\r\n return \"DCOSS_TIMESTAMP\";\r\n }\r\n\r\n }\r\n\r\n parentRef(TSSelected) {\r\n this.TSSelected = parseInt(TSSelected);\r\n //this.setRsltType();\r\n debugger;\r\n //////// Common filter dates \r\n ////let dates = formatDate(new Date(Date.now() + -1 * 600 * 1000)) + \"^\" + formatDate(new Date());//\"06/02/2019 11:00:00^06/02/2019 20:00:00\"; \r\n //this.commonFilterService.TSBetween.subscribe(res => this.commonFilterDates = res);//latest dates selected is set here from service\r\n ////Added to set proper dates here based on range selection\r\n //this.commonFilterService.TSRangeFilter.subscribe(res => {\r\n // if (res.RangeType !== \"custom\")\r\n // { this.commonFilterDates = lastDateFunc(res.RangeType) }\r\n //});//sets start and end dates to latest timestamps based on range type selection - IMP\r\n\r\n //this.commonFilterService.setDatesProperties(this.commonFilterDates);\r\n\r\n this.commonFilterService.usePredefinedConfig.subscribe(res => this.usePredefinedConfig = res);\r\n this.GetPredefinedConfig(this.selMapConfig);\r\n }\r\n parentAutoRef(AutoRefreshInfo) {\r\n this.TSSelected = parseInt(AutoRefreshInfo.TSSelected);\r\n this.AutoRefreshInfo = AutoRefreshInfo;\r\n }\r\n\r\n}\r\n\r\n// just an interface for type safety.\r\nclass marker {\r\n lat: string;\r\n lng: string;\r\n label?: string;\r\n draggable: boolean;\r\n iconurl: string;\r\n widthImg: number;\r\n heightImg: number;\r\n resultType: string;\r\n popUpRsltType: string;\r\n itemID: string;\r\n}\r\nclass markerDisplay {\r\n lat: number;\r\n lng: number;\r\n label?: string;\r\n draggable: boolean;\r\n iconurl: string;\r\n widthImg: number;\r\n heightImg: number;\r\n resultType: string;\r\n popUpRsltType: string;\r\n itemID: string;\r\n}\r\n\r\nclass PredefinedConfig {\r\n getINISettings: string = \"\";\r\n strStartDate: string = \"\";\r\n strEndDate: string = \"\";\r\n strLastRecord: string = \"\";\r\n TimeStamp_Type: string = \"\";\r\n FilterOnOff: number = 1;\r\n drawRoute: number = 0;\r\n\r\n thresholdLegends: string = \"\";\r\n thresholdLegendsCount: string = \"\";\r\n callIDLegends: string = \"\";//susheel\r\n devIDLegends: string = \"\";\r\n callEventsLegends: string = \"\";\r\n\r\n gMapConfigID: number = 0;\r\n MainFilterID: number = 0;\r\n\r\n generalFilter = [];\r\n\r\n}\r\n","module.exports = \"#map {\\n height: 1200px;\\n /*width: 1100px;*/\\n}\\n\\n.containerColor {\\n background-color: white;\\n}\\n\\n.container {\\n display: -ms-flexbox;\\n display: flex;\\n}\\n\\nagm-map {\\n /*height: 600px;*/\\n height: 1200px;\\n width: 1100px;\\n}\\n\\n.sideHeaderLabel {\\n font: 12px Verdana, Arial, Helvetica, sans-serif;\\n font-size: 12px;\\n margin-left: 5px;\\n margin-right: 5px;\\n}\\n\\n.labelMarginRight {\\n margin-right: 5px;\\n}\\n\\n.sidenavDropDown {\\n width: 240px;\\n font-size: 12px;\\n}\\n\\n.labelFont {\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n}\\n\\n.disableControl {\\n pointer-events: none;\\n}\\n\\n.popupButton {\\n cursor: pointer;\\n color: white;\\n font-size: 10px;\\n font-weight: bold;\\n font-family: Verdana;\\n background-color: #6D96D6;\\n padding-left: 3px;\\n padding-right: 3px;\\n}\\n\\n.btnToggle1 {\\n background-color: cornflowerblue;\\n color: white;\\n font-family: Verdana;\\n}\\n\\n.btnToggle2 {\\n background-color: red;\\n color: white;\\n font-family: Verdana;\\n}\\n\\n.disableSection {\\n color: darkgray;\\n}\\n\\n/*start checkbox*/\\n\\n/*.checkboxsize .defaultMat .mat-checkbox-inner-container {\\n width: 17px;\\n height: 17px;\\n}\\n\\n::ng-deep .mat-checkbox .mat-checkbox-frame {\\n border-color: black;\\n width: 17px;\\n height: 17px;\\n}\\n\\n::ng-deep .mat-checkbox-checked .mat-checkbox-background,\\n::ng-deep .mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: #2196F3 !important;\\n width: 17px;\\n height: 17px;\\n}*/\\n\\n/*end checkbox*/\\n\\n.checkboxlabelMargin {\\n margin-left: 0;\\n /*-15px;*/\\n}\\n\\n/*toggle div*/\\n\\n.toggleIcon {\\n -ms-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n/*start Legend css*/\\n\\n.Label {\\n color: Black;\\n font-size: 11px;\\n font-weight: bold;\\n font-family: Verdana;\\n height: 13px;\\n padding-left: 10px;\\n padding-right: 10px;\\n}\\n\\n/*end Legend css*/\\n\\n/*start Legend popup css*/\\n\\n.legendPopup {\\n position: absolute;\\n display: inline;\\n z-index: 10000;\\n}\\n\\n/*end Legend popup css*/\\n\\ninput[type=radio] {\\n height: 12px;\\n}\\n\\n/*https: //codepen.io/a7med-hussien/pen/PNbxNZ*/\\n\\n.open {\\n left: 0 !important;\\n transition: all 0.4s ease;\\n}\\n\\nheader {\\n left: -300px;\\n position: relative;\\n transition: all 0.4s ease;\\n}\\n\\ndiv#toggle1, div#toggle2 {\\n -ms-transform: rotate(-90deg);\\n transform: rotate(-90deg);\\n position: absolute;\\n top: 60px;\\n left: 234px;\\n background: #62778d;\\n padding: 10px;\\n text-align: center;\\n width: 150px;\\n color: #fff;\\n cursor: pointer;\\n border-bottom-left-radius: 6px;\\n border-bottom-right-radius: 6px;\\n box-shadow: -4px 5px 20px -5px #787979;\\n}\\n\\n.menuPane {\\n position: relative;\\n width: 300px;\\n background-color: #fff;\\n border-radius: 6px 0;\\n box-shadow: 0 6px 20px -9px #263238;\\n /*top: 100px;*/\\n}\\n\\n/*https: //codepen.io/StephenScaff/pen/bVbEbJ*/\\n\\n/*https: //codepen.io/Loonz206/pen/gpRmja*/\\n\\n.dt-toolbar-row-GM {\\n display: -ms-flexbox;\\n display: flex;\\n /*margin-right: -5px;\\n margin-left: -5px;\\n margin-bottom: 1rem;*/\\n}\\n\\n.dt-toolbar-col-GM {\\n padding-right: 5px;\\n padding-left: 5px;\\n position: relative;\\n}\\n\\n.dt-toolbar-col-GM .dt-context-menu {\\n width: 170px;\\n display: none;\\n}\\n\\n.dt-toolbar-col-GM.open .dt-context-menu {\\n display: block;\\n}\\n\\n.dt-toolbar-col-GM .dt-list-menu-item.disabled,\\n.dt-toolbar-col-GM .dt-list-menu-item.disabled:hover {\\n color: silver;\\n background-color: transparent;\\n border: 0;\\n box-shadow: 0 0 0;\\n cursor: default;\\n}\\n\\n/*start loader*/\\n\\n#spinner {\\n -webkit-animation: frames 1s infinite linear;\\n animation: frames 1s infinite linear;\\n background: transparent;\\n border: 0.75vw solid #FFF;\\n border-radius: 100%;\\n border-top-color: #DF691A;\\n width: 5vw;\\n height: 5vw;\\n opacity: 0.6;\\n padding: 0;\\n position: absolute;\\n z-index: 999;\\n}\\n\\n@-webkit-keyframes frames {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(359deg);\\n }\\n}\\n\\n@keyframes frames {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(359deg);\\n }\\n}\\n\\n#pause {\\n display: block;\\n background: rgba(0, 0, 0, 0.66) no-repeat 0 0;\\n width: 100%;\\n height: 100%;\\n position: fixed;\\n bottom: 0;\\n left: 0;\\n z-index: 1000;\\n}\\n\\n/*end loader*/\\n\\n.spinner_overlay {\\n position: fixed;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #fff;\\n opacity: 0.5;\\n z-index: 1000;\\n}\\n\\n.spinner {\\n position: absolute;\\n left: 50%;\\n top: 20%;\\n height: 60px;\\n width: 60px;\\n margin: 0px auto;\\n -webkit-animation: rotation 0.6s infinite linear;\\n animation: rotation 0.6s infinite linear;\\n border-left: 6px solid rgba(0, 174, 239, 0.15);\\n border-right: 6px solid rgba(0, 174, 239, 0.15);\\n border-bottom: 6px solid rgba(0, 174, 239, 0.15);\\n border-top: 6px solid rgba(0, 174, 239, 0.8);\\n border-radius: 100%;\\n}\\n\\n/*input[type=\\\"checkbox\\\"]*/\\n\\n.sch-chks {\\n width: 14px;\\n /*Desired width*/\\n height: 14px;\\n /*Desired height*/\\n position: relative;\\n top: 5px;\\n vertical-align: top;\\n}\\n\\n.errorClass {\\n border: 2px solid red;\\n}\\n\\n.mat-selected {\\n background: darkblue !important;\\n color: lightgray !important;\\n}\\n\\n/*background colr change after selcting option*/\\n\\n.mat-selecte-default {\\n background: darkblue !important;\\n color: lightgray !important;\\n}\\n\\n/*bold filtered options while typing*/\\n\\n.highlight {\\n font-weight: bold;\\n}\\n\\n::ng-deep .mat-tooltip {\\n color: red !important;\\n /*https: //stackoverflow.com/a/47576285*/\\n background-color: yellow !important;\\n font-size: 12px;\\n font-weight: bold;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n}\\n\\n/* HTML marker styles */\\n\\n.price-tag3 {\\n background-color: yellow;\\n border-radius: 8px;\\n color: #FFFFFF;\\n font-size: 14px;\\n padding: 10px 15px;\\n /*position: absolute;*/\\n}\\n\\n.price-tag3::after {\\n content: \\\"\\\";\\n /*position: absolute;*/\\n left: 50%;\\n top: 100%;\\n -ms-transform: translate(-50%, 0);\\n transform: translate(-50%, 0);\\n width: 0;\\n height: 0;\\n border-left: 8px solid transparent;\\n border-right: 8px solid transparent;\\n border-top: 8px solid #4285F4;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvb3V0cHV0LXJlc3VsdHMvdGVzdC1qc2dvb2dsZS1tYXAvRDpcXFNyY3dlYlxcVlMyMDE3IFByb2plY3RzXFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3L3NyY1xcYXBwXFxvdXRwdXQtcmVzdWx0c1xcdGVzdC1qc2dvb2dsZS1tYXBcXHRlc3QtanNnb29nbGUtbWFwLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9vdXRwdXQtcmVzdWx0cy90ZXN0LWpzZ29vZ2xlLW1hcC90ZXN0LWpzZ29vZ2xlLW1hcC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGNBQUE7RUFDQSxpQkFBQTtBQ0NGOztBRENBO0VBQ0UsdUJBQUE7QUNFRjs7QURDQTtFQUNFLG9CQUFBO0VBQUEsYUFBQTtBQ0VGOztBRENBO0VBQ0UsaUJBQUE7RUFDQSxjQUFBO0VBQ0EsYUFBQTtBQ0VGOztBRENBO0VBQ0UsZ0RBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtBQ0VGOztBRENBO0VBQ0UsaUJBQUE7QUNFRjs7QURDQTtFQUNFLFlBQUE7RUFDQSxlQUFBO0FDRUY7O0FEQ0E7RUFDRSxrREFBQTtBQ0VGOztBRENBO0VBQ0Usb0JBQUE7QUNFRjs7QURDQTtFQUNFLGVBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0Esb0JBQUE7RUFDQSx5QkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7QUNFRjs7QURDQTtFQUNFLGdDQUFBO0VBQ0EsWUFBQTtFQUNBLG9CQUFBO0FDRUY7O0FEQ0E7RUFDRSxxQkFBQTtFQUNBLFlBQUE7RUFDQSxvQkFBQTtBQ0VGOztBRENBO0VBQ0UsZUFBQTtBQ0VGOztBREVBLGlCQUFBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7O0VBQUE7O0FBaUJBLGVBQUE7O0FBRUE7RUFDRSxjQUFBO0VBQWdCLFNBQUE7QUNDbEI7O0FER0EsYUFBQTs7QUFDQTtF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U0FBQTtFQUNBLFNBQUE7RUFDQSxpQ0FBQTtNQUFBLDZCQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxrQ0FBQTtFQUNBLG1DQUFBO0VBQ0EsNkJBQUE7QUNQRiIsImZpbGUiOiJzcmMvYXBwL291dHB1dC1yZXN1bHRzL3Rlc3QtanNnb29nbGUtbWFwL3Rlc3QtanNnb29nbGUtbWFwLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI21hcCB7XHJcbiAgaGVpZ2h0OiAxMjAwcHg7XHJcbiAgLyp3aWR0aDogMTEwMHB4OyovXHJcbn1cclxuLmNvbnRhaW5lckNvbG9yIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLmNvbnRhaW5lcntcclxuICBkaXNwbGF5OiBmbGV4O1xyXG59XHJcblxyXG5hZ20tbWFwIHtcclxuICAvKmhlaWdodDogNjAwcHg7Ki9cclxuICBoZWlnaHQ6IDEyMDBweDtcclxuICB3aWR0aDogMTEwMHB4O1xyXG59XHJcblxyXG4uc2lkZUhlYWRlckxhYmVsIHtcclxuICBmb250OiAxMnB4IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIG1hcmdpbi1sZWZ0OiA1cHg7XHJcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbn1cclxuXHJcbi5sYWJlbE1hcmdpblJpZ2h0IHtcclxuICBtYXJnaW4tcmlnaHQ6IDVweDtcclxufVxyXG5cclxuLnNpZGVuYXZEcm9wRG93biB7XHJcbiAgd2lkdGg6IDI0MHB4O1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxufVxyXG5cclxuLmxhYmVsRm9udCB7XHJcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbn1cclxuXHJcbi5kaXNhYmxlQ29udHJvbCB7XHJcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbn1cclxuXHJcbi5wb3B1cEJ1dHRvbiB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBmb250LXNpemU6IDEwcHg7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmE7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZEOTZENjtcclxuICBwYWRkaW5nLWxlZnQ6IDNweDtcclxuICBwYWRkaW5nLXJpZ2h0OiAzcHg7XHJcbn1cclxuXHJcbi5idG5Ub2dnbGUxIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb3JuZmxvd2VyYmx1ZTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmE7XHJcbn1cclxuXHJcbi5idG5Ub2dnbGUyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hO1xyXG59XHJcblxyXG4uZGlzYWJsZVNlY3Rpb24ge1xyXG4gIGNvbG9yOiBkYXJrZ3JheTtcclxufVxyXG5cclxuXHJcbi8qc3RhcnQgY2hlY2tib3gqL1xyXG4vKi5jaGVja2JveHNpemUgLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXIge1xyXG4gIHdpZHRoOiAxN3B4O1xyXG4gIGhlaWdodDogMTdweDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtY2hlY2tib3ggLm1hdC1jaGVja2JveC1mcmFtZSB7XHJcbiAgYm9yZGVyLWNvbG9yOiBibGFjaztcclxuICB3aWR0aDogMTdweDtcclxuICBoZWlnaHQ6IDE3cHg7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLFxyXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMyAhaW1wb3J0YW50O1xyXG4gIHdpZHRoOiAxN3B4O1xyXG4gIGhlaWdodDogMTdweDtcclxufSovXHJcbi8qZW5kIGNoZWNrYm94Ki9cclxuXHJcbi5jaGVja2JveGxhYmVsTWFyZ2luIHtcclxuICBtYXJnaW4tbGVmdDogMDsgLyotMTVweDsqL1xyXG59XHJcblxyXG5cclxuLyp0b2dnbGUgZGl2Ki9cclxuLnRvZ2dsZUljb24ge1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcclxufVxyXG5cclxuLypzdGFydCBMZWdlbmQgY3NzKi9cclxuLkxhYmVsIHtcclxuICBjb2xvcjogQmxhY2s7XHJcbiAgZm9udC1zaXplOiAxMXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hO1xyXG4gIGhlaWdodDogMTNweDtcclxuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcbiAgcGFkZGluZy1yaWdodDogMTBweDtcclxufVxyXG5cclxuLyplbmQgTGVnZW5kIGNzcyovXHJcblxyXG4vKnN0YXJ0IExlZ2VuZCBwb3B1cCBjc3MqL1xyXG4ubGVnZW5kUG9wdXAge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgei1pbmRleDogMTAwMDA7XHJcbn1cclxuXHJcbi8qZW5kIExlZ2VuZCBwb3B1cCBjc3MqL1xyXG5cclxuaW5wdXRbdHlwZT1yYWRpb10ge1xyXG4gIGhlaWdodDogMTJweDtcclxufVxyXG5cclxuLypodHRwczogLy9jb2RlcGVuLmlvL2E3bWVkLWh1c3NpZW4vcGVuL1BOYnhOWiovXHJcbi5vcGVuIHtcclxuICBsZWZ0OiAwICFpbXBvcnRhbnQ7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xyXG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcclxufVxyXG5cclxuaGVhZGVyIHtcclxuICBsZWZ0OiAtMzAwcHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcclxuICAtby10cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XHJcbn1cclxuXHJcbmRpdiN0b2dnbGUxLCBkaXYjdG9nZ2xlMiB7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA2MHB4O1xyXG4gIGxlZnQ6IDIzNHB4O1xyXG4gIGJhY2tncm91bmQ6ICM2Mjc3OGQ7XHJcbiAgcGFkZGluZzogMTBweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgd2lkdGg6IDE1MHB4O1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA2cHg7XHJcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDZweDtcclxuICBib3gtc2hhZG93OiAtNHB4IDVweCAyMHB4IC01cHggIzc4Nzk3OTtcclxufVxyXG5cclxuLm1lbnVQYW5lIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDMwMHB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgYm9yZGVyLXJhZGl1czogNnB4IDA7XHJcbiAgYm94LXNoYWRvdzogMCA2cHggMjBweCAtOXB4ICMyNjMyMzg7XHJcbiAgLyp0b3A6IDEwMHB4OyovXHJcbn1cclxuXHJcbi8qaHR0cHM6IC8vY29kZXBlbi5pby9TdGVwaGVuU2NhZmYvcGVuL2JWYkViSiovXHJcbi8qaHR0cHM6IC8vY29kZXBlbi5pby9Mb29uejIwNi9wZW4vZ3BSbWphKi9cclxuXHJcbi5kdC10b29sYmFyLXJvdy1HTSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICAvKm1hcmdpbi1yaWdodDogLTVweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsqL1xyXG59XHJcblxyXG4uZHQtdG9vbGJhci1jb2wtR00ge1xyXG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5kdC10b29sYmFyLWNvbC1HTSAuZHQtY29udGV4dC1tZW51IHtcclxuICB3aWR0aDogMTcwcHg7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLmR0LXRvb2xiYXItY29sLUdNLm9wZW4gLmR0LWNvbnRleHQtbWVudSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5kdC10b29sYmFyLWNvbC1HTSAuZHQtbGlzdC1tZW51LWl0ZW0uZGlzYWJsZWQsXHJcbi5kdC10b29sYmFyLWNvbC1HTSAuZHQtbGlzdC1tZW51LWl0ZW0uZGlzYWJsZWQ6aG92ZXIge1xyXG4gIGNvbG9yOiBzaWx2ZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAwO1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxufVxyXG5cclxuXHJcbi8qc3RhcnQgbG9hZGVyKi9cclxuI3NwaW5uZXIge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmcmFtZXMgMXMgaW5maW5pdGUgbGluZWFyO1xyXG4gIGFuaW1hdGlvbjogZnJhbWVzIDFzIGluZmluaXRlIGxpbmVhcjtcclxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICBib3JkZXI6IDAuNzV2dyBzb2xpZCAjRkZGO1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbiAgYm9yZGVyLXRvcC1jb2xvcjogI0RGNjkxQTtcclxuICB3aWR0aDogNXZ3O1xyXG4gIGhlaWdodDogNXZ3O1xyXG4gIG9wYWNpdHk6IC42O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHotaW5kZXg6IDk5OTtcclxufVxyXG5cclxuQGtleWZyYW1lcyBmcmFtZXMge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICB9XHJcblxyXG4gIDEwMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcclxuICB9XHJcbn1cclxuXHJcbiNwYXVzZSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjY2KSBuby1yZXBlYXQgMCAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgei1pbmRleDogMTAwMDtcclxufVxyXG5cclxuLyplbmQgbG9hZGVyKi9cclxuXHJcbi5zcGlubmVyX292ZXJsYXkge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBsZWZ0OiAwO1xyXG4gIHRvcDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBvcGFjaXR5OiAwLjU7XHJcbiAgei1pbmRleDogMTAwMDtcclxufVxyXG5cclxuLnNwaW5uZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiA1MCU7XHJcbiAgdG9wOiAyMCU7XHJcbiAgaGVpZ2h0OiA2MHB4O1xyXG4gIHdpZHRoOiA2MHB4O1xyXG4gIG1hcmdpbjogMHB4IGF1dG87XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0aW9uIC42cyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgLW1vei1hbmltYXRpb246IHJvdGF0aW9uIC42cyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgLW8tYW5pbWF0aW9uOiByb3RhdGlvbiAuNnMgaW5maW5pdGUgbGluZWFyO1xyXG4gIGFuaW1hdGlvbjogcm90YXRpb24gLjZzIGluZmluaXRlIGxpbmVhcjtcclxuICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHJnYmEoMCwxNzQsMjM5LC4xNSk7XHJcbiAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgcmdiYSgwLDE3NCwyMzksLjE1KTtcclxuICBib3JkZXItYm90dG9tOiA2cHggc29saWQgcmdiYSgwLDE3NCwyMzksLjE1KTtcclxuICBib3JkZXItdG9wOiA2cHggc29saWQgcmdiYSgwLDE3NCwyMzksLjgpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbn1cclxuXHJcbi8qaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdKi9cclxuLnNjaC1jaGtzIHtcclxuICB3aWR0aDogMTRweDsgLypEZXNpcmVkIHdpZHRoKi9cclxuICBoZWlnaHQ6IDE0cHg7IC8qRGVzaXJlZCBoZWlnaHQqL1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB0b3A6IDVweDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG59XHJcblxyXG5cclxuLmVycm9yQ2xhc3Mge1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkIHJlZDtcclxufVxyXG5cclxuXHJcbi5tYXQtc2VsZWN0ZWQge1xyXG4gIGJhY2tncm91bmQ6IGRhcmtibHVlICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6IGxpZ2h0Z3JheSAhaW1wb3J0YW50O1xyXG59XHJcbi8qYmFja2dyb3VuZCBjb2xyIGNoYW5nZSBhZnRlciBzZWxjdGluZyBvcHRpb24qL1xyXG4ubWF0LXNlbGVjdGUtZGVmYXVsdCB7XHJcbiAgYmFja2dyb3VuZDogZGFya2JsdWUgIWltcG9ydGFudDtcclxuICBjb2xvcjogbGlnaHRncmF5ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi8qYm9sZCBmaWx0ZXJlZCBvcHRpb25zIHdoaWxlIHR5cGluZyovXHJcbi5oaWdobGlnaHQge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC10b29sdGlwIHtcclxuICBjb2xvcjogcmVkICFpbXBvcnRhbnQ7IC8qaHR0cHM6IC8vc3RhY2tvdmVyZmxvdy5jb20vYS80NzU3NjI4NSovXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93ICFpbXBvcnRhbnQ7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xyXG59XHJcblxyXG5cclxuLyogSFRNTCBtYXJrZXIgc3R5bGVzICovXHJcbi5wcmljZS10YWczIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XHJcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gIGNvbG9yOiAjRkZGRkZGO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBwYWRkaW5nOiAxMHB4IDE1cHg7XHJcbiAgLypwb3NpdGlvbjogYWJzb2x1dGU7Ki9cclxuXHJcbn1cclxuXHJcbi5wcmljZS10YWczOjphZnRlciB7XHJcbiAgY29udGVudDogXCJcIjtcclxuICAvKnBvc2l0aW9uOiBhYnNvbHV0ZTsqL1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0b3A6IDEwMCU7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7XHJcbiAgd2lkdGg6IDA7XHJcbiAgaGVpZ2h0OiAwO1xyXG4gIGJvcmRlci1sZWZ0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyLXJpZ2h0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyLXRvcDogOHB4IHNvbGlkICM0Mjg1RjQ7XHJcbn1cclxuIiwiI21hcCB7XG4gIGhlaWdodDogMTIwMHB4O1xuICAvKndpZHRoOiAxMTAwcHg7Ki9cbn1cblxuLmNvbnRhaW5lckNvbG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbi5jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5hZ20tbWFwIHtcbiAgLypoZWlnaHQ6IDYwMHB4OyovXG4gIGhlaWdodDogMTIwMHB4O1xuICB3aWR0aDogMTEwMHB4O1xufVxuXG4uc2lkZUhlYWRlckxhYmVsIHtcbiAgZm9udDogMTJweCBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuXG4ubGFiZWxNYXJnaW5SaWdodCB7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuXG4uc2lkZW5hdkRyb3BEb3duIHtcbiAgd2lkdGg6IDI0MHB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5sYWJlbEZvbnQge1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbn1cblxuLmRpc2FibGVDb250cm9sIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5wb3B1cEJ1dHRvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LWZhbWlseTogVmVyZGFuYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZEOTZENjtcbiAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDNweDtcbn1cblxuLmJ0blRvZ2dsZTEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb3JuZmxvd2VyYmx1ZTtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LWZhbWlseTogVmVyZGFuYTtcbn1cblxuLmJ0blRvZ2dsZTIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmE7XG59XG5cbi5kaXNhYmxlU2VjdGlvbiB7XG4gIGNvbG9yOiBkYXJrZ3JheTtcbn1cblxuLypzdGFydCBjaGVja2JveCovXG4vKi5jaGVja2JveHNpemUgLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXIge1xuICB3aWR0aDogMTdweDtcbiAgaGVpZ2h0OiAxN3B4O1xufVxuXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgYm9yZGVyLWNvbG9yOiBibGFjaztcbiAgd2lkdGg6IDE3cHg7XG4gIGhlaWdodDogMTdweDtcbn1cblxuOjpuZy1kZWVwIC5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjMgIWltcG9ydGFudDtcbiAgd2lkdGg6IDE3cHg7XG4gIGhlaWdodDogMTdweDtcbn0qL1xuLyplbmQgY2hlY2tib3gqL1xuLmNoZWNrYm94bGFiZWxNYXJnaW4ge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgLyotMTVweDsqL1xufVxuXG4vKnRvZ2dsZSBkaXYqL1xuLnRvZ2dsZUljb24ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG5cbi8qc3RhcnQgTGVnZW5kIGNzcyovXG4uTGFiZWwge1xuICBjb2xvcjogQmxhY2s7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hO1xuICBoZWlnaHQ6IDEzcHg7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbn1cblxuLyplbmQgTGVnZW5kIGNzcyovXG4vKnN0YXJ0IExlZ2VuZCBwb3B1cCBjc3MqL1xuLmxlZ2VuZFBvcHVwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIHotaW5kZXg6IDEwMDAwO1xufVxuXG4vKmVuZCBMZWdlbmQgcG9wdXAgY3NzKi9cbmlucHV0W3R5cGU9cmFkaW9dIHtcbiAgaGVpZ2h0OiAxMnB4O1xufVxuXG4vKmh0dHBzOiAvL2NvZGVwZW4uaW8vYTdtZWQtaHVzc2llbi9wZW4vUE5ieE5aKi9cbi5vcGVuIHtcbiAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XG59XG5cbmhlYWRlciB7XG4gIGxlZnQ6IC0zMDBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XG4gIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7XG59XG5cbmRpdiN0b2dnbGUxLCBkaXYjdG9nZ2xlMiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA2MHB4O1xuICBsZWZ0OiAyMzRweDtcbiAgYmFja2dyb3VuZDogIzYyNzc4ZDtcbiAgcGFkZGluZzogMTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTUwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDZweDtcbiAgYm94LXNoYWRvdzogLTRweCA1cHggMjBweCAtNXB4ICM3ODc5Nzk7XG59XG5cbi5tZW51UGFuZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDMwMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiA2cHggMDtcbiAgYm94LXNoYWRvdzogMCA2cHggMjBweCAtOXB4ICMyNjMyMzg7XG4gIC8qdG9wOiAxMDBweDsqL1xufVxuXG4vKmh0dHBzOiAvL2NvZGVwZW4uaW8vU3RlcGhlblNjYWZmL3Blbi9iVmJFYkoqL1xuLypodHRwczogLy9jb2RlcGVuLmlvL0xvb256MjA2L3Blbi9ncFJtamEqL1xuLmR0LXRvb2xiYXItcm93LUdNIHtcbiAgZGlzcGxheTogZmxleDtcbiAgLyptYXJnaW4tcmlnaHQ6IC01cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsqL1xufVxuXG4uZHQtdG9vbGJhci1jb2wtR00ge1xuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5kdC10b29sYmFyLWNvbC1HTSAuZHQtY29udGV4dC1tZW51IHtcbiAgd2lkdGg6IDE3MHB4O1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZHQtdG9vbGJhci1jb2wtR00ub3BlbiAuZHQtY29udGV4dC1tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5kdC10b29sYmFyLWNvbC1HTSAuZHQtbGlzdC1tZW51LWl0ZW0uZGlzYWJsZWQsXG4uZHQtdG9vbGJhci1jb2wtR00gLmR0LWxpc3QtbWVudS1pdGVtLmRpc2FibGVkOmhvdmVyIHtcbiAgY29sb3I6IHNpbHZlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgYm94LXNoYWRvdzogMCAwIDA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLypzdGFydCBsb2FkZXIqL1xuI3NwaW5uZXIge1xuICAtd2Via2l0LWFuaW1hdGlvbjogZnJhbWVzIDFzIGluZmluaXRlIGxpbmVhcjtcbiAgYW5pbWF0aW9uOiBmcmFtZXMgMXMgaW5maW5pdGUgbGluZWFyO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwLjc1dncgc29saWQgI0ZGRjtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI0RGNjkxQTtcbiAgd2lkdGg6IDV2dztcbiAgaGVpZ2h0OiA1dnc7XG4gIG9wYWNpdHk6IDAuNjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA5OTk7XG59XG5cbkBrZXlmcmFtZXMgZnJhbWVzIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gIH1cbn1cbiNwYXVzZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNjYpIG5vLXJlcGVhdCAwIDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG4vKmVuZCBsb2FkZXIqL1xuLnNwaW5uZXJfb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBvcGFjaXR5OiAwLjU7XG4gIHotaW5kZXg6IDEwMDA7XG59XG5cbi5zcGlubmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogMjAlO1xuICBoZWlnaHQ6IDYwcHg7XG4gIHdpZHRoOiA2MHB4O1xuICBtYXJnaW46IDBweCBhdXRvO1xuICAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRpb24gMC42cyBpbmZpbml0ZSBsaW5lYXI7XG4gIC1tb3otYW5pbWF0aW9uOiByb3RhdGlvbiAwLjZzIGluZmluaXRlIGxpbmVhcjtcbiAgLW8tYW5pbWF0aW9uOiByb3RhdGlvbiAwLjZzIGluZmluaXRlIGxpbmVhcjtcbiAgYW5pbWF0aW9uOiByb3RhdGlvbiAwLjZzIGluZmluaXRlIGxpbmVhcjtcbiAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCByZ2JhKDAsIDE3NCwgMjM5LCAwLjE1KTtcbiAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgcmdiYSgwLCAxNzQsIDIzOSwgMC4xNSk7XG4gIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCByZ2JhKDAsIDE3NCwgMjM5LCAwLjE1KTtcbiAgYm9yZGVyLXRvcDogNnB4IHNvbGlkIHJnYmEoMCwgMTc0LCAyMzksIDAuOCk7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG59XG5cbi8qaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdKi9cbi5zY2gtY2hrcyB7XG4gIHdpZHRoOiAxNHB4O1xuICAvKkRlc2lyZWQgd2lkdGgqL1xuICBoZWlnaHQ6IDE0cHg7XG4gIC8qRGVzaXJlZCBoZWlnaHQqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogNXB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4uZXJyb3JDbGFzcyB7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHJlZDtcbn1cblxuLm1hdC1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQ6IGRhcmtibHVlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBsaWdodGdyYXkgIWltcG9ydGFudDtcbn1cblxuLypiYWNrZ3JvdW5kIGNvbHIgY2hhbmdlIGFmdGVyIHNlbGN0aW5nIG9wdGlvbiovXG4ubWF0LXNlbGVjdGUtZGVmYXVsdCB7XG4gIGJhY2tncm91bmQ6IGRhcmtibHVlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBsaWdodGdyYXkgIWltcG9ydGFudDtcbn1cblxuLypib2xkIGZpbHRlcmVkIG9wdGlvbnMgd2hpbGUgdHlwaW5nKi9cbi5oaWdobGlnaHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuOjpuZy1kZWVwIC5tYXQtdG9vbHRpcCB7XG4gIGNvbG9yOiByZWQgIWltcG9ydGFudDtcbiAgLypodHRwczogLy9zdGFja292ZXJmbG93LmNvbS9hLzQ3NTc2Mjg1Ki9cbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93ICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xufVxuXG4vKiBIVE1MIG1hcmtlciBzdHlsZXMgKi9cbi5wcmljZS10YWczIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgLypwb3NpdGlvbjogYWJzb2x1dGU7Ki9cbn1cblxuLnByaWNlLXRhZzM6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgLypwb3NpdGlvbjogYWJzb2x1dGU7Ki9cbiAgbGVmdDogNTAlO1xuICB0b3A6IDEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItbGVmdDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcDogOHB4IHNvbGlkICM0Mjg1RjQ7XG59Il19 */\"","import { Component, Inject, Renderer2, OnInit, Input, Output, EventEmitter, ViewChildren, QueryList, Sanitizer, SimpleChanges, OnChanges, AfterViewInit, ElementRef, ChangeDetectionStrategy, ChangeDetectorRef, OnDestroy, HostListener, ViewChild } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { request } from 'http';\r\n//import { RequestMetadata, PagedResult } from '../../../../lib/ng-crud-table';\r\nimport { MatTableDataSource, fadeInContent } from '@angular/material';\r\nimport { DataSource } from '@angular/cdk/table';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog, MatDialogConfig, MatAutocomplete, MatAutocompleteTrigger, PageEvent, MatPaginator } from '@angular/material';\r\nimport { BrowserModule, DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { sanitizeIdentifier, identifierName } from '@angular/compiler';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\nimport { lastDateFunc, formatDate, formatDBTZDateToLocalDate } from 'lib/common/utils';\r\nimport { VquadbtfxoComponent } from 'src/app/statistics/network-status/vquadbtfxo/vquadbtfxo.component';\r\nimport { GooglemapstatuspopupComponent } from 'src/app/output-results/googlemapstatuspopup/googlemapstatuspopup.component';\r\nimport { AbsMapDisplayOptions } from 'src/app/shared/models/Configuration/GoogleMap/MapConfig';\r\nimport { AgmMap, MapsAPILoader, LatLngBounds } from '@agm/core';\r\nimport { GooglemaplegendpopupComponent } from 'src/app/output-results/googlemaplegendpopup/googlemaplegendpopup.component';\r\nimport { BasicComponent } from 'src/app/shared/basic/basic.component';\r\nimport { ResultsService } from 'src/app/shared/services/master/results/results.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { rsltTypeInTitle } from 'src/app/shared/functions/title';\r\nimport { Cluster } from 'cluster';\r\nimport { map, first } from 'rxjs/operators';\r\nimport { DemoService } from 'src/app/shared/demo.service';\r\nimport { Subscription, concat } from 'rxjs';\r\nimport { DataFilter } from 'lib/ng-data-table/base';\r\nimport { debug } from 'util';\r\nimport { stream } from 'exceljs';\r\n//import OverlappingMarkerSpiderfier from 'overlapping-marker-spiderfier';\r\nimport { parse } from 'cfb/types';\r\nimport { position } from 'html2canvas/dist/types/css/property-descriptors/position';\r\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\r\n//import { MarkerClusterer } from \"@googlemaps/markerclusterer\";\r\nimport { promise } from 'protractor';\r\n//import MarkerClusterer from '@google/markerclustererplus';\r\n\r\n//import { circle } from 'leaflet';\r\n//https://roufid.com/angular-uncaught-referenceerror-google-not-defined/\r\n//https://medium.com/@jkeung/integrating-google-maps-api-w-angular-7-e7672396ce2d\r\n//import { initMap } from \"./InitMap\";\r\ndeclare var google: any;\r\n//https://stackoverflow.com/questions/37081943/angular-2-import-external-js-file-into-component\r\n//https://stackoverflow.com/questions/40294080/implementing-overlappingmarkerspidifier-with-sebm-angular2-google-map\r\ndeclare var OverlappingMarkerSpiderfier: any;\r\n////https://stackoverflow.com/a/64079939\r\n//declare var saveSvgAsPng: any;\r\n\r\n@Component({\r\n selector: 'app-test-jsgoogle-map',\r\n templateUrl: './test-jsgoogle-map.component.html',\r\n styleUrls: ['./test-jsgoogle-map.component.scss']\r\n})\r\nexport class TestJSGoogleMapComponent implements OnInit, AfterViewInit {\r\n iconBGColor: string = 'FFA500';\r\n iconFontColor = \"white\";\r\n iconText = \"PASS\";\r\n GoogleMapID = 'DEMO_MAP_ID';\r\n\r\n dynamicBubbleClass11 = \"5px solid \" + \"#\" + this.iconBGColor;\r\n dynamicBubbleClass21 = \"5px solid \" + \"#\" + this.iconBGColor;\r\n\r\n map: any;\r\n overlay: google.maps.OverlayView;\r\n customLabelOverlay: google.maps.OverlayView;\r\n clearAllFiltersAction: boolean = true;\r\n actionsMessage: string = 'Actions';\r\n modifyFiltersMessage: string = 'Modify filters';\r\n clearFiltersMessage: string = 'Clear all filters';\r\n hasFilters: boolean = true;//false;\r\n\r\n rsltType: string = \"GoogleMap\";\r\n\r\n rsltTypeTS = '-1';\r\n TSSelected: number = 1;\r\n\r\n AutoRefreshInfo: any;\r\n isFilters: boolean = true;\r\n interval;\r\n\r\n title: string = \"Google Maps\";\r\n staticScreen = false; //true;\r\n\r\n isLoading = false;\r\n\r\n baseUrl: string;\r\n url: string;\r\n\r\n ////lat: 40.4230, lng: -98.7372 -- USA\r\n lat = 40.4230;//12.9264;// india\r\n lng = -98.7372;//77.6012;//india\r\n\r\n ///for polygon\r\n polyLat: number;\r\n polyLng: number;\r\n lat1: number = 14.4673;\r\n lng1: number = 78.8242;\r\n lat2: number = 16.5062;\r\n lng2: number = 80.6480;\r\n //iurl: string = \"https://chart.googleapis.com/chart?chst=d_bubble_texts_big&chld=bb|000000|FFFFFF|Bubb\";\r\n iurl: string = \"./assets/images/Marks/GreenMark.png\";\r\n iurl_b: string = \"https://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=|000000\";\r\n // google maps zoom level\r\n zoom: number = 4;//4; \r\n clulster_max_zoom = 12;\r\n minClusterSize = 5;\r\n\r\n usePredefinedConfig: string = \"OFF\";\r\n showAnalysis = true;\r\n showNetTest = true;\r\n showMobileInfo = true;\r\n showErrorEvents = true;\r\n showTypes = true;\r\n showResults = true;\r\n count: number = 0;\r\n infoWindowbody: any;\r\n previous: any;\r\n Loading: string;\r\n DrawRoute: string = \"OFF\";\r\n DrawLine: string = \"1\";\r\n stopFollowRoadRoute: boolean = true;\r\n rsltTypeEach: any;\r\n bluetoothText: string;\r\n isBlutoothButton: boolean = false;\r\n mapRegionSelected: string = \"0\";\r\n modelRegName: string;\r\n btnRegioncolor: string = \"btnToggle1\";\r\n toggleMapRegion: boolean = false;\r\n infoRegionbody: any;\r\n analysisEnabled: string = \"ON\";\r\n netTestEnabled: string = \"ON\";\r\n mobileInfoEnabled: string = \"ON\";\r\n errorEventsEnabled: string = \"ON\";\r\n mapConfigID: number = 0;\r\n divPinLegends: any;\r\n showPopupLegend: boolean = false;\r\n currentPinLocation: any;\r\n mainFilterMapRegionName: string = '';\r\n\r\n thresholdLegends: string = \"\";\r\n thresholdLegendsCount: string = \"\";\r\n callIDLegends: string = \"\";//susheel\r\n devIDLegends: string = \"\";\r\n callEventsLegends: string = \"\";\r\n restorePreviousMapRegionName: string = \"0\";\r\n\r\n disableSection: string = \"\";\r\n showDrawRouteDirection: boolean = false;\r\n //map: any;\r\n origin: any;\r\n destination: any;\r\n commonFilterDates: string;\r\n resultTypeID: string;\r\n leftPanel: boolean = false;\r\n limitPinCount: boolean = false;\r\n firstTimeFunctionCall: boolean = false;\r\n totalNetTestPassCount: number = 0;\r\n totalNetTestFailCount: number = 0;\r\n totalMobInfoPassCount: number = 0;\r\n totalMobInfoFailCount: number = 0;\r\n totalFailuresOverall: number = 10;\r\n selectedMapConfigID: number = 0;\r\n modelMapName: string;\r\n imgSrc11: string;\r\n LoadingText: string = \"\";\r\n initialLoad: boolean = false;\r\n loadOldGoogleMap: boolean = true;\r\n NoAudioScoreCondition: number = 1.10;\r\n totalNoAudioScore: number = 0;\r\n\r\n mapData = [];\r\n latlngValMainAgain = [];\r\n LatLongOriginal = [];\r\n mapFilterConfigList = [];\r\n mapNamesObservable = [];\r\n infowindowArray = [];\r\n bluetoothData = [];\r\n mapRegionList = [];\r\n regNamesObservable = [];\r\n tempMarker = [];\r\n DisplayResultList1 = [];\r\n pinLegends = [];\r\n dynamicPinLegends = [];\r\n dynamicLegendPopupData = [];\r\n legendPopupData = [];\r\n appliedLegendThreshold = [];\r\n routeLatLng: any[] = [];\r\n PredefinedConfigOff = [];\r\n markerCollection: marker[];\r\n DirectPolylines = [];\r\n followRoadRoute = [];\r\n NoAudioPolqa_OnePoinOne = [];\r\n Province0List = [];\r\n Province1List = [];\r\n Province2List = [];\r\n Province3List = [];\r\n\r\n options = {\r\n suppressMarkers: true,\r\n polylineOptions: { strokeColor: 'red', strokeWeight: 2, strokeOpacity: 1.0, geodesic: true }\r\n };\r\n\r\n //// \"../assets/images/Map/ClusterMarker_Circle.png\"\r\n //,\r\n //hide: [\r\n // {\r\n // featureType: \"poi\",//poi.business\r\n // stylers: [{ visibility: \"off\" }],\r\n // },\r\n // {\r\n // featureType: \"transit\",\r\n // elementType: \"labels.icon\",\r\n // stylers: [{ visibility: \"off\" }],\r\n // },\r\n //],\r\n\r\n mapOptions = {\r\n styles: [\r\n {\r\n url: \"./assets/images/Map/ClusterMarker_Circle.png\",\r\n width: 53,\r\n height: 53,\r\n textColor: '#fff',\r\n }\r\n ],\r\n };\r\n\r\n ///// to hide default googlemap pin marker like restaurant,pertol bunks etc. Transit is like public transport icon like train bus as of now it is visible \r\n public customMapStyles = [\r\n {\r\n featureType: \"poi\",//poi.business\r\n stylers: [{ visibility: \"off\" }],\r\n },\r\n {\r\n featureType: \"transit\",\r\n elementType: \"labels.icon\",\r\n stylers: [{ visibility: \"on\" }],\r\n },\r\n ];\r\n\r\n pinMarker: marker;\r\n mapDisplayOptions = new AbsMapDisplayOptions();\r\n preDefinedConfigParam = new PredefinedConfig();\r\n //oms;//susheel\r\n\r\n mainFilterRegionCircleRegionList: google.maps.Circle[] = [];\r\n mainFilterRegionPolygonPathList: google.maps.Polygon[] = [];////\r\n circleRegionList: google.maps.Circle[] = [];\r\n polygonPathList: google.maps.Polygon[] = []; // Store reference to the polygon\r\n polygonPath: google.maps.Polygon | null = null; // Store reference to the polygon\r\n gMapMarkerCollection: google.maps.Marker[] = [];\r\n gMapAdvanceMarkerCollection: any[] = [];\r\n //gMapAdvanceMarkerCollection1 : google.maps.Marker.AdvancedMarkerElement[]=[];\r\n ///markerCluster: google.maps.MarkerClusterer;\r\n\r\n //MarkerClusterer: any;\r\n markerCluster!: any;\r\n dbTz = -500;\r\n dbAndBrHrs = -500;\r\n MainFilterID = 0;\r\n MainFilterTZ = 0;\r\n private subscriptions: Subscription[] = [];\r\n genArrDel = [];\r\n genArr = [];\r\n private dataFilter: DataFilter;\r\n filterEventIDSelected = false;\r\n delColSelected = false;\r\n\r\n //nearbyDistance: 20,\r\n optionsOMS = {\r\n //nearbyDistance: 100,\r\n legWeight: 2,\r\n markersWontMove: true,\r\n markersWontHide: true,\r\n keepSpiderfied: true,\r\n // spiderfyDistanceMultiplier:1.5,\r\n //circleSpiralSwitchover: 90,\r\n //spiralFootSeparation: 80,\r\n // spiralLengthStart :51,\r\n // spiralLengthFactor: 54,\r\n //spiderfiedZIndex :1,\r\n spiderfiedShadowColor: false,\r\n //unspiderfyFunction: function () { }\r\n };\r\n // mapOptions = {\r\n // zoom: myZoom,\r\n // center: latlng,\r\n // mapTypeId: google.maps.MapTypeId.ROADMAP\r\n //};\r\n //lat = 12.971599;\r\n //lng = 77.594563;\r\n //coordinates = new google.maps.LatLng(this.lat, this.lng);\r\n markerPositions = [];\r\n infoWindow = null;\r\n infowWindowFlag: boolean = false;\r\n // markerPositions =[\r\n // { lat: 12.971599, lng: 77.594563 },\r\n // { lat: 12.29581, lng: 76.639381 },\r\n // { lat: 11.410204, lng: 76.695032 }\r\n //];\r\n\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n @ViewChildren(MatAutocompleteTrigger) triggerCollection: QueryList;\r\n @ViewChild('inputReg', { static: false }) inputRegCtrl;\r\n @ViewChild('input', { static: false }) inputCtrl;\r\n\r\n control = new FormControl();\r\n\r\n @Input() myConfigName = \"null\";\r\n\r\n controlReg = new FormControl();\r\n\r\n @Input() myConfigNameReg = \"null\";\r\n\r\n toHighlight: string = '';\r\n toHighlightReg: string = '';\r\n\r\n\r\n isDeskTop = true;\r\n constructor(@Inject(DOCUMENT) private document: Document, private renderer2: Renderer2, private _Activatedroute: ActivatedRoute, private _router: Router, private http: HttpClient, private dialog: MatDialog, private sanitizer: DomSanitizer, private elRef: ElementRef, private mapsAPILoader: MapsAPILoader, private service: DemoService, private commonFilterService: CommonFilterService, private resultsService: ResultsService, private cd: ChangeDetectorRef, private responsive: BreakpointObserver) {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n this.dataFilter = new DataFilter();\r\n //debugger;\r\n this.firstTimeFunctionCall = true;\r\n\r\n this.commonFilterService.TSType.subscribe(res => { this.TSSelected = res; });//TsType\r\n\r\n //this.commonFilterService.DB_TZ.subscribe(res => {\r\n // this.dbTz = res;\r\n //});\r\n //if (this.dbTz == -500) {//query var col table\r\n // this.service.getDBTimezoneDiff('VquadData').then(res => {\r\n // this.commonFilterService.setDBTZFromVarCol(res);\r\n // this.dbTz = res;\r\n // });\r\n //}\r\n this.commonFilterService.mainFilterID.subscribe(res => {\r\n this.MainFilterID = res;\r\n\r\n this.commonFilterService.mfTZ.subscribe(res => {\r\n this.MainFilterTZ = res;\r\n });\r\n });\r\n\r\n /////get region name from mainfilter configured and plot region\r\n this.commonFilterService.mainFilter_MapRegionName.subscribe(res => {\r\n\r\n if (this.mainFilterRegionPolygonPathList.length > 0 || this.mainFilterRegionCircleRegionList.length > 0)\r\n this.removeMainFilterRegionPolgonPath();\r\n\r\n if (res != '' && res != null) {\r\n this.mainFilterMapRegionName = res;\r\n //this.GetMainFilterMapRegion();\r\n }\r\n else {\r\n this.mainFilterMapRegionName = '';\r\n }\r\n\r\n });\r\n\r\n this.commonFilterService.setNonFiltersScreen(this.staticScreen);//false\r\n\r\n this.Loading = \"\";\r\n\r\n _Activatedroute.params.subscribe(val => {\r\n this.rsltType = _Activatedroute.snapshot.url[1].path;\r\n this.parentEvent();\r\n });\r\n\r\n const _broadSublisten = this.commonFilterService.listen.subscribe(res => {\r\n //////alert(1);\r\n //console.log('listen');\r\n if (res === 'onlyGMapInit' && !this.filterEventIDSelected) {\r\n //debugger;\r\n\r\n //console.log('listen')\r\n if (!this.firstTimeFunctionCall)\r\n this.refreshSelections();\r\n }\r\n\r\n if (this.filterEventIDSelected)\r\n this.filterEventIDSelected = false;\r\n });\r\n this.subscriptions.push(_broadSublisten);\r\n\r\n const _broadSubEventIDFilter = this.commonFilterService.GeneralEventIDFilter.subscribe(\r\n //() => {\r\n // //alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log('GeneralEventIDFilter')\r\n //console.log(res)\r\n //debugger\r\n //this.filterEventIDSelected = true;\r\n this.filtersWithEventID = res;\r\n ////alert(5);\r\n //if (!this.delColSelected && !this.clearAllFiltersBool && (typeof this.filtersWithEventID == 'object' && Object.keys(this.filtersWithEventID).length > 0)) {\r\n // console.log('filtersWithEventID')\r\n // if (this.usePredefinedConfig == \"OFF\")\r\n // this.GetMapConfigData();\r\n // else\r\n // this.GetMapConfigByID(this.selMapConfig);\r\n //}\r\n });\r\n this.subscriptions.push(_broadSubEventIDFilter);\r\n\r\n this.commonFilterService.isFilters$.subscribe(res => {\r\n this.isFilters = res;\r\n });\r\n\r\n //Do Refresh Region\r\n const _broadSubRefreshByEdit = this.commonFilterService.componentRegionMethodCalled$.subscribe(\r\n res => {\r\n\r\n if (res != \"0\") {\r\n //this.refreshSelections();\r\n ////alert('reg')\r\n ////// redraw region paths on refresh click\r\n debugger;\r\n if (res == \"1\") {\r\n // this.getListReg();\r\n debugger;\r\n this.GetAllMapRegion();\r\n }\r\n else if (res == \"2\") { ///// refresh as region is deleted in config screen\r\n // //alert('reg2')\r\n this.restorePreviousMapRegionName = \"0\";\r\n this.inputRegCtrl.nativeElement.value = \"\";\r\n this.removePolgonPath();\r\n this.GetAllMapRegion();\r\n }\r\n }\r\n });\r\n\r\n\r\n //Do Refresh\r\n const _broadSubRefresh = this.commonFilterService.componentMethodCalled$.subscribe(\r\n //() => {\r\n // //alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n ////alert(1);\r\n //console.log('refreshed-componentMethodCalled$') \r\n //debugger;\r\n //debugger;\r\n\r\n //this.btnRegioncolor = \"btnToggle1\";\r\n //this.toggleMapRegion = false;\r\n\r\n this.refreshSelections();\r\n }\r\n );\r\n this.subscriptions.push(_broadSubRefresh);\r\n\r\n //Do Refresh after editing\r\n const _broadSubRefreshForEdit = this.commonFilterService.componentGMapsMethodCalled$.subscribe(\r\n res => {\r\n ////alert('edit');\r\n this.commonFilterService.basicGMapsSavedRefresh(0);\r\n this.refreshSelections();\r\n }\r\n );\r\n this.subscriptions.push(_broadSubRefreshForEdit);\r\n\r\n const _broadSubAllGeneralFilter = this.commonFilterService.AllGeneralFilter.subscribe(res => {\r\n //debugger\r\n\r\n this.AllGeneralFilter = res;\r\n ////alert(3);\r\n if (!this.delColSelected && !this.clearAllFiltersBool && this.AllGeneralFilter.length > 0) {\r\n if (!this.firstTimeFunctionCall) {\r\n //console.log('genFilter')\r\n //debugger;\r\n ////alert(2);\r\n this.refreshSelections();\r\n }\r\n }\r\n\r\n //reset here\r\n if (this.delColSelected)\r\n this.delColSelected = false;\r\n if (this.clearAllFiltersBool)\r\n this.clearAllFiltersBool = false;\r\n\r\n this.delFilterColName = '';//reset if delete or clear all filters\r\n });\r\n this.subscriptions.push(_broadSubAllGeneralFilter);\r\n\r\n const _broadSubDeleteFilter = this.commonFilterService.DeleteFilter.subscribe(\r\n //() => {\r\n // //alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //debugger\r\n if (res !== '') {//IMP IMP\r\n ////alert(4);\r\n //console.log('delFilter')\r\n this.delFilterColName = res;\r\n //debugger;\r\n this.refreshSelections();\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubDeleteFilter);\r\n\r\n //const _broadSubGeneralDFFilter = this.commonFilterService.GeneralFilterDF.subscribe(res => {\r\n // //console.log('GeneralDFFilter')\r\n // this.filters = res;\r\n //});\r\n //this.subscriptions.push(_broadSubGeneralDFFilter);\r\n const _broadSubGeneralFilter = this.commonFilterService.GeneralFilter.subscribe(res => {\r\n //console.log('GeneralFilter')\r\n //console.log(res) \r\n //debugger;\r\n this.filters = res;\r\n });\r\n this.subscriptions.push(_broadSubGeneralFilter);\r\n\r\n //Do Auto-refresh - start/stop\r\n const _broadSubAutoRefresh = this.commonFilterService.componentMethodWithArgCalled$.subscribe(\r\n //() => {\r\n // //alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //debugger;\r\n\r\n this.AutoRefreshInfo = res;\r\n\r\n if (this.AutoRefreshInfo.AutoRefStop) {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n }\r\n }\r\n else {\r\n this.interval = setInterval(() => {\r\n //console.log(this.AutoRefreshInfo.AutoRefStop);\r\n ////alert(6);\r\n this.refreshSelections();\r\n }, this.AutoRefreshInfo.AutoRefSelected);\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAutoRefresh);\r\n\r\n\r\n\r\n\r\n this.responsive.observe(['(min-width: 960px)', '(max-width: 1279.99px)', '(min-width: 1280px)', Breakpoints.Web, Breakpoints.WebLandscape, Breakpoints.WebPortrait,\r\n Breakpoints.Tablet, Breakpoints.TabletPortrait, Breakpoints.TabletLandscape,\r\n Breakpoints.Handset, Breakpoints.HandsetLandscape, Breakpoints.HandsetPortrait,\r\n Breakpoints.XSmall, Breakpoints.Small, Breakpoints.Medium, Breakpoints.Large, Breakpoints.XLarge\r\n ])\r\n .subscribe(result => {\r\n const breakpoints = result.breakpoints;\r\n if (breakpoints[Breakpoints.Tablet] || breakpoints[Breakpoints.TabletPortrait] || breakpoints[Breakpoints.TabletLandscape]\r\n || breakpoints[Breakpoints.Handset] || breakpoints[Breakpoints.HandsetPortrait] || breakpoints[Breakpoints.HandsetLandscape]\r\n || breakpoints[Breakpoints.XSmall] || breakpoints[Breakpoints.Small]) {\r\n this.isDeskTop = false;\r\n if ((breakpoints['(min-width: 960px)'] && breakpoints['(max-width: 1279.99px)']) || breakpoints['(min-width: 1280px)']) {\r\n this.isDeskTop = true;\r\n }\r\n }\r\n else if (breakpoints[Breakpoints.Medium]) {\r\n this.isDeskTop = false;\r\n }\r\n else {\r\n this.isDeskTop = true;\r\n }\r\n });\r\n }\r\n\r\n\r\n init = false;\r\n initReg = false;\r\n ngOnInit() {\r\n this.imgSrc11 = './assets/images/Marks/1.jpg';\r\n this.init = true;\r\n this.initReg = true;\r\n if (this.myConfigName == \"\")\r\n this.myConfigName = \"null\";\r\n if (this.myConfigNameReg == \"\")\r\n this.myConfigNameReg = \"null\";\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n ////// to set default value for all checkboxes of display option sections\r\n //this.ResetDispalyOptionsList();\r\n\r\n this.GetSystemConfig(); ///commented for testing\r\n this.paths = [];\r\n this.GetAllMapRegion();\r\n //this.GetPredefinedConfig();\r\n\r\n if (this.firstTimeFunctionCall) {\r\n this.RestorePreviousDispalyOptions();\r\n }\r\n else {\r\n this.GetPredefinedConfig();\r\n /////this.GetSystemConfig();\r\n }\r\n // this.GetMapConfigByID(42);\r\n // this.GetAllMapRegion();\r\n //this.DynamicHtmlEvent();\r\n //this.SetPinLegnd();\r\n\r\n this.control.valueChanges.subscribe(newValue => {\r\n this.mapNamesObservable = this._mapName(newValue);\r\n })\r\n\r\n this.controlReg.valueChanges.subscribe(newValue => {\r\n this.regNamesObservable = this._regName(newValue);\r\n })\r\n\r\n //https://github.com/SebastianM/angular-google-maps/issues/1378\r\n this.cd.detectChanges();\r\n\r\n // this.JsMapInitilization();\r\n\r\n\r\n\r\n //debugger;\r\n\r\n //var el = document.getElementById(\"img12\");\r\n //el.onclick = this.ShowMapLegendWin;\r\n\r\n //this.elRef.nativeElement.querySelector('img').addEventListner('click', this.ShowMapLegendWin.bind(this));\r\n //this.elRef.nativeElement.querySelector('button').addEventListner('click', this.ShowMapLegendWin.bind(this));\r\n // setTimeout(() => { this.map.triggerResize(); }, 500)\r\n\r\n if (this.myConfigName != \"null\") {\r\n this.isLoading = true;\r\n this.interval = setInterval(() => {\r\n this.triggerCollection.forEach((x, i) => {\r\n if (i == 1) {\r\n const selMatOption = x.autocomplete.options.toArray();\r\n if (selMatOption.length > 0) {\r\n this.control.setValue(selMatOption.find((o) => o.value.name === this.myConfigName).value);\r\n clearInterval(this.interval);\r\n }\r\n }\r\n });\r\n\r\n }, 1000);\r\n this.isLoading = false;\r\n }\r\n\r\n if (this.myConfigNameReg != \"null\") {\r\n this.isLoading = true;\r\n this.interval = setInterval(() => {\r\n this.triggerCollection.forEach((x, i) => {\r\n if (i == 0) {\r\n const selMatOption = x.autocomplete.options.toArray();\r\n if (selMatOption.length > 0) {\r\n this.controlReg.setValue(selMatOption.find((o) => o.value.name === this.myConfigNameReg).value);\r\n clearInterval(this.interval);\r\n }\r\n }\r\n });\r\n }, 1000);\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n loadOMSLibrary(loadOldGoogleMap: boolean): void {\r\n const head = document.head;\r\n\r\n // Clear existing dynamic scripts\r\n const existingScripts = head.querySelectorAll('.dynamic-script');\r\n existingScripts.forEach(script => script.remove());\r\n\r\n // Create a new script element\r\n const script = this.renderer2.createElement('script');\r\n script.type = 'text/javascript';\r\n script.src = loadOldGoogleMap ? 'scripts/oms.min.js' : 'scripts/oms.min_NewVersion.js';\r\n script.classList.add('dynamic-script');\r\n script.onload = () => {\r\n console.log('Script loaded successfully.');\r\n };\r\n\r\n // Append the script to the head\r\n this.renderer2.appendChild(head, script);\r\n this.cd.detectChanges();\r\n }\r\n\r\n RestorePreviousDispalyOptions() {\r\n\r\n this.commonFilterService.displayOptionValues.subscribe(res => {\r\n //debugger;\r\n if (this.firstTimeFunctionCall) {\r\n this.status1 = true;////open left panel always\r\n\r\n ///// restore previousseleted mapregion\r\n this.commonFilterService.gmapRegion_Config.subscribe(res => {\r\n //let selectedMapConfigID = res;\r\n this.restorePreviousMapRegionName = \"0\";\r\n if (res != '0') {\r\n this.restorePreviousMapRegionName = res;\r\n ////alert(this.restorePreviousMapRegionName);\r\n }\r\n });\r\n }\r\n\r\n\r\n if (this.firstTimeFunctionCall && res != null) {\r\n\r\n this.firstTimeFunctionCall = false;\r\n //console.log(res);\r\n //this.cd.detectChanges();\r\n this.mapDisplayOptions = res as AbsMapDisplayOptions;\r\n\r\n //debugger;\r\n this.usePredefinedConfig = this.mapDisplayOptions.usePredefinedConfig == 0 ? \"OFF\" : \"ON\";\r\n if (this.mapDisplayOptions.PredefinedConfig.restoreLat != 0 && this.mapDisplayOptions.PredefinedConfig.restoreLng != 0) {\r\n this.zoom = this.mapDisplayOptions.PredefinedConfig.restoreZoom;\r\n this.lat = this.mapDisplayOptions.PredefinedConfig.restoreLat;\r\n this.lng = this.mapDisplayOptions.PredefinedConfig.restoreLng;\r\n }\r\n\r\n if (this.usePredefinedConfig == \"OFF\") {\r\n if (this.mapDisplayOptions.DisplayResultList.length <= 0)\r\n this.GetDispaylOption();\r\n this.DisplayResultList = this.mapDisplayOptions.DisplayResultList;\r\n this.AnalysisList = this.mapDisplayOptions.AnalysisList;\r\n this.NetTestList = this.mapDisplayOptions.NetTestList;\r\n this.MobileInfoList = this.mapDisplayOptions.MobileInfoList;\r\n this.ErrorEventList = this.mapDisplayOptions.ErrorEventList;\r\n this.analysisEnabled = this.mapDisplayOptions.analysisEnabled;\r\n if (this.mapDisplayOptions.analysisEnabled == \"OFF\")\r\n this.DivToggle('showAnalysis');\r\n this.netTestEnabled = this.mapDisplayOptions.netTestEnabled;\r\n if (this.mapDisplayOptions.netTestEnabled == \"OFF\")\r\n this.DivToggle('showNetTest');\r\n this.mobileInfoEnabled = this.mapDisplayOptions.mobileInfoEnabled;\r\n if (this.mapDisplayOptions.mobileInfoEnabled == \"OFF\")\r\n this.DivToggle('showMobileInfo');\r\n this.errorEventsEnabled = this.mapDisplayOptions.errorEventsEnabled;\r\n if (this.mapDisplayOptions.errorEventsEnabled == \"OFF\")\r\n this.DivToggle('showErrorEvents');\r\n\r\n ////call api method after restoring previous selected values\r\n //this.GetMapChanges();\r\n //this.GetMapConfigData();\r\n if (this.mapDisplayOptions.displayOptionApplied)\r\n this.GetMapChanges();\r\n else\r\n this.GetPredefinedConfig();\r\n }\r\n else {\r\n this.selMapConfig = this.mapDisplayOptions.mapConfigID.toString();\r\n /////// SET below the input text value - this.selMapConfig has previuosly selected value\r\n //debugger;\r\n\r\n this.GetPredefinedConfig();\r\n\r\n this.TypeList = this.mapDisplayOptions.TypeList;\r\n this.ResultList = this.mapDisplayOptions.ResultList;\r\n this.preDefinedConfigParam = this.mapDisplayOptions.PredefinedConfig;\r\n this.DrawRoute = this.preDefinedConfigParam.drawRoute == 0 ? \"OFF\" : \"ON\";\r\n\r\n if (this.mapDisplayOptions.displayOptionApplied)\r\n this.GetMapChanges();\r\n\r\n }\r\n //this.DrawLine = this.preDefinedConfigParam. ///// need to create and store in preDefinedConfigParam\r\n\r\n }\r\n else if (this.firstTimeFunctionCall && res == null) ////if firstTimeFunctionCall is true and subcribe res is null..this happen very first time after login and then visiting googlemap page where restore previous value will be null.\r\n {\r\n this.firstTimeFunctionCall = false;\r\n /// this.GetSystemConfig();\r\n //debugger;\r\n this.GetMapConfigData(); // .then(() => { this.isLoading=false});\r\n //this.GetPredefinedConfig();\r\n }\r\n\r\n });\r\n }\r\n refreshSelections() {\r\n //debugger;\r\n ////alert('refreshSelections');\r\n ///// on refresh click set zoom position to previuosly selected posiition\r\n if (this.mapDisplayOptions.PredefinedConfig) {\r\n this.selMapConfig = this.mapDisplayOptions.mapConfigID.toString();\r\n if (this.mapDisplayOptions.PredefinedConfig.restoreLat != 0 && this.mapDisplayOptions.PredefinedConfig.restoreLng != 0) {\r\n this.zoom = this.mapDisplayOptions.PredefinedConfig.restoreZoom;\r\n this.lat = this.mapDisplayOptions.PredefinedConfig.restoreLat;\r\n this.lng = this.mapDisplayOptions.PredefinedConfig.restoreLng;\r\n }\r\n }\r\n\r\n if (this.mapDisplayOptions.displayOptionApplied) {\r\n //this.HandleGeneralFilter();\r\n this.GetMapChanges();\r\n }\r\n else {\r\n if (this.usePredefinedConfig == \"OFF\")\r\n this.GetMapConfigData();\r\n else {\r\n //this.HandleGeneralFilter();\r\n this.GetMapConfigByID(this.selMapConfig);\r\n }\r\n }\r\n\r\n ////// redraw region paths on refresh click\r\n this.GetAllMapRegion();\r\n\r\n\r\n }\r\n\r\n HandleGeneralFilter() {\r\n //console.log(this.delFilterColName)\r\n if (this.delFilterColName == 'VQuad_CallID') {\r\n this.filtersWithEventID = {};\r\n for (const key in this.filters) {\r\n if (key == 'VQuad_CallID')\r\n delete this.filters[key];\r\n }\r\n }\r\n else if (this.delFilterColName == 'clearAllFilters') {\r\n this.filtersWithEventID = {};\r\n for (const key in this.filters) {\r\n if (key.toUpperCase() !== this.SetTimestampSearch(this.TSSelected).toUpperCase())\r\n delete this.filters[key];\r\n }\r\n }\r\n\r\n if (this.delFilterColName != 'clearAllFilters') {\r\n this.genArr = this.AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"].toUpperCase() != this.SetTimestampSearch(this.TSSelected).toUpperCase();\r\n });\r\n\r\n this.commonFilterService.GeneralFilterDF.subscribe(res => {\r\n //console.log(res)\r\n this.filters = res;\r\n });\r\n }\r\n\r\n if (typeof this.filtersWithEventID == 'object' && Object.keys(this.filtersWithEventID).length > 0) {\r\n this.dataFilter.filters = this.filtersWithEventID;\r\n //console.log(filtersWithEventID)\r\n this.genArr = this.genArr.filter(el => {\r\n return el[\"ColumnName\"] != 'VQuad_CallID';\r\n });\r\n let generalFilterArrayAll = this.dataFilter.getProcessedFiltersArray(\"ALL\");\r\n this.genArr = [...this.genArr, ...generalFilterArrayAll];\r\n\r\n for (const key in this.filters) {\r\n if (key == 'VQuad_CallID')\r\n delete this.filters[key];\r\n }\r\n let generalFilterArrayNew = this.dataFilter.getProcessedFilters(\"\");\r\n this.filters = { ...this.filters, ...generalFilterArrayNew };\r\n }\r\n else if (Object.keys(this.filtersWithEventID).length == 0) {\r\n this.genArr = this.genArr.filter(el => {\r\n return el[\"ColumnName\"] != 'VQuad_CallID';\r\n });\r\n\r\n for (const key in this.filters) {\r\n if (key == 'VQuad_CallID')\r\n delete this.filters[key];\r\n }\r\n\r\n }\r\n //console.log(genArr)\r\n //console.log(filters)\r\n\r\n if (this.delFilterColName != '' && this.delFilterColName != 'clearAllFilters') {\r\n //cleared = 1;\r\n this.genArr = this.genArr.filter(el => {\r\n return el[\"ColumnName\"] != this.delFilterColName;\r\n });\r\n\r\n for (const key in this.filters) {\r\n if (key == this.delFilterColName)\r\n delete this.filters[key];\r\n }\r\n }\r\n //console.log(this.genArr)\r\n this.hasFilters = this.genArr.length <= 0 ? false : true;\r\n\r\n if (this.delFilterColName != 'clearAllFilters') {\r\n //let newFilters = {};\r\n //for (const key in this.filters) {\r\n // if (this.filters[key].rsltType == 'call-events' || this.filters[key].rsltType == '') {\r\n // let value = this.filters[key].value;\r\n // let matchMode = this.filters[key].matchMode;\r\n // let valueTo = this.filters[key].valueTo;\r\n // let type = this.filters[key].type;\r\n // let rsltType = this.filters[key].rsltType;\r\n // let title = this.filters[key].title;\r\n // newFilters[key] = { value, matchMode, valueTo, type, rsltType, title };\r\n // }\r\n //}\r\n ////console.log(newFilters)\r\n this.commonFilterService.setGeneralFilterData(this.filters);//(newFilters);\r\n }\r\n else\r\n this.hasFilters = false;\r\n\r\n if (!this.hasFilters) {\r\n ///if clearfilter is clicked then remove all filters from this.genArr\r\n //debugger;\r\n this.genArr = [];\r\n }\r\n\r\n }\r\n\r\n //https://medium.com/@hassam.dev/integrating-google-maps-in-angular-d3d478c5f1c6\r\n scriptMapJS: any;\r\n scriptCallBack: any;\r\n loadScript(url) {\r\n //https://stackoverflow.com/questions/38088996/adding-script-tags-in-angular-component-template\r\n //https://www.tektutorialshub.com/angular/renderer2-angular/\r\n this.scriptCallBack = this.renderer2.createElement('script');\r\n this.scriptCallBack.type = 'text/javascript';\r\n this.scriptCallBack.text = `\r\n function initMap() {\r\n console.log('init map')\r\n }\r\n `;\r\n this.renderer2.appendChild(this.document.body, this.scriptCallBack);\r\n\r\n return new Promise((resolve, reject) => {\r\n this.scriptMapJS = this.renderer2.createElement('script');\r\n this.scriptMapJS.type = 'text/javascript';\r\n this.scriptMapJS.src = url;\r\n this.scriptMapJS.text = ``;\r\n this.scriptMapJS.async = true;\r\n this.scriptMapJS.defer = true;\r\n this.scriptMapJS.onload = resolve;\r\n this.scriptMapJS.onerror = reject;\r\n this.renderer2.appendChild(this.document.body, this.scriptMapJS);\r\n })\r\n }\r\n\r\n GetSystemConfig() {\r\n this.url = this.baseUrl + 'UserAndSytemConfig/GetUserSystemConfiguration';\r\n let GoogleMapsAPIKey = \"\";\r\n this.GetConfigurations_Service().subscribe((res: any) => {\r\n //debugger;\r\n let rows: any[] = JSON.parse(res) as any[];\r\n GoogleMapsAPIKey = rows[\"GoogleMapsAPIKey\"];\r\n this.GoogleMapID = rows[\"GoogleMapID_AdvancedMarker\"];\r\n\r\n this.loadOldGoogleMap = rows[\"OldGoogleMap\"].split('|')[0] === \"0\" ? true : false;\r\n this.infowWindowFlag = rows[\"OldGoogleMap\"].split('|')[1] === \"ON\" ? true : false;\r\n ///// add/remove old or new oms library based in index file based on condition.\r\n this.loadOMSLibrary(this.loadOldGoogleMap);\r\n\r\n if (GoogleMapsAPIKey == \"\" || this.GoogleMapID == 'DEMO_MAP_ID') {\r\n //https://stackoverflow.com/questions/41684114/easy-way-to-make-a-confirmation-dialog-in-angular\r\n //https://www.javachinna.com/angular-confirmation-dialog/\r\n //https://stackblitz.com/edit/angular-confirmation-dialog?file=app%2Fconfirmation-dialog%2Fconfirmation-dialog.service.ts\r\n //https://itnext.io/confirm-dialog-with-decorator-in-angular-7491d1237667\r\n if (confirm(\"API Key not set yet. Redirecting to setting page... Do you want to continue?\")) {\r\n //this._router.navigate([{ outlets: { filterPopup: null, configPopup: ['configuration', 'UserSetting', true, 'false'] } }]);//splitting 'configuration/UserSetting' as / converting in %2f in URL\r\n this._router.navigate([{ outlets: { filterPopup: null, configPopup: ['configuration', 'UserSetting', '1', 'false'] } }]);//splitting 'configuration/UserSetting' as / converting in %2f in URL\r\n }\r\n }\r\n else if (this.GoogleMapID == 'DEMO_MAP_ID') {\r\n if (confirm(\"Maps ID not set yet. Redirecting to setting page... Do you want to continue?\")) {\r\n this._router.navigate([{ outlets: { filterPopup: null, configPopup: ['configuration', 'UserSetting', '2', 'false'] } }]);//splitting 'configuration/UserSetting' as / converting in %2f in URL\r\n }\r\n }\r\n else {\r\n let foundScriptElem = false;\r\n //https://stackoverflow.com/questions/9390445/remove-appended-script-javascript\r\n //https://dirask.com/posts/JavaScript-how-to-get-current-script-element-Zpaz2j\r\n var c = document.getElementsByTagName('script');\r\n for (var x = 0; x < c.length; x++) {\r\n if (document.body.innerHTML.indexOf('initMap') != -1) {\r\n foundScriptElem = true;//c[x].parentElement.removeChild(c[x]);\r\n break;\r\n }\r\n }\r\n\r\n /////to check if script is already added or not\r\n const existingScript = document.querySelector('script[src*=\"maps.googleapis.com\"]');\n if (existingScript) {\n console.log('Google Maps script already exists in the DOM.');\n return;\n }\r\n\r\n if (!foundScriptElem) {\r\n let url = \"\";\r\n if (this.loadOldGoogleMap) {\r\n url = 'https://maps.googleapis.com/maps/api/js?key=' + GoogleMapsAPIKey + '&libraries=places&libraries=geometry&callback=initMap';\r\n }\r\n else {\r\n ////// below code used for AdvacneMarker async defer\r\n url = 'https://maps.googleapis.com/maps/api/js?key=' + GoogleMapsAPIKey + '&loading=async&libraries=places&libraries=geometry&libraries=marker&callback=initMap';\r\n }\r\n //setTimeout(() => {\r\n // this.loadScript(url);\r\n //}, 500);\r\n this.loadScript(url);\r\n //console.log('url');\r\n //console.log(url);\r\n }\r\n }\r\n });\r\n }\r\n GetConfigurations_Service() {\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, options);\r\n\r\n }\r\n\r\n EmptyBindGMap() {\r\n try {\r\n //https://stackoverflow.com/questions/9228958/how-to-check-if-google-maps-api-is-loaded\r\n if (typeof google === 'object' && typeof google.maps === 'object') {\r\n ///// to initialize the map and center it at load\r\n this.map = new google.maps.Map(document.getElementById('map'), {\r\n //center: { lat: 20.593684, lng: 78.96288 }, /// India\r\n center: { lat: 40.4230, lng: -98.7372 }, /// USA\r\n zoom: 4,\r\n // mapId: this.GoogleMapID\r\n });\r\n }\r\n }\r\n catch (error) {\r\n console.error('Here is the error message', error);\r\n }\r\n }\r\n\r\n ////// Advanced Marker\r\n GeneratePinMarker(iconURL: any, markerType: any) {\r\n\r\n ///https://chart.googleapis.com/chart?chst=d_map_xpin_letter&chld=pin|F|BC1E1E|000000 ---- normal Pin\r\n ///https://chart.googleapis.com/chart?chst=d_bubble_texts_big&chld=bb|ff9900|000000|PASS ----- bubble\r\n let iconText = \"\";\r\n let iconBGColor = \"\";\r\n let iconFontColor = \"\";\r\n //let iconText = iconURL.split('|')[1];\r\n //let iconBGColor = \"#FFFF00\";//\"#\"+ iconURL.split('|')[2];\r\n //let iconFontColor = \"#ff0000\";//\"#\"+iconURL.split('|')[3];\r\n let imageContent = iconURL;\r\n if (markerType == \"Pin\") {\r\n iconText = imageContent.split('|')[1] == '' ? \"\" : imageContent.split('|')[1];\r\n iconBGColor = \"#\" + imageContent.split('|')[2];\r\n iconFontColor = \"#\" + imageContent.split('|')[3];\r\n const pinBackground = new google.maps.marker.PinElement({\r\n background: iconBGColor, //'blue', \r\n glyph: iconText, // 'A', // text inside pin\r\n glyphColor: iconFontColor, // 'yellow',///color of text\r\n scale: 0.9, //// size of the icon pin\r\n borderColor: 'black'\r\n //borderColor: 'yellow',\r\n });\r\n return pinBackground.element;\r\n }\r\n else if (markerType == \"Bubble\") {\r\n //iconText = imageContent.split('|')[3] == '' ? \"\" : (imageContent.split('|')[3]).substring(0, 4)+\"..\";\r\n iconText = imageContent.split('|')[3] == \"\" ? '' : (imageContent.split('|')[3].length > 4 ? imageContent.split('|')[3].substring(0, 4) + \"..\" : imageContent.split('|')[3]),\r\n iconBGColor = \"#\" + imageContent.split('|')[1];\r\n iconFontColor = \"#\" + imageContent.split('|')[2];\r\n\r\n ///// create a stylesheet to be used by the marker\r\n //const stylesheet = document.createElement('style');\r\n // stylesheet.textContent = '.bubble { position: relative; font-family: sans-serif; font-size: 12px; line-height: 5px; width: 50px; background: ' + iconBGColor + '; border-radius: 5px; padding: 4px;height:20px; text-align: center; color: ' + iconFontColor + ';padding-top:8px;}.bubble-bottom-left:before { content: \"\"; width: 0px; height: 0px; position: absolute; border-left: 5px solid ' + iconBGColor + '; border-right: 5px solid transparent; border-top: 5px solid ' + iconBGColor + '; border-bottom: 20px solid transparent; left: 0px; bottom: -15px;}';\r\n //document.head.appendChild(stylesheet);\r\n\r\n //const htmlCSSTag = document.createElement(\"div\");\r\n //htmlCSSTag.className = \"bubble bubble-bottom-left\";\r\n //htmlCSSTag.textContent = iconText;//\"ABC\";\r\n //return htmlCSSTag;\r\n\r\n let pinSvgString = 'LABEL';\r\n\r\n let encodedSvg = pinSvgString.replace('fill:red', `fill:${iconBGColor}`).replace('color:LABELCOLOR', `color: ${iconFontColor}`).replace('LABEL', `${iconText}`);\r\n\r\n ///// Create a div element for the icon with text\r\n const iconContainer = document.createElement('div');\r\n iconContainer.style.position = 'relative';\r\n iconContainer.style.width = '30px';\r\n iconContainer.style.height = '35px';\r\n iconContainer.style.display = 'flex';\r\n iconContainer.style.alignItems = 'center';\r\n iconContainer.style.justifyContent = 'center';\r\n // iconContainer.style.zIndex = '-100';\r\n // iconContainer.style.position = 'relative';\r\n\r\n //iconContainer.innerHTML = `\r\n // \r\n // ${iconText}\r\n // `;\r\n iconContainer.innerHTML = encodedSvg;\r\n\r\n return iconContainer;\r\n\r\n }\r\n }\r\n\r\n //////// old marker generation\r\n GeneratePinMarker_Custom(iconURL: any, iconBGColor: any) {\r\n //debugger;\r\n let iconText = \"\";\r\n let iconFontColor = \"\";\r\n\r\n if (iconURL.includes('d_map_xpin_letter')) {\r\n\r\n iconText = iconURL.split('|')[1] == '' ? \"\" : iconURL.split('|')[1];\r\n ////iconBGColor = \"#\" + imageContent.split('|')[2];\r\n iconFontColor = \"#\" + iconURL.split('|')[3];\r\n\r\n ////// start SVG IMAGE OF FONTWAESOME\r\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\r\n svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n svg.setAttribute('height', '10');\r\n svg.setAttribute('width', '7.5');\r\n svg.setAttribute('viewBox', '0 0 384 512');\r\n\r\n // Create the path element\r\n const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\r\n path.setAttribute('d', 'M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192z');\r\n path.setAttribute('fill', iconBGColor); // Set the initial fill color\r\n path.setAttribute('stroke', 'black'); // Set the border color\r\n path.setAttribute('stroke-width', '10'); // Set the border width\r\n\r\n // Append the path to the SVG element\r\n svg.appendChild(path);\r\n\r\n\r\n // Convert the SVG element to a data URL\r\n const svgString = new XMLSerializer().serializeToString(svg); ////// WORKING CODE\r\n const svgUrl = 'data:image/svg+xml;base64,' + btoa(svgString); ////// WORKINGCODE\r\n\r\n ////// end SVG IMAGE OF FONTWAESOME\r\n\r\n ///Below is new pin icon with large size\r\n //const svgCode = ' ';\r\n //const svgUrl = 'data:image/svg+xml;base64,' + btoa(svgCode.replace('fill:red', `fill:${iconBGColor}`));\r\n\r\n return svgUrl;\r\n }\r\n else if (iconURL.includes('d_bubble_texts_big')) {\r\n\r\n console.log(iconURL.split('|')[3]);\r\n iconText = iconURL.split('|')[3] == \"\" ? '' : (iconURL.split('|')[3].length > 4 ? iconURL.split('|')[3].substring(0, 4) + \"..\" : iconURL.split('|')[3]),\r\n ///iconBGColor = \"#\" + imageContent.split('|')[1];\r\n iconFontColor = \"#\" + iconURL.split('|')[2];\r\n\r\n\r\n //let iconText = iconURL.split('|')[1];\r\n //let iconBGColor = iconURL.split('|')[2];\r\n //let iconFontColor = iconURL.split('|')[3];\r\n //// create a stylesheet to be used by the marker\r\n //const stylesheet = document.createElement('style');\r\n //iconText = iconURL.split('|')[3];\r\n //iconBGColor = iconURL.split('|')[1];\r\n //iconFontColor = iconURL.split('|')[2];\r\n ////stylesheet.textContent = '.test-marker { border: 5px solid orange; border-radius: 4px; padding: 8px 12px; background-color: red; pointer-events: all; }.test - marker: hover {background: blue; }';\r\n /////stylesheet.textContent +=' .test-marker: hover{background-color: blue; }';\r\n ////stylesheet.textContent = '.test-marker { background-color: blue; border-radius: 8px; color: #FFFFFF; font-size: 14px; padding: 10px 15px; position: absolute; }';\r\n //stylesheet.textContent = '.bubble { position: relative; font-family: sans-serif; font-size: 12px; line-height: 5px; width: 50px; background: ' + iconBGColor + '; border-radius: 5px; padding: 4px;height:20px; text-align: center; color: ' + iconFontColor + ';padding-top:8px;}.bubble-bottom-left:before { content: \"\"; width: 0px; height: 0px; position: absolute; border-left: 5px solid ' + iconBGColor + '; border-right: 5px solid transparent; border-top: 5px solid ' + iconBGColor + '; border-bottom: 20px solid transparent; left: 0px; bottom: -15px;}';\r\n //document.head.appendChild(stylesheet);\r\n\r\n //const htmlCSSTag = document.createElement(\"div\");\r\n //htmlCSSTag.className = \"bubble bubble-bottom-left\";\r\n //htmlCSSTag.textContent = iconText;//\"ABC\";\r\n\r\n ////// start SVG IMAGE OF FONTWAESOME\r\n\r\n //const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\r\n //svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n //svg.setAttribute('height', '10');\r\n //svg.setAttribute('width', '7.5');\r\n //svg.setAttribute('viewBox', '0 0 512 512');\r\n //// Create the path element\r\n //const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\r\n //path.setAttribute('d', 'M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64h96v80c0 6.1 3.4 11.6 8.8 14.3s11.9 2.1 16.8-1.5L309.3 416H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64z');\r\n\r\n //path.setAttribute('fill', iconBGColor); // Set the initial fill color\r\n //// Append the path to the SVG element\r\n //svg.appendChild(path);\r\n //// Convert the SVG element to a data URL\r\n //const svgString = new XMLSerializer().serializeToString(svg);\r\n //const svgUrl = 'data:image/svg+xml;base64,' + btoa(svgString);\r\n //// Create the marker icon object\r\n ////const svgMarker = {\r\n //// url: svgUrl,\r\n //// scaledSize: new google.maps.Size(52, 52), // Size of the icon\r\n ////};\r\n\r\n ////// end SVG IMAGE OF FONTWAESOME\r\n\r\n ////sharp end square\r\n //const svgCode = '';\r\n\r\n ///// rounded end square\r\n //const svgCode = '';\r\n //const svgUrl = 'data:image/svg+xml;base64,' + btoa(svgCode.replace('fill:red', `fill:${iconBGColor}`));\r\n //iconBGColor = '#3366FF';\r\n //const svgCode = ' ';\r\n //const svgUrl = 'data:image/svg+xml;base64,' + btoa(svgCode.replace('fill:red', `fill:${iconBGColor}`));\r\n\r\n\r\n ///////// CURRENTLY WORKING CODE\r\n // const svgCode = ' ';\r\n // const svgUrl = 'data:image/svg+xml;base64,' + btoa(svgCode.replace('fill:red', `fill:${iconBGColor}`).replace('fill:red1', `fill:${iconBGColor}`));\r\n\r\n // let pinSvgString = 'LABEL';\r\n // let encodedSvg = pinSvgString.replace('fill:red', `fill:${iconBGColor}`).replace('color:LABELCOLOR', `color: ${iconFontColor}`).replace('LABEL', `${iconText}`);\r\n //console.log(encodedSvg);\r\n\r\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\r\n svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n svg.setAttribute('height', '35');\r\n svg.setAttribute('width', '50');\r\n svg.setAttribute('viewBox', '0 0 24 24');\r\n\r\n // Create the path element\r\n const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\r\n path.setAttribute('d', 'M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z');\r\n path.setAttribute('fill', iconBGColor); // Set the initial fill color\r\n\r\n // Append the path to the SVG element\r\n svg.appendChild(path);\r\n\r\n // Convert the SVG element to a data URL\r\n const svgString = new XMLSerializer().serializeToString(svg); ////// WORKING CODE\r\n const svgUrl = 'data:image/svg+xml;base64,' + btoa(svgString); ////// WORKINGCODE.\r\n\r\n return svgUrl; //svgUrl;\r\n }\r\n else\r\n return iconURL;\r\n\r\n\r\n }\r\n\r\n //saveSVG(): void {\r\n // saveSvgAsPng(document.getElementById('svgId'), \"pinmain.png\");\r\n //}\r\n testcount = 0;\r\n async Test() {\r\n console.log('start outer func');\r\n console.log(this.testcount);\r\n await this.innerFunc();\r\n console.log(this.testcount);\r\n console.log('end inner func');\r\n }\r\n\r\n innerFunc(): Promise {\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\n console.log('Inner function executed after 2 seconds');\n this.testcount = 1;\n resolve();\n }, 2000);\r\n });\r\n\r\n }\r\n\r\n ////JsMapInitilization_OGCode\r\n async JsMapInitilization_OGCode() {\r\n //debugger;\r\n //this.saveSVG();\r\n // //alert('JsMapInitilization_OGCode');\r\n ///// to initialize the map and center it at load\r\n this.map = new google.maps.Map(document.getElementById('map'), {\r\n //center: { lat: 20.593684, lng: 78.96288 }, /// India\r\n center: { lat: this.lat, lng: this.lng }, //{ lat: 40.4230, lng: -98.7372 }, /// USA\r\n zoom: this.zoom, ///4,\r\n minZoom: 3,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP,\r\n ////mapId: 'DEMO_MAP_ID' // Map ID is required for advanced markers.\r\n mapId: this.GoogleMapID //'DEMO_MAP_ID' // Map ID is required for advanced markers.\r\n });\r\n\r\n //// added overlay to avoid following issue \"Cannot read properties of undefined (reading 'fromLatLngToDivPixel')\" is related to the google.maps.OverlayView\r\n ////and is caused when attempting to access the map's overlay view before it is fully initialized.\r\n //this.overlay = new google.maps.OverlayView();\r\n //this.overlay.setMap(this.map);\r\n\r\n this.addZoomChangeListener();\r\n //// initialize spiderfy\r\n const oms = new OverlappingMarkerSpiderfier(this.map, this.optionsOMS);\r\n //debugger;\r\n ////alert(1);\r\n\r\n ///////////////////////////////////////////////////////////// START ADVANCED MARKER EXAMPLE\r\n //const pinImage = new google.maps.marker.PinElement({\r\n // background: 'blue',\r\n // borderColor: 'yellow',\r\n // glyph: 'A', // text inside pin\r\n // glyphColor: 'yellow',///color of text\r\n // scaledSize: new google.maps.Size(32, 32),\r\n //});\r\n //const beachFlagImg = document.createElement('img');\r\n //beachFlagImg.src = 'https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png'; ///this is working\r\n ////beachFlagImg.src = './assets/images/Marks/vectorpin.avif'; ///this is working\r\n ////beachFlagImg.src = 'url(' + pinImage + ')';\r\n ////beachFlagImg.style.backgroundColor = \"red\"; \r\n //beachFlagImg.style.width = \"30px\";\r\n //beachFlagImg.style.height = \"30px\";\r\n //beachFlagImg.style.color = \"blue\";\r\n\r\n\r\n\r\n //// working pin with text Advacned Marker example\r\n\r\n //const pinBackground = new google.maps.marker.PinElement({\r\n // background: 'blue',\r\n // borderColor: 'yellow',\r\n // glyph: 'A', // text inside pin\r\n // glyphColor: 'yellow',///color of text \r\n //});\r\n\r\n\r\n // create a stylesheet to be used by the marker\r\n ////const stylesheet = document.createElement('style');\r\n ////const bgColor = 'yellow';\r\n ////const fontColor = 'black';\r\n //////stylesheet.textContent = '.bubble { position: relative; font-family: sans-serif; font-size: 12px; line-height: 5px; width: 40px; background: ' + bgColor + '; border-radius: 10px; padding: 10px; text-align: center; color: ' + fontColor + ';}.bubble-bottom-left:before { content: \"\"; width: 0px; height: 0px; position: absolute; border-left: 10px solid ' + bgColor + '; border-right: 10px solid transparent; border-top: 10px solid ' + bgColor + '; border-bottom: 20px solid transparent; left: 5px; bottom: -24px;}';\r\n ////stylesheet.textContent = '.bubble { position: relative; font-family: sans-serif; font-size: 12px; line-height: 5px; width: 50px; background: ' + bgColor + '; border-radius: 5px; padding: 4px;height:20px; text-align: center; color: ' + fontColor + ';padding-top:8px;}.bubble-bottom-left:before { content: \"\"; width: 0px; height: 0px; position: absolute; border-left: 5px solid ' + bgColor + '; border-right: 5px solid transparent; border-top: 5px solid ' + bgColor + '; border-bottom: 20px solid transparent; left: 0px; bottom: -15px;}';\r\n ////document.head.appendChild(stylesheet);\r\n ////const htmlCSSTag = document.createElement(\"div\");\r\n ////htmlCSSTag.className = \"bubble bubble-bottom-left\";\r\n ////htmlCSSTag.textContent = \"PASS\";\r\n\r\n\r\n ////////////\r\n // A marker with a custom inline SVG.\r\n // const pinSvgString = '';\r\n ////const pinSvgString = '';\r\n ////const parser = new DOMParser();\r\n ////const pinSvg = parser.parseFromString(pinSvgString, 'image/svg+xml').documentElement;\r\n\r\n ///////////////////////////////////////////////////////////// END ADVANCED MARKER EXAMPLE\r\n\r\n\r\n\r\n let len = this.markerPositions.length;\r\n\r\n let iconText = \"\";\r\n let iconBGColor = \"\";\r\n let iconFontColor = \"\";\r\n let labelOptions = null;// Initialize label options as null\r\n let widthImg = 32;\r\n let heightImg = 32;\r\n //console.log(this.markerPositions);\r\n\r\n for (let i = 0; i < this.markerPositions.length; i++) {\r\n iconText = \"\";\r\n iconBGColor = \"\";\r\n iconFontColor = \"\";\r\n labelOptions = null;\r\n\r\n\r\n let imageContent = this.markerPositions[i].iconurl;\r\n ////imageContent = './assets/images/Marks/DarkGreenMark.png';\r\n let marker = new google.maps.Marker({\r\n //position: this.markerPositions[i],\r\n position: new google.maps.LatLng(this.markerPositions[i].lat_num, this.markerPositions[i].lng_num), //this.markerPositions[i],// Set the marker position\r\n map: this.map,// Set the map on which to display the marker\r\n icon: {\r\n //url: this.markerPositions[i].iconurl, // Set the URL of the custom icon image \r\n //url: this.GeneratePinMarker_Custom(this.markerPositions[i].iconurl,red), // Set the URL of the custom icon image\r\n //url: imageIcon,\r\n //url: svgUrl,//svgMarker,\r\n url: imageContent,\r\n scaledSize: new google.maps.Size(widthImg, heightImg), // Set the size of the icon image\r\n //scaledSize: new google.maps.Size(this.markerPositions[i].widthImg, this.markerPositions[i].heightImg), // Set the size of the icon image\r\n //anchor: new google.maps.Point(5, 15),\r\n labelOrigin: new google.maps.Point(10, 10),\r\n },\r\n //icon: imageContent,\r\n label: labelOptions, // Set label options based on condition\r\n //zIndex: this.markerPositions[i].iconZIndex, // Set zIndex to bring the marker to the front\r\n });\r\n //let beachFlagImg = document.createElement('img');\r\n //beachFlagImg.src = imageContent;\r\n //let marker = new google.maps.marker.AdvancedMarkerElement({\r\n // //position: pinType == 'pin' ? new google.maps.LatLng(this.markerPositions[i].lat_num + 0.00003, this.markerPositions[i].lng_num) : new google.maps.LatLng(this.markerPositions[i].lat_num - 0.00003, this.markerPositions[i].lng_num), //this.markerPositions[i],// Set the marker position\r\n // position: new google.maps.LatLng(this.markerPositions[i].lat_num, this.markerPositions[i].lng_num),\r\n // map: this.map,// Set the map on which to display the marker\r\n\r\n // //content: beachFlagImg, ///external website image\r\n // //content: pinSvg, /////bubble with svg image\r\n // //content: bubbleImage,\r\n\r\n // //content: iconImage, ////////// this is for default map loading with static pin images ///the working one properly for default pins with predefined config OFF \r\n // //content: pinBackground.element, ////plain pin marker with background color changeable\r\n // //content: htmlCSSTag, ////square bubble with html css\r\n // content: beachFlagImg,\r\n // //zIndex: this.markerPositions[i].iconZIndex,\r\n // //zIndex: (i % 2) == 0 ? google.maps.Marker.MAX_ZINDEX + 1 : -1,\r\n //});\r\n if (this.markerPositions[i].iconurl.includes('d_map_xpin_letter')) {\r\n /// https://chart.googleapis.com/chart?chst=d_map_xpin_letter&chld=pin||00ff00|FFFFFF\r\n widthImg = 32;\r\n heightImg = 32;\r\n iconText = imageContent.split('|')[1] == '' ? \"\" : imageContent.split('|')[1];\r\n //iconBGColor = \"#\" + imageContent.split('|')[2];\r\n iconBGColor = imageContent.split('|')[2];\r\n //iconFontColor = \"#\" + imageContent.split('|')[3];\r\n iconFontColor = imageContent.split('|')[3];\r\n //if (iconText != \"\") {\r\n // labelOptions = {\r\n // text: iconText,\r\n // color: iconFontColor, // Set label color\r\n // fontWeight: \"bold\",\r\n // };\r\n //}\r\n //imageContent = this.GeneratePinMarker_Custom(this.markerPositions[i].iconurl, iconBGColor);\r\n //imageContent = {\r\n // //path: \"M-1.547 12l6.563-6.609-1.406-1.406-5.156 5.203-2.063-2.109-1.406 1.406zM0 0q2.906 0 4.945 2.039t2.039 4.945q0 1.453-0.727 3.328t-1.758 3.516-2.039 3.070-1.711 2.273l-0.75 0.797q-0.281-0.328-0.75-0.867t-1.688-2.156-2.133-3.141-1.664-3.445-0.75-3.375q0-2.906 2.039-4.945t4.945-2.039z\",\r\n\r\n // path: \"M 5.230469 1.875 C 0.617188 4.351562 0.230469 9.300781 4.230469 14.175781 C 5.691406 15.976562 7.078125 18.523438 7.382812 19.949219 C 7.921875 22.875 9.230469 24.148438 9.230469 21.75 C 9.230469 19.800781 11.152344 16.125 13.539062 13.273438 C 16.078125 10.351562 16.078125 5.398438 13.617188 3.148438 C 11.230469 0.976562 7.847656 0.449219 5.230469 1.875 Z M 5.230469 1.875\",\r\n // //path: \"M 3.597656 1.25 C 0.421875 2.898438 0.160156 6.199219 2.910156 9.449219 C 3.914062 10.648438 4.867188 12.351562 5.078125 13.300781 C 5.445312 15.25 6.347656 16.101562 6.347656 14.5 C 6.347656 13.199219 7.667969 10.75 9.308594 8.851562 C 11.054688 6.898438 11.054688 3.601562 9.359375 2.101562 C 7.722656 0.648438 5.394531 0.300781 3.597656 1.25 Z M 3.597656 1.25\",\r\n // ////path: \"M 1.632812 0.546875 C 0.191406 1.269531 0.0703125 2.710938 1.320312 4.132812 C 1.777344 4.660156 2.210938 5.402344 2.308594 5.820312 C 2.476562 6.671875 2.882812 7.042969 2.882812 6.34375 C 2.882812 5.773438 3.484375 4.703125 4.230469 3.871094 C 5.023438 3.019531 5.023438 1.574219 4.253906 0.917969 C 3.507812 0.285156 2.453125 0.132812 1.632812 0.546875 Z M 1.632812 0.546875\",\r\n // ////path: \"M68 295 c-60 -33 -65 -99 -13 -164 19 -24 37 -58 41 -77 7 -39 24 -56 24 -24 0 26 25 75 56 113 33 39 33 105 1 135 -31 29 -75 36 -109 17z\",\r\n // fillColor: iconBGColor,\r\n // fillOpacity: 1,//0.6,\r\n // strokeWeight: 1,\r\n // rotation: 0,\r\n // scale: 1.6,\r\n // //anchor: new google.maps.Point(0, 20),\r\n // //https://stackoverflow.com/questions/50144150/how-to-perfectly-center-a-label-within-a-google-maps-marker\r\n // labelOrigin: new google.maps.Point(8, 8),\r\n // //https://convertio.co/\r\n // //https://www.iloveimg.com/resize-image/resize-svg\r\n // //https://jsfiddle.net/gh/get/library/pure/googlemaps/js-samples/tree/master/dist/samples/marker-symbol-custom/jsfiddle\r\n //};\r\n imageContent = './assets/images/Marks/Dynamic/pin_' + iconBGColor + '_' + iconText + '_' + iconFontColor + '.png';\r\n marker = new google.maps.Marker({\r\n //position: this.markerPositions[i],\r\n position: new google.maps.LatLng(this.markerPositions[i].lat_num, this.markerPositions[i].lng_num), //this.markerPositions[i],// Set the marker position\r\n map: this.map,// Set the map on which to display the marker\r\n icon: {\r\n //url: this.markerPositions[i].iconurl, // Set the URL of the custom icon image \r\n //url: this.GeneratePinMarker_Custom(this.markerPositions[i].iconurl,red), // Set the URL of the custom icon image\r\n //url: imageIcon,\r\n //url: svgUrl,//svgMarker,\r\n url: imageContent,\r\n //scaledSize: new google.maps.Size(widthImg, heightImg), // Set the size of the icon image\r\n //scaledSize: new google.maps.Size(this.markerPositions[i].widthImg, this.markerPositions[i].heightImg), // Set the size of the icon image\r\n //anchor: new google.maps.Point(5, 15),\r\n //labelOrigin: new google.maps.Point(10, 10),\r\n },\r\n //icon: imageContent,\r\n //label: labelOptions, // Set label options based on condition\r\n //zIndex: this.markerPositions[i].iconZIndex, // Set zIndex to bring the marker to the front\r\n });\r\n\r\n ////beachFlagImg = document.createElement('img');\r\n //beachFlagImg.src = imageContent;\r\n //marker = new google.maps.marker.AdvancedMarkerElement({\r\n // //position: pinType == 'pin' ? new google.maps.LatLng(this.markerPositions[i].lat_num + 0.00003, this.markerPositions[i].lng_num) : new google.maps.LatLng(this.markerPositions[i].lat_num - 0.00003, this.markerPositions[i].lng_num), //this.markerPositions[i],// Set the marker position\r\n // position: new google.maps.LatLng(this.markerPositions[i].lat_num, this.markerPositions[i].lng_num),\r\n // map: this.map,// Set the map on which to display the marker\r\n\r\n // //content: beachFlagImg, ///external website image\r\n // //content: pinSvg, /////bubble with svg image\r\n // //content: bubbleImage,\r\n\r\n // //content: iconImage, ////////// this is for default map loading with static pin images ///the working one properly for default pins with predefined config OFF \r\n // //content: pinBackground.element, ////plain pin marker with background color changeable\r\n // //content: htmlCSSTag, ////square bubble with html css\r\n // content: beachFlagImg,\r\n // //zIndex: this.markerPositions[i].iconZIndex,\r\n // //zIndex: (i % 2) == 0 ? google.maps.Marker.MAX_ZINDEX + 1 : -1,\r\n //});\r\n }\r\n else if (this.markerPositions[i].iconurl.includes('d_bubble_texts_big')) {\r\n ////// https://chart.googleapis.com/chart?chst=d_bubble_texts_big&chld=bb|00ff00|404040|TCP\r\n ////// https://chart.googleapis.com/chart?chst=d_bubble_texts_big&chld=bb|0000ff|ffffff|DROP|0\r\n\r\n widthImg = 50;\r\n heightImg = 30;\r\n iconText = imageContent.split('|')[3] == '' ? \"\" : imageContent.split('|')[3];\r\n //iconText = imageContent.split('|')[3] == \"\" ? '' : (imageContent.split('|')[3].length > 4 ? imageContent.split('|')[3].substring(0, 4) + \"..\" : imageContent.split('|')[3]),\r\n //iconBGColor = \"#\" + imageContent.split('|')[1];\r\n iconBGColor = imageContent.split('|')[1];\r\n //iconFontColor = \"#\" + imageContent.split('|')[2];\r\n iconFontColor = imageContent.split('|')[2];\r\n //if (iconText != \"\") {\r\n // labelOptions = {\r\n // text: iconText,//\"Verizon\",\r\n // color: iconFontColor, // Set label color\r\n // fontSize: '10px',\r\n // fontWeight: 'bold'\r\n // };\r\n //}\r\n //imageContent = this.GeneratePinMarker_Custom(this.markerPositions[i].iconurl, iconBGColor);\r\n //imageContent = {\r\n // path: \"M12 573 c8 -10 35 -42 61 -72 l47 -53 0 -195 0 -195 29 -29 29 -29 447 0 447 0 29 29 29 29 0 167 0 167 -29 29 -29 29 -430 0 -429 0 -102 70 c-105 72 -125 83 -99 53z m846 -140 c-120 -2 -316 -2 -435 0 -120 1 -22 2 217 2 239 0 337 -1 218 -2z m-721 -280 c-1 -54 -3 -12 -3 92 0 105 2 149 3 98 2 -51 2 -136 0 -190z m980 -16 c-1 -45 -3 -5 -3 88 0 94 2 130 3 82 2 -48 2 -125 0 -170z m-264 -124 c-122 -2 -324 -2 -450 0 -125 1 -25 2 222 2 248 0 350 -1 228 -2z\",\r\n // //path: \"M416,0H96C42.969,0,0,42.969,0,96v160c0,53.031,42.969,96,96,96h63.984L256,512l96-160h64c53.031,0,96-42.969,96-96V96 C512,42.969,469.031,0,416,0z\",\r\n // fillColor: iconBGColor,\r\n // fillOpacity: 1,////0.6,\r\n // strokeWeight: 0.05,//1\r\n // rotation: 0,\r\n // scale: 0.05,//0.09,\r\n // //anchor: new google.maps.Point(0, 20),\r\n // //https://stackoverflow.com/questions/35779473/text-labels-to-google-map-markers\r\n // //text: \"Verizon\",\r\n // //align: \"center\",\r\n // labelOrigin: new google.maps.Point(500, 100), //new google.maps.Point(250, 150),\r\n //};\r\n imageContent = './assets/images/Marks/Dynamic/bb_' + iconBGColor + '_' + iconText + '_' + iconFontColor + '.png';\r\n //console.log(imageContent)\r\n //marker = new google.maps.MarkerWithLabel({\r\n // position: new google.maps.LatLng(this.markerPositions[i].lat_num, this.markerPositions[i].lng_num), //this.markerPositions[i],// Set the marker position,\r\n // map: map,\r\n // draggable: true,\r\n // raiseOnDrag: true,\r\n // labelContent: \"ABCDEFGH\",\r\n // labelAnchor: new google.maps.Point(15, 65),\r\n // labelClass: \"labels\", // the CSS class for the label\r\n // labelInBackground: false,\r\n // icon: {\r\n // path: 'M 0,0 C -2,-20 -10,-22 -10,-30 A 10,10 0 1,1 10,-30 C 10,-22 2,-20 0,0 z',\r\n // fillColor: iconBGColor,\r\n // fillOpacity: 1,\r\n // strokeColor: '#000',\r\n // strokeWeight: 2,\r\n // scale: 2\r\n // }\r\n //});\r\n\r\n marker = new google.maps.Marker({\r\n //position: this.markerPositions[i],\r\n position: new google.maps.LatLng(this.markerPositions[i].lat_num, this.markerPositions[i].lng_num), //this.markerPositions[i],// Set the marker position\r\n map: this.map,// Set the map on which to display the marker\r\n icon: {\r\n // //url: this.markerPositions[i].iconurl, // Set the URL of the custom icon image \r\n // //url: this.GeneratePinMarker_Custom(this.markerPositions[i].iconurl,red), // Set the URL of the custom icon image\r\n // //url: imageIcon,\r\n // //url: svgUrl,//svgMarker,\r\n url: imageContent,\r\n scaledSize: new google.maps.Size(widthImg, heightImg), // Set the size of the icon image\r\n // //scaledSize: new google.maps.Size(this.markerPositions[i].widthImg, this.markerPositions[i].heightImg), // Set the size of the icon image\r\n // //anchor: new google.maps.Point(5, 15),\r\n //labelOrigin: new google.maps.Point(25, 10),\r\n },\r\n //icon: imageContent,\r\n //label: labelOptions, // Set label options based on condition\r\n //zIndex: this.markerPositions[i].iconZIndex, // Set zIndex to bring the marker to the front\r\n });\r\n ////beachFlagImg = document.createElement('img');\r\n //beachFlagImg.src = imageContent;\r\n //marker = new google.maps.marker.AdvancedMarkerElement({\r\n // //position: pinType == 'pin' ? new google.maps.LatLng(this.markerPositions[i].lat_num + 0.00003, this.markerPositions[i].lng_num) : new google.maps.LatLng(this.markerPositions[i].lat_num - 0.00003, this.markerPositions[i].lng_num), //this.markerPositions[i],// Set the marker position\r\n // position: new google.maps.LatLng(this.markerPositions[i].lat_num, this.markerPositions[i].lng_num),\r\n // map: this.map,// Set the map on which to display the marker\r\n\r\n // //content: beachFlagImg, ///external website image\r\n // //content: pinSvg, /////bubble with svg image\r\n // //content: bubbleImage,\r\n\r\n // //content: iconImage, ////////// this is for default map loading with static pin images ///the working one properly for default pins with predefined config OFF \r\n // //content: pinBackground.element, ////plain pin marker with background color changeable\r\n // //content: htmlCSSTag, ////square bubble with html css\r\n // content: beachFlagImg,\r\n // //zIndex: this.markerPositions[i].iconZIndex,\r\n // //zIndex: (i % 2) == 0 ? google.maps.Marker.MAX_ZINDEX + 1 : -1,\r\n //});\r\n }\r\n ////else\r\n //// imageContent = this.markerPositions[i].iconurl; ///default pin when predefined config is OFF\r\n\r\n //console.log(this.markerPositions[i].iconurl);\r\n //console.log(labelOptions);\r\n //console.log(imageContent);\r\n //console.log(this.markerPositions[i].heightImg);\r\n\r\n //imageContent = './assets/images/Marks/DarkGreenMark.png';\r\n //const svgMarker = {\r\n // path: \"M-1.547 12l6.563-6.609-1.406-1.406-5.156 5.203-2.063-2.109-1.406 1.406zM0 0q2.906 0 4.945 2.039t2.039 4.945q0 1.453-0.727 3.328t-1.758 3.516-2.039 3.070-1.711 2.273l-0.75 0.797q-0.281-0.328-0.75-0.867t-1.688-2.156-2.133-3.141-1.664-3.445-0.75-3.375q0-2.906 2.039-4.945t4.945-2.039z\",\r\n // fillColor: \"blue\",\r\n // fillOpacity: 0.6,\r\n // strokeWeight: 0,\r\n // rotation: 0,\r\n // scale: 2,\r\n // anchor: new google.maps.Point(0, 20),\r\n //};\r\n\r\n ////////////////// Previous worked marker but currently it is depreceated by googlemap so using AdvancedMarkerElement\r\n //const marker = new google.maps.Marker({\r\n // //position: this.markerPositions[i],\r\n // position: new google.maps.LatLng(this.markerPositions[i].lat_num, this.markerPositions[i].lng_num), //this.markerPositions[i],// Set the marker position\r\n // map: this.map,// Set the map on which to display the marker\r\n // icon: {\r\n // //url: this.markerPositions[i].iconurl, // Set the URL of the custom icon image \r\n // //url: this.GeneratePinMarker_Custom(this.markerPositions[i].iconurl,red), // Set the URL of the custom icon image\r\n // //url: imageIcon,\r\n // //url: svgUrl,//svgMarker,\r\n // url: imageContent,\r\n // scaledSize: new google.maps.Size(widthImg, heightImg), // Set the size of the icon image\r\n // //scaledSize: new google.maps.Size(this.markerPositions[i].widthImg, this.markerPositions[i].heightImg), // Set the size of the icon image\r\n // //anchor: new google.maps.Point(5, 15)\r\n // },\r\n // //icon: imageContent,\r\n // label: labelOptions, // Set label options based on condition\r\n // zIndex: this.markerPositions[i].iconZIndex, // Set zIndex to bring the marker to the front\r\n //});\r\n // console.log('--image--')\r\n //console.log(this.markerPositions[i].iconurl);\r\n\r\n //////////////////////////////////////////////////////////////////////////////// #region ADVANCEDMARKER PLOTTING\r\n /////////// this is for default map loading with static pin images\r\n //////const iconImage = document.createElement(\"img\");\r\n //////iconImage.src = this.markerPositions[i].iconurl;\r\n //////iconImage.width = this.markerPositions[i].widthImg;\r\n //////iconImage.height = this.markerPositions[i].heightImg;\r\n\r\n\r\n //////let imageContent = this.markerPositions[i].iconurl;\r\n //////if (this.markerPositions[i].iconurl.includes('d_map_xpin_letter')) {\r\n ////// imageContent = this.GeneratePinMarker(this.markerPositions[i].iconurl, 'Pin');\r\n //////}\r\n //////else if (this.markerPositions[i].iconurl.includes('d_bubble_texts_big')) {\r\n ////// imageContent = this.GeneratePinMarker(this.markerPositions[i].iconurl, 'Bubble');\r\n //////}\r\n //////else\r\n ////// imageContent = iconImage; ///default pin when predefined config is OFF\r\n\r\n\r\n //////const marker = new google.maps.marker.AdvancedMarkerElement({\r\n ////// position: new google.maps.LatLng(this.markerPositions[i].lat_num, this.markerPositions[i].lng_num), //this.markerPositions[i],// Set the marker position\r\n ////// map: this.map,// Set the map on which to display the marker\r\n\r\n ////// //content: beachFlagImg, ///external website image\r\n ////// //content: pinSvg, /////bubble with svg image\r\n ////// //content: bubbleImage,\r\n\r\n ////// //content: iconImage, ////////// this is for default map loading with static pin images ///the working one properly for default pins with predefined config OFF \r\n ////// //content: pinBackground.element, ////plain pin marker with background color changeable\r\n ////// //content: htmlCSSTag, ////square bubble with html css\r\n ////// content: imageContent,\r\n\r\n //////});\r\n\r\n //////////////////////////////////////////////////////// #endregion ADVANCEDMARKER PLOTTING\r\n\r\n ////info window\r\n //const infoWindow = new google.maps.InfoWindow({\r\n // content: this.infowindowArray[i]\r\n //});\r\n\r\n //// to click event to open info window\r\n //google.maps.event.addListener(marker, 'click', () => { \r\n // infoWindow.open(this.map, marker);\r\n //});\r\n this.gMapMarkerCollection.push(marker); //// it will be used in region button toggle to hide and show marker pin\r\n\r\n\r\n //////////////////// if marker is not clicked but only zoomed then by default restore to last marker position along with previous left zoom\r\n if (i == this.markerPositions.length - 1) {\r\n //this.isLoading = false;\r\n //debugger;\r\n //////////this.preDefinedConfigParam.restoreZoom = 10;///this.map.getZoom(); elumalai\r\n //this.preDefinedConfigParam.restoreLat = this.markerPositions[i].lat_num;\r\n //this.preDefinedConfigParam.restoreLng = this.markerPositions[i].lng_num;\r\n //this.mapDisplayOptions.PredefinedConfig = this.preDefinedConfigParam;\r\n //this.commonFilterService.SetGMapDisplayOption(this.mapDisplayOptions);\r\n }\r\n //////infowindow \r\n google.maps.event.addListener(marker, 'click', () => {\r\n ////alert(this.map.getZoom());\r\n ////////////// below code is used to restore zoom level and lat/lng .\r\n this.preDefinedConfigParam.restoreZoom = this.map.getZoom();\r\n console.log(this.markerPositions[i]);\r\n this.preDefinedConfigParam.restoreLat = this.markerPositions[i].lat_num;\r\n this.preDefinedConfigParam.restoreLng = this.markerPositions[i].lng_num;\r\n this.mapDisplayOptions.PredefinedConfig = this.preDefinedConfigParam;\r\n //debugger;\r\n this.commonFilterService.SetGMapDisplayOption(this.mapDisplayOptions);\r\n\r\n ///close infowindow if already opened\r\n if (this.infoWindow) {\r\n this.infoWindow.close();\r\n }\r\n\r\n /// to get adddress based on latlng\r\n const latlng = { lat: 37.7749, lng: -122.4194 };\r\n this.geocode(new google.maps.LatLng(this.markerPositions[i].lat_num, this.markerPositions[i].lng_num)).then(place => {\r\n this.currentPinLocation = place.formatted_address;\r\n //this.infowindowArray[i].replace('Loading...', this.currentPinLocation)\r\n //let pinInfo = this.infowindowArray[i].split('@')[1].replace('Loading...', this.currentPinLocation)\r\n //this.infoWindowbody = this.sanitizer.bypassSecurityTrustHtml(pinInfo);\r\n //this.previous.open();\r\n //this.previous[\"isOpen\"] = true;//susheel\r\n\r\n this.isLoading = false;\r\n\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.isLoading = false;\r\n this.EmptyBindGMap();\r\n });\r\n\r\n /////assign content to infowindow\r\n this.infoWindow = new google.maps.InfoWindow({\r\n content: this.infowindowArray[i].replace('Loading...', this.currentPinLocation).split('@')[1]\r\n });\r\n\r\n\r\n ///open infowindow\r\n this.infoWindow.open(this.map, marker);\r\n\r\n\r\n /////to call button click event inside infowindow popup\r\n google.maps.event.addListener(this.infoWindow, 'domready', () => {\r\n //now my elements are ready for dom manipulation\r\n\r\n /////to call bluetooth\r\n if (document.getElementById(\"bluetooth\") != null) {\r\n document.getElementById(\"bluetooth\").addEventListener(\"click\", () => {\r\n this.OpenBTFXODialog();\r\n });\r\n }\r\n\r\n ///// to call OpenStatusDialog(\" + this.pinMarker.itemID + \",\" + this.pinMarker.resultType + \")\r\n if (document.getElementById(\"OpenStatusDialog\") != null) {\r\n document.getElementById(\"OpenStatusDialog\").addEventListener(\"click\", () => {\r\n //debugger;\r\n let value = (document.getElementById(\"OpenStatusDialog\")).value;\r\n this.OpenStatusDialog(value.split(',')[0], value.split(',')[1]);\r\n });\r\n }\r\n\r\n /////to call OpenBasicDialog\r\n if (document.getElementById(\"OpenBasicDialog\") != null) {\r\n document.getElementById(\"OpenBasicDialog\").addEventListener(\"click\", () => {\r\n //debugger;\r\n let value = (document.getElementById(\"OpenBasicDialog\")).value;\r\n this.OpenBasicDialog(value.split(',')[0], value.split(',')[1]);\r\n });\r\n }\r\n\r\n });\r\n\r\n\r\n });//endinfowindow\r\n\r\n //// Add click event listener to the Advanced Marker\r\n //google.maps.marker.AdvancedMarkerElement.addListener('click', function () {\r\n // // Trigger spiderification when the marker is clicked\r\n // oms.spiderfy([marker]); // Assuming 'oms' is your OverlappingMarkerSpiderfier instance\r\n //});\r\n //debugger\r\n oms.addMarker(marker);//spiderfy\r\n oms.keepSpiderfied = true;\r\n\r\n // add the markers to the spiderfier\r\n //oms.addListener('click', function (marker) {\r\n // oms.unspiderfy(); // unspiderfy the markers\r\n //});\r\n\r\n\r\n\r\n }//endforloop\r\n\r\n ///to retain toggle region funtion\r\n debugger;\r\n\r\n ////this func is called when mainfilter has map region configured in it.\r\n if (this.mainFilterMapRegionName != \"\") {\r\n await this.GetMainFilterMapRegion();\r\n debugger;\r\n //this.toggleMapRegion = false;///to show only pins iside region\r\n //this.ToggleMapRegion();\r\n }\r\n\r\n\r\n //this.toggleMapRegion = true;\r\n if (this.toggleMapRegion) {\r\n //this.toggleMapRegion = false;\r\n this.ToggleMapRegion();\r\n }\r\n ////alert(2);\r\n\r\n ///////// Maintain spiderfy on every zoom untill last max zoom\r\n if (this.map) {\r\n let currentZoom = this.map.getZoom();\r\n\r\n // add an event listener to the map to detect zoom end\r\n this.map.addListener('zoom_changed', function () {\r\n //google.maps.event.addListenerOnce(this.map, 'zoom_changed', function () {\r\n if (this.map) {\r\n let zoomLevel = this.map.getZoom();\r\n console.log(\"current zoom value =\" + zoomLevel);\r\n // only unspiderfy markers after the user has fully zoomed in\r\n if (zoomLevel > currentZoom) {\r\n oms.unspiderfy();\r\n currentZoom = zoomLevel;\r\n }\r\n }\r\n });\r\n }\r\n\r\n //debugger;\r\n if (this.routeLatLng.length > 0) {\r\n ////alert('line');\r\n //debugger;\r\n this.DrawMapRoute_JSMap();\r\n }\r\n\r\n ////// redraw region paths on refresh click\r\n //this.getListReg();\r\n\r\n /////to retain toggle region funtion\r\n //debugger;\r\n //this.toggleMapRegion = true;\r\n //this.ToggleMapRegion();\r\n\r\n // this.isLoading = false;\r\n //this.DrawMapRoute_JSMap_Test();////comment this line of code always , it is for testing pupose only\r\n }\r\n\r\n ///////below code is pin marker plotter by Advaned marker\r\n JsMapInitilization() {\r\n\r\n //this.lat = this.markerPositions[0].lat_num;\r\n //this.lng = this.markerPositions[0].lng_num;\r\n\r\n console.log('zoom');\r\n console.log(this.zoom);\r\n ///// to initialize the map and center it at load\r\n this.map = new google.maps.Map(document.getElementById('map'), {\r\n //center: { lat: 20.593684, lng: 78.96288 }, /// India\r\n center: { lat: this.lat, lng: this.lng }, //{ lat: 40.4230, lng: -98.7372 }, /// USA\r\n zoom: this.zoom, ///4,\r\n minZoom: 3,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP,\r\n mapId: this.GoogleMapID //'DEMO_MAP_ID' // Map ID is required for advanced markers.\r\n });\r\n\r\n\r\n //// added overlay to avoid following issue \"Cannot read properties of undefined (reading 'fromLatLngToDivPixel')\" is related to the google.maps.OverlayView\r\n ////and is caused when attempting to access the map's overlay view before it is fully initialized.\r\n //this.overlay = new google.maps.OverlayView();\r\n //this.overlay.setMap(this.map);\r\n\r\n this.addZoomChangeListener();\r\n //// initialize spiderfy\r\n const oms = new OverlappingMarkerSpiderfier(this.map, this.optionsOMS);\r\n //debugger;\r\n ////alert(1);\r\n\r\n ///////////////////////////////////////////////////////////// START ADVANCED MARKER EXAMPLE\r\n //const pinImage = new google.maps.marker.PinElement({\r\n // background: 'blue',\r\n // borderColor: 'yellow',\r\n // glyph: 'A', // text inside pin\r\n // glyphColor: 'yellow',///color of text\r\n // scaledSize: new google.maps.Size(32, 32),\r\n //});\r\n //const beachFlagImg = document.createElement('img');\r\n //beachFlagImg.src = 'https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png'; ///this is working\r\n ////beachFlagImg.src = './assets/images/Marks/vectorpin.avif'; ///this is working\r\n ////beachFlagImg.src = 'url(' + pinImage + ')';\r\n ////beachFlagImg.style.backgroundColor = \"red\"; \r\n //beachFlagImg.style.width = \"30px\";\r\n //beachFlagImg.style.height = \"30px\";\r\n //beachFlagImg.style.color = \"blue\";\r\n\r\n\r\n\r\n //// working pin with text Advacned Marker example\r\n\r\n //const pinBackground = new google.maps.marker.PinElement({\r\n // background: 'blue',\r\n // borderColor: 'yellow',\r\n // glyph: 'A', // text inside pin\r\n // glyphColor: 'yellow',///color of text \r\n //});\r\n\r\n\r\n // create a stylesheet to be used by the marker\r\n ////const stylesheet = document.createElement('style');\r\n ////const bgColor = 'yellow';\r\n ////const fontColor = 'black';\r\n //////stylesheet.textContent = '.bubble { position: relative; font-family: sans-serif; font-size: 12px; line-height: 5px; width: 40px; background: ' + bgColor + '; border-radius: 10px; padding: 10px; text-align: center; color: ' + fontColor + ';}.bubble-bottom-left:before { content: \"\"; width: 0px; height: 0px; position: absolute; border-left: 10px solid ' + bgColor + '; border-right: 10px solid transparent; border-top: 10px solid ' + bgColor + '; border-bottom: 20px solid transparent; left: 5px; bottom: -24px;}';\r\n ////stylesheet.textContent = '.bubble { position: relative; font-family: sans-serif; font-size: 12px; line-height: 5px; width: 50px; background: ' + bgColor + '; border-radius: 5px; padding: 4px;height:20px; text-align: center; color: ' + fontColor + ';padding-top:8px;}.bubble-bottom-left:before { content: \"\"; width: 0px; height: 0px; position: absolute; border-left: 5px solid ' + bgColor + '; border-right: 5px solid transparent; border-top: 5px solid ' + bgColor + '; border-bottom: 20px solid transparent; left: 0px; bottom: -15px;}';\r\n ////document.head.appendChild(stylesheet);\r\n ////const htmlCSSTag = document.createElement(\"div\");\r\n ////htmlCSSTag.className = \"bubble bubble-bottom-left\";\r\n ////htmlCSSTag.textContent = \"PASS\";\r\n\r\n\r\n ////////////\r\n // A marker with a custom inline SVG.\r\n // const pinSvgString = '';\r\n ////const pinSvgString = '';\r\n ////const parser = new DOMParser();\r\n ////const pinSvg = parser.parseFromString(pinSvgString, 'image/svg+xml').documentElement;\r\n\r\n ///////////////////////////////////////////////////////////// END ADVANCED MARKER EXAMPLE\r\n\r\n\r\n\r\n\r\n let len = this.markerPositions.length;\r\n\r\n let iconText = \"\";\r\n let iconBGColor = \"\";\r\n let iconFontColor = \"\";\r\n let labelOptions = null;// Initialize label options as null\r\n let widthImg = 32;\r\n let heightImg = 32;\r\n // Create one global InfoWindow\n this.infoWindow = new google.maps.InfoWindow();\r\n //console.log(this.markerPositions);\r\n //var bounds = new google.maps.LatLngBounds();\r\n for (let i = 0; i < this.markerPositions.length; i++) {\r\n iconText = \"\";\r\n iconBGColor = \"\";\r\n iconFontColor = \"\";\r\n labelOptions = null;\r\n\r\n //console.log(this.markerPositions);\r\n ////let imageContent = this.markerPositions[i].iconurl;\r\n ////if (this.markerPositions[i].iconurl.includes('d_map_xpin_letter')) {\r\n //// /// https://chart.googleapis.com/chart?chst=d_map_xpin_letter&chld=pin||00ff00|FFFFFF\r\n //// widthImg = 32;\r\n //// heightImg = 32;\r\n //// iconText = imageContent.split('|')[1] == '' ? \"\" : imageContent.split('|')[1];\r\n //// iconBGColor = \"#\" + imageContent.split('|')[2];\r\n //// iconFontColor = \"#\" + imageContent.split('|')[3];\r\n //// if (iconText != \"\") {\r\n //// labelOptions = {\r\n //// text: iconText,\r\n //// color: iconFontColor // Set label color\r\n //// };\r\n //// }\r\n //// imageContent = this.GeneratePinMarker_Custom(this.markerPositions[i].iconurl, iconBGColor);\r\n ////}\r\n ////else if (this.markerPositions[i].iconurl.includes('d_bubble_texts_big')) {\r\n //// ////// https://chart.googleapis.com/chart?chst=d_bubble_texts_big&chld=bb|00ff00|404040|TCP\r\n //// ////// https://chart.googleapis.com/chart?chst=d_bubble_texts_big&chld=bb|0000ff|ffffff|DROP|0\r\n\r\n //// widthImg = 50;\r\n //// heightImg = 30;\r\n //// iconText = imageContent.split('|')[3] == '' ? \"\" : imageContent.split('|')[3];\r\n //// iconBGColor = \"#\" + imageContent.split('|')[1];\r\n //// iconFontColor = \"#\" + imageContent.split('|')[2];\r\n //// if (iconText != \"\") {\r\n //// labelOptions = {\r\n //// text: iconText,\r\n //// color: iconFontColor // Set label color\r\n //// };\r\n //// }\r\n //// imageContent = this.GeneratePinMarker_Custom(this.markerPositions[i].iconurl, iconBGColor);\r\n ////}\r\n ////else\r\n //// imageContent = this.markerPositions[i].iconurl; ///default pin when predefined config is OFF\r\n\r\n\r\n\r\n ////////////////// PREVIOUS WORKED MARKER BUT CURRENTLY IT IS DEPRECEATED BY GOOGLEMAP SO USING ADVANCEDMARKERELEMENT\r\n //const marker = new google.maps.Marker({\r\n // //position: this.markerPositions[i],\r\n // position: new google.maps.LatLng(this.markerPositions[i].lat_num, this.markerPositions[i].lng_num), //this.markerPositions[i],// Set the marker position\r\n // map: this.map,// Set the map on which to display the marker\r\n // icon: {\r\n // //url: this.markerPositions[i].iconurl, // Set the URL of the custom icon image \r\n // //url: this.GeneratePinMarker_Custom(this.markerPositions[i].iconurl,red), // Set the URL of the custom icon image\r\n // //url: imageIcon,\r\n // //url: svgUrl,//svgMarker,\r\n // url: imageContent,\r\n // scaledSize: new google.maps.Size(widthImg, heightImg), // Set the size of the icon image\r\n // //scaledSize: new google.maps.Size(this.markerPositions[i].widthImg, this.markerPositions[i].heightImg), // Set the size of the icon image\r\n // anchor: new google.maps.Point(5, 15)\r\n // },\r\n // label: labelOptions // Set label options based on condition\r\n\r\n //});\r\n // console.log('--image--')\r\n //console.log(this.markerPositions[i].iconurl);\r\n\r\n\r\n\r\n //////////////////////////////////////////////////////////////////////////////// #region ADVANCEDMARKER PLOTTING\r\n /////////// this is for default map loading with static pin images\r\n const iconImage = document.createElement(\"img\");\r\n iconImage.src = this.markerPositions[i].iconurl;\r\n iconImage.width = this.markerPositions[i].widthImg;\r\n iconImage.height = this.markerPositions[i].heightImg;\r\n\r\n let pinType = 'pin';\r\n let imageContent = this.markerPositions[i].iconurl;\r\n if (this.markerPositions[i].iconurl.includes('d_map_xpin_letter')) {\r\n imageContent = this.GeneratePinMarker(this.markerPositions[i].iconurl, 'Pin');\r\n pinType = 'pin';\r\n //ballonTypeIndex = this.markerPositions[i].iconurl.split('|')[1] == '' ? \"\" : this.markerPositions[i].iconurl.split('|')[1];\r\n\r\n }\r\n else if (this.markerPositions[i].iconurl.includes('d_bubble_texts_big')) {\r\n imageContent = this.GeneratePinMarker(this.markerPositions[i].iconurl, 'Bubble');\r\n pinType = 'bubble';\r\n }\r\n else\r\n imageContent = iconImage; ///default pin when predefined config is OFF\r\n\r\n /////position: new google.maps.LatLng(this.markerPositions[i].lat_num, this.markerPositions[i].lng_num), //this.markerPositions[i],// Set the marker position\r\n const marker = new google.maps.marker.AdvancedMarkerElement({\r\n //position: pinType == 'pin' ? new google.maps.LatLng(this.markerPositions[i].lat_num + 0.00003, this.markerPositions[i].lng_num) : new google.maps.LatLng(this.markerPositions[i].lat_num - 0.00003, this.markerPositions[i].lng_num), //this.markerPositions[i],// Set the marker position\r\n position: new google.maps.LatLng(this.markerPositions[i].lat_num, this.markerPositions[i].lng_num),\r\n map: this.map,// Set the map on which to display the marker\r\n\r\n //content: beachFlagImg, ///external website image\r\n //content: pinSvg, /////bubble with svg image\r\n //content: bubbleImage,\r\n\r\n //content: iconImage, ////////// this is for default map loading with static pin images ///the working one properly for default pins with predefined config OFF \r\n //content: pinBackground.element, ////plain pin marker with background color changeable\r\n //content: htmlCSSTag, ////square bubble with html css\r\n content: imageContent,\r\n zIndex: this.markerPositions[i].iconZIndex,\r\n //zIndex: (i % 2) == 0 ? google.maps.Marker.MAX_ZINDEX + 1 : -1,\r\n });\r\n\r\n\r\n //////////////////////////////////////////////////////// #endregion ADVANCEDMARKER PLOTTING\r\n\r\n ////info window\r\n //const infoWindow = new google.maps.InfoWindow({\r\n // content: this.infowindowArray[i]\r\n //});\r\n\r\n //// to click event to open info window\r\n //google.maps.event.addListener(marker, 'click', () => { \r\n // infoWindow.open(this.map, marker);\r\n //});\r\n\r\n //this.gMapMarkerCollection.push(marker); //// it will be used in region button toggle to hide and show marker pin ADVANCEMARKER\r\n this.gMapAdvanceMarkerCollection.push(marker);\r\n\r\n //////////////////// if marker is not clicked but only zoomed then by default restore to last marker position along with previous left zoom\r\n if (i == this.markerPositions.length - 1) {\r\n this.isLoading = false;\r\n //debugger;\r\n //////////this.preDefinedConfigParam.restoreZoom = 10;///this.map.getZoom(); elumalai\r\n //this.preDefinedConfigParam.restoreLat = this.markerPositions[i].lat_num;\r\n //this.preDefinedConfigParam.restoreLng = this.markerPositions[i].lng_num;\r\n //this.mapDisplayOptions.PredefinedConfig = this.preDefinedConfigParam;\r\n //this.commonFilterService.SetGMapDisplayOption(this.mapDisplayOptions);\r\n }\r\n //////infowindow\r\n if (this.infowWindowFlag) {\r\n google.maps.event.addListener(marker, 'click', () => {\r\n ////alert(this.map.getZoom());\r\n ////////////// below code is used to restore zoom level and lat/lng .\r\n this.preDefinedConfigParam.restoreZoom = this.map.getZoom();\r\n this.preDefinedConfigParam.restoreLat = this.markerPositions[i].lat_num;\r\n this.preDefinedConfigParam.restoreLng = this.markerPositions[i].lng_num;\r\n this.mapDisplayOptions.PredefinedConfig = this.preDefinedConfigParam;\r\n //debugger;\r\n this.commonFilterService.SetGMapDisplayOption(this.mapDisplayOptions);\r\n\r\n ///close infowindow if already opened\r\n if (this.infoWindow) {\r\n this.infoWindow.close();\r\n }\r\n\r\n /// to get adddress based on latlng\r\n const latlng = { lat: 37.7749, lng: -122.4194 };\r\n this.geocode(new google.maps.LatLng(this.markerPositions[i].lat_num, this.markerPositions[i].lng_num)).then(place => {\r\n this.currentPinLocation = place.formatted_address;\r\n //this.infowindowArray[i].replace('Loading...', this.currentPinLocation)\r\n //let pinInfo = this.infowindowArray[i].split('@')[1].replace('Loading...', this.currentPinLocation)\r\n //this.infoWindowbody = this.sanitizer.bypassSecurityTrustHtml(pinInfo);\r\n //this.previous.open();\r\n //this.previous[\"isOpen\"] = true;//susheel\r\n\r\n this.isLoading = false;\r\n\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.isLoading = false;\r\n this.EmptyBindGMap();\r\n });\r\n\r\n ///assign content to infowindow elumalai\r\n //this.infoWindow = new google.maps.InfoWindow({\r\n // content: this.infowindowArray[i].replace('Loading...', this.currentPinLocation).split('@')[1]\r\n //});\r\n\r\n /////create single instance and set data\r\n this.infoWindow.setContent(\n this.infowindowArray[i].replace(\"Loading...\", this.currentPinLocation).split(\"@\")[1]\n );\r\n\r\n /////open infowindow elumalai\r\n this.infoWindow.open(this.map, marker);\r\n\r\n\r\n /////to call button click event inside infowindow popup\r\n google.maps.event.addListener(this.infoWindow, 'domready', () => {\r\n //now my elements are ready for dom manipulation\r\n\r\n /////to call bluetooth\r\n if (document.getElementById(\"bluetooth\") != null) {\r\n document.getElementById(\"bluetooth\").addEventListener(\"click\", () => {\r\n this.OpenBTFXODialog();\r\n });\r\n }\r\n\r\n ///// to call OpenStatusDialog(\" + this.pinMarker.itemID + \",\" + this.pinMarker.resultType + \")\r\n if (document.getElementById(\"OpenStatusDialog\") != null) {\r\n document.getElementById(\"OpenStatusDialog\").addEventListener(\"click\", () => {\r\n //debugger;\r\n let value = (document.getElementById(\"OpenStatusDialog\")).value;\r\n this.OpenStatusDialog(value.split(',')[0], value.split(',')[1]);\r\n });\r\n }\r\n\r\n /////to call OpenBasicDialog\r\n if (document.getElementById(\"OpenBasicDialog\") != null) {\r\n document.getElementById(\"OpenBasicDialog\").addEventListener(\"click\", () => {\r\n //debugger;\r\n let value = (document.getElementById(\"OpenBasicDialog\")).value;\r\n this.OpenBasicDialog(value.split(',')[0], value.split(',')[1]);\r\n });\r\n }\r\n\r\n });\r\n\r\n\r\n });//endinfowindow\r\n }///// flag set for infowindow\r\n //// Add click event listener to the Advanced Marker\r\n //google.maps.marker.AdvancedMarkerElement.addListener('click', function () {\r\n // // Trigger spiderification when the marker is clicked\r\n // oms.spiderfy([marker]); // Assuming 'oms' is your OverlappingMarkerSpiderfier instance\r\n //});\r\n\r\n oms.addMarker(marker);//spiderfy\r\n oms.keepSpiderfied = true;\r\n\r\n // Add a marker clusterer to manage the markers.\r\n //new MarkerClusterer ({ this.map,marker });\r\n //new MarkerClusterer({\n // map: this.map,\n // markers: [marker] // Must be an array\n //});\r\n\r\n //// ✅ Use MarkerClustererPlus (compatible with Angular 8)\n //this.markerCluster = new MarkerClusterer(this.map, marker, {\n // imagePath: 'assets/images/Marks/Apps/m',\n //});\r\n\r\n // add the markers to the spiderfier\r\n //oms.addListener('click', function (marker) {\r\n // oms.unspiderfy(); // unspiderfy the markers\r\n //});\r\n\r\n // bounds.extend(new google.maps.LatLng(this.markerPositions[i].lat_num, this.markerPositions[i].lng_num));\r\n //bounds.extend(marker.position);\r\n\r\n }//endforloop\r\n\r\n // this.map.fitBounds(bounds);\r\n\r\n\r\n\r\n ///////// Maintain spiderfy on every zoom untill last max zoom\r\n if (this.map) {\r\n let currentZoom = this.map.getZoom();\r\n\r\n // add an event listener to the map to detect zoom end\r\n this.map.addListener('zoom_changed', function () {\r\n //google.maps.event.addListenerOnce(this.map, 'zoom_changed', function () {\r\n if (this.map) {\r\n let zoomLevel = this.map.getZoom();\r\n console.log(\"current zoom value =\" + zoomLevel);\r\n // only unspiderfy markers after the user has fully zoomed in\r\n if (zoomLevel > currentZoom) {\r\n oms.unspiderfy();\r\n currentZoom = zoomLevel;\r\n }\r\n }\r\n });\r\n\r\n /////Attach the debounced updateMarkers function to the bounds_changed event = bounds_changed it will call in every movement on map zoom,panning.\r\n //this.map.addListener('zoom_changed', this.debounce(() => {\r\n // if (!this.initialLoad) {\r\n // this.updateMarkers_Map(this.map, this.markerPositions);\r\n // this.initialLoad = true;\r\n // } else {\r\n // this.initialLoad = false;\r\n // }\r\n //}, 500));\r\n //debugger;\r\n }\r\n\r\n //debugger;\r\n if (this.routeLatLng.length > 0) {\r\n ////alert('line');\r\n //debugger;\r\n\r\n this.DrawMapRoute_JSMap();\r\n }\r\n //alert('advance');\r\n ////////////// Grouping by 10-degree Latitude Ranges for Fit bounds /// zooms to location where maximum pins are points nearby\r\n //this.GetGroupedLocation(); /// uncomment if need to zoom to particular position \r\n\r\n\r\n\r\n ////// redraw region paths on refresh click\r\n //this.getListReg();\r\n //this.DrawMapRoute_JSMap_Test();////comment this line of code always , it is for testing pupose only\r\n\r\n }\r\n\r\n /////JsMapInitilization_Optimze() below code is for testing performance improvement to avoid map stuck when large no of pins plotted\r\n JsMapInitilization_Optimize() {\r\n ///// below code is for testing performance improvement to avoid map stuck when large no of pins plotted\r\n //alert('JsMapInitilization_Optimize');\r\n //this.zoom = 12;\r\n\r\n ///// to initialize the map and center it at load\r\n this.map = new google.maps.Map(document.getElementById('map'), {\r\n //center: { lat: 20.593684, lng: 78.96288 }, /// India\r\n center: { lat: this.lat, lng: this.lng }, //{ lat: 40.4230, lng: -98.7372 }, /// USA\r\n zoom: this.zoom, ///4,\r\n minZoom: 3,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP,\r\n mapId: this.GoogleMapID //'DEMO_MAP_ID' // Map ID is required for advanced markers.\r\n });\r\n\r\n this.LoadingText = \"loading ...\"\r\n this.isLoading = true;\r\n // Call the function to start plotting markers\r\n this.plotMarkers().then(() => {\r\n console.log('All markers have been plotted');\r\n ////alert('done');\r\n this.LoadingText = \"\";\r\n //this.isLoading = false;\r\n }).catch(err => {\r\n console.log(err);\r\n this.isLoading = false;\r\n this.EmptyBindGMap();\r\n });;\r\n\r\n\r\n }\r\n\r\n ///////////////////// async function to avoid map getting stuck while plotting pins\r\n async plotMarkers() {\r\n let len = this.markerPositions.length;\r\n let iconText = \"\";\r\n let iconBGColor = \"\";\r\n let iconFontColor = \"\";\r\n let labelOptions = null;// Initialize label options as null\r\n let iconOptions = null;// Initialize label options as null\r\n let widthImg = 32;\r\n let heightImg = 32;\r\n\r\n console.log('plotMarkers()');\r\n this.addZoomChangeListener();\r\n //// initialize spiderfy\r\n const oms = new OverlappingMarkerSpiderfier(this.map, this.optionsOMS);\r\n\r\n //console.log('total record');\r\n //console.log(this.markerPositions.length);\r\n //console.log('total record');\r\n\r\n let index = 0;\r\n const chunkSize = 500; // Adjust this value based on performance needs /// A smaller size reduces the risk of blocking but increases the total plotting time. A larger size may improve plotting speed but risks blocking the main thread.\r\n this.isLoading = true;\r\n\r\n // Create one global InfoWindow\r\n this.infoWindow = new google.maps.InfoWindow();\r\n\r\n const plotNextChunk = () => {\r\n const end = Math.min(index + chunkSize, this.markerPositions.length);\r\n\r\n for (let i = index; i < end; i++) {\r\n //const chunk = this.markerPositions.slice(i, i + chunkSize);\r\n\r\n iconText = \"\";\r\n iconBGColor = \"\";\r\n iconFontColor = \"\";\r\n labelOptions = null;\r\n\r\n //////////////////////////////////////////////////////////////////////////////// #region ADVANCEDMARKER PLOTTING\r\n /////////// this is for default map loading with static pin images\r\n const iconImage = document.createElement(\"img\");\r\n iconImage.src = this.markerPositions[i].iconurl;\r\n iconImage.width = this.markerPositions[i].widthImg;\r\n iconImage.height = this.markerPositions[i].heightImg;\r\n\r\n let pinType = 'pin';\r\n let imageContent = this.markerPositions[i].iconurl;\r\n if (this.markerPositions[i].iconurl.includes('d_map_xpin_letter')) {\r\n imageContent = this.GeneratePinMarker(this.markerPositions[i].iconurl, 'Pin');\r\n pinType = 'pin';\r\n //ballonTypeIndex = this.markerPositions[i].iconurl.split('|')[1] == '' ? \"\" : this.markerPositions[i].iconurl.split('|')[1];\r\n\r\n }\r\n else if (this.markerPositions[i].iconurl.includes('d_bubble_texts_big')) {\r\n imageContent = this.GeneratePinMarker(this.markerPositions[i].iconurl, 'Bubble');\r\n pinType = 'bubble';\r\n }\r\n else\r\n imageContent = iconImage; ///default pin when predefined config is OFF\r\n\r\n\r\n const marker = new google.maps.marker.AdvancedMarkerElement({\r\n //position: pinType == 'pin' ? new google.maps.LatLng(this.markerPositions[i].lat_num + 0.00003, this.markerPositions[i].lng_num) : new google.maps.LatLng(this.markerPositions[i].lat_num - 0.00003, this.markerPositions[i].lng_num), //this.markerPositions[i],// Set the marker position\r\n position: new google.maps.LatLng(this.markerPositions[i].lat_num, this.markerPositions[i].lng_num),\r\n map: this.map,// Set the map on which to display the marker\r\n\r\n //content: beachFlagImg, ///external website image\r\n //content: pinSvg, /////bubble with svg image\r\n //content: bubbleImage,\r\n\r\n //content: iconImage, ////////// this is for default map loading with static pin images ///the working one properly for default pins with predefined config OFF \r\n //content: pinBackground.element, ////plain pin marker with background color changeable\r\n //content: htmlCSSTag, ////square bubble with html css\r\n content: imageContent,\r\n zIndex: this.markerPositions[i].iconZIndex,\r\n //zIndex: (i % 2) == 0 ? google.maps.Marker.MAX_ZINDEX + 1 : -1,\r\n });\r\n\r\n this.gMapAdvanceMarkerCollection.push(marker);\r\n\r\n //////////////////////////////////////////////////////// #endregion ADVANCEDMARKER PLOTTING\r\n\r\n ////info window\r\n //const infoWindow = new google.maps.InfoWindow({\r\n // content: this.infowindowArray[i]\r\n //});\r\n\r\n //// to click event to open info window\r\n //google.maps.event.addListener(marker, 'click', () => { \r\n // infoWindow.open(this.map, marker);\r\n //});\r\n\r\n //////////////////// if marker is not clicked but only zoomed then by default restore to last marker position along with previous left zoom\r\n if (i == this.markerPositions.length - 1) {\r\n //debugger;\r\n //////////this.preDefinedConfigParam.restoreZoom = 10;///this.map.getZoom(); elumalai\r\n //this.preDefinedConfigParam.restoreLat = this.markerPositions[i].lat_num;\r\n //this.preDefinedConfigParam.restoreLng = this.markerPositions[i].lng_num;\r\n //this.mapDisplayOptions.PredefinedConfig = this.preDefinedConfigParam;\r\n //this.commonFilterService.SetGMapDisplayOption(this.mapDisplayOptions);\r\n }\r\n //////infowindow\r\n if (this.infowWindowFlag) {\r\n google.maps.event.addListener(marker, 'click', () => {\r\n ////alert(this.map.getZoom());\r\n ////////////// below code is used to restore zoom level and lat/lng .\r\n this.preDefinedConfigParam.restoreZoom = this.map.getZoom();\r\n this.preDefinedConfigParam.restoreLat = this.markerPositions[i].lat_num;\r\n this.preDefinedConfigParam.restoreLng = this.markerPositions[i].lng_num;\r\n this.mapDisplayOptions.PredefinedConfig = this.preDefinedConfigParam;\r\n //debugger;\r\n this.commonFilterService.SetGMapDisplayOption(this.mapDisplayOptions);\r\n\r\n ///close infowindow if already opened\r\n if (this.infoWindow) {\r\n this.infoWindow.close();\r\n }\r\n\r\n /// to get adddress based on latlng\r\n const latlng = { lat: 37.7749, lng: -122.4194 };\r\n this.geocode(new google.maps.LatLng(this.markerPositions[i].lat_num, this.markerPositions[i].lng_num)).then(place => {\r\n this.currentPinLocation = place.formatted_address;\r\n //this.infowindowArray[i].replace('Loading...', this.currentPinLocation)\r\n //let pinInfo = this.infowindowArray[i].split('@')[1].replace('Loading...', this.currentPinLocation)\r\n //this.infoWindowbody = this.sanitizer.bypassSecurityTrustHtml(pinInfo);\r\n //this.previous.open();\r\n //this.previous[\"isOpen\"] = true;//susheel\r\n\r\n // this.isLoading = false;\r\n\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.isLoading = false;\r\n this.EmptyBindGMap();\r\n });\r\n\r\n /////assign content to infowindow\r\n //this.infoWindow = new google.maps.InfoWindow({\r\n // content: this.infowindowArray[i].replace('Loading...', this.currentPinLocation).split('@')[1]\r\n //});\r\n /////create single instance and set data\r\n this.infoWindow = this.infoWindow.setContent({\r\n content: this.infowindowArray[i].replace('Loading...', this.currentPinLocation).split('@')[1]\r\n });\r\n\r\n\r\n ///open infowindow\r\n this.infoWindow.open(this.map, marker);\r\n\r\n\r\n /////to call button click event inside infowindow popup\r\n google.maps.event.addListener(this.infoWindow, 'domready', () => {\r\n //now my elements are ready for dom manipulation\r\n\r\n /////to call bluetooth\r\n if (document.getElementById(\"bluetooth\") != null) {\r\n document.getElementById(\"bluetooth\").addEventListener(\"click\", () => {\r\n this.OpenBTFXODialog();\r\n });\r\n }\r\n\r\n ///// to call OpenStatusDialog(\" + this.pinMarker.itemID + \",\" + this.pinMarker.resultType + \")\r\n if (document.getElementById(\"OpenStatusDialog\") != null) {\r\n document.getElementById(\"OpenStatusDialog\").addEventListener(\"click\", () => {\r\n //debugger;\r\n let value = (document.getElementById(\"OpenStatusDialog\")).value;\r\n this.OpenStatusDialog(value.split(',')[0], value.split(',')[1]);\r\n });\r\n }\r\n\r\n /////to call OpenBasicDialog\r\n if (document.getElementById(\"OpenBasicDialog\") != null) {\r\n document.getElementById(\"OpenBasicDialog\").addEventListener(\"click\", () => {\r\n //debugger;\r\n let value = (document.getElementById(\"OpenBasicDialog\")).value;\r\n this.OpenBasicDialog(value.split(',')[0], value.split(',')[1]);\r\n });\r\n }\r\n\r\n });\r\n\r\n\r\n });//endinfowindow\r\n }///infowwindow flag\r\n //// Add click event listener to the Advanced Marker\r\n //google.maps.marker.AdvancedMarkerElement.addListener('click', function () {\r\n // // Trigger spiderification when the marker is clicked\r\n // oms.spiderfy([marker]); // Assuming 'oms' is your OverlappingMarkerSpiderfier instance\r\n //});\r\n\r\n oms.addMarker(marker);//spiderfy\r\n oms.keepSpiderfied = true;\r\n\r\n // add the markers to the spiderfier\r\n //oms.addListener('click', function (marker) {\r\n // oms.unspiderfy(); // unspiderfy the markers\r\n //});\r\n\r\n }\r\n\r\n index = end;\r\n if (index < this.markerPositions.length) {\r\n requestAnimationFrame(plotNextChunk);\r\n }\r\n else\r\n this.isLoading = false;\r\n };\r\n requestAnimationFrame(plotNextChunk);\r\n\r\n ///////// Maintain spiderfy on every zoom untill last max zoom\r\n if (this.map) {\r\n let currentZoom = this.map.getZoom();\r\n\r\n // add an event listener to the map to detect zoom end\r\n this.map.addListener('zoom_changed', function () {\r\n //google.maps.event.addListenerOnce(this.map, 'zoom_changed', function () {\r\n if (this.map) {\r\n let zoomLevel = this.map.getZoom();\r\n console.log(\"current zoom value =\" + zoomLevel);\r\n // only unspiderfy markers after the user has fully zoomed in\r\n if (zoomLevel > currentZoom) {\r\n oms.unspiderfy();\r\n currentZoom = zoomLevel;\r\n }\r\n }\r\n });\r\n\r\n //// Attach the debounced updateMarkers function to the bounds_changed event = bounds_changed it will call in every movement on map zoom,panning.\r\n //this.map.addListener('zoom_changed', this.debounce(() => {\r\n // if (!this.initialLoad) {\r\n // this.updateMarkers_Map(this.map, this.markerPositions);\r\n // this.initialLoad = true;\r\n // } else {\r\n // this.initialLoad = false;\r\n // }\r\n //}, 500));\r\n }\r\n\r\n //debugger;\r\n if (this.routeLatLng.length > 0) {\r\n ////alert('line');\r\n //debugger;\r\n this.DrawMapRoute_JSMap();\r\n }\r\n\r\n ////////////// Grouping by 10-degree Latitude Ranges for Fit bounds\r\n //this.GetGroupedLocation(); ///uncomment if want to zoom to particular location where maximum no of pins are plotted\r\n\r\n }\r\n\r\n GetGroupedLocation() {\r\n let groupedLocations = [];\r\n // Group locations by latitude range\r\n\r\n //const groupedLocations = this.markerPositions.reduce((groups, location) => { \r\n groupedLocations = this.markerPositions.reduce((groups, location) => {\r\n\r\n if (!location.popUpRsltType.includes('app')) {\r\n const groupKey = this.GetGroupKey(location.lat_num);\r\n if (!groups[groupKey]) {\r\n groups[groupKey] = [];\r\n }\r\n groups[groupKey].push(location);\r\n //return groups;\r\n }\r\n return groups;\r\n }, {});\r\n\r\n //console.log(groupedLocations);\r\n\r\n let largestGroupKey = null;\r\n let largestGroupCount = 0;\r\n\r\n //////// BELOW CODE IS TO GET GROUP THAT HAS LARGE NO OF COUNT IN PARTICULAR LAT RANGE\r\n for (const [key, group] of Object.entries(groupedLocations)) {\r\n if (group.length > largestGroupCount) {\r\n largestGroupCount = group.length;\r\n largestGroupKey = key;\r\n }\r\n }\r\n\r\n //console.log('Grouped Locations:', groupedLocations);\r\n //console.log('Largest Group Key:', largestGroupKey);\r\n //console.log('Largest Group Count:', largestGroupCount);\r\n //console.log('Largest Group:', groupedLocations[largestGroupKey]);\r\n\r\n /// BELOW CODE IS TO SHOW ZOOM IN TO PARTICULAR BOUNS REGION WHERE MORE NO OF PINS ARE PLOTTED\r\n if (groupedLocations[largestGroupKey].length > 0) {\r\n var bounds = new google.maps.LatLngBounds();\r\n for (let i = 0; i < groupedLocations[largestGroupKey].length; i++) {\r\n bounds.extend(new google.maps.LatLng(groupedLocations[largestGroupKey][i].lat_num, groupedLocations[largestGroupKey][i].lng_num));\r\n }\r\n this.map.fitBounds(bounds);\r\n\r\n }\r\n }\r\n\r\n // Function to determine the group key based on latitude\r\n GetGroupKey(lat) {\r\n //if (lat >= -32 && lat < -31) return 'Group 1';\r\n //if (lat >= -34 && lat < -32) return 'Group 2';\r\n //if (lat >= -36 && lat < -34) return 'Group 3';\r\n //return 'Others';\r\n\r\n const groupSize = 10;\r\n const start = Math.floor(lat / groupSize) * groupSize;\r\n const end = start + groupSize;\r\n return `${start} to ${end}`;\r\n\r\n }\r\n\r\n // Utility function to create a debounce wrapper\r\n debounce(func, delay) {\r\n console.log('debounce');\r\n let debounceTimer;\r\n return function () {\r\n const context = this;\r\n const args = arguments;\r\n clearTimeout(debounceTimer);\r\n debounceTimer = setTimeout(() => func.apply(context, args), delay);\r\n };\r\n }\r\n\r\n updateMarkers_Map(map, markerList) {\r\n return;\r\n if (!map) {\r\n console.log('Map is not initialized.');\r\n return;\r\n }\r\n ////console.log('updatemarker');\r\n const bounds = map.getBounds();\r\n this.zoom = map.getZoom();\r\n //// Clear existing markers\r\n //this.markers.forEach(marker => marker.setMap(null));\r\n //this.markers = [];\r\n\r\n this.EmptyBindGMap();\r\n this.cd.detectChanges();\r\n this.markerPositions = [];\r\n //setTimeout(() => {\r\n // //this.markers = this.markerCollection.filter(marker => newBounds.contains(new google.maps.LatLng(marker.lat, marker.lng)));\r\n //}, 1000);\r\n // setTimeout(() => { this.map.triggerResize(); }, 500)\r\n // let index = 0;\r\n // Add markers that are within the current bounds markerPositions\r\n this.markers.forEach(location => {\r\n if (bounds.contains(new google.maps.LatLng(location.lat, location.lng))) {\r\n // index++; \r\n this.markerPositions.push(location);\r\n this.lat = Number(location.lat);\r\n this.lng = Number(location.lng);\r\n }\r\n\r\n });\r\n\r\n if (this.markerPositions.length > 5000)\r\n this.JsMapInitilization_Optimize();\r\n else\r\n this.JsMapInitilization();\r\n\r\n }\r\n\r\n addZoomChangeListener() {\r\n this.map.addListener('zoom_changed', () => {\r\n //this.ngZone.run(() => {\r\n if (this.map) {\r\n let center = this.map.getCenter();\r\n //console.log(center.lat() + ',' + center.lng())\r\n //////////////////// if marker is not clicked but only zoomed then by default restore to last marker position along with previous left zoom\r\n const zoomLevel = this.map.getZoom();\r\n this.preDefinedConfigParam.restoreZoom = zoomLevel;\r\n this.preDefinedConfigParam.restoreLat = center.lat();\r\n this.preDefinedConfigParam.restoreLng = center.lng();\r\n this.mapDisplayOptions.PredefinedConfig = this.preDefinedConfigParam;\r\n //debugger;\r\n this.commonFilterService.SetGMapDisplayOption(this.mapDisplayOptions);\r\n }\r\n //});\r\n });\r\n\r\n this.map.addListener('idle', () => {\r\n //this.ngZone.run(() => {\r\n if (this.map) {\r\n let center = this.map.getCenter();\r\n //console.log(center.lat() + ',' + center.lng())\r\n //////////////////// if marker is not clicked but only zoomed then by default restore to last marker position along with previous left zoom\r\n const zoomLevel = this.map.getZoom();\r\n this.preDefinedConfigParam.restoreZoom = zoomLevel;\r\n this.preDefinedConfigParam.restoreLat = center.lat();\r\n this.preDefinedConfigParam.restoreLng = center.lng();\r\n this.mapDisplayOptions.PredefinedConfig = this.preDefinedConfigParam;\r\n //debugger;\r\n this.commonFilterService.SetGMapDisplayOption(this.mapDisplayOptions);\r\n }\r\n //});\r\n });\r\n }\r\n\r\n ResetDispalyOptionsList() {\r\n this.DisplayResultList.forEach(item => item.Checked = true);\r\n this.AnalysisList.forEach(item => item.Checked = true);\r\n this.NetTestList.forEach(item => item.Checked = true);\r\n this.MobileInfoList.forEach(item => item.Checked = true);\r\n this.ErrorEventList.forEach(item => item.Checked = true);\r\n this.TypeList.forEach(item => item.Checked = false);\r\n this.ResultList.forEach(item => item.Checked = false);\r\n }\r\n\r\n modifyFilter() {\r\n //this._router.navigate([{ outlets: { filterPopup: ['filters'], configPopup: null } }]);\r\n let selectedMainFilterCrieriaName = 'null';\r\n this.commonFilterService.mainFilter_CriteriaName.subscribe(res => selectedMainFilterCrieriaName = res);\r\n this._router.navigate([{ outlets: { filterPopup: ['filters', selectedMainFilterCrieriaName], configPopup: null } }]);\r\n\r\n /////// when calling modify search set mainfilter to initial values\r\n //this.commonFilterService.SetMainFilter(0);// set selected mainfilter id\r\n //this.commonFilterService.setMFCustDT(\"\");\r\n //this.commonFilterService.setMFTZON(0);\r\n ////this.commonFilterService.basicRefresh();\r\n }\r\n\r\n LimitChangeEvent() {\r\n //console.log('limitChange')\r\n this.refreshSelections();\r\n }\r\n\r\n clearAllFiltersBool = false;\r\n clearAllFilters() {\r\n //console.log('clearAll')\r\n this.delFilterColName = 'clearAllFilters';\r\n //this.hasFilters = false;\r\n ////alert(11);\r\n this.refreshSelections();\r\n //this.table.sorter.sortMeta = [];\r\n //this.table.events.onSort();//IMP- to reset sorting sel cols to none\r\n\r\n //if (this.table.dataFilter.hasFilters()) {\r\n // this.table.dataFilter.clear();\r\n // //console.log(this.table.dataFilter.hasFilters())\r\n // this.table.events.onFilter();\r\n // //this.table.events.onFilterClear();\r\n // this.clearFilters.emit();\r\n //}\r\n }\r\n\r\n ngOnDestroy() {\r\n // Clear out the old markers.\r\n this.markers = [];\r\n this.markerCollection = [];\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n //https://stackoverflow.com/questions/55263567/angular-6-adding-script-at-component-level-and-checking-if-it-exists\r\n //this.renderer2.removeChild(this.document.body, this.scriptMapJS);\r\n //this.renderer2.removeChild(this.document.body, this.scriptCallBack);\r\n\r\n }\r\n\r\n parentEvent() {\r\n //debugger;\r\n this.title = rsltTypeInTitle(this.rsltType);\r\n this.childTitleEvent.emit(this.title);\r\n }\r\n\r\n status1: boolean = false;\r\n status2: boolean = false;\r\n togglePanes(type) {\r\n this.leftPanel = true;\r\n if (type == 1) {\r\n this.status1 = !this.status1;\r\n this.status2 = false;\r\n }\r\n else if (type == 2) {\r\n this.status2 = !this.status2;\r\n this.status1 = false;\r\n }\r\n }\r\n\r\n //legendList: any\r\n SetPinLegnd(legendList: any) {\r\n //debugger;\r\n this.dynamicPinLegends = [];\r\n let legList = legendList.split('#');\r\n //console.log(legendList)\r\n for (let i = 1; i < legList.length; i++) {\r\n let item = legList[i].split('@');\r\n\r\n let imgPath = item[1].split('-')[1];\r\n let MarkerPinType = \"Pin\";\r\n let iconText = \"\";\r\n let iconBGColor = \"\";\r\n let iconFontColor = \"\";\r\n let dynamicBubbleClass: any;\r\n let dynamicBubbleClass2: any;\r\n\r\n\r\n if (imgPath.includes('d_map_xpin_letter')) {\r\n MarkerPinType = \"Pin\";\r\n iconText = imgPath.split('|')[1];\r\n iconBGColor = \"#\" + imgPath.split('|')[2];\r\n iconFontColor = \"#\" + imgPath.split('|')[3];\r\n }\r\n else if (imgPath.includes('d_bubble_texts_big')) {\r\n MarkerPinType = \"Bubble\";\r\n iconText = imgPath.split('|')[3];\r\n iconBGColor = \"#\" + imgPath.split('|')[1];\r\n iconFontColor = \"#\" + imgPath.split('|')[2];\r\n\r\n //dynamicBubbleClass1 = '.bubble { position: relative; font-family: sans-serif; font-size: 12px; line-height: 5px; width: 50px; background: ' + iconBGColor + '; border-radius: 5px; padding: 4px;height:20px; text-align: center; color: ' + iconFontColor + ';padding-top:8px;}.bubble-bottom-left:before { content: \"\"; width: 0px; height: 0px; position: absolute; border-left: 5px solid ' + iconBGColor + '; border-right: 5px solid transparent; border-top: 5px solid ' + iconBGColor + '; border-bottom: 20px solid transparent; left: 0px; bottom: -15px;}';\r\n //dynamicBubbleClass2 = '.bubble-bottom-left:before { content: \"\"; width: 0px; height: 0px; position: absolute; border-left: 5px solid ' + iconBGColor + '; border-right: 5px solid transparent; border-top: 5px solid ' + iconBGColor + '; border-bottom: 20px solid transparent; left: 0px; bottom: -15px;}';\r\n //dynamicBubbleClass1 = 'position: relative; font-family: sans-serif; font-size: 12px; line-height: 5px; width: 50px; background:red; border-radius: 5px; padding: 4px;height:20px; text-align: center; color: white;padding-top:8px;' ;\r\n //dynamicBubbleClass2 = 'width: 0px; height: 0px; position: absolute; border-left: 5px solid red; border-right: 5px solid transparent; border-top: 5px solid red; border-bottom: 20px solid transparent; left: 0px; bottom: -15px;' ;\r\n dynamicBubbleClass = \"5px solid \" + iconBGColor;\r\n }\r\n\r\n //console.log(item[5]);\r\n this.dynamicPinLegends.push(\r\n {\r\n queryCount: item[0].split('-')[1],\r\n imgSrc: item[1].split('-')[1],\r\n resultType: item[2].split('-')[1],\r\n thresholdType: item[3].indexOf('- -') != -1 ? item[3].split('- -')[1].split(',')[0].trim() : item[3].split('-')[1].split(',')[0].trim(),//susheel - pass fail test-fail\r\n pinType: item[4].split('-')[1],\r\n //condVal: item[5].indexOf(' -') != -1 ? item[5].split('-')[1] + '-' + item[5].split('-')[2] : item[5].split('-')[1],//susheel - check if filter value is -ve\r\n condVal: item[5].replace(/::true/gi, '').replace(/::false/gi, '').replace(/condVal-/gi, ''),//susheel\r\n noOfRows: item[6].split('-')[1],\r\n MarkerPinType: MarkerPinType,\r\n iconText: iconText == \"\" ? '' : (iconText.length > 5 ? iconText.substring(0, 6) + \"..\" : iconText),\r\n iconBGColor: iconBGColor,\r\n iconFontColor: iconFontColor,\r\n dynamicBubbleClass: dynamicBubbleClass,\r\n legendName: item[7].split('-')[1]\r\n }\r\n );\r\n }\r\n\r\n //console.log('no audio count');\r\n //console.log(this.NoAudioPolqa_OnePoinOne.length);\r\n //console.log(this.totalNoAudioScore);\r\n //if (this.totalNoAudioScore > 0) {\r\n // this.dynamicPinLegends.push(\r\n // {\r\n // queryCount: this.totalNoAudioScore,\r\n // imgSrc: 'NoAudioPolqaMark',\r\n // resultType: 'POLQA',\r\n // thresholdType: '( NO AUDIO )',\r\n // pinType: '',\r\n // condVal: 'POLQA MOS <= 1.1',//susheel\r\n // noOfRows: this.totalNoAudioScore,\r\n // MarkerPinType: 'NoAudioPolqaMark',\r\n // iconText: 'X',\r\n // iconBGColor: 'Red',\r\n // iconFontColor: 'Black',\r\n // dynamicBubbleClass: ''//\r\n // }\r\n // );\r\n //}\r\n\r\n //console.log(this.dynamicPinLegends)-susheel\r\n\r\n //this.dynamicPinLegends = [\r\n // {\r\n // queryCount:'100',\r\n // imgSrc:'https://chart.googleapis.com/chart?chst=d_map_xpin_letter&chld=pin||00FF00|FFFFFF',\r\n // resultType: 'LegAll',\r\n // thresholdType : 'PASS',\r\n // pinType: 'Threshold Type',\r\n // condVal: 'Battery Level() >= 90 < font style = color: green > AND < /font>
    RSSI(dBm) <= 100',\r\n // noOfRows:'0'\r\n // }\r\n //];\r\n //console.log(this.dynamicPinLegends);\r\n // After updating legend.iconBGColor\r\n this.cd.detectChanges();\r\n }\r\n\r\n\r\n DynamicHtmlEvent() {\r\n //var body = \"\";\r\n //this.test = this.sanitizer.bypassSecurityTrustHtml(body);\r\n }\r\n\r\n ///private event: MouseEvent;\r\n\r\n // initial center position for the map///////////////////////////////// start Pin Marker\r\n clickedMarker(infowindow, index: number) {\r\n //debugger;\r\n\r\n this.resultTypeID = \"\";\r\n this.isLoading = true;\r\n try {\r\n //this.resultTypeID = this.infowindowArray[index].split('@')[0];\r\n //this.previous = null;\r\n //console.log(this.previous)\r\n\r\n ///// close previous window\r\n //index = index + 1; ///elumalai\r\n if (this.previous) {\r\n //console.log(this.previous[\"isOpen\"])\r\n if (this.previous[\"isOpen\"] == true)\r\n this.previous.close();\r\n }\r\n this.previous = infowindow;\r\n\r\n //console.log(index);//susheel\r\n //if (index != 11) {\r\n if (this.bluetoothData[index].indexOf('IGNORETS-VQUAD') > -1) {\r\n //console.log(this.bluetoothData[index])//susheel\r\n this.bluetoothText = this.bluetoothData[index].split('$')[1];//this.bluetoothData[index].split('(')[2].split(')')[0];\r\n this.isBlutoothButton = true;\r\n }\r\n else\r\n this.isBlutoothButton = false;\r\n\r\n let latlng = {\r\n lat: infowindow.hostMarker.latitude,\r\n lng: infowindow.hostMarker.longitude\r\n }\r\n\r\n this.resultTypeID = this.infowindowArray[index].split('@')[0];\r\n\r\n this.geocode(latlng).then(place => {\r\n this.currentPinLocation = place.formatted_address;\r\n let pinInfo = this.infowindowArray[index].split('@')[1].replace('Loading...', this.currentPinLocation)\r\n this.infoWindowbody = this.sanitizer.bypassSecurityTrustHtml(pinInfo);\r\n this.previous.open();\r\n this.previous[\"isOpen\"] = true;//susheel\r\n\r\n this.isLoading = false;\r\n\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.EmptyBindGMap();\r\n });\r\n\r\n //}\r\n //else {\r\n\r\n // this.infoWindowbody = this.sanitizer.bypassSecurityTrustHtml(\"fsf\");\r\n //}\r\n //console.log(this.infowindowArray[index]);\r\n }\r\n catch (ex) {\r\n this.isLoading = false;\r\n this.EmptyBindGMap();\r\n }\r\n }\r\n\r\n //mapClicked($event: MouseEvent) {\r\n // //alert();\r\n //}\r\n\r\n\r\n // //markerDragEnd(m: marker, $event: MouseEvent) \r\n markerDragEnd() {\r\n ////alert(1);\r\n console.log('dragEnd');\r\n }\r\n\r\n markers: marker[] = [\r\n {\r\n lat: this.lat.toString(),\r\n lng: this.lng.toString(),\r\n //lat: this.lat,\r\n //lng: this.lng,\r\n label: '', //'A',\r\n draggable: true,\r\n iconurl: '',// this.iurl,\r\n widthImg: 0,\r\n heightImg: 0,\r\n resultType: '',\r\n popUpRsltType: '',\r\n itemID: '',\r\n lat_num: 0,\r\n lng_num: 0,\r\n iconZIndex: 1\r\n },\r\n\r\n ]\r\n\r\n\r\n ///////to get address based on lat n lng\r\n geocode(latlng: any): Promise {\r\n const geocoder = new google.maps.Geocoder();\r\n return new Promise((resolve, reject) => {\r\n geocoder.geocode(\r\n {\r\n 'location': latlng\r\n },\r\n (results, status) => {\r\n if (status === google.maps.GeocoderStatus.OK) {\r\n resolve(results[0]);\r\n } else {\r\n reject(new Error(status));\r\n }\r\n }\r\n );\r\n });\r\n }\r\n\r\n\r\n //*********** Marker Cluster\r\n zoomChanged(event: any) {\r\n\r\n try {\r\n this.zoom = event;\r\n ////alert('zoom');\r\n\r\n //this.isLoading = true;\r\n //debugger;\r\n if (this.markers.length > 0) {\r\n this.markerCollection = this.markers;\r\n this.markers = [];\r\n }\r\n }\r\n catch (ex) {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n OnTilesLoaded() {\r\n try {\r\n this.isLoading = false;\r\n //debugger;\r\n if (this.markers.length <= 0)\r\n this.markers = this.markerCollection;\r\n }\r\n catch (ex) {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n dragEndMap() {\r\n //console.log(event);\r\n //debugger;\r\n try {\r\n //if (!this.leftPanel) {\r\n\r\n\r\n // this.isLoading = true;\r\n\r\n\r\n // setTimeout(() => { this.isLoading = false; }, 15000);\r\n //}\r\n //else\r\n // this.leftPanel = false;\r\n }\r\n catch (ex) {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n onBoundChanged() {\r\n //console.log(event);\r\n //debugger;\r\n try {\r\n //this.isLoading = true;\r\n //debugger;\r\n //if (this.markers != undefined && this.markers.length > 0) {\r\n // this.markerCollection = this.markers;\r\n // this.markers = [];\r\n //}\r\n }\r\n catch (ex) {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n CalCluster() {\r\n //console.log(this.markers);\r\n }\r\n //***********\r\n\r\n\r\n /////////////////////////////////// End Pin Marker\r\n\r\n /////////////// start Polygon\r\n\r\n paths = [\r\n [\r\n { lat: this.lat, lng: this.lng },\r\n { lat: this.lat, lng: this.lng + 0.1 },\r\n { lat: this.lat + 0.1, lng: this.lng + 0.1 },\r\n { lat: this.lat + 0.1, lng: this.lng },\r\n { lat: this.lat, lng: this.lng },\r\n ], [\r\n { lat: this.lat1, lng: this.lng1 },\r\n { lat: this.lat1, lng: this.lng1 + 0.1 },\r\n { lat: this.lat1 + 0.1, lng: this.lng1 + 0.1 },\r\n { lat: this.lat1 + 0.1, lng: this.lng1 },\r\n { lat: this.lat1, lng: this.lng1 },\r\n ], [\r\n { lat: this.lat2, lng: this.lng2 },\r\n { lat: this.lat2, lng: this.lng2 + 0.1 },\r\n { lat: this.lat2 + 0.1, lng: this.lng2 + 0.1 },\r\n { lat: this.lat2 + 0.1, lng: this.lng2 },\r\n { lat: this.lat2, lng: this.lng2 },\r\n ]\r\n ];\r\n\r\n ToggleMapRegion() {\r\n\r\n if (this.loadOldGoogleMap)\r\n this.ToggleMapRegion_OldMarker();\r\n else\r\n this.ToggleMapRegion_AdvanceMarker();\r\n }\r\n\r\n ToggleMapRegion_OldMarker() {\r\n debugger;\r\n let isMainFilterContainsRegionName = this.mainFilterMapRegionName != '' ? true : false; ////check selected mainfilter has region name in it. \r\n if (isMainFilterContainsRegionName) {\r\n this.toggleMapRegion = false;\r\n }\r\n\r\n if (!this.toggleMapRegion) {\r\n this.btnRegioncolor = \"btnToggle2\";\r\n this.tempMarker = this.gMapMarkerCollection;//this.markers;\r\n //this.markers = [];\r\n debugger;\r\n // show-Hide markers outside region\n this.ShowHideMarkerOustsideRegion(isMainFilterContainsRegionName);\r\n\r\n this.gMapMarkerCollection = [];\r\n this.toggleMapRegion = !this.toggleMapRegion;\r\n }\r\n else {\r\n this.btnRegioncolor = \"btnToggle1\";\r\n //this.markers = this.tempMarker;\r\n //this.tempMarker = [];\r\n if (this.gMapMarkerCollection.length <= 0)\r\n this.gMapMarkerCollection = this.tempMarker;\r\n this.tempMarker = [];\r\n // Show all markers\r\n this.gMapMarkerCollection.forEach(marker => marker.setMap(this.map));\r\n this.toggleMapRegion = !this.toggleMapRegion;\r\n }\r\n //this.toggleMapRegion = !this.toggleMapRegion;\r\n\r\n }\r\n\r\n ShowHideMarkerOustsideRegion(isMainFilterContainsRegionName = false) {\r\n\r\n let regionPolygonList: google.maps.Polygon[] = [];\r\n let regionCircleList: google.maps.Circle[] = [];\r\n\r\n //regionPolygonList = this.polygonPathList;\r\n //regionCircleList = this.circleRegionList;\r\n if (this.polygonPathList.length > 0) {\r\n ////polygon\n this.polygonPathList.forEach(polygon => {\n regionPolygonList.push(polygon);\n });\r\n }\r\n\r\n if (this.circleRegionList.length > 0) {\r\n ////circle\n this.circleRegionList.forEach(circle => {\n regionCircleList.push(circle);\n });\r\n }\r\n\r\n //// combine 2 region list into one when both gmap region and selected mainfilter has region name.\r\n if (isMainFilterContainsRegionName) {\n ////polygon\n this.mainFilterRegionPolygonPathList.forEach(polygon => {\n regionPolygonList.push(polygon);\n });\r\n\r\n ////circle\n this.mainFilterRegionCircleRegionList.forEach(circle => {\n regionCircleList.push(circle);\n });\r\n\r\n }\r\n\r\n this.gMapMarkerCollection.forEach(marker => {\r\n //marker.setMap(null);\r\n const position = marker.getPosition();\n\n // Check if position exists to avoid errors\n if (position) {\n const lat = position.lat();\n const lng = position.lng();\n let latlngNewMain = new google.maps.LatLng(lat, lng);\n\n ////marker is inside polyon\n let isMarkerInsideAnyPolygon = false;\n for (var p = 0; p < regionPolygonList.length; p++) {\r\n const isExistsInside = google.maps.geometry.poly.containsLocation(latlngNewMain, regionPolygonList[p]);\r\n if (isExistsInside) {\r\n isMarkerInsideAnyPolygon = true;\r\n break;\r\n }\r\n }\r\n\r\n ////marker is inside circle\r\n let isMarkerInsideAnyCircle = false;\r\n for (var c = 0; c < regionCircleList.length; c++) {\r\n const isInsideCircle = google.maps.geometry.spherical.computeDistanceBetween(latlngNewMain, regionCircleList[c].getCenter()) <= regionCircleList[c].getRadius();\r\n if (isInsideCircle) {\r\n isMarkerInsideAnyCircle = true;\r\n break;\r\n }\r\n }\r\n\r\n ////keep only marker tha iside polygon or circle else remove it\r\n if (isMarkerInsideAnyPolygon || isMarkerInsideAnyCircle)\r\n marker.setMap(this.map);\r\n else\r\n marker.setMap(null);\r\n\r\n }//endif\r\n });///endforloop\r\n\r\n }\r\n\r\n ToggleMapRegion_AdvanceMarker() {\r\n debugger;\r\n console.log('ToggleMapRegion_AdvanceMarker');\r\n let isMainFilterContainsRegionName = this.mainFilterMapRegionName != '' ? true : false; ////check selected mainfilter has region name in it. \r\n if (isMainFilterContainsRegionName) {\r\n this.toggleMapRegion = false;\r\n }\r\n\r\n if (!this.toggleMapRegion) {\r\n this.btnRegioncolor = \"btnToggle2\";\r\n this.tempMarker = this.gMapAdvanceMarkerCollection;//this.markers;\r\n //this.markers = [];\r\n debugger;\r\n // show-Hide markers outside region\n this.ShowHideMarkerOustsideRegion_AdvanceMarker(isMainFilterContainsRegionName);\r\n\r\n this.gMapAdvanceMarkerCollection = [];\r\n this.toggleMapRegion = !this.toggleMapRegion;\r\n }\r\n else {\r\n this.btnRegioncolor = \"btnToggle1\";\r\n //this.markers = this.tempMarker;\r\n //this.tempMarker = [];\r\n if (this.gMapAdvanceMarkerCollection.length <= 0)\r\n this.gMapAdvanceMarkerCollection = this.tempMarker;\r\n this.tempMarker = [];\r\n // Show all markers\r\n this.gMapAdvanceMarkerCollection.forEach(marker => marker.setMap(this.map));\r\n this.toggleMapRegion = !this.toggleMapRegion;\r\n }\r\n //this.toggleMapRegion = !this.toggleMapRegion;\r\n\r\n }\r\n\r\n ShowHideMarkerOustsideRegion_AdvanceMarker(isMainFilterContainsRegionName = false) {\r\n\r\n let regionPolygonList: google.maps.Polygon[] = [];\r\n let regionCircleList: google.maps.Circle[] = [];\r\n\r\n //regionPolygonList = this.polygonPathList;\r\n //regionCircleList = this.circleRegionList;\r\n if (this.polygonPathList.length > 0) {\r\n ////polygon\n this.polygonPathList.forEach(polygon => {\n regionPolygonList.push(polygon);\n });\r\n }\r\n\r\n if (this.circleRegionList.length > 0) {\r\n ////circle\n this.circleRegionList.forEach(circle => {\n regionCircleList.push(circle);\n });\r\n }\r\n\r\n //// combine 2 region list into one when both gmap region and selected mainfilter has region name.\r\n if (isMainFilterContainsRegionName) {\n ////polygon\n this.mainFilterRegionPolygonPathList.forEach(polygon => {\n regionPolygonList.push(polygon);\n });\r\n\r\n ////circle\n this.mainFilterRegionCircleRegionList.forEach(circle => {\n regionCircleList.push(circle);\n });\r\n\r\n }\r\n\r\n this.gMapAdvanceMarkerCollection.forEach(marker => {\r\n //marker.setMap(null);\r\n //const position = marker.getPosition();\n const position = marker.position;\n //console.log('position');\n //console.log(position);\n\n\n // Check if position exists to avoid errors\n if (position) {\n const lat = position.lat;// position.lat();\n const lng = position.lng;//position.lng();\n let latlngNewMain = new google.maps.LatLng(lat, lng);\n\n ////marker is inside polyon\n let isMarkerInsideAnyPolygon = false;\n for (var p = 0; p < regionPolygonList.length; p++) {\r\n const isExistsInside = google.maps.geometry.poly.containsLocation(latlngNewMain, regionPolygonList[p]);\r\n if (isExistsInside) {\r\n isMarkerInsideAnyPolygon = true;\r\n break;\r\n }\r\n }\r\n\r\n ////marker is inside circle\r\n let isMarkerInsideAnyCircle = false;\r\n for (var c = 0; c < regionCircleList.length; c++) {\r\n const isInsideCircle = google.maps.geometry.spherical.computeDistanceBetween(latlngNewMain, regionCircleList[c].getCenter()) <= regionCircleList[c].getRadius();\r\n if (isInsideCircle) {\r\n isMarkerInsideAnyCircle = true;\r\n break;\r\n }\r\n }\r\n\r\n ////keep only marker tha iside polygon or circle else remove it\r\n if (isMarkerInsideAnyPolygon || isMarkerInsideAnyCircle)\r\n marker.setMap(this.map);\r\n else\r\n marker.setMap(null);\r\n\r\n }//endif\r\n });///endforloop\r\n\r\n }\r\n\r\n onMouseOver($event, infoWindow, path) {\r\n if (this.previous) {\r\n this.previous.close();\r\n }\r\n this.previous = infoWindow;\r\n // //alert($event.latLng.lat());\r\n //console.log($event.coords.lat)//-susheel\r\n this.polyLat = $event.coords.lat;\r\n this.polyLng = $event.coords.lng;\r\n this.infoRegionbody = path.label;\r\n infoWindow.open();\r\n }\r\n\r\n onMouseOut($event, infoWindow) {\r\n //infoWindow.close();\r\n }\r\n\r\n GetAllMapRegion() {\r\n this.isLoading = true;\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapRegion';\r\n\r\n this.GetMapConfigData_Service().subscribe((res: any) => {\r\n\r\n //console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //console.log(rows);\r\n this.mapRegionList = rows;\r\n this.mapRegionList.unshift('--Select Region--');\r\n //this.GetMapConfigData();\r\n //this.controlReg.setValue({ name: rows });\r\n this.getListReg();\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n GetMapRegionDetail(criteriaName, clearInput?) {\r\n ////alert('GetMapRegionDetail');\r\n debugger\r\n this.isLoading = true;\r\n this.removePolgonPath(); // Method to remove the polygon from the map\r\n\r\n if (criteriaName == \"--Select Region--\") {\r\n criteriaName = \"0\";\r\n ///////////// Set region name in subsribe so on edit click load region name in region config\r\n this.commonFilterService.SetGmapRegion(criteriaName);\r\n }\r\n\r\n if (this.MapRegClose) {\r\n this.MapRegClose = false;\r\n return;\r\n }\r\n\r\n this.inputLengthReg = criteriaName.length;\r\n if (criteriaName == \"0\") {\r\n this.inputLengthReg = 0;\r\n this.paths = [];\r\n this.mapRegionSelected = \"0\";\r\n this.isLoading = false;\r\n return;\r\n }\r\n else {\r\n this.modelRegName = criteriaName;\r\n this.mapRegionSelected = criteriaName;\r\n }\r\n\r\n ///////////// Set region name in subsribe so on edit click load region name in region config\r\n this.commonFilterService.SetGmapRegion(criteriaName);\r\n\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapRegion?criteriaName=' + criteriaName;\r\n\r\n this.isLoading = true;\r\n this.GetMapConfigData_Service().subscribe((res: any) => {\r\n //console.log(res);\r\n\r\n let rows: any[] = JSON.parse(res) as any[];\r\n this.BindMapRegion(rows, false);\r\n\r\n if (this.myConfigNameReg == \"null\")\r\n this.OpenAutoCompeleteDailogReg(clearInput);\r\n\r\n this.isLoading = false;\r\n });\r\n // this.isLoading = false;\r\n }\r\n\r\n ////this func is called when mainfilter has map region configured in it.\r\n async GetMainFilterMapRegion() {\r\n ////alert('GetMapRegionDetail');\r\n this.isLoading = true;\r\n let isMainFilterContainsRegionName = this.mainFilterMapRegionName != '' ? true : false; ////check selected mainfilter has region name in it.\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapRegion?criteriaName=' + this.mainFilterMapRegionName;\r\n await this.GetMapConfigData_Service().subscribe((res: any) => {\r\n\r\n let rows: any[] = JSON.parse(res) as any[];\r\n this.BindMapRegion(rows, isMainFilterContainsRegionName);\r\n debugger;\r\n this.toggleMapRegion = false;///to show only pins inside region\r\n this.ToggleMapRegion();\r\n this.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n async BindMapRegion(mapRegion, isMainFilterContainsRegionName = false): Promise {\r\n debugger;\r\n\r\n this.paths = [];\r\n //let isMainFilterContainsRegionName = this.mainFilterMapRegionName != '' ? true : false; ////check selected mainfilter has region name in it.\r\n\r\n if (mapRegion.length > 0) {\r\n this.isLoading = true;\r\n this.setLimitedOptionsReg = true;\r\n this.regNamesObservable = this.mapRegionList;\r\n\r\n try {\r\n // if ($(hiddenArrayRegs[ha] + txtId).val().length > 0) {//hidden field of dataquery.aspx page\r\n var province = \";\";\r\n //let regindex = 0;\r\n //console.log(mapRegion);\r\n for (let h = 0; h < mapRegion.length; h++) {\r\n //regindex = regindex + 1;\r\n var splitEachReg = mapRegion[h].RegGPSLatLngs.split(';');\r\n var chosenColorLoad = \"#\" + mapRegion[h].RegColors;\r\n var polyLabel = mapRegion[h].RegNames;\r\n var regionArr = [];\r\n\r\n for (let i = 0; i < splitEachReg.length - 1; i++) {\r\n if ((splitEachReg[i].split('^'))[1] != '3') {//place, Degrees or co-ordinates\r\n //console.log((splitEachReg[i].split('^'))[0]);\r\n var Lat = parseFloat(((splitEachReg[i].split('^'))[0].split(','))[0]);\r\n var Lng = parseFloat(((splitEachReg[i].split('^'))[0].split(','))[1]);\r\n\r\n //var latLng = new google.maps.LatLng(Lat, Lng);//parseFloat(\r\n regionArr.push({ lat: Lat, lng: Lng, label: polyLabel, polyColor: chosenColorLoad });\r\n\r\n }\r\n else {//Province\r\n //console.log('start province');\r\n //console.log((splitEachReg[i].split('^'))[1]);\r\n province += ((splitEachReg[i].split('^'))[0].split(','))[1] + \"@\" + polyLabel + \"@\" + chosenColorLoad + \";\";\r\n //console.log('end province');\r\n }\r\n }\r\n this.paths.push(regionArr);\r\n if (regionArr.length > 0) {\r\n if (splitEachReg.length >= 4) {\r\n var flightPath = this.makePolygon(regionArr, chosenColorLoad, polyLabel, isMainFilterContainsRegionName);\r\n //arrPolys.push(flightPath);\r\n }\r\n else\r\n this.drawCircle(regionArr, map, chosenColorLoad, polyLabel, isMainFilterContainsRegionName);\r\n }\r\n }\r\n\r\n //By all provinces of all regions\r\n if (province != \";\") {\r\n //debugger;\r\n //console.log(province);\r\n await this.getProviceList(); //// this.getProviceList((arrProvinces[p].split('@'))[0])\r\n //debugger;\r\n\r\n var arrProvinces = province.split(';');\r\n for (var p = 1; p < arrProvinces.length - 1; p++) {\r\n var provPolyLabel = (arrProvinces[p].split('@'))[1] + \" : \" + (arrProvinces[p].split('@'))[0];\r\n var provChosenColorLoad = (arrProvinces[p].split('@'))[2];\r\n\r\n //console.log(p);\r\n //console.log(provPolyLabel);\r\n //console.log(((arrProvinces[p].split('@'))[0]))\r\n //console.log(this.Province0List);\r\n\r\n var wsCoords = this.Province0List.filter(items => items.name == ((arrProvinces[p].split('@'))[0])); //.split('@');//Coor array\r\n\r\n //if (wsCoords.length <= 0)\r\n // wsCoords = this.Province1List.filter(items => items.name == ((arrProvinces[p].split('@'))[0]));\r\n //if (wsCoords.length <= 0)\r\n // wsCoords = this.Province2List.filter(items => items.name == ((arrProvinces[p].split('@'))[0]));\r\n //if (wsCoords.length <= 0)\r\n // wsCoords = this.Province3List.filter(items => items.name == ((arrProvinces[p].split('@'))[0]));\r\n\r\n\r\n for (var co = 0; co < wsCoords.length; co++) {\r\n\r\n var regionArrProv = new Array();\r\n ////// 'Wyoming@Example3_US@#CC0099'\r\n if (Array.isArray(wsCoords[co].coordinates)) {\r\n ////////// for array of cooradinates\r\n for (let i = 0; i < wsCoords[co].coordinates.length; i++) {\r\n var coordsAll = wsCoords[co].coordinates[i];\r\n var coords = coordsAll.split(' ');//split by space\r\n\r\n regionArrProv = new Array();\r\n\r\n for (var j = 0; j < coords.length; j++) {\r\n if (coords[j].trim().length > 0) {\r\n try {\r\n var cordlatlng = coords[j].trim().split(\",\");\r\n var Lat = parseFloat(cordlatlng[1]);\r\n var Lng = parseFloat(cordlatlng[0]);\r\n var latLng = new google.maps.LatLng(Lat, Lng);//parseFloat(\r\n\r\n regionArrProv.push(latLng);\r\n }\r\n catch (error) {\r\n console.log(coords[j]);\r\n }\r\n }\r\n }\r\n var flightPathProv = this.makePolygon(regionArrProv, provChosenColorLoad, provPolyLabel, isMainFilterContainsRegionName);\r\n }\r\n }\r\n else {\r\n var coordsAll = wsCoords[co].coordinates; //// singe property of coordinates\r\n var coords = coordsAll.split(' ');//split by space\r\n regionArrProv = new Array();\r\n for (var j = 0; j < coords.length; j++) {\r\n if (coords[j].trim().length > 0) {\r\n try {\r\n var cordlatlng = coords[j].trim().split(\",\");\r\n var Lat = parseFloat(cordlatlng[1]);\r\n var Lng = parseFloat(cordlatlng[0]);\r\n var latLng = new google.maps.LatLng(Lat, Lng);//parseFloat(\r\n\r\n regionArrProv.push(latLng);\r\n }\r\n catch (error) {\r\n console.log(coords[j]);\r\n }\r\n }\r\n }\r\n var flightPathProv = this.makePolygon(regionArrProv, provChosenColorLoad, provPolyLabel, isMainFilterContainsRegionName);\r\n }\r\n //var flightPathProv = this.makePolygon(regionArrProv, provChosenColorLoad, provPolyLabel);\r\n\r\n }\r\n\r\n }\r\n\r\n }///end province\r\n }\r\n catch (ex) {\r\n console.log();\r\n }\r\n this.isLoading = false;\r\n }\r\n this.isLoading = false;\r\n }\r\n\r\n\r\n async getProviceList(): Promise {\r\n try {\r\n this.Province0List = await this.http.get('assets/ng-crud-table/KMLMaps/Provinces_New.json').toPromise();\r\n //this.Province0List = await this.http.get('assets/ng-crud-table/KMLMaps/Provinces0.json').toPromise();\r\n //this.Province1List = await this.http.get('assets/ng-crud-table/KMLMaps/Provinces1.json').toPromise();\r\n //this.Province2List = await this.http.get('assets/ng-crud-table/KMLMaps/Provinces2.json').toPromise();\r\n //this.Province3List = await this.http.get('assets/ng-crud-table/KMLMaps/Provinces3.json').toPromise();\r\n }\r\n catch (error) {\n console.error('Error loading Provinces data', error);\n }\r\n //this.http.get('assets/ng-crud-table/KMLMaps/Provinces3.json').subscribe(data => {//obj of arrays having name key\r\n // debugger;\r\n // console.log(data);\r\n // this.ProvinceList= data.filter(items => items.name == regionName);\r\n\r\n //});\r\n }\r\n\r\n removePolgonPath() {\r\n ////alert('remove');\r\n debugger\r\n if (this.polygonPathList) {\n //this.polygonPath.setMap(null); // Remove the polygon from the map\n //this.polygonPath = null; // Optionally, clean up the reference\n this.polygonPathList.forEach(polygon => {\n polygon.setMap(null); // Remove the polygon from the map\n });\n this.polygonPathList = []; // Clear the array\n }\r\n\r\n if (this.circleRegionList) {\r\n this.circleRegionList.forEach(circleRegion => {\n circleRegion.setMap(null); // Remove the polygon from the map\n });\r\n this.circleRegionList = [];\r\n }\r\n\r\n }\r\n\r\n /////to remove region path that are drawn from mainfilter\r\n removeMainFilterRegionPolgonPath() {\r\n ////alert('removemfRegion');\r\n debugger\r\n //this.tempMarker = [];///clear tempmarker once main filter is set OFF\r\n\r\n if (this.mainFilterRegionPolygonPathList) {\n //this.polygonPath.setMap(null); // Remove the polygon from the map\n //this.polygonPath = null; // Optionally, clean up the reference\n this.mainFilterRegionPolygonPathList.forEach(polygon => {\n polygon.setMap(null); // Remove the polygon from the map\n });\n this.mainFilterRegionPolygonPathList = []; // Clear the array\n }\r\n\r\n if (this.mainFilterRegionCircleRegionList) {\r\n this.mainFilterRegionCircleRegionList.forEach(circleRegion => {\n circleRegion.setMap(null); // Remove the polygon from the map\n });\r\n this.mainFilterRegionCircleRegionList = [];\r\n }\r\n\r\n }\r\n\r\n\r\n makePolygon(polyCoords, chosenColor, polyLabel, mainfilterMapRegionSelected = false) {\r\n //debugger;\r\n\r\n ////color: red;\r\n ////background - color: white;\r\n ////font - family: \"Lucida Grande\", \"Arial\", sans - serif;\r\n ////font - size: 10px;\r\n ////font - weight: bold;\r\n ////text - align: center;\r\n ////width: auto;\r\n ////border: 2px solid black;\r\n ////white - space: nowrap;\r\n\r\n var polyMarker = new google.maps.Marker({\r\n position: new google.maps.LatLng(0, 0),\r\n draggable: false,\r\n raiseOnDrag: false,\r\n map: this.map,\r\n label: {\n text: polyLabel,\n fontSize: \"14px\",\n fontWeight: \"bold\",\n color: \"white\",\n },\r\n //labelAnchor: new google.maps.Point(30, 20),\r\n //labelClass: \"labels\", // the CSS class for the label\r\n labelStyle: { opacity: 1.0 },\r\n icon: {\n path: google.maps.SymbolPath.CIRCLE,\n scale: 0 // Use an invisible icon to only show the label\n },\r\n visible: false\r\n });\r\n\r\n\r\n //var flightPath;\r\n if (chosenColor == \"#FFFFFF\") {\r\n this.polygonPath = new google.maps.Polygon({\r\n paths: polyCoords,\r\n rokeColor: chosenColor,\r\n strokeOpacity: 0,\r\n strokeWeight: 2,\r\n fillColor: chosenColor,\r\n fillOpacity: 0,\r\n map: this.map\r\n });\r\n }\r\n else {\r\n this.polygonPath = new google.maps.Polygon({\r\n paths: polyCoords,\r\n rokeColor: chosenColor,\r\n //strokeOpacity: strokeTrans,\r\n //strokeWeight: 2,\r\n fillColor: chosenColor,\r\n //fillOpacity: fillTrans,\r\n map: this.map\r\n });\r\n }\r\n //flightPath.setMap(map);\r\n //flightPath.setMap(this.map);\r\n\r\n //Display MarkerLabel when mouseOver\r\n google.maps.event.addListener(this.polygonPath, \"mousemove\", function (event) {\r\n polyMarker.setPosition(event.latLng);\r\n polyMarker.setVisible(true);\r\n if (chosenColor == \"#FFFFFF\")\r\n polyMarker.setVisible(false);\r\n //const position = event.latLng;\n //if (position) {\n // this.showLabel(position, \"Hovered Region Label\");\n //}\r\n });\r\n google.maps.event.addListener(this.polygonPath, \"mouseout\", function (event) {\r\n polyMarker.setVisible(false);\r\n //this.hideLabel();\r\n });\r\n //google.maps.event.addListener(flightPath, \"mouseover\", function (event) {\r\n // latlngZoomCenter = event.latLng;//new google.maps.LatLng(lat, lng); //sets same region position\r\n // document.getElementById(\"boundHid\").value = latlngZoomCenter;\r\n //});\r\n //debugger;\r\n //////// if mainfilter selected has map region name\r\n if (mainfilterMapRegionSelected)\r\n this.mainFilterRegionPolygonPathList.push(this.polygonPath);\r\n else\r\n this.polygonPathList.push(this.polygonPath);\r\n\r\n return this.polygonPath;\r\n }\r\n\r\n drawCircle(places, map, chosenColor, polyLabel, mainfilterMapRegionSelected = false) {\r\n //var polyMarker = new MarkerWithLabel({\r\n // position: new google.maps.LatLng(0, 0),\r\n // draggable: false,\r\n // raiseOnDrag: false,\r\n // map: map,\r\n // labelContent: polyLabel,\r\n // labelAnchor: new google.maps.Point(30, 20),\r\n // labelClass: \"labels\", // the CSS class for the label\r\n // labelStyle: { opacity: 1.0 },\r\n // icon: \"http://placehold.it/1x1\",\r\n // visible: false\r\n //});\r\n var polyMarker = new google.maps.Marker({\r\n position: new google.maps.LatLng(0, 0),\r\n draggable: false,\r\n raiseOnDrag: false,\r\n map: this.map,\r\n label: {\n text: polyLabel,\n fontSize: \"12px\",\n fontWeight: \"bold\",\n color: \"red\",\n },\r\n labelAnchor: new google.maps.Point(30, 20),\r\n //labelClass: \"labels\", // the CSS class for the label\r\n labelStyle: { opacity: 1.0 },\r\n icon: {\n path: google.maps.SymbolPath.CIRCLE,\n scale: 0 // Use an invisible icon to only show the label\n },\r\n visible: false\r\n });\r\n\r\n var strokeTrans = 0.8;\r\n var fillTrans = 0.2;\r\n if (chosenColor == \"#FFFFFF\") {\r\n strokeTrans = 0;\r\n fillTrans = 0;\r\n }\r\n for (var i = 0, place; place = places[i]; i++) {\r\n var circleRegion = new google.maps.Circle({\r\n center: place,\r\n radius: 200000,\r\n strokeColor: chosenColor,\r\n strokeOpacity: strokeTrans,\r\n strokeWeight: 2,\r\n fillColor: chosenColor,\r\n fillOpacity: fillTrans\r\n });\r\n circleRegion.setMap(this.map);\r\n\r\n //////// if mainfilter selected has map region name\r\n if (mainfilterMapRegionSelected)\r\n this.mainFilterRegionCircleRegionList.push(circleRegion);\r\n else\r\n this.circleRegionList.push(circleRegion);\r\n\r\n google.maps.event.addListener(circleRegion, \"mousemove\", function (event) {\r\n polyMarker.setPosition(event.latLng);\r\n polyMarker.setVisible(true);\r\n if (chosenColor == \"#FFFFFF\")\r\n polyMarker.setVisible(false);\r\n });\r\n google.maps.event.addListener(circleRegion, \"mouseout\", function (event) {\r\n polyMarker.setVisible(false);\r\n });\r\n //google.maps.event.addListener(myCity, \"mouseover\", function (event) {\r\n // latlngZoomCenter = place;//new google.maps.LatLng(lat, lng); //sets same region position\r\n // document.getElementById(\"boundHid\").value = latlngZoomCenter;\r\n //});\r\n }\r\n }\r\n\r\n // Method to show the custom label using OverlayView\n div: any;\n showLabel(position: google.maps.LatLng, text: string) {\n // //alert();\n // Create the custom label overlay if it doesn't exist\n if (!this.customLabelOverlay) {\n this.customLabelOverlay = new google.maps.OverlayView();\n\n this.customLabelOverlay.onAdd = () => {\n const div = document.createElement('div');\n div.style.position = 'absolute';\n div.style.backgroundColor = 'white'; // Background color\n div.style.border = '2px solid black'; // Border color and thickness\n div.style.padding = '5px'; // Padding around the text\n div.style.fontFamily = '\"Lucida Grande\", \"Arial\", sans - serif'; // Font style\n div.style.fontSize = '12px'; // Font size\n div.style.fontWeight = 'bold'; // Font weight\n div.style.color = 'red'; // Text color\n div.style.whiteSpace = 'nowrap'; // Prevent text wrapping\n div.style.borderRadius = '5px'; // Rounded corners\n div.innerText = text; // The text of the label\n\n const panes = this.customLabelOverlay.getPanes();// ?.getPanes();\n if (panes) {\n panes.overlayLayer.appendChild(div);\n }\n\n //(this.customLabelOverlay as any).div = div;\n\n // Store div for later access in `draw` and `onRemove`\n this.div = div;\n\n };\n\n this.customLabelOverlay.draw = () => {\n const projection = this.customLabelOverlay.getProjection(); //this.customLabelOverlay ?.getProjection();\n const pixelPosition = projection.fromLatLngToDivPixel(position); //projection ?.fromLatLngToDivPixel(position);\n\n //if (pixelPosition && this.customLabelOverlay ?.div) {\n if (pixelPosition && this.div) {\n //this.customLabelOverlay.div.style.left = `${pixelPosition.x}px`;\n //this.customLabelOverlay.div.style.top = `${pixelPosition.y}px`;\n this.div.style.left = pixelPosition.x + 'px';\n this.div.style.top = pixelPosition.y + 'px';\n }\n };\n\n this.customLabelOverlay.onRemove = () => {\n //if (this.customLabelOverlay ?.div) {\n // this.customLabelOverlay.div.parentNode ?.removeChild(this.customLabelOverlay.div);\n // this.customLabelOverlay.div = null;\n //}\n // Remove the div from the map when the overlay is removed\n if (this.div) {\n\n this.div.parentNode.removeChild(this.div);\n this.div = null;\n }\n };\n\n this.customLabelOverlay.setMap(this.map); // Set the label on the map\n } else {\n // Update the position and text of the label\n //this.customLabelOverlay.draw = () => {\n // const projection = this.customLabelOverlay ?.getProjection();\n // const pixelPosition = projection ?.fromLatLngToDivPixel(position);\n\n // if (pixelPosition && this.customLabelOverlay ?.div) {\n // this.customLabelOverlay.div.style.left = `${pixelPosition.x}px`;\n // this.customLabelOverlay.div.style.top = `${pixelPosition.y}px`;\n // this.customLabelOverlay.div.innerText = text;\n // }\n //};\n }\n }\r\n\r\n // Method to hide the custom label\n hideLabel(): void {\n if (this.customLabelOverlay) {\n this.customLabelOverlay.setMap(null); // Remove the label from the map\n this.customLabelOverlay = null; // Clean up the reference\n }\n }\r\n\r\n /////////////// end Polygon\r\n\r\n /// start Toggle Div\r\n DivToggle(controlName) {\r\n\r\n switch (controlName) {\r\n case 'showAnalysis':\r\n this.showAnalysis = !this.showAnalysis;\r\n break;\r\n case 'showNetTest':\r\n this.showNetTest = !this.showNetTest;\r\n break;\r\n case 'showMobileInfo':\r\n this.showMobileInfo = !this.showMobileInfo;\r\n break;\r\n case 'showErrorEvents':\r\n this.showErrorEvents = !this.showErrorEvents;\r\n break;\r\n case 'showTypes':\r\n this.showTypes = !this.showTypes;\r\n break;\r\n case 'showResults':\r\n this.showResults = !this.showResults;\r\n break;\r\n }\r\n\r\n }\r\n /// end toggle div\r\n\r\n //////////////////// start Check ALL / UnCheck ALL\r\n CheckBox(event) {\r\n const checked = event.target.checked;\r\n //this.nontrade.forEach(item => item.selected = checked);\r\n }\r\n\r\n\r\n GetMapChanges(controlName = '') {//shoukd be similar to below GetMapConfigByID function\r\n this.isLoading = true;\r\n this.stopFollowRoadRoute = true;\r\n if (controlName != '')\r\n this.DivToggle(controlName);\r\n\r\n ///// on display options selectoins, maintain zoom position to previuosly selected position\r\n if (this.mapDisplayOptions.PredefinedConfig.restoreLat != 0 && this.mapDisplayOptions.PredefinedConfig.restoreLng != 0) {\r\n this.zoom = this.mapDisplayOptions.PredefinedConfig.restoreZoom;\r\n this.lat = this.mapDisplayOptions.PredefinedConfig.restoreLat;\r\n this.lng = this.mapDisplayOptions.PredefinedConfig.restoreLng;\r\n }\r\n\r\n /////to handle general filterswhen coming from another page and editeventid filter this.delFilterColName = 'clearAllFilters'; clearAllFilters\r\n //this.commonFilterService.ClearAllFilters.subscribe(res => { this.delFilterColName = 'clearAllFilters'; });\r\n this.HandleGeneralFilter();\r\n\r\n this.GetDispaylOption();\r\n //debugger\r\n //if (this.commonFilterDates == undefined || this.commonFilterDates == \"\")\r\n this.SetcommonFilterDates();\r\n ////\r\n this.preDefinedConfigParam = new PredefinedConfig();\r\n this.preDefinedConfigParam.strStartDate = this.commonFilterDates.split('^')[0];\r\n this.preDefinedConfigParam.strEndDate = this.commonFilterDates.split('^')[1];\r\n this.preDefinedConfigParam.strLastRecord = '';\r\n this.preDefinedConfigParam.TimeStamp_Type = this.TSSelected.toString();\r\n //console.log(this.TSSelected)\r\n this.preDefinedConfigParam.FilterOnOff = 1;\r\n this.preDefinedConfigParam.MainFilterID = this.MainFilterID;\r\n if (this.preDefinedConfigParam.MainFilterID > 0)\r\n this.preDefinedConfigParam.FilterOnOff = 0;\r\n if (this.genArr.length > 0)\r\n this.preDefinedConfigParam.FilterOnOff = 0;\r\n\r\n //console.log(\"GetMapChanges() = \");\r\n //console.log(this.genArr.length);\r\n //if (this.genArr.length == 0) {\r\n // //alert();\r\n\r\n //}\r\n //debugger;\r\n this.preDefinedConfigParam.limitPinCount = this.limitPinCount;\r\n this.mapDisplayOptions.PredefinedConfig = this.preDefinedConfigParam;\r\n\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapOnChangeEvent';\r\n\r\n this.preDefinedConfigParam.generalFilter = this.genArr;\r\n\r\n /////// Set mapDisplayOptions in services, this will be used to restore when return to googlemap from another page\r\n this.mapDisplayOptions.displayOptionApplied = true;\r\n //debugger;\r\n this.commonFilterService.SetGMapDisplayOption(this.mapDisplayOptions);\r\n\r\n this.GetMapDispayOptions_Service().subscribe((res: any) => {\r\n let rows: any[] = JSON.parse(res) as any[];\r\n ////console.log(rows)\r\n //if (rows != null)\r\n // this.BindMapDetails(rows);\r\n //debugger;\r\n if (rows != null) {\r\n if (rows.length > 1) {\r\n\r\n let checkPolqaRecords = false;\r\n if (this.usePredefinedConfig == 'ON') {\r\n if (rows[rows.length - 2].includes('POLQA'))\r\n checkPolqaRecords = true;\r\n\r\n this.SetPinLegnd(rows[rows.length - 2]);\r\n }\r\n\r\n //// legend popup data\r\n this.dynamicLegendPopupData = [];\r\n this.dynamicLegendPopupData.push(JSON.parse(rows[rows.length - 1]));\r\n //console.log(this.dynamicLegendPopupData);\r\n //this.legendPopupData = this.dynamicLegendPopupData;\r\n\r\n if (this.usePredefinedConfig == \"ON\") {\r\n rows.pop();\r\n rows.pop();\r\n }\r\n\r\n this.BindMapDetails(rows);////elumalai\r\n\r\n if (this.usePredefinedConfig == 'ON') {\r\n //console.log('no audio count');\r\n //console.log(this.NoAudioPolqa_OnePoinOne.length);\r\n //console.log(this.totalNoAudioScore);\r\n //debugger;\r\n if (checkPolqaRecords) {\r\n this.dynamicPinLegends.push(\r\n {\r\n queryCount: this.totalNoAudioScore,\r\n imgSrc: 'NoAudioPolqaMark',\r\n resultType: 'POLQA',\r\n thresholdType: '( NO AUDIO )',\r\n pinType: '',\r\n condVal: 'POLQA MOS <= 1.1',//susheel\r\n noOfRows: this.totalNoAudioScore,\r\n MarkerPinType: 'NoAudioPolqaMark',\r\n iconText: 'X',\r\n iconBGColor: 'Red',\r\n iconFontColor: 'Black',\r\n legendName: 'POLQA',\r\n dynamicBubbleClass: ''//\r\n }\r\n );\r\n }\r\n }///end if\r\n\r\n //this.BindMapDetails(rows);//susheel\r\n }\r\n }\r\n else {\r\n this.markers = [];\r\n this.markerCollection = [];\r\n }\r\n\r\n this.isLoading = false;\r\n });\r\n\r\n ////// start handle genral filter for cloumn filter\r\n if (this.delFilterColName != '' && this.delFilterColName != 'clearAllFilters') {\r\n this.delColSelected = true;\r\n\r\n this.commonFilterService.setDeleteFilterData('');//reset if delete\r\n\r\n if (this.delFilterColName == 'VQuad_CallID') {\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n }\r\n\r\n this.genArrDel = this.AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"] != this.delFilterColName;\r\n });\r\n //console.log(this.genArrDel)\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n else if (this.delFilterColName == 'clearAllFilters') {\r\n this.clearAllFiltersBool = true;\r\n\r\n this.commonFilterService.setClearAllFiltersData();//reset if delete\r\n this.commonFilterService.setGeneralFilterData(this.filters);\r\n\r\n this.filtersWithEventID = {};\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n\r\n this.genArrDel = [];\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n\r\n ////// end handle genral filter for cloumn filter\r\n\r\n }\r\n\r\n GetDispaylOption() {\r\n\r\n this.mapDisplayOptions.mapConfigID = this.mapConfigID;\r\n this.mapDisplayOptions.usePredefinedConfig = this.usePredefinedConfig == \"OFF\" ? 0 : 1;\r\n this.mapDisplayOptions.analysisEnabled = this.analysisEnabled;\r\n this.mapDisplayOptions.netTestEnabled = this.netTestEnabled;\r\n this.mapDisplayOptions.mobileInfoEnabled = this.mobileInfoEnabled;\r\n this.mapDisplayOptions.errorEventsEnabled = this.errorEventsEnabled;\r\n this.mapDisplayOptions.DisplayResultList = this.DisplayResultList;//DisplayResultList\r\n this.mapDisplayOptions.AnalysisList = this.AnalysisList;\r\n this.mapDisplayOptions.NetTestList = this.NetTestList;\r\n this.mapDisplayOptions.MobileInfoList = this.MobileInfoList;\r\n this.mapDisplayOptions.ErrorEventList = this.ErrorEventList;\r\n this.mapDisplayOptions.TypeList = this.TypeList;\r\n this.mapDisplayOptions.ResultList = this.ResultList;\r\n }\r\n\r\n //////////////////// end Check ALL / UnCheck ALL\r\n\r\n ////////////////// start Get PageLoad Data\r\n test: string;\r\n selMapConfig: string;\r\n GetPredefinedConfig(prevConfigID?) {\r\n //debugger;\r\n this.routeLatLng = [];\r\n this.stopFollowRoadRoute = true;\r\n this.isLoading = true;\r\n if (this.previous) {\r\n //console.log(this.previous[\"isOpen\"])\r\n if (this.previous[\"isOpen\"] == true)\r\n this.previous[\"isOpen\"] = false;\r\n }\r\n\r\n //this.GetDispaylOption();\r\n if (this.mapDisplayOptions.PredefinedConfig.restoreLat != 0 && this.mapDisplayOptions.PredefinedConfig.restoreLng != 0) {\r\n if (this.mapDisplayOptions.mapConfigID > 0)\r\n this.selMapConfig = this.mapDisplayOptions.mapConfigID.toString();\r\n\r\n this.zoom = this.mapDisplayOptions.PredefinedConfig.restoreZoom;\r\n this.lat = this.mapDisplayOptions.PredefinedConfig.restoreLat;\r\n this.lng = this.mapDisplayOptions.PredefinedConfig.restoreLng;\r\n }\r\n\r\n this.commonFilterService.setUsePredefinedConfigData(this.usePredefinedConfig);\r\n\r\n if (this.usePredefinedConfig == \"ON\") {\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapFilter';\r\n\r\n this.GetMapConfigData_Service().subscribe((res: any) => {\r\n this.isLoading = false;\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //console.log(rows)\r\n\r\n //debugger;\r\n this.mapFilterConfigList = rows;\r\n if (rows.length > 0)//susheel\r\n {\r\n //console.log(prevConfigID)\r\n if (!prevConfigID) {\r\n if (!this.selMapConfig) {////if (this.selMapConfig === undefined || this.selMapConfig === \"\") {\r\n this.selMapConfig = rows[0].ID;\r\n this.control.setValue({ Name: rows[0].Name });\r\n }\r\n else {\r\n if (this.selMapConfig == \"0\") {////if (this.selMapConfig === undefined || this.selMapConfig === \"\") {\r\n this.selMapConfig = rows[0].ID;\r\n this.control.setValue({ Name: rows[0].Name });\r\n }\r\n else {\r\n /////// SET below the input text value - this.selMapConfig has previuosly selected value\r\n let mapConfigSelArr = this.mapFilterConfigList.find(m => m.ID == this.selMapConfig);\r\n if (mapConfigSelArr)\r\n this.control.setValue({ Name: mapConfigSelArr.Name });\r\n }\r\n }\r\n //this.control.setValue({ id: this.selMapConfig });\r\n //console.log(this.selMapConfig)-susheel\r\n\r\n this.selectedMapConfigID = Number(this.selMapConfig)/////after restoredisplayoption to set previuos selected value in dropdown\r\n }\r\n this.getList();\r\n //if (this.myConfigName == \"null\")\r\n // this.OpenAutoCompeleteDailog(true);\r\n\r\n this.GetMapConfigByID(this.selMapConfig);\r\n }\r\n\r\n\r\n this.GetAllMapRegion();\r\n });\r\n }\r\n else {\r\n //debugger\r\n this.isLoading = false;\r\n this.GetMapConfigData();\r\n }\r\n }\r\n\r\n AllGeneralFilter = [];\r\n filtersWithEventID = {};\r\n filters = {};\r\n delFilterColName = '';\r\n async GetMapConfigData() {\r\n //debugger;\r\n this.Loading = \"Loading ...\"\r\n this.isLoading = true;\r\n\r\n //this.commonFilterService.GeneralEventIDFilter.subscribe(res => {\r\n // //console.log(res)\r\n // this.filtersWithEventID = res;\r\n //});\r\n //this.commonFilterService.ClearAllFilters.subscribe(res => { this.clearAllGeneralFilters(); });\r\n\r\n //console.log(this.delFilterColName)\r\n if (this.delFilterColName == 'VQuad_CallID') {\r\n this.filtersWithEventID = {};\r\n for (const key in this.filters) {\r\n if (key == 'VQuad_CallID')\r\n delete this.filters[key];\r\n }\r\n }\r\n else if (this.delFilterColName == 'clearAllFilters') {\r\n this.filtersWithEventID = {};\r\n for (const key in this.filters) {\r\n if (key.toUpperCase() !== this.SetTimestampSearch(this.TSSelected).toUpperCase())\r\n delete this.filters[key];\r\n }\r\n }\r\n\r\n if (this.delFilterColName != 'clearAllFilters') {\r\n this.genArr = this.AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"].toUpperCase() != this.SetTimestampSearch(this.TSSelected).toUpperCase();\r\n });\r\n\r\n this.commonFilterService.GeneralFilterDF.subscribe(res => {\r\n //console.log(res)\r\n this.filters = res;\r\n });\r\n }\r\n\r\n if (typeof this.filtersWithEventID == 'object' && Object.keys(this.filtersWithEventID).length > 0) {\r\n this.dataFilter.filters = this.filtersWithEventID;\r\n //console.log(filtersWithEventID)\r\n this.genArr = this.genArr.filter(el => {\r\n return el[\"ColumnName\"] != 'VQuad_CallID';\r\n });\r\n let generalFilterArrayAll = this.dataFilter.getProcessedFiltersArray(\"ALL\");\r\n this.genArr = [...this.genArr, ...generalFilterArrayAll];\r\n\r\n for (const key in this.filters) {\r\n if (key == 'VQuad_CallID')\r\n delete this.filters[key];\r\n }\r\n let generalFilterArrayNew = this.dataFilter.getProcessedFilters(\"\");\r\n this.filters = { ...this.filters, ...generalFilterArrayNew };\r\n }\r\n else if (Object.keys(this.filtersWithEventID).length == 0) {\r\n this.genArr = this.genArr.filter(el => {\r\n return el[\"ColumnName\"] != 'VQuad_CallID';\r\n });\r\n\r\n for (const key in this.filters) {\r\n if (key == 'VQuad_CallID')\r\n delete this.filters[key];\r\n }\r\n\r\n }\r\n //console.log(genArr)\r\n //console.log(filters)\r\n\r\n if (this.delFilterColName != '' && this.delFilterColName != 'clearAllFilters') {\r\n //cleared = 1;\r\n this.genArr = this.genArr.filter(el => {\r\n return el[\"ColumnName\"] != this.delFilterColName;\r\n });\r\n\r\n for (const key in this.filters) {\r\n if (key == this.delFilterColName)\r\n delete this.filters[key];\r\n }\r\n }\r\n //console.log(this.genArr)\r\n this.hasFilters = this.genArr.length <= 0 ? false : true;\r\n\r\n if (this.delFilterColName != 'clearAllFilters') {\r\n //let newFilters = {};\r\n //for (const key in this.filters) {\r\n // if (this.filters[key].rsltType == 'call-events' || this.filters[key].rsltType == '') {\r\n // let value = this.filters[key].value;\r\n // let matchMode = this.filters[key].matchMode;\r\n // let valueTo = this.filters[key].valueTo;\r\n // let type = this.filters[key].type;\r\n // let rsltType = this.filters[key].rsltType;\r\n // let title = this.filters[key].title;\r\n // newFilters[key] = { value, matchMode, valueTo, type, rsltType, title };\r\n // }\r\n //}\r\n ////console.log(newFilters)\r\n this.commonFilterService.setGeneralFilterData(this.filters);//(newFilters);\r\n }\r\n else\r\n this.hasFilters = false;\r\n\r\n //if (this.MainFilterID != 0) {\r\n this.commonFilterService.DB_BRDiff.subscribe(res => {\r\n this.dbAndBrHrs = res;\r\n });\r\n if (this.dbAndBrHrs == -500) {//query var col table\r\n await this.service.getDBAndBrowserDiffHours('VquadData').then(res => {\r\n this.commonFilterService.setDBAndBrowserHrsDiff(res);\r\n this.dbAndBrHrs = res;\r\n this.commonFilterDates = formatDate(new Date(Date.now() + -1 * 600 * 1000), this.dbTz, this.dbAndBrHrs) + \"^\" + formatDate(new Date(), this.dbTz, this.dbAndBrHrs);//\"06/02/2019 11:00:00^06/02/2019 20:00:00\";\r\n });\r\n }\r\n //}\r\n\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapConfigData';\r\n\r\n ///uncomented by elumalai\r\n this.commonFilterService.TSBetween.subscribe(res => {\r\n // debugger;\r\n this.commonFilterDates = res;\r\n });//latest dates selected is set here from service\r\n\r\n let isMainfilterCustDatetime = false;\r\n this.commonFilterService.mainFilter_ContainsCustDate.subscribe(res => {\r\n //debugger;\r\n if (res) {\r\n isMainfilterCustDatetime = true;\r\n }\r\n });\r\n\r\n //Added to set proper dates here based on range selection\r\n if (!isMainfilterCustDatetime) {\r\n this.commonFilterService.TSRangeFilter.subscribe(res => {\r\n if (res.RangeType !== \"custom\") { this.commonFilterDates = lastDateFunc(res.RangeType, this.dbTz, this.dbAndBrHrs) }\r\n });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n }\r\n this.commonFilterService.setDatesProperties(this.commonFilterDates);\r\n\r\n ////// Common filter dates \r\n //let dates = formatDate(new Date(Date.now() + -1 * 600 * 1000)) + \"^\" + formatDate(new Date());//\"06/02/2019 11:00:00^06/02/2019 20:00:00\";\r\n this.commonFilterService.mfDateTime.subscribe(res => {\r\n if (res != \"\")\r\n this.commonFilterDates = res.replace(';', '^');\r\n });\r\n\r\n\r\n //// common filter date range\r\n //let dates = formatDate(new Date(Date.now() + -1 * 600 * 1000)) + \"^\" + formatDate(new Date());//\"06/02/2019 11:00:00^06/02/2019 20:00:00\"; \r\n //this.commonFilterService.TSBetween.subscribe(res => dates = res);//latest dates selected is set here from service\r\n ////Added to set proper dates here based on range selection\r\n //this.commonFilterService.TSRangeFilter.subscribe(res => { if (res.RangeType !== \"custom\") { dates = lastDateFunc(res.RangeType) } });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n //this.PredefinedConfigOff.push({\r\n //debugger;\r\n\r\n if (!this.hasFilters) {\r\n ///if clearfilter is clicked then remove all filters from this.genArr\r\n //debugger;\r\n\r\n this.genArr = [];\r\n }\r\n\r\n this.preDefinedConfigParam = new PredefinedConfig();\r\n this.preDefinedConfigParam.limitPinCount = this.limitPinCount;\r\n //console.log(this.commonFilterDates)\r\n this.preDefinedConfigParam.strStartDate = this.commonFilterDates.split('^')[0];\r\n this.preDefinedConfigParam.strEndDate = this.commonFilterDates.split('^')[1];\r\n this.preDefinedConfigParam.strLastRecord = '';\r\n\r\n this.preDefinedConfigParam.TimeStamp_Type = this.TSSelected.toString();\r\n\r\n this.preDefinedConfigParam.FilterOnOff = 1;\r\n this.preDefinedConfigParam.MainFilterID = this.MainFilterID;\r\n if (this.preDefinedConfigParam.MainFilterID > 0)\r\n this.preDefinedConfigParam.FilterOnOff = 0;\r\n // //});\r\n if (this.genArr.length > 0)\r\n this.preDefinedConfigParam.FilterOnOff = 0;\r\n\r\n\r\n //console.log(\"GetMapConfigData() = \");\r\n //console.log(this.genArr.length);\r\n\r\n this.preDefinedConfigParam.generalFilter = this.genArr;\r\n\r\n /////// Set mapDisplayOptions in services, this will be used to restore when return to googlemap from another page\r\n this.mapDisplayOptions.PredefinedConfig = this.preDefinedConfigParam;\r\n this.mapDisplayOptions.usePredefinedConfig = this.usePredefinedConfig == \"OFF\" ? 0 : 1;\r\n //debugger;\r\n this.commonFilterService.SetGMapDisplayOption(this.mapDisplayOptions);\r\n\r\n try {\r\n this.GetMapConfigData_Service().subscribe((res: any) => {\r\n //console.log(res);// - susheel\r\n //debugger;\r\n try {\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //this.isLoading = false;\r\n //let data = rows;\r\n //debugger;\r\n //if (this.usePredefinedConfig == \"OFF\") {\r\n // if (rows != null) {\r\n // if (rows.length > 0) {\r\n // this.pinLegends = rows[rows.length - 1].replace('[', '').replace(']', '').split(',');\r\n // rows.pop();\r\n // }\r\n // }\r\n //}\r\n //else {\r\n // //this.divPinLegends = this.sanitizer.bypassSecurityTrustHtml(rows[rows.length - 1]);\r\n // //rows.pop();\r\n //}\r\n\r\n //this.bluetoothData = rows;\r\n //console.log(rows);// - susheel\r\n debugger;\r\n if (rows != null) {\r\n\r\n this.BindMapDetails(rows);\r\n\r\n }\r\n else {\r\n this.markers = [];\r\n this.markerCollection = [];\r\n }\r\n this.Loading = \"\";\r\n //this.isLoading = false;\r\n // this.isLoading = false; ////elumalai commented due for intiliaze_optimize function as loading image should show till all pins plotted\r\n\r\n //let str = \"1,2,3\"; \r\n //console.log(str.split(\",\"));\r\n //this.cd.detectChanges();\r\n }\r\n catch (ex) {\r\n this.Loading = \"\";\r\n this.isLoading = false;\r\n this.EmptyBindGMap();\r\n }\r\n });\r\n }\r\n catch (ex) {\r\n ////alert(2);\r\n this.Loading = \"\";\r\n this.isLoading = false;\r\n this.EmptyBindGMap();\r\n }\r\n //setTimeout(() => { this.map.triggerResize(); }, 500)\r\n if (this.delFilterColName != '' && this.delFilterColName != 'clearAllFilters') {\r\n this.delColSelected = true;\r\n\r\n this.commonFilterService.setDeleteFilterData('');//reset if delete\r\n\r\n if (this.delFilterColName == 'VQuad_CallID') {\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n }\r\n\r\n this.genArrDel = this.AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"] != this.delFilterColName;\r\n });\r\n //console.log(this.genArrDel)\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n else if (this.delFilterColName == 'clearAllFilters') {\r\n this.clearAllFiltersBool = true;\r\n\r\n this.commonFilterService.setClearAllFiltersData();//reset if delete\r\n this.commonFilterService.setGeneralFilterData(this.filters);\r\n\r\n this.filtersWithEventID = {};\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n\r\n this.genArrDel = [];\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n //debugger\r\n }\r\n\r\n async updateMarkers(newBounds: LatLngBounds) {\r\n //debugger;\r\n\r\n //this.cd.detectChanges();\r\n\r\n //this.markers = [];\r\n //setTimeout(() => {\r\n // //this.markers = this.markerCollection.filter(marker => newBounds.contains(new google.maps.LatLng(marker.lat, marker.lng)));\r\n //}, 1000);\r\n\r\n // setTimeout(() => { this.map.triggerResize(); }, 500)\r\n }\r\n\r\n\r\n\r\n BindMapDetails(mapData) {\r\n this.mapData = mapData;\r\n //console.log(this.mapData.length)\r\n this.markers = [];\r\n this.markerCollection = [];\r\n //debugger;\r\n if (this.usePredefinedConfig == \"OFF\") {\r\n if (this.mapData != null) {\r\n if (this.mapData.length > 0) {\r\n this.pinLegends = this.mapData[this.mapData.length - 1].replace('[', '').replace(']', '').split(',');\r\n ///// for total nettest and Mobile info count\r\n if (this.pinLegends.length > 0) {\r\n //debugger;\r\n this.totalNetTestPassCount = parseInt(this.pinLegends[26]) + parseInt(this.pinLegends[28]) + parseInt(this.pinLegends[30]) + parseInt(this.pinLegends[32]) + parseInt(this.pinLegends[34]) + parseInt(this.pinLegends[36]) + parseInt(this.pinLegends[38]) + parseInt(this.pinLegends[40]) + parseInt(this.pinLegends[42]);\r\n this.totalNetTestFailCount = parseInt(this.pinLegends[27]) + parseInt(this.pinLegends[29]) + parseInt(this.pinLegends[31]) + parseInt(this.pinLegends[33]) + parseInt(this.pinLegends[35]) + parseInt(this.pinLegends[37]) + parseInt(this.pinLegends[39]) + parseInt(this.pinLegends[41]) + parseInt(this.pinLegends[43]);\r\n this.totalMobInfoPassCount = parseInt(this.pinLegends[45]) + parseInt(this.pinLegends[47]) + parseInt(this.pinLegends[49]);\r\n this.totalMobInfoFailCount = parseInt(this.pinLegends[46]) + parseInt(this.pinLegends[48]) + parseInt(this.pinLegends[50]);\r\n this.totalFailuresOverall = (this.totalNetTestFailCount + this.totalMobInfoFailCount + parseInt(this.pinLegends[25])); ////(netTestFailCnt + mobInfoFailCnt + vacFailCnt)\r\n }\r\n this.mapData.pop();\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n this.bluetoothData = this.mapData;\r\n\r\n //if (this.usePredefinedConfig == \"ON\")\r\n // this.mapData.pop();\r\n\r\n if (this.mapData != null) {\r\n ////alert(this.TSSelected.toString());\r\n let timestampTypeMain = \"VQuad \";\r\n if (this.TSSelected == 2)\r\n timestampTypeMain = \"VQT \";\r\n else if (this.TSSelected == 0)\r\n timestampTypeMain = \"Call \";\r\n\r\n this.Initialize(this.mapData, timestampTypeMain, 1);\r\n }\r\n\r\n //console.log(this.markers);\r\n\r\n //for (let i = 0; i < this.mapData.length; i++) {\r\n // var data = this.mapData[i].MERGED.split(\",\");\r\n //this.pinMarker = new marker();GetMapRegion\r\n //this.pinMarker.lat = data[0];\r\n //this.pinMarker.lng = data[1];\r\n //this.pinMarker.label = \"Z\" + i;\r\n //this.pinMarker.iconurl = this.iurl_b;\r\n\r\n //this.markers.push(this.pinMarker);\r\n //}\r\n }\r\n\r\n //////////////// end Get pageload data\r\n\r\n ///////////////////////////////// start get map config byID\r\n\r\n /////// this is created for restorepreviuos display otopn for predefinedconfig ON\r\n async SetcommonFilterDates() {\r\n //debugger\r\n this.commonFilterService.DB_BRDiff.subscribe(res => {\r\n this.dbAndBrHrs = res;\r\n });\r\n if (this.dbAndBrHrs == -500) {//query var col table\r\n await this.service.getDBAndBrowserDiffHours('VquadData').then(res => {\r\n this.commonFilterService.setDBAndBrowserHrsDiff(res);\r\n this.dbAndBrHrs = res;\r\n this.commonFilterDates = formatDate(new Date(Date.now() + -1 * 600 * 1000), this.dbTz, this.dbAndBrHrs) + \"^\" + formatDate(new Date(), this.dbTz, this.dbAndBrHrs);//\"06/02/2019 11:00:00^06/02/2019 20:00:00\";\r\n });\r\n }\r\n //}\r\n\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapConfigData';\r\n\r\n ///uncomented by elumalai\r\n this.commonFilterService.TSBetween.subscribe(res => {\r\n this.commonFilterDates = res;\r\n });//latest dates selected is set here from service\r\n\r\n let isMainfilterCustDatetime = false;\r\n this.commonFilterService.mainFilter_ContainsCustDate.subscribe(res => {\r\n //debugger;\r\n if (res) {\r\n isMainfilterCustDatetime = true;\r\n }\r\n });\r\n\r\n //Added to set proper dates here based on range selection\r\n if (!isMainfilterCustDatetime) {\r\n this.commonFilterService.TSRangeFilter.subscribe(res => {\r\n if (res.RangeType !== \"custom\") { this.commonFilterDates = lastDateFunc(res.RangeType, this.dbTz, this.dbAndBrHrs) }\r\n });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n }\r\n this.commonFilterService.setDatesProperties(this.commonFilterDates);\r\n\r\n ////// Common filter dates \r\n //let dates = formatDate(new Date(Date.now() + -1 * 600 * 1000)) + \"^\" + formatDate(new Date());//\"06/02/2019 11:00:00^06/02/2019 20:00:00\";\r\n this.commonFilterService.mfDateTime.subscribe(res => {\r\n if (res != \"\")\r\n this.commonFilterDates = res.replace(';', '^');\r\n });\r\n }\r\n\r\n clearAllGeneralFilters() {\r\n //console.log(\"cleared\")\r\n this.dataFilter = new DataFilter();\r\n //this.boolClearFilters = true;\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n }\r\n\r\n GetMapConfigByID(mapConfigID, mapLegendApplied = 0) {\r\n //console.log(this.MapClose)\r\n if (this.MapClose) {\r\n this.MapClose = false;\r\n return;\r\n }\r\n\r\n this.stopFollowRoadRoute = true;\r\n ////alert(mapConfigID);\r\n\r\n ///set selected custom reportid and selected filter method[aggr/timestamp/group] in service so that to load selected custom report config details when configuration screen is opened\r\n this.commonFilterService.SetGmapConfigID(mapConfigID);\r\n\r\n if (this.previous) {\r\n //console.log(this.previous[\"isOpen\"])\r\n if (this.previous[\"isOpen\"] == true)\r\n this.previous[\"isOpen\"] = false;\r\n }\r\n\r\n this.Loading = \"Loading ...\";\r\n this.isLoading = true;\r\n\r\n /////to handle general filterswhen coming from another page and editeventid filter\r\n ///this.commonFilterService.ClearAllFilters.subscribe(res => { this.clearAllGeneralFilters(); });\r\n this.HandleGeneralFilter();\r\n\r\n this.mapConfigID = mapConfigID;\r\n if (mapConfigID != null) {\r\n this.inputLength = 1;\r\n }\r\n else\r\n this.inputLength = 0;\r\n\r\n this.GetDispaylOption();\r\n\r\n let dRoute = this.DrawRoute == \"ON\" ? 1 : 0;\r\n //if (this.commonFilterDates == undefined || this.commonFilterDates == \"\")\r\n this.SetcommonFilterDates();\r\n\r\n this.preDefinedConfigParam = new PredefinedConfig();\r\n this.preDefinedConfigParam.limitPinCount = this.limitPinCount;\r\n this.preDefinedConfigParam.strStartDate = this.commonFilterDates.split('^')[0];\r\n this.preDefinedConfigParam.strEndDate = this.commonFilterDates.split('^')[1];\r\n this.preDefinedConfigParam.strLastRecord = '';\r\n\r\n this.preDefinedConfigParam.TimeStamp_Type = this.TSSelected.toString();\r\n\r\n this.preDefinedConfigParam.FilterOnOff = 1;\r\n this.preDefinedConfigParam.gMapConfigID = mapConfigID;\r\n this.preDefinedConfigParam.drawRoute = dRoute;\r\n this.preDefinedConfigParam.MainFilterID = this.MainFilterID;\r\n if (this.preDefinedConfigParam.MainFilterID > 0)\r\n this.preDefinedConfigParam.FilterOnOff = 0;\r\n if (this.genArr.length > 0)\r\n this.preDefinedConfigParam.FilterOnOff = 0;\r\n\r\n //console.log(\"GetMapConfigByID() = \");\r\n //console.log(this.genArr.length);\r\n //debugger;\r\n this.url = this.baseUrl + 'GoogleMaps/GetMapConfigDataByID';\r\n if (mapLegendApplied == 1) {\r\n this.preDefinedConfigParam.thresholdLegends = this.thresholdLegends;\r\n this.preDefinedConfigParam.thresholdLegendsCount = this.thresholdLegendsCount;\r\n this.preDefinedConfigParam.callIDLegends = this.callIDLegends;//susheel\r\n this.preDefinedConfigParam.devIDLegends = this.devIDLegends;\r\n this.preDefinedConfigParam.callEventsLegends = this.callEventsLegends;\r\n\r\n }\r\n\r\n this.mapDisplayOptions.PredefinedConfig = this.preDefinedConfigParam;\r\n this.preDefinedConfigParam.generalFilter = this.genArr;\r\n\r\n /////// Set mapDisplayOptions in services, this will be used to restore when return to googlemap from another page\r\n this.mapDisplayOptions.displayOptionApplied = false;\r\n //debugger;\r\n this.commonFilterService.SetGMapDisplayOption(this.mapDisplayOptions);\r\n\r\n this.GetMapConfigDataByID_Service().subscribe((res: any) => {\r\n //console.log(res);\r\n try {\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //console.log(rows);\r\n\r\n //debugger;\r\n this.infowindowArray = [];\r\n //this.divPinLegends = this.sanitizer.bypassSecurityTrustHtml(rows[rows.length - 1]);\r\n if (rows != null) {\r\n if (rows.length > 1) {\r\n let checkPolqaRecords = false;\r\n if (this.usePredefinedConfig == 'ON') {\r\n this.setLimitedOptions = true;\r\n this.mapNamesObservable = this.mapFilterConfigList;\r\n\r\n /////////////to check result has polqa records based on that no audio pin marker show/hide\r\n if (rows[rows.length - 2].includes('POLQA'))\r\n checkPolqaRecords = true;\r\n\r\n this.SetPinLegnd(rows[rows.length - 2]);\r\n }\r\n //debugger;\r\n //// legend popup data\r\n this.dynamicLegendPopupData = [];\r\n this.dynamicLegendPopupData.push(JSON.parse(rows[rows.length - 1]));\r\n //console.log(this.dynamicLegendPopupData);\r\n //this.legendPopupData = this.dynamicLegendPopupData;\r\n //debugger;\r\n rows.pop();\r\n rows.pop();\r\n this.BindMapDetails(rows);//susheel\r\n\r\n if (this.usePredefinedConfig == 'ON') {\r\n //console.log('no audio count');\r\n //console.log(this.NoAudioPolqa_OnePoinOne.length);\r\n //console.log(this.totalNoAudioScore);\r\n debugger;\r\n if (checkPolqaRecords) {\r\n this.dynamicPinLegends.push(\r\n {\r\n queryCount: this.totalNoAudioScore,\r\n imgSrc: 'NoAudioPolqaMark',\r\n resultType: 'POLQA',\r\n thresholdType: '( NO AUDIO )',\r\n pinType: '',\r\n condVal: 'POLQA MOS <= 1.1',//susheel\r\n noOfRows: this.totalNoAudioScore,\r\n MarkerPinType: 'NoAudioPolqaMark',\r\n iconText: 'X',\r\n iconBGColor: 'Red',\r\n iconFontColor: 'Black',\r\n dynamicBubbleClass: ''//\r\n }\r\n );\r\n }\r\n }///end if\r\n\r\n\r\n }\r\n }\r\n else {\r\n this.markers = [];\r\n this.markerCollection = [];\r\n }\r\n this.Loading = \"\";\r\n this.isLoading = false;\r\n\r\n }\r\n catch (ex) {\r\n this.Loading = \"\";\r\n this.isLoading = false;\r\n this.EmptyBindGMap();\r\n }\r\n\r\n\r\n });\r\n\r\n ////// start handle genral filter for cloumn filter\r\n if (this.delFilterColName != '' && this.delFilterColName != 'clearAllFilters') {\r\n this.delColSelected = true;\r\n\r\n this.commonFilterService.setDeleteFilterData('');//reset if delete\r\n\r\n if (this.delFilterColName == 'VQuad_CallID') {\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n }\r\n\r\n this.genArrDel = this.AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"] != this.delFilterColName;\r\n });\r\n //console.log(this.genArrDel)\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n else if (this.delFilterColName == 'clearAllFilters') {\r\n this.clearAllFiltersBool = true;\r\n\r\n this.commonFilterService.setClearAllFiltersData();//reset if delete\r\n this.commonFilterService.setGeneralFilterData(this.filters);\r\n\r\n this.filtersWithEventID = {};\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n\r\n this.genArrDel = [];\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n\r\n ////// end handle genral filter for cloumn filter\r\n\r\n }\r\n //////////////////////////////// end get map config byID\r\n\r\n\r\n /////////////////////////// Start Initialize Map From old webviewer function\r\n Initialize(latlngValMain, timestampTypeMain, outputGPS) {//provides array of locations\r\n debugger;\r\n //this.cd.detectChanges();\r\n this.latlngValMainAgain = latlngValMain;\r\n this.infowindowArray = [];\r\n this.markerPositions = [];\r\n this.NoAudioPolqa_OnePoinOne = [];\r\n this.totalNoAudioScore = 0;\r\n\r\n var arrPolys = 0;///selectedRegConfigApply(1, map);//Draw polygons commented by elumalai\r\n //if (this.modelRegName != \"\") {\r\n // this.GetMapRegionDetail(this.modelRegName);\r\n //}\r\n\r\n //this.map = new google.maps.Map(document.getElementById('map'), {\r\n // //center: { lat: 20.593684, lng: 78.96288 }, /// India\r\n // center: { lat: 40.4230, lng: -98.7372 }, /// USA\r\n // zoom: 4\r\n //});\r\n\r\n ////ZOOM LIMIT\r\n ////Changes zoom levels when the projection is available.\r\n //google.maps.event.addListenerOnce(map, \"projection_changed\", function () {\r\n // map.setMapTypeId(google.maps.MapTypeId.HYBRID); //Changes the MapTypeId in short time.\r\n // setZoomLimit(map, google.maps.MapTypeId.ROADMAP);\r\n // setZoomLimit(map, google.maps.MapTypeId.HYBRID);\r\n // setZoomLimit(map, google.maps.MapTypeId.SATELLITE);\r\n // setZoomLimit(map, google.maps.MapTypeId.TERRAIN);\r\n // map.setMapTypeId(google.maps.MapTypeId.ROADMAP); //Sets the MapTypeId to original.\r\n //});\r\n\r\n\r\n /////////Get zoom and position\r\n //google.maps.event.addListener(map, \"bounds_changed\", function () {\r\n // document.getElementById(\"boundHid\").value = latlngZoomCenter;\r\n // document.getElementById(\"zoomHid\").value = map.getZoom();\r\n // var bounds = map.getBounds();\r\n\r\n //});\r\n\r\n\r\n ////////Set marker position to center when Zoom changed\r\n //google.maps.event.addListener(map, \"zoom_changed\", function () {\r\n // map.setCenter(latlngZoomCenter);\r\n // if (map.getZoom() == 3)\r\n // map.setCenter(new google.maps.LatLng(40.4230, -98.7372));\r\n //});\r\n\r\n //codeLatLng('N39º08\\'36\\'\\' W077º12\\'57\\'\\'');\r\n //let rsltTypeEach = new Array();\r\n this.rsltTypeEach = new Array();\r\n //debugger\r\n //console.log(latlngValMain)\r\n var loopcnt = 0\r\n var loopInterval = 1000;\r\n this.count = 0;\r\n\r\n let iconZIndex = 1;\r\n //console.log(new Date())\r\n for (var varLatLong = 0; varLatLong < latlngValMain.length; varLatLong++)//add marker for each location\r\n {\r\n loopcnt = varLatLong;\r\n //if (latlngValMain.length > 1000 && loopcnt == loopInterval) {\r\n // setTimeout(() => {\r\n // //// delay map binding by 5 secs for large data\r\n // }, 15000);\r\n // loopInterval = loopInterval + 1000;\r\n //}\r\n\r\n this.pinMarker = new marker();\r\n\r\n if (latlngValMain[varLatLong] != null) {\r\n if (latlngValMain[varLatLong].length > 0) {\r\n\r\n /////to set zindex based on pass/fail/testfail icon\r\n if (latlngValMain[varLatLong].includes('- PASS')) {\r\n iconZIndex = 1;\r\n }\r\n else if (latlngValMain[varLatLong].includes('- FAIL')) {\r\n iconZIndex = -1;\r\n }\r\n else if (latlngValMain[varLatLong].includes('- TEST')) {\r\n /// - TEST FAILED\r\n iconZIndex = -2;\r\n }\r\n\r\n var latlngValMainSplit = latlngValMain[varLatLong].split(\"^\");// split to seperate orig value - Co-or^Rslt^Device ID#DateTime^(imgPath#Thresh-Params/VQLoc/VQPhID/CallEvents-COND button)^Threshold Type^RSLT btn\r\n //console.log(latlngValMainSplit)// - susheel\r\n if (latlngValMainSplit[0].length > 0)//check for NULL latlong\r\n {\r\n\r\n var typeNameMain = latlngValMainSplit[1].indexOf('_') != -1 ? (latlngValMainSplit[1].split('_'))[0] : latlngValMainSplit[1];//Type of result\r\n var typeName = latlngValMainSplit[1].indexOf('_') != -1 ? (latlngValMainSplit[1].split('_'))[0] : latlngValMainSplit[1];//Type of result\r\n if (typeName == 'VQUAD')\r\n typeName = 'CALL EVENTS';\r\n else if (typeName == 'TDM')\r\n typeName = 'Audio and Delay';\r\n else if (typeName.indexOf('GENERAL') != -1)\r\n typeName = typeName.replace('GENERAL', 'PHONEINFO');\r\n else if (typeName.indexOf('VQT') != -1)\r\n typeName = typeName.replace('VQT', 'PESQ');\r\n else if (typeName.indexOf('VQUADAPP') != -1)\r\n typeName = 'VQUAD NODE';\r\n else if (typeName.indexOf('MOBILEAPP') != -1)\r\n typeName = 'MOBILE';\r\n\r\n this.rsltTypeEach[this.count] = latlngValMainSplit[1].indexOf('_') != -1 ? (latlngValMainSplit[1].split('_'))[1] : latlngValMainSplit[1];//add results into results array\r\n\r\n var TSPhID = \"\";\r\n if (latlngValMainSplit.length > 2)\r\n TSPhID = latlngValMainSplit[2];//Device ID#Timestamp\r\n\r\n var pinImgSrc = \"\";\r\n var PolqaScore = \"\";\r\n\r\n if (latlngValMainSplit.length > 3) {\r\n if (typeName == \"POLQA\") {\r\n //debugger;\r\n //pinImgSrc = \"$\" + (latlngValMainSplit[3].split(\"$\"))[1];\r\n ///// below code by elumalai as per requirement that POLQA_Score below 1.1 including 0 and N/A is needed to show as \"No Audio\" marker pin\r\n if (this.mapConfigID > 0 && this.usePredefinedConfig == \"ON\") {\r\n PolqaScore = latlngValMainSplit[2].split('#')[4];\r\n pinImgSrc = \"\"; //(latlngValMainSplit[3].split(\"@\"))[0];\r\n if (Number(PolqaScore) <= this.NoAudioScoreCondition)\r\n this.NoAudioPolqa_OnePoinOne.push(PolqaScore);\r\n else\r\n pinImgSrc = (latlngValMainSplit[3].split(\"@\"))[0];\r\n }\r\n else {\r\n ////// default mapping \r\n PolqaScore = (latlngValMainSplit[3].split(\"$\"))[0];\r\n pinImgSrc = \"\";\r\n if (Number(PolqaScore) <= this.NoAudioScoreCondition)\r\n this.NoAudioPolqa_OnePoinOne.push(PolqaScore);\r\n }\r\n //if (Number(PolqaScore) < this.NoAudioScoreCondition)\r\n // this.NoAudioPolqa_OnePoinOne.push(PolqaScore);\r\n\r\n }\r\n else\r\n pinImgSrc = (latlngValMainSplit[3].split(\"@\"))[0];//imgSrcMain+Param + (@COND btn - not required)\r\n\r\n }\r\n ////alert(pinImgSrc); \r\n var rsltBtn = \"\";\r\n var rsltHead = \"\";\r\n var rsltVals = \"\";\r\n var ThresholdType = \"\";\r\n\r\n if (latlngValMainSplit.length == 5)//RSLT btn for other than Threshold(because no Pass/Fail val in split) \r\n {\r\n rsltVals = (latlngValMainSplit[4].split('@'))[1];\r\n rsltHead = (latlngValMainSplit[4].split('@'))[0];\r\n }\r\n else if (latlngValMainSplit.length == 6)//RSLT btn for Threshold \r\n {\r\n if (latlngValMainSplit[4].indexOf(\"PASS\") != -1)\r\n ThresholdType = \"PASS\";\r\n else if (latlngValMainSplit[4].indexOf(\"FAILED\") != -1)\r\n ThresholdType = \"TEST FAILED\";\r\n else if (latlngValMainSplit[4].indexOf(\"FAIL\") != -1)\r\n ThresholdType = \"FAIL\";\r\n typeName = typeName + latlngValMainSplit[4];// add pass / fail to rsltType \r\n rsltVals = (latlngValMainSplit[5].split('@'))[1];\r\n rsltHead = (latlngValMainSplit[5].split('@'))[0];\r\n }\r\n //rsltVals = rsltVals.replace(/\\'/g,\"'\"); \r\n //rsltVals = rsltVals.replace(/º/g,\"°\");\r\n if (latlngValMainSplit.length > 4) {\r\n rsltVals = rsltVals.replace(/\\s/g, \" \");\r\n rsltBtn = rsltHead + \"@\" + rsltVals + '\\\"); class=popupButton>Result Display

    ';\r\n }\r\n\r\n //rsltBtn = rsltBtn.replace(/\\'/g,\"'\"); \r\n //rsltBtn = rsltBtn.replace(/º/g,\"°\");\r\n ////alert(rsltBtn);\r\n var startLatLang = \"0,0,\";\r\n var endLatLang = latlngValMainSplit[0];\r\n\r\n //French\r\n if (endLatLang.split(\",\").length > 3) {\r\n var arrGPS = endLatLang.split(\",\");\r\n endLatLang = \"\";\r\n for (var x = 0; x < arrGPS.length; x++) {\r\n var delim = \",\";\r\n if (x % 2 == 0 && x < 3)\r\n delim = \".\";\r\n endLatLang += arrGPS[x] + delim;\r\n }\r\n if (endLatLang != \"\")\r\n endLatLang = endLatLang.substring(0, endLatLang.length - 1);\r\n }\r\n\r\n var routeColor;\r\n if (latlngValMainSplit[0].indexOf(\"@\") != -1) {//start information\r\n startLatLang = (latlngValMainSplit[0].split(\"@\"))[1].trim();\r\n endLatLang = (latlngValMainSplit[0].split(\"@\"))[0];\r\n routeColor = (latlngValMainSplit[0].split(\"@\"))[2].trim();\r\n }\r\n //debugger;\r\n /////// to get result id from each array item to pass in popup model\r\n\r\n\r\n if (this.usePredefinedConfig == \"ON\") {\r\n //console.log(rsltVals.split('!')[0]);\r\n rsltVals = rsltVals != \"\" ? rsltVals.split('!')[0] : latlngValMain[varLatLong].split('$')[1]; //rsltVals.split('!')[0];\r\n }\r\n else\r\n rsltVals = latlngValMain[varLatLong].split('$')[1];\r\n //debugger;\r\n this.CodeLatLng(endLatLang, typeNameMain, this.count, endLatLang, TSPhID, pinImgSrc, rsltBtn, ThresholdType, startLatLang, routeColor, arrPolys, timestampTypeMain, outputGPS, rsltVals, iconZIndex, PolqaScore);//end GPS location, result-type, coutVal, again end GPS, PhID+TS, ImgPath+Params+COND btn, RSLT btn, start GPS\r\n this.count++;\r\n }\r\n }\r\n }\r\n //if (varLatLong == latlngValMain.length - 1) {\r\n\r\n // ////alert(latlngValMain.length);\r\n // ///lat = 12.9264;// 42.536652;//39.143 ///12.9264;\r\n // ///lng = 77.6012;//\r\n // const bounds: LatLngBounds = new google.maps.LatLngBounds(new google.maps.LatLng(startLatLang, endLatLang));\r\n // this.updateMarkers(bounds);\r\n //}\r\n }\r\n //console.log(new Date())\r\n //console.log(this.markers)// - susheel\r\n //this.cd.detectChanges();\r\n //debugger;\r\n ////alert(this.markerPositions.length);\r\n\r\n this.initialLoad = true;\r\n if (!this.loadOldGoogleMap) {\r\n if (this.markerPositions.length > 5000) {\r\n if (confirm(\"This operation involves plotting more than 5000 marker pins, which may take some time. Do you want to proceed or cancel?\"))\r\n this.JsMapInitilization_Optimize();\r\n else\r\n this.EmptyBindGMap();\r\n }\r\n else\r\n this.JsMapInitilization();\r\n }\r\n else\r\n this.JsMapInitilization_OGCode();\r\n\r\n\r\n if (this.markerPositions.length > 0) {\r\n debugger;\r\n this.totalNoAudioScore = 0;\r\n if (this.NoAudioPolqa_OnePoinOne.length > 0) {\r\n this.totalNoAudioScore = this.NoAudioPolqa_OnePoinOne.length;\r\n if (this.pinLegends.length > 0) {\r\n this.pinLegends[9] = this.pinLegends[9] - this.totalNoAudioScore; ///// this.pinLegends[9] = POLQA\r\n }\r\n }\r\n }\r\n\r\n }\r\n //else {\r\n // __doPostBack(\"btnRefresh\", \"OnClick\");\r\n //}\r\n // end of initialize function\r\n\r\n CodeLatLng(latlngVal, rsltType, myCount, LatLongOrig1, TimeStamp, NewImgSrc, FinalRsltBtn, ThresholdType, startLatLang, routeColor, arrPolys, timestampTypeMain, outputGPS, rsltVals, iconZIndex, PolqaScore) {\r\n\r\n //loc, result type, count val, GPS Co-orditanes, PhID+TS, Image path+Params+COND btn, RSLT btn, start GPS\r\n //console.log(latlngVal + \",\" + rsltType + \",\" + myCount + \",\" + LatLongOrig1 + \",\" + TimeStamp + \",\" + NewImgSrc + \",\" + FinalRsltBtn + \",\" + ThresholdType + \",\" + startLatLang);\r\n\r\n //if (ThresholdType != \"\") // susheel\r\n //debugger\r\n\r\n var input = latlngVal;\r\n var NewTS = TimeStamp.split('#'); //Split Phone ID and TS\r\n NewImgSrc = NewImgSrc.replace('Call Control Event', 'Call Control Event ')\r\n var extrSpacesThreshold = \"                \";\r\n if (NewTS[2] == \"DUMMY\")\r\n extrSpacesThreshold = \" \"\r\n if (ThresholdType.length > 0)\r\n ThresholdType = \"
    THRESHOLD \" + extrSpacesThreshold + \"             \" + ThresholdType + \"
    \";\r\n\r\n if (input.length > 0) {\r\n var latlngStr = input.split(',', 3); //GPS co-or\r\n var latConvert = latlngStr[0].length > 0 ? latlngStr[0] : \"0\";\r\n var lngConvert = latlngStr[1].length > 0 ? latlngStr[1] : \"0\";\r\n var displayEndGPS = latlngStr[2];\r\n\r\n var startlatlngStr = startLatLang.split(',', 3); //start GPS co-or\r\n var startlatConvert = startlatlngStr[0].length > 0 ? startlatlngStr[0] : \"0\";\r\n var startlngConvert = startlatlngStr[1].length > 0 ? startlatlngStr[1] : \"0\";\r\n\r\n if (latConvert == \"0\" && lngConvert == \"0\")//check for 0 latlong\r\n {\r\n this.count--;\r\n return;\r\n }\r\n\r\n\r\n var splitNewImg = NewImgSrc.split(\"#\"); //Pin img path + Params + COND btn\r\n if (displayEndGPS == \"NONE\")\r\n displayEndGPS = LatLongOrig1.replace(',NONE', '');\r\n var latDecimalSpaces = \"                    \";//20\r\n var lngDecimalSpaces = \"                \";//16\r\n if (outputGPS == 0) {\r\n var newLatLongOrig1 = \"
    \" + \"VQuad GPS               \" + displayEndGPS + \"
    \"; //End GPS Loc\r\n if ((startlatConvert + \",\" + startlngConvert) != \"0,0\" && startlatlngStr[2] != displayEndGPS)\r\n newLatLongOrig1 = \"
    \" + \"Device GPS (Start)                 \" + startlatlngStr[2] + \"
    \" + newLatLongOrig1.replace('VQuad GPS            ', 'Device GPS (End)                '); //Start and End GPS Loc\r\n if (NewImgSrc.length > 0)//new info added\r\n newLatLongOrig1 = splitNewImg[1] + newLatLongOrig1; //(Params + COND btn) + GPS Loc + RSLT btn\r\n this.LatLongOriginal[this.count] = newLatLongOrig1; //GPS InfoBubble\r\n }\r\n else {\r\n var newLatLongOrig1 = \"
    \" + \"Latitude \" + latDecimalSpaces + \" \" + latConvert + \"
    \"; //End GPS Lat\r\n newLatLongOrig1 += \"
    \" + \"Longitude \" + lngDecimalSpaces + \" \" + lngConvert + \"
    \"; //End GPS Long\r\n if ((startlatConvert + \",\" + startlngConvert) != \"0,0\" && startlatlngStr[2] != displayEndGPS)\r\n newLatLongOrig1 = \"
    \" + \"Device Latitude (Start) \" + latDecimalSpaces + \" \" + startlatConvert + \"
    \"\r\n + \"
    \" + \"Device Longitude (Start) \" + lngDecimalSpaces + \" \" + startlngConvert + \"
    \"\r\n + newLatLongOrig1.replace('Latitude ' + latDecimalSpaces, 'Device Latitude (End) ' + latDecimalSpaces).replace('Longitude ' + lngDecimalSpaces, 'Device Longitude (End) ' + lngDecimalSpaces); //Start and End GPS Loc\r\n if (NewImgSrc.length > 0)//new info added\r\n newLatLongOrig1 = splitNewImg[1] + newLatLongOrig1; //(Params + COND btn) + GPS Loc + RSLT btn\r\n this.LatLongOriginal[this.count] = newLatLongOrig1; //GPS InfoBubble\r\n }\r\n //debugger;\r\n var lat = parseFloat(latConvert);\r\n var lng = parseFloat(lngConvert);\r\n var ImgRslt = \"Yellow\";\r\n var rsltTypePopUp = \"pesq\";\r\n var timestampNameRsltType = timestampTypeMain;//\"VQuad \";\r\n\r\n if (timestampNameRsltType == \"VQT \" && rsltType != \"VQT\" && rsltType != \"POLQA\")\r\n timestampNameRsltType = \"VQuad \";\r\n\r\n if (rsltType == \"VQT\" || rsltType == \"POLQA\") {\r\n\r\n ImgRslt = \"Yellow\";\r\n if (PolqaScore == \"N/A\" || (Number(PolqaScore) <= this.NoAudioScoreCondition))\r\n ImgRslt = \"NoAudio\"; ////for polqa score <=1.1\r\n\r\n if (rsltType == \"POLQA\")\r\n rsltTypePopUp = \"polqa\";\r\n }\r\n else {\r\n ////commented as dont know the purpose of it - Elumalai\r\n //if (timestampNameRsltType == \"VQT \")\r\n // timestampNameRsltType = \"VQuad \";\r\n\r\n\r\n rsltTypePopUp = rsltType.toLowerCase();\r\n if (rsltType.indexOf(\"VQUAD\") != -1 || rsltType.indexOf(\"TDM\") != -1 || rsltType.indexOf(\"RTD\") != -1 || rsltType.indexOf(\"SNR\") != -1 || rsltType.indexOf(\"OWD\") != -1 || rsltType.indexOf(\"PDD\") != -1) {\r\n ImgRslt = \"Green\";\r\n rsltTypePopUp = \"audio-delay\";\r\n if (rsltType.indexOf(\"VQUAD\") != -1)\r\n rsltTypePopUp = \"call-events\";\r\n //////below condition should set rsltTypePopUp = \"call-events\"; for snr-error,rtd-error,pdd-error,owd-error so that it point to callevent screen for display result button click //elumalai\r\n if (rsltType.indexOf(\"-ERROR\") != -1 && (rsltType.indexOf(\"TDM\") == -1))\r\n rsltTypePopUp = \"call-events\";\r\n }\r\n else if (rsltType == \"VBA\")\r\n ImgRslt = \"Pink\";\r\n else if (rsltType == \"EMU\")\r\n ImgRslt = \"Orange\";\r\n //else if (rsltType == \"POLQA\")\r\n // ImgRslt = \"Red\";\r\n else if (rsltType.indexOf(\"FAX\") != -1)\r\n ImgRslt = \"Black\";\r\n else if (rsltType.indexOf(\"VAC\") != -1) {\r\n ImgRslt = \"Purple\";\r\n timestampNameRsltType = \"Device \";\r\n }\r\n else if (rsltType == \"CONNDROP\") {\r\n ImgRslt = \"Red\";\r\n timestampNameRsltType = \"Device \";\r\n }\r\n else if (rsltType.indexOf(\"GENERAL\") != -1 || rsltType.indexOf(\"SIM\") != -1 || rsltType.indexOf(\"UE\") != -1) {\r\n ImgRslt = \"GreenNew\";\r\n timestampNameRsltType = \"Device \";\r\n rsltTypePopUp = \"mobileinfo-\" + rsltType;\r\n }\r\n else//NetTest\r\n {\r\n ImgRslt = \"Blue\";\r\n timestampNameRsltType = \"Device \";\r\n rsltTypePopUp = \"nettest-\" + rsltType;\r\n }\r\n }\r\n\r\n if (rsltType.indexOf(\"-FAIL\") != -1)\r\n ImgRslt = \"Red\";\r\n //debugger;\r\n var image = './assets/images/Marks/' + ImgRslt + 'Mark.png';\r\n\r\n if (rsltType.indexOf(\"-ERROR\") != -1 && rsltType.indexOf(\"FAX\") != -1) {\r\n image = 'https://chart.googleapis.com/chart?chst=d_map_xpin_letter&chld=pin|E|000000|FFFFFF';\r\n rsltTypePopUp = \"fax\";\r\n }\r\n else if (rsltType.indexOf(\"-ERROR\") != -1 && (rsltType.indexOf(\"VQUAD\") != -1 || rsltType.indexOf(\"RTD\") != -1 || rsltType.indexOf(\"SNR\") != -1 || rsltType.indexOf(\"OWD\") != -1 || rsltType.indexOf(\"PDD\") != -1)) {\r\n image = 'https://chart.googleapis.com/chart?chst=d_map_xpin_letter&chld=pin|E|009900|000000';\r\n rsltTypePopUp = \"audio-delay\";\r\n if (rsltType.indexOf(\"VQUAD\") != -1)\r\n rsltTypePopUp = \"call-events\";\r\n //////below condition should set rsltTypePopUp = \"call-events\"; for snr-error,rtd-error,pdd-error,owd-error so that it point to callevent screen for display result button click //elumalai\r\n if (rsltType.indexOf(\"-ERROR\") != -1 && (rsltType.indexOf(\"FAX\") == -1))\r\n rsltTypePopUp = \"call-events\";\r\n }\r\n else if (rsltType.indexOf(\"-FAIL\") != -1) {\r\n image = 'https://chart.googleapis.com/chart?chst=d_map_xpin_letter&chld=pin|F|BC1E1E|000000';\r\n if (rsltType.indexOf(\"VAC\") != -1)\r\n rsltTypePopUp = \"vac\";\r\n else if (rsltType.indexOf(\"GENERAL\") != -1 || rsltType.indexOf(\"SIM\") != -1 || rsltType.indexOf(\"UE\") != -1)\r\n rsltTypePopUp = \"mobileinfo-\" + (rsltType.split('-'))[0];\r\n else\r\n rsltTypePopUp = \"nettest-\" + (rsltType.split('-'))[0];\r\n }\r\n\r\n //for image size vary dynamically based on pin / bubble\r\n var widthImg = 24;\r\n var heightImg = 30;\r\n\r\n //for mobile and vquad status\r\n if (rsltType.indexOf(\"VMOBILEAPP\") != -1) {\r\n //debugger;\r\n widthImg = 40;\r\n heightImg = 25;\r\n image = './assets/images/Marks/Apps/' + (rsltType.split(\"-\"))[1] + '.png';\r\n rsltTypePopUp = \"vmobileapp\";\r\n }\r\n else if (rsltType.indexOf(\"MOBILEAPP\") != -1) {\r\n image = './assets/images/Marks/Apps/' + (rsltType.split(\"-\"))[1] + '.png';\r\n rsltTypePopUp = \"mobileapp\";\r\n }\r\n else if (rsltType.indexOf(\"VQUADAPP\") != -1) {\r\n widthImg = 40;\r\n heightImg = 25;\r\n image = './assets/images/Marks/Apps/' + (rsltType.split(\"-\"))[1] + '.png';\r\n rsltTypePopUp = \"vquadapp\";\r\n }\r\n if (NewImgSrc.length > 0)//new image\r\n image = splitNewImg[0];\r\n\r\n //console.log(image);\r\n /////// start new code elumalai bind lat lng to marker array\r\n //this.pinMarker = new marker();\r\n this.pinMarker.lat = lat.toString();\r\n this.pinMarker.lng = lng.toString();\r\n this.pinMarker.label = \"\";//(rsltType.split(\"-\"))[1];\r\n this.pinMarker.iconurl = image; //this.iurl_b;\r\n this.pinMarker.widthImg = widthImg;//susheel\r\n this.pinMarker.heightImg = heightImg;\r\n this.pinMarker.resultType = rsltType.replace(\"GENERAL\", \"PHONEINFO\");//susheel\r\n this.pinMarker.popUpRsltType = rsltTypePopUp;\r\n this.pinMarker.itemID = rsltVals;\r\n this.pinMarker.lat_num = lat;\r\n this.pinMarker.lng_num = lng;\r\n this.pinMarker.iconZIndex = iconZIndex;\r\n\r\n this.markers.push(this.pinMarker); ///commented by elumalai for performance purpose\r\n\r\n //this.markerCollection.push(this.pinMarker); //elumalai for boundchange event \r\n this.markerPositions.push(this.pinMarker);\r\n\r\n\r\n var lat_lng_mine = new Array();\r\n //https://roufid.com/angular-uncaught-referenceerror-google-not-defined/ - refer to region config component getloc \r\n //https://www.digitalocean.com/community/tutorials/angular-angular-google-maps\r\n //https://stackoverflow.com/questions/47198904/angular-google-is-not-defined\r\n // this.mapsAPILoader.load().then(() => {// - susheel //commented by elumalai\r\n\r\n var latlngNewMain = new google.maps.LatLng(lat, lng);\r\n\r\n // this.markerPositions.push(this.pinMarker);//this.markerPositions.push(latlngNewMain);\r\n\r\n\r\n var startlatlngNewMain = new google.maps.LatLng(parseFloat(startlatConvert), parseFloat(startlngConvert));\r\n lat_lng_mine.push(startlatlngNewMain);//start\r\n lat_lng_mine.push(latlngNewMain);//end\r\n\r\n\r\n if ((startlatConvert + \",\" + startlngConvert) != \"0,0\" && (latConvert + \",\" + lngConvert) != \"0,0\" && (startlatlngStr[2] != displayEndGPS))\r\n this.routeLatLng.push({ origin: startlatlngNewMain, destination: latlngNewMain, color: routeColor, lat_lng_combine: lat_lng_mine });// to draw followpath route by elumalai\r\n\r\n\r\n //this.cd.detectChanges();\r\n //});\r\n\r\n\r\n\r\n var resu = \"Loading...\";\r\n var finalResu = resu;\r\n //map.setZoom(myZoom);\r\n\r\n //set and open windows\r\n var TSandPhID = \"\";\r\n if (TimeStamp.length > 0) {\r\n let extraSpaceDevice = \"          \";\r\n let extraSpacecallid = \"          \";\r\n var phoneIDHead = \"VQuad Device ID \";\r\n var locHead = \"VQuad Call ID  \";\r\n var extrSpaceVQuadTS = \"\";\r\n var infoWindowWidth = 300;\r\n var VQuadNodeSpaces = \"       \";\r\n var VQuadNodeGPSSpaces = this.LatLongOriginal[myCount];\r\n var phoneIDValue = NewTS[0];\r\n var locValue = NewTS[1];\r\n if (NewTS[2].indexOf('IGNORETS') != 0) {\r\n if (timestampNameRsltType == \"Device \") {\r\n extrSpaceVQuadTS = \"                 \";\r\n infoWindowWidth = 400;\r\n phoneIDHead += extrSpaceVQuadTS.replace(extrSpaceVQuadTS, '           ');\r\n locHead += extrSpaceVQuadTS.replace(extrSpaceVQuadTS, '           ');\r\n TSandPhID = \"
    \" + timestampNameRsltType + \"Timestamp (Start)  \" + NewTS[2] + \"
    \";\r\n TSandPhID += \"
    \" + timestampNameRsltType + \"Timestamp (End)     \" + NewTS[3] + \"
    \";\r\n if (VQuadNodeGPSSpaces !== undefined) {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('PARAMETERS  ', 'PARAMETERS ' + extrSpaceVQuadTS);\r\n if (outputGPS == 0) {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('VQuad GPS        ', 'VQuad GPS ' + extrSpaceVQuadTS + '       ');\r\n }\r\n else {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Latitude ' + latDecimalSpaces, 'Latitude ' + extrSpaceVQuadTS + latDecimalSpaces);\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Longitude ' + lngDecimalSpaces, 'Longitude ' + extrSpaceVQuadTS + lngDecimalSpaces);\r\n }\r\n }\r\n }\r\n else {\r\n var endTS = NewTS[2];\r\n if (NewTS[2] == \"DUMMY\")\r\n endTS = NewTS[3];\r\n extrSpaceVQuadTS = \" \";\r\n let extraSpaceTS = \"          \";\r\n /////Renaming all VQuad included columns to generic for both VQuad and vMobile\r\n //TSandPhID = \"
    \" + timestampNameRsltType + \"Timestamp1  \" + endTS + \"
    \";\r\n TSandPhID = \"
    \" + \"Timestamp\" + extraSpaceTS + \"  \" + endTS + \"
    \";\r\n //console.log(timestampNameRsltType); console.log('*');\r\n\r\n if (VQuadNodeGPSSpaces !== undefined) {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('PARAMETERS  ', 'PARAMETERS ' + extrSpaceVQuadTS);\r\n if (outputGPS == 0) {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('VQuad GPS        ', 'VQuad GPS ' + extrSpaceVQuadTS + '       ');\r\n }\r\n else {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Latitude ' + latDecimalSpaces, 'Latitude ' + extrSpaceVQuadTS + latDecimalSpaces);\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Longitude ' + lngDecimalSpaces, 'Longitude ' + extrSpaceVQuadTS + lngDecimalSpaces);\r\n }\r\n }\r\n }\r\n TSandPhID += ThresholdType;\r\n phoneIDValue = \" \" + phoneIDValue;\r\n }\r\n else if (NewTS[2].indexOf('IGNORETS') == 0)//VQuad Or Mobile App or VMobile\r\n {\r\n FinalRsltBtn = (NewTS[2].split(\"-\"))[2];\r\n if (NewTS[2].indexOf('-VQUAD') != -1 || NewTS[2].indexOf('-VMOBILE') != -1)//VQUAD\r\n {\r\n phoneIDHead = \"IP Address\";\r\n locHead = \"Node Name\";\r\n phoneIDValue = \"        \" + phoneIDValue;\r\n //locValue = \"        \" + locValue;\r\n VQuadNodeSpaces = \"\";\r\n finalResu = resu.replace(/       /g, '
    ');//have to be done only once\r\n if (VQuadNodeGPSSpaces !== undefined) {\r\n if (outputGPS == 0) {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('VQuad GPS        ', 'VQuad GPS ');\r\n }\r\n else {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Latitude ' + latDecimalSpaces, 'Latitude          ');\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Longitude ' + lngDecimalSpaces, 'Longitude        ');\r\n }\r\n }\r\n }\r\n else//MOBILE\r\n {\r\n locValue = (locValue.split(\"-\"))[1];\r\n phoneIDHead = \"Device PhoneID   \";\r\n locHead = \"Device Name \";\r\n locValue = \"  \" + locValue;\r\n if (VQuadNodeGPSSpaces !== undefined) {\r\n if (outputGPS == 0) {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('VQuad GPS        ', 'Device GPS      ');\r\n }\r\n else {\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Latitude ' + latDecimalSpaces, 'Device Latitude' + '    ' + ' ');\r\n VQuadNodeGPSSpaces = VQuadNodeGPSSpaces.replace('Longitude ' + lngDecimalSpaces, 'Device Longitude' + '  ' + ' ');\r\n }\r\n }\r\n }\r\n }\r\n if (NewTS[0] != \"IGNOREDEVICE\")\r\n TSandPhID += \"
    \" + phoneIDHead + \"  \" + phoneIDValue + \"
    \";\r\n if (NewTS[1] != \"IGNORELOCATION\")\r\n TSandPhID += \"
    \" + locHead + \"        \" + locValue + \"
    \";\r\n\r\n if (NewTS[4] != undefined && NewTS[4].indexOf('Result Display') != -1)\r\n FinalRsltBtn = NewTS[4];\r\n }\r\n //debugger;\r\n var substrResu = finalResu.substring(0, finalResu.indexOf(\"
     \"));\r\n var chkWidthResu = infoWindowWidth;\r\n if (substrResu.length > 30)\r\n chkWidthResu = infoWindowWidth + (substrResu.length - 30) * 10;\r\n\r\n let infowindowPopupButton = \"\";\r\n if (this.pinMarker.resultType.includes('APP') && !this.pinMarker.resultType.toLowerCase().includes(\"mobile\"))\r\n infowindowPopupButton = \"     \";\r\n else if (this.pinMarker.resultType.toLowerCase().includes(\"mobile\")) {\r\n infowindowPopupButton = \"\";\r\n }\r\n else\r\n infowindowPopupButton = \"\";\r\n\r\n this.infowindowArray.push(rsltVals + \"@
    RESULT \" + extrSpaceVQuadTS + \"               \" + VQuadNodeSpaces + this.rsltTypeEach[myCount].replace('TDM', 'Audio and Delay') + \"
    \" + TSandPhID + VQuadNodeGPSSpaces + \"
    LOCATION \" + extrSpaceVQuadTS + \"         \" + VQuadNodeSpaces + finalResu + \"
    \" + \"

    \" + infowindowPopupButton);\r\n\r\n //console.log(rsltType + rsltVals);\r\n //console.log(\"modified\");\r\n //console.log(rsltTypePopUp);\r\n //console.log(\"**********\");\r\n\r\n //this.pinMarker.itemID = rsltVals;\r\n //this.markers.push(this.pinMarker); ///commented by elumalai for performance purpose\r\n // this.markerCollection.push(this.pinMarker); //elumalai for boundchange event\r\n\r\n } //end return \r\n\r\n ////// commeneted by elumalai drawroute\r\n if ((startlatConvert + \",\" + startlngConvert) != \"0,0\" && (latConvert + \",\" + lngConvert) != \"0,0\" && (startlatlngStr[2] != displayEndGPS)) {\r\n //console.log('route count');\r\n\r\n this.DrawMapRoute(lat_lng_mine, routeColor);//this.DrawMapRoute(lat_lng_mine, routeColor);\r\n }\r\n //this.cd.detectChanges();\r\n }// end of codelatlng function N12º55'35'' E77º36'04''\r\n\r\n /////////////////////////// End Initialize Map From old webviewer function\r\n\r\n\r\n /////////////////////////// Start Draw Route\r\n onMapReady(map: any) {\r\n //console.log(map);\r\n\r\n //const bounds: LatLngBounds = new google.maps.LatLngBounds();\r\n //for (const mm of this.markers) {\r\n // bounds.extend(new google.maps.LatLng(mm.lat, mm.lng));\r\n //}\r\n //map.fitBounds(bounds);\r\n\r\n\r\n\r\n //const bounds: LatLngBounds = new google.maps.LatLngBounds(new google.maps.LatLng(this.lat, this.lng));\r\n // this.updateMarkers(bounds);\r\n //// dragend idle\r\n //map.addListener(\"idle\", this.updateMarkers(bounds));\r\n //this.map.addListener(\"idle\", function () {\r\n // //do what you want\r\n\r\n //});\r\n\r\n\r\n\r\n this.map = map;\r\n //this.DrawMapRoute();\r\n }\r\n\r\n DrawRouteOnOff() {\r\n if (this.DrawRoute == \"ON\")\r\n this.DrawMapRoute_JSMap();\r\n else {\r\n this.ClearDirect();//this.ClearDrawRoute('');\r\n this.ClearRoad();\r\n }\r\n }\r\n\r\n DrawMapRoute(lat_lng, routeColor) {\r\n // DrawMapRoute() {\r\n //debugger;\r\n if (this.DrawRoute == \"OFF\")\r\n return;\r\n\r\n //var lineSymbol = {\r\n // path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW\r\n //};\r\n\r\n if (this.DrawLine == \"1\") { ///Draw short parabola route or Plane/sea routes\r\n\r\n //const flightPlanCoordinates = [\r\n // { lat: this.lat1, lng: this.lng1 },\r\n // // { lat: this.lat1, lng: this.lng1},\r\n // { lat: this.lat2, lng: this.lng2 },\r\n //];\r\n\r\n const line = new google.maps.Polyline({\r\n strokeOpacity: 0.5,\r\n path: lat_lng, //[],\r\n map: this.map\r\n });\r\n\r\n }\r\n else {// //Draw road route in actual way google mentioned road ways\r\n if (this.routeLatLng.length > 0)\r\n this.showDrawRouteDirection = true\r\n }\r\n\r\n\r\n }\r\n\r\n /// draw lines along with each pin marker plotted\r\n DrawMapRoute_JSMap1(lat_lng, routeColor) {\r\n // DrawMapRoute() {\r\n //debugger;\r\n if (this.DrawRoute == \"OFF\")\r\n return;\r\n\r\n //var lineSymbol = {\r\n // path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW\r\n //};\r\n\r\n const arrowSymbol = {\r\n path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW,\r\n fillColor: 'red',\r\n fillOpacity: 1,\r\n strokeWeight: 0,\r\n scale: 5\r\n };\r\n\r\n if (this.DrawLine == \"1\") { ///Draw short parabola route or Plane/sea routes\r\n\r\n const flightPlanCoordinates = [\r\n { lat: 12.971599, lng: 77.594563 },\r\n { lat: 12.29581, lng: 76.639381 },\r\n { lat: 11.410204, lng: 76.695032 },\r\n ];\r\n\r\n const flightPath = new google.maps.Polyline({\r\n path: flightPlanCoordinates,\r\n icons: [\r\n {\r\n icon: arrowSymbol,\r\n offset: \"50%\",\r\n },\r\n ],\r\n geodesic: true,\r\n strokeColor: routeColor,\r\n strokeOpacity: 1.0,\r\n strokeWeight: 2\r\n //map: this.map\r\n });\r\n\r\n flightPath.setMap(this.map);\r\n\r\n }\r\n else {// //Draw road route in actual way google mentioned road ways\r\n //debugger;\r\n if (this.routeLatLng.length > 0) {\r\n\r\n //Intialize the Path Array\r\n var path = new google.maps.MVCArray();\r\n\r\n //this.showDrawRouteDirection = true\r\n\r\n //Intialize the Direction Service\r\n var directionsServiceWaypoint = new google.maps.DirectionsService();\r\n //var directionsRendererwaypoint = new google.maps.DirectionsRenderer({\r\n // polylineOptions: {\r\n // strokeColor: 'blue',\r\n // icons: [{\r\n // icon: arrowSymbol,\r\n // offset: '50%'\r\n // }]\r\n // },\r\n //});\r\n //directionsRendererwaypoint.setMap(this.map);\r\n\r\n //////const waypts = []; //const waypts:google.maps.DirectionsWaypoint[] = [];\r\n\r\n //////for (let i = 0; i < flightPlanCoordinates.length; i++) {\r\n ////// waypts.push({\r\n ////// location: new google.maps.LatLng(flightPlanCoordinates[i]),\r\n ////// stopover: true,\r\n ////// });\r\n //////}\r\n\r\n //////var wayPointRequest = {\r\n ////// origin: { lat: 12.971599, lng: 77.594563 },\r\n ////// destination: { lat: 11.410204, lng: 76.695032 },\r\n ////// waypoints: waypts,\r\n ////// optimizeWaypoints: true,\r\n ////// travelMode: 'DRIVING',\r\n //////};\r\n //////directionsServiceWaypoint.route(wayPointRequest, function (result, status) {\r\n ////// if (status == 'OK') {\r\n ////// directionsRendererwaypoint.setDirections(result);\r\n ////// }\r\n //////});//end waypoint\r\n\r\n\r\n //Set the Path Stroke Color\r\n var poly = new google.maps.Polyline({\r\n map: this.map,\r\n icons: [{\r\n icon: arrowSymbol,\r\n offset: '50%'\r\n }],\r\n strokeColor: 'blue' ////routeColor\r\n });\r\n\r\n //Loop and Draw Path Route between the Points on MAP\r\n for (var i = 0; i < lat_lng.length; i++) {\r\n if ((i + 1) < lat_lng.length) {\r\n var src = lat_lng[i];//latlng1\r\n var des = lat_lng[i + 1];//latlng2\r\n path.push(src);\r\n poly.setPath(path);\r\n directionsServiceWaypoint.route({\r\n origin: src,\r\n destination: des,\r\n\r\n travelMode: google.maps.DirectionsTravelMode.DRIVING\r\n }, function (result, status) {\r\n if (status == google.maps.DirectionsStatus.OK) {\r\n for (var i = 0, len = result.routes[0].overview_path.length; i < len; i++) {\r\n path.push(result.routes[0].overview_path[i]);\r\n }\r\n }\r\n });\r\n }\r\n } //end for loop\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n /////draw line after all pins are plotted\r\n DrawMapRoute_JSMap_OG() {\r\n ////alert(this.DrawLine);\r\n //debugger;\r\n\r\n if (this.DrawRoute == \"OFF\")\r\n return;\r\n\r\n //var lineSymbol = {\r\n // path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW\r\n //};\r\n\r\n const arrowSymbol = {\r\n path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW\r\n //fillColor: 'red',\r\n //fillOpacity: 1,\r\n //strokeWeight: 0,\r\n //scale: 5\r\n };\r\n this.isLoading = true;\r\n if (this.DrawLine == \"1\") { ///Draw short parabola route or Plane/sea routes\r\n //debugger;\r\n //this.ClearDrawRoute('Road');\r\n this.ClearRoad();\r\n\r\n //const flightPlanCoordinates = [\r\n // { lat: 12.971599, lng: 77.594563 },\r\n // { lat: 12.29581, lng: 76.639381 },\r\n // { lat: 11.410204, lng: 76.695032 },\r\n //];\r\n\r\n if (this.routeLatLng.length > 0) {\r\n for (let i = 0; i < this.routeLatLng.length; i++) {\r\n //console.log(this.routeLatLng[i].lat_lng_combine);\r\n\r\n const flightPath = new google.maps.Polyline({\r\n path: this.routeLatLng[i].lat_lng_combine,\r\n icons: [\r\n {\r\n icon: arrowSymbol,\r\n offset: \"50%\",\r\n },\r\n ],\r\n geodesic: true,\r\n strokeColor: this.routeLatLng[i].color,\r\n strokeOpacity: 1.0,\r\n strokeWeight: 2,\r\n optimized: false,\r\n //map: this.map\r\n });\r\n\r\n flightPath.setMap(this.map);\r\n this.DirectPolylines.push(flightPath);\r\n\r\n if (i == this.routeLatLng.length - 1)\r\n this.isLoading = false;\r\n }\r\n }\r\n }\r\n else {// //Draw road route in actual way google mentioned road ways\r\n ////alert('road');\r\n //debugger;\r\n //this.ClearDrawRoute('Direct');\r\n this.ClearDirect()\r\n\r\n if (this.routeLatLng.length > 0) {\r\n\r\n //Intialize the Path Array\r\n //var path = new google.maps.MVCArray();\r\n\r\n //this.showDrawRouteDirection = true\r\n\r\n //Intialize the Direction Service\r\n //var directionsServiceWaypoint = new google.maps.DirectionsService();\r\n //for (var k = 0; k < this.routeLatLng.length; k++) {\r\n // console.log(this.routeLatLng[k].lat_lng_combine[0]);\r\n // console.log(this.routeLatLng[k].lat_lng_combine[1]);\r\n // console.log('****************************');\r\n //}\r\n\r\n for (var j = 0; j < this.routeLatLng.length; j++) {\r\n //for (var j = 0; j < 100; j++) {\r\n const directionsServiceWaypoint = new google.maps.DirectionsService();\r\n const directionsRendererwaypoint = new google.maps.DirectionsRenderer({\r\n suppressMarkers: true,\r\n preserveViewport: true,\r\n polylineOptions: {\r\n strokeColor: this.routeLatLng[j].color,\r\n icons: [{\r\n icon: arrowSymbol,\r\n offset: '50%'\r\n }]\r\n },\r\n map: this.map\r\n });\r\n\r\n\r\n //directionsRendererwaypoint.setMap(this.map);\r\n this.followRoadRoute.push(directionsRendererwaypoint);\r\n //debugger;\r\n let wayPointRequest = {\r\n //origin: this.routeLatLng[j].lat_lng_combine[0],//{ lat: 12.971599, lng: 77.594563 },\r\n //destination: this.routeLatLng[j].lat_lng_combine[1], //{ lat: 11.410204, lng: 76.695032 },\r\n origin: this.routeLatLng[j].origin,//{ lat: 12.971599, lng: 77.594563 },\r\n destination: this.routeLatLng[j].destination, //{ lat: 11.410204, lng: 76.695032 },\r\n // waypoints: waypts,\r\n //optimizeWaypoints: true,\r\n travelMode: 'DRIVING',\r\n };\r\n directionsServiceWaypoint.route(wayPointRequest, function (result, status) {\r\n if (status == 'OK') {\r\n //debugger;\r\n //console.log(j);\r\n directionsRendererwaypoint.setDirections(result);\r\n directionsRendererwaypoint.setOptions({ visible: true });\r\n }\r\n else {\r\n // Log the error\r\n console.log('Directions request failed:', status);\r\n // Retry the request after a delay (e.g., 1 second)\r\n //setTimeout(DrawMapRoute_JSMap, 1000);\r\n //setTimeout(() => {\r\n // debugger;\r\n // this.DrawMapRoute_JSMap();\r\n //}, 1000);\r\n\r\n }\r\n });//end waypoint\r\n\r\n if (j == this.routeLatLng.length - 1)\r\n this.isLoading = false;\r\n\r\n\r\n //setTimeout(() => {\r\n // debugger; \r\n // }, 1000);\r\n\r\n }//end for loop\r\n\r\n }///end check if routeLatLng > 0\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n\r\n }\r\n\r\n DrawMapRoute_JSMap() {\r\n ////alert(this.DrawLine);\r\n //debugger;\r\n\r\n if (this.DrawRoute == \"OFF\")\r\n return;\r\n\r\n //var lineSymbol = {\r\n // path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW\r\n //};\r\n\r\n const arrowSymbol = {\r\n path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW\r\n //fillColor: 'red',\r\n //fillOpacity: 1,\r\n //strokeWeight: 0,\r\n //scale: 5\r\n };\r\n this.isLoading = true;\r\n if (this.DrawLine == \"1\") { ///Draw short parabola route or Plane/sea routes\r\n //debugger;\r\n ////alert('direct');\r\n //this.ClearDrawRoute('Road');\r\n this.stopFollowRoadRoute = true;\r\n this.ClearRoad();\r\n\r\n //const flightPlanCoordinates = [\r\n // { lat: 12.971599, lng: 77.594563 },\r\n // { lat: 12.29581, lng: 76.639381 },\r\n // { lat: 11.410204, lng: 76.695032 },\r\n //];\r\n\r\n if (this.routeLatLng.length > 0) {\r\n for (let i = 0; i < this.routeLatLng.length; i++) {\r\n //console.log(this.routeLatLng[i].lat_lng_combine);\r\n\r\n const flightPath = new google.maps.Polyline({\r\n path: this.routeLatLng[i].lat_lng_combine,\r\n icons: [\r\n {\r\n icon: arrowSymbol,\r\n offset: \"50%\",\r\n },\r\n ],\r\n geodesic: true,\r\n strokeColor: this.routeLatLng[i].color,\r\n strokeOpacity: 1.0,\r\n strokeWeight: 2,\r\n optimized: false,\r\n //map: this.map\r\n });\r\n\r\n flightPath.setMap(this.map);\r\n this.DirectPolylines.push(flightPath);\r\n\r\n if (i == this.routeLatLng.length - 1)\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n }\r\n else {// //Draw road route in actual way google mentioned road ways\r\n ////alert('road');\r\n //debugger;\r\n //this.ClearDrawRoute('Direct');\r\n this.ClearDirect()\r\n\r\n if (this.routeLatLng.length > 0) {\r\n this.stopFollowRoadRoute = false;\r\n this.startDirections();\r\n\r\n }///end check if routeLatLng > 0\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n\r\n }\r\n\r\n ClearDrawRoute(routeType) {\r\n\r\n if (routeType == \"Direct\") {\r\n\r\n for (var i = 0; i < this.DirectPolylines.length; i++) {\r\n //this.DirectPolylines[i].setMap(null);\r\n this.DirectPolylines[i].setVisible(false);\r\n\r\n }\r\n this.DirectPolylines = [];\r\n\r\n\r\n //// Get the current bounds of the map\r\n //var bounds = this.map.getBounds();\r\n\r\n //// Set the center of the map to the current center\r\n //this.map.setCenter(bounds.getCenter());\r\n\r\n //// Set the zoom level of the map to the current zoom level\r\n //this.map.setZoom(this.map.getZoom());\r\n }\r\n else if (routeType == \"Road\") {\r\n\r\n for (var i = 0; i < this.followRoadRoute.length; i++) {\r\n this.followRoadRoute[i].setMap(null);\r\n //this.followRoadRoute[i].setOptions({ visible: false });\r\n }\r\n this.followRoadRoute = [];\r\n\r\n\r\n //// Get the current bounds of the map\r\n //var bounds = this.map.getBounds();\r\n\r\n //// Set the center of the map to the current center\r\n //this.map.setCenter(bounds.getCenter());\r\n\r\n //// Set the zoom level of the map to the current zoom level\r\n //this.map.setZoom(this.map.getZoom());\r\n }\r\n else {\r\n //remove both Direct and Follow route\r\n if (this.DrawRoute == \"OFF\") {\r\n ////DIRECT PATH\r\n for (var i = 0; i < this.DirectPolylines.length; i++) {\r\n //this.DirectPolylines[i].setMap(null);\r\n this.DirectPolylines[i].setVisible(false);\r\n //this.DirectPolylines[i].setMap(null);\r\n }\r\n this.DirectPolylines = [];\r\n\r\n /////// Follow Road PATH\r\n for (var i = 0; i < this.followRoadRoute.length; i++) {\r\n //this.followRoadRoute[i].setOptions({ visible: false });\r\n this.followRoadRoute[i].setMap(null);\r\n }\r\n this.followRoadRoute = [];\r\n }///endif\r\n }//end else\r\n\r\n }\r\n\r\n ClearDirect() {\r\n\r\n for (var i = 0; i < this.DirectPolylines.length; i++) {\r\n this.DirectPolylines[i].setVisible(false);\r\n //this.DirectPolylines[i].setMap(null);\r\n }\r\n this.DirectPolylines = [];\r\n\r\n }\r\n\r\n ClearRoad() {\r\n\r\n //this.stopFollowRoadRoute = true;\r\n //this.DrawLine = \"1\";\r\n for (var i = 0; i < this.followRoadRoute.length; i++) {\r\n this.followRoadRoute[i].setMap(null);\r\n //this.followRoadRoute[i].setOptions({ visible: false });\r\n }\r\n this.followRoadRoute = [];\r\n\r\n }\r\n\r\n private async getDirections(request: google.maps.DirectionsRequest, directionsRendererwaypoint: google.maps.DirectionsRenderer): Promise {\r\n let directionsServiceWaypoint = new google.maps.DirectionsService();\r\n\r\n return new Promise((resolve, reject) => {\r\n directionsServiceWaypoint.route(request, (result, status) => {\r\n if (status === 'OK') {\r\n console.log('successs');\r\n directionsRendererwaypoint.setDirections(result);\r\n //directionsRendererwaypoint.setOptions({ visible: true });\r\n directionsRendererwaypoint.setMap(this.map);\r\n resolve(result as google.maps.DirectionsResult);\r\n } else {\r\n console.log('error');\r\n reject(new Error('Directions request failed with status: ' + status));\r\n }\r\n });\r\n });\r\n\r\n\r\n }\r\n\r\n private async processRequest(request: google.maps.DirectionsRequest, directionsRendererwaypoint: google.maps.DirectionsRenderer): Promise {\r\n try {\r\n const result = await this.getDirections(request, directionsRendererwaypoint);\r\n // Process the result as needed\r\n } catch (error) {\r\n // Handle the error\r\n }\r\n }\r\n\r\n private async startDirections(): Promise {\r\n //const MAX_CONCURRENT_REQUESTS = 5;\r\n //const semaphore = new Semaphore(MAX_CONCURRENT_REQUESTS);\r\n const arrowSymbol = {\r\n path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW\r\n };\r\n\r\n //const routeLatLng = this.routeLatLng;//: YourLatLngType[] = /* Your array of LatLng objects ;\r\n\r\n for (let j = 0; j < this.routeLatLng.length; j++) {\r\n if (this.stopFollowRoadRoute) {\r\n /////to stop async function\r\n this.ClearRoad();\r\n //this.stopFollowRoadRoute = false;\r\n console.log('stopped');\r\n return;\r\n }\r\n\r\n const directionsRendererwaypoint = new google.maps.DirectionsRenderer({\r\n suppressMarkers: true,\r\n preserveViewport: true,\r\n polylineOptions: {\r\n strokeColor: this.routeLatLng[j].color,\r\n icons: [{\r\n icon: arrowSymbol,\r\n offset: '50%'\r\n }]\r\n },\r\n map: this.map\r\n });\r\n\r\n\r\n //directionsRendererwaypoint.setMap(this.map);\r\n this.followRoadRoute.push(directionsRendererwaypoint);\r\n const request: google.maps.DirectionsRequest = {\r\n origin: this.routeLatLng[j].origin,\r\n destination: this.routeLatLng[j].destination,\r\n travelMode: google.maps.DirectionsTravelMode.DRIVING, // 'DRIVING',\r\n };\r\n\r\n await this.processRequest(request, directionsRendererwaypoint);\r\n //await semaphore.delay(); // Introduce a delay between requests if needed\r\n }\r\n }\r\n\r\n\r\n ////////////////////////// End Draw Route\r\n\r\n /////////////////////////// start Popup Section bluetooth and status display\r\n //VQuad node Bluetooth List \r\n OpenBTFXODialog() {\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"40%\";\r\n //debugger;\r\n\r\n\r\n dailogConfig.data = { pageValue: this.bluetoothText, nodeStatus: true };\r\n\r\n this.dialog.open(VquadbtfxoComponent, dailogConfig);\r\n }\r\n\r\n //VQuad or Mobile Nodes N/W status\r\n OpenStatusDialog(itemID, resultType) {\r\n /// //alert(resultType);\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"70%\";\r\n //debugger;\r\n\r\n let vquadID = \"\";\r\n //itemID = \"21\";\r\n //resultType = \"call-events\";\r\n\r\n if (this.usePredefinedConfig == \"OFF\")/// it should be OFF\r\n {\r\n if (resultType.toLowerCase().includes('mobile'))\r\n vquadID = itemID + \"@\" + resultType + \"$\" + this.usePredefinedConfig; // for testing itemid =21\r\n else\r\n vquadID = itemID + \"@\" + resultType + \"$\" + this.usePredefinedConfig; // for testing itemid =21\r\n }\r\n else\r\n vquadID = itemID + \"@\" + resultType + \"$\" + this.usePredefinedConfig; // for testing itemid =37014543 and resultype=\"call-events\"\r\n\r\n dailogConfig.data = { pageValue: vquadID };\r\n\r\n let dialogRef = this.dialog.open(GooglemapstatuspopupComponent, dailogConfig);\r\n dialogRef.afterClosed().subscribe(\r\n data => {\r\n //debugger;\r\n this.commonFilterService.setNonFiltersScreen(this.staticScreen);\r\n }\r\n );\r\n }\r\n\r\n //Results window\r\n OpenBasicDialog(requestID, rsltType) {\r\n //if (this.resultTypeID != \"\")\r\n // requestID = this.resultTypeID;\r\n\r\n //console.log(requestID + ',' + rsltType)\r\n const dailogConfig = new MatDialogConfig();\r\n //dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"80%\";\r\n let newRsltType = rsltType;\r\n let selectedSubResults = \"\";\r\n if (rsltType.indexOf(\"mobileinfo\") != -1 || rsltType.indexOf(\"nettest\") != -1) {\r\n newRsltType = (rsltType.split('-'))[0];\r\n\r\n selectedSubResults = (rsltType.split('-'))[1];\r\n\r\n //got from sub-results-selection component\r\n let netTestData = [\r\n { id: 1, name: 'TCP' },\r\n { id: 2, name: 'UDP' },\r\n { id: 3, name: 'VOIP' },\r\n { id: 4, name: 'ROUTE' },\r\n { id: 5, name: 'HTTP' },\r\n { id: 6, name: 'FTP' },\r\n { id: 7, name: 'DNS' },\r\n { id: 8, name: 'SMS' },\r\n { id: 9, name: 'EMAIL' }\r\n ];\r\n let mobileInfoData = [\r\n { id: 1, name: 'GENERAL' },\r\n { id: 2, name: 'SIM' },\r\n { id: 3, name: 'UE' }\r\n ];\r\n let rsltIndex = -1;\r\n if (newRsltType == \"nettest\")\r\n rsltIndex = netTestData.find(x => x.name == selectedSubResults).id;\r\n else\r\n rsltIndex = mobileInfoData.find(x => x.name == selectedSubResults).id;\r\n this.resultsService.setNetTestOrMobInfoByID(rsltIndex);\r\n\r\n selectedSubResults += newRsltType == \"nettest\" ? \"DATA\" : \"INFO\";\r\n }\r\n\r\n dailogConfig.data = { popupOrNot: true, requestID: requestID, rsltType: newRsltType, TSSelected: this.TSSelected };\r\n\r\n //https://stackoverflow.com/questions/41357021/passing-input-values-to-dialog-component\r\n let dialogRef = this.dialog.open(BasicComponent, dailogConfig);\r\n let instance = dialogRef.componentInstance;\r\n instance.selectedSubResults = selectedSubResults;\r\n\r\n //dialogRef.afterClosed().subscribe(\r\n // data => { this.successMsgBasic = data; }\r\n //);\r\n }\r\n\r\n ShowMapLegendWin(rsltType, condVal, pinType) {\r\n\r\n if (rsltType.trim() == \"Audio and Delay\")\r\n rsltType = \"TDM\";\r\n\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"50%\";\r\n //debugger;\r\n this.legendPopupData = this.dynamicLegendPopupData;\r\n //console.log(this.legendPopupData[0])\r\n this.legendPopupData = this.legendPopupData[0].filter(m => m.ConditionValue.replace(/::true/gi, '').replace(/::false/gi, '') == condVal && m.RsltType == rsltType);\r\n\r\n let currPinRsltIndx = this.legendPopupData[0].RsltIndex; //-1;\r\n //let currListEachRsltCondVal = \"\";\r\n //this.dynamicLegendPopupData[0].every(item => {\r\n // if (currListEachRsltCondVal != item.ConditionValue) {\r\n // currListEachRsltCondVal = item.ConditionValue;\r\n // currPinRsltIndx++;\r\n\r\n // if (currListEachRsltCondVal == this.legendPopupData[0].ConditionValue)\r\n // return false; \r\n // }\r\n // return true;\r\n //});\r\n //console.log(currListEachRsltCondVal)\r\n\r\n if (this.legendPopupData.length <= 0) {\r\n return;\r\n }\r\n else {\r\n /// mark threshold.isapplied =1 if already applied\r\n for (let i = 0; i < this.appliedLegendThreshold.length; i++) {\r\n if (this.appliedLegendThreshold[i].replace(/::true/gi, '').replace(/::false/gi, '') == condVal) {\r\n //debugger\r\n this.legendPopupData[0].IsApplied = 1;//as fetched from orig list, set isApplied again everytime\r\n this.appliedLegendThreshold.splice(i);//if already applied remove and add freshly condVal below again everytime\r\n }\r\n }\r\n }\r\n //console.log(this.legendPopupData)\r\n\r\n dailogConfig.data = { pageValue: this.legendPopupData, pinType: pinType };\r\n\r\n let dialogResult = this.dialog.open(GooglemaplegendpopupComponent, dailogConfig);\r\n\r\n dialogResult.afterClosed().subscribe((resultData) => {\r\n\r\n if (resultData) {\r\n let tLegends = resultData;\r\n //debugger;\r\n\r\n if (tLegends[0].IsApplied == 1)//susheel\r\n this.appliedLegendThreshold.push(tLegends[0].ConditionValue.replace(/::true/gi, '').replace(/::false/gi, ''));//add or re-add applied new threshold\r\n\r\n if (pinType == \"Threshold Type\") {\r\n let allTRs = \";\" + this.thresholdLegendsCount;//document.getElementById(\"hidMapLegendsApplyOrNot\").value;//All applied TRs\r\n let entireThresholds = \";\" + this.thresholdLegends; // document.getElementById(\"hidMapLegendsThresholds\").value;\r\n\r\n if (allTRs.indexOf(';' + currPinRsltIndx + ';') != -1) {//leg each pin index\r\n allTRs = allTRs.replace(';' + currPinRsltIndx + ';', ';');//remove existing pin index applied\r\n\r\n var subVal = entireThresholds.substring(entireThresholds.indexOf(';' + currPinRsltIndx + '@'), entireThresholds.indexOf('@' + currPinRsltIndx + ';') + 3); //entireThresholds.substring(entireThresholds.indexOf(';' + document.getElementById(\"hidMapLegends\").value + '@'), entireThresholds.indexOf('@' + document.getElementById(\"hidMapLegends\").value + ';') + 3);\r\n entireThresholds = entireThresholds.replace(subVal, ';');//empty existing pin index's threshold val applied\r\n }\r\n else//Current applied tr newly\r\n {\r\n allTRs += currPinRsltIndx + ';'; //add pin index\r\n entireThresholds += currPinRsltIndx + \"@\"; //Indicating respective pin Index\r\n\r\n for (let i = 0; i < tLegends.length; i++) {\r\n //console.log(tLegends[i].OperatorDropDown)\r\n // $('#trMapLeg' + document.getElementById(\"hidMapLegends\").value).find(\"input\").each(function () {\r\n var x = \"\";\r\n //if (this.id.indexOf('DevID') != -1) //Device ID ^ as start\r\n // x = this.value + \"$\";\r\n //else if (this.id.indexOf('txtMapLeg') != -1)//Operator ~ threshold ~ AND/OR of each parameter\r\n // x = (document.getElementById(this.id.replace('txt', 'ddl')) != null ? document.getElementById(this.id.replace('txt', 'ddl')).selectedIndex : \"0\") + \"-\" + this.value + \"^\" + (document.getElementById(this.id.replace('txtMapLeg', 'ddlAndOrMapLeg')) != null ? document.getElementById(this.id.replace('txtMapLeg', 'ddlAndOrMapLeg')).value : \"AND\") + \",\";\r\n if (tLegends[i].IsVquadData == 1) {\r\n x = tLegends[i].Text + \"$\";\r\n }\r\n else {\r\n x = tLegends[i].newOperatorIndex + \"-\" + tLegends[i].Text + \"^\" + (tLegends[i].AndORDropDown != null ? tLegends[i].AndORDropDown : \"AND\") + \",\";\r\n }\r\n\r\n entireThresholds += x;//single or multi thresholds set here\r\n // });\r\n }\r\n entireThresholds += \"@\" + currPinRsltIndx + \";\"; //closing with respective pin Index\r\n\r\n }\r\n ///document.getElementById(\"hidMapLegendsThresholds\").value = entireThresholds.substring(1, entireThresholds.length);//Remove first and last ;'s\r\n ///document.getElementById(\"hidMapLegendsApplyOrNot\").value = allTRs.substring(1, allTRs.length);//Remove first and last ;'s\r\n this.thresholdLegends = entireThresholds.substring(1, entireThresholds.length);//Remove first and last ;'s\r\n this.thresholdLegendsCount = allTRs.substring(1, allTRs.length);//Remove first and last ;'s\r\n //console.log(this.thresholdLegends)\r\n //console.log(this.thresholdLegendsCount)\r\n }\r\n else if (pinType == \"VQuad Call ID Type\") {\r\n let allTRs = \";\" + this.thresholdLegendsCount;\r\n if (allTRs.indexOf(';' + currPinRsltIndx + ';') == -1)\r\n allTRs += currPinRsltIndx + ';'; //add rslt index\r\n\r\n let entireCallIDs = \";\" + this.callIDLegends;\r\n\r\n entireCallIDs += tLegends[0].currCritListValue;\r\n\r\n //entireCallIDs += \"@\" + currPinRsltIndx + \";\";\r\n this.callIDLegends = entireCallIDs;\r\n\r\n this.thresholdLegendsCount = allTRs.substring(1, allTRs.length);//Remove first and last ;'s\r\n //console.log(entireCallIDs)\r\n //console.log(this.thresholdLegendsCount)\r\n }\r\n else if (pinType == \"VQuad Device ID Type\") {\r\n let allTRs = \";\" + this.thresholdLegendsCount;\r\n if (allTRs.indexOf(';' + currPinRsltIndx + ';') == -1)\r\n allTRs += currPinRsltIndx + ';'; //add rslt index\r\n\r\n let entireDevIDs = \";\" + this.devIDLegends;\r\n\r\n entireDevIDs += tLegends[0].currCritListValue;\r\n\r\n //entireDevIDs += \"@\" + currPinRsltIndx + \";\";\r\n this.devIDLegends = entireDevIDs;\r\n\r\n this.thresholdLegendsCount = allTRs.substring(1, allTRs.length);//Remove first and last ;'s\r\n //console.log(entireDevIDs)\r\n //console.log(this.thresholdLegendsCount)\r\n }\r\n else if (pinType == \"Call Control Event Type\") {\r\n let allTRs = \";\" + this.thresholdLegendsCount;\r\n if (allTRs.indexOf(';' + currPinRsltIndx + ';') == -1)\r\n allTRs += currPinRsltIndx + ';'; //add rslt index\r\n\r\n let entireCCEs = \";\" + this.callEventsLegends;\r\n\r\n entireCCEs += tLegends[0].currCritListValue;\r\n\r\n //entireCCEs += \"@\" + currPinRsltIndx + \";\";\r\n this.callEventsLegends = entireCCEs;\r\n\r\n this.thresholdLegendsCount = allTRs.substring(1, allTRs.length);//Remove first and last ;'s\r\n //console.log(entireDevIDs)\r\n //console.log(this.thresholdLegendsCount)\r\n }\r\n\r\n this.GetMapConfigByID(this.mapConfigID, 1);\r\n\r\n } else {\r\n //this.pinColor = 'Nothing...';\r\n }\r\n });\r\n\r\n\r\n\r\n //this.showPopupLegend = true;\r\n }\r\n\r\n CloseMapLegendWin() {\r\n // this.showPopupLegend = false;\r\n }\r\n\r\n /////////////////////////// end Popup Section bluetooth and status display\r\n\r\n ////////////////// left panel Checkbox list\r\n\r\n pdfFilePathNew = \"/Webviewer/assets/DowloadedScripts/GoogleMapHelp.pdf\";//http://localhost:4200/assets/DowloadedScripts/GoogleMapHelp.pdf\r\n modalTitle = \"'Google Maps Help'\";\r\n OpenHelpPDFView(helpDocType) {\r\n if (helpDocType == \"DefinitionHelp\") {\r\n this.pdfFilePathNew = \"/Webviewer/assets/DowloadedScripts/GoogleMapHelp.pdf\";\r\n this.modalTitle = \"Google Maps Help\";\r\n }\r\n else {\r\n this.pdfFilePathNew = \"/Webviewer/assets/DowloadedScripts/GoogleMapNotVisibleHelp.pdf\";\r\n this.modalTitle = \"Google Maps Not Visible\";\r\n }\r\n }\r\n OpenHelp(helpDocType) {\r\n\r\n let pdfFilePath = \"\";\r\n if (helpDocType == \"DefinitionHelp\")\r\n pdfFilePath = '/Webviewer/assets/DowloadedScripts/GoogleMapHelp.pdf'; //// '/Webviewer/assets/images/ITS/ITSHelp.pdf';\r\n else\r\n pdfFilePath = '/Webviewer/assets/DowloadedScripts/GoogleMapNotVisibleHelp.pdf';\r\n\r\n const windowFeatures = 'menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=yes,height = ' + screen.height * .66 + ',width=' + screen.width * .66;\r\n // Open the popup window\r\n //const popupWindow = window.open('', '_blank', 'top=0,left=0,height=100%,width=auto');\r\n const popupWindow = window.open('', '_blank', windowFeatures);\r\n\r\n popupWindow.document.open();\r\n popupWindow.document.write(`\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tGoogle Maps HELP\r\n\t\t\t\t\t\t\r\n \r\n \r\n \r\n `)\r\n popupWindow.document.close();\r\n // Write the HTML content to the popup window\r\n // popupWindow.document.write(`\r\n // \r\n // \r\n // \r\n // \r\n // \r\n //`);\r\n\r\n // // Make sure to close the document write operation\r\n // popupWindow.document.close();\r\n\r\n }\r\n\r\n SpiralClicked() {\r\n ////alert();\r\n }\r\n\r\n\r\n DisplayResultList = [\r\n {\r\n Name: \"Results\",\r\n Value: \"0\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"Failures\",\r\n Value: \"1\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"VQuad Nodes\",\r\n Value: \"2\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"Mobile Devices\",\r\n Value: \"3\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"VMobile Devices\",\r\n Value: \"4\",\r\n Checked: true\r\n }\r\n ];\r\n\r\n AnalysisList = [\r\n //{\r\n // Name: \"Check/UnCheck All\",\r\n // Value: \"1\",\r\n // Checked: true\r\n //},\r\n {\r\n Name: \"Failures\",\r\n Value: \"2\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"Call Events\",\r\n Value: \"3\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"PESQ\",\r\n Value: \"4\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"POLQA\",\r\n Value: \"5\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"RTD\",\r\n Value: \"6\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"OWD\",\r\n Value: \"7\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"PDD\",\r\n Value: \"8\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"SNR\",\r\n Value: \"9\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"EModule\",\r\n Value: \"10\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"EMU\",\r\n Value: \"11\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"FAX\",\r\n Value: \"12\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"VAC\",\r\n Value: \"13\",\r\n Checked: true\r\n },\r\n ];\r\n\r\n NetTestList = [\r\n //{\r\n // Name: \"Check/UnCheck All\",\r\n // Value: \"0\",\r\n // Checked: true\r\n //},\r\n {\r\n Name: \"Failures\",\r\n Value: \"1\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"Connection Drop\",\r\n Value: \"2\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"TCP\",\r\n Value: \"3\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"UDP\",\r\n Value: \"4\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"VOIP\",\r\n Value: \"5\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"ROUTE\",\r\n Value: \"6\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"HTTP\",\r\n Value: \"7\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"FTP\",\r\n Value: \"8\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"DNS\",\r\n Value: \"9\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"SMS\",\r\n Value: \"10\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"EMAIL\",\r\n Value: \"11\",\r\n Checked: true\r\n }\r\n ];\r\n\r\n MobileInfoList = [\r\n //{\r\n // Name: \"Check/UnChecl All\",\r\n // Value: \"0\",\r\n // Checked: true\r\n //},\r\n {\r\n Name: \"Failures\",\r\n Value: \"1\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"PHONEINFO\",\r\n Value: \"2\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"SIM\",\r\n Value: \"3\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"UE\",\r\n Value: \"4\",\r\n Checked: true\r\n }\r\n ];\r\n\r\n ErrorEventList = [\r\n //{\r\n // Name: \"Check/UnCheck All\",\r\n // Value: \"0\",\r\n // Checked: true\r\n //},\r\n {\r\n Name: \"Call Events\",\r\n Value: \"1\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"RTD\",\r\n Value: \"2\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"OWD\",\r\n Value: \"3\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"PDD\",\r\n Value: \"4\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"SNR\",\r\n Value: \"5\",\r\n Checked: true\r\n },\r\n {\r\n Name: \"FAX\",\r\n Value: \"6\",\r\n Checked: true\r\n }\r\n ];\r\n\r\n TypeList = [\r\n {\r\n Name: \"Threshold Settings\",\r\n Value: \"0\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"VQuad Call ID\",\r\n Value: \"1\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"VQuad Devcie ID\",\r\n Value: \"2\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"Call Events\",\r\n Value: \"3\",\r\n Checked: false\r\n }\r\n ];\r\n\r\n ResultList = [\r\n {\r\n Name: \"VQT PESQ\",\r\n Value: \"VQTDATA|0|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"VQT POLQA\",\r\n Value: \"VQTPOLQA|1|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"VQuad Call Events\",\r\n Value: \"VQUADDATA|2|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"Audio and Delay Analysis\",\r\n Value: \"VQUADDATA|3|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"TCP\",\r\n Value: \"TCPDATA|4|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"UDP\",\r\n Value: \"UDPDATA|5|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"VOIP\",\r\n Value: \"VOIPDATA|6|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"ROUTE\",\r\n Value: \"ROUTEDATA|7|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"HTTP\",\r\n Value: \"HTTPDATA|8|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"FTP\",\r\n Value: \"FTPDATA|9|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"DNS\",\r\n Value: \"DNSDATA|10|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"SMS\",\r\n Value: \"SMSDATA|11|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"EMAIL\",\r\n Value: \"EMAILDATA|12|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"Phone Info\",\r\n Value: \"GENERALINFO|13|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"SIM\",\r\n Value: \"SIMINFO|14|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"UE\",\r\n Value: \"UEINFO|15|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"EMU\",\r\n Value: \"EMUDATA|16|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"FAX\",\r\n Value: \"FAXDATA|17|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"EModule\",\r\n Value: \"EModule|18|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"Connection Drop\",\r\n Value: \"CONNDROPDATA|19|\",\r\n Checked: false\r\n },\r\n {\r\n Name: \"VAC\",\r\n Value: \"VACDATA|20|\",\r\n Checked: false\r\n }\r\n ];\r\n\r\n SampleLocations = [\r\n { lat: -31.56391, lng: 147.154312 },\r\n { lat: -33.718234, lng: 150.363181 },\r\n { lat: -35.304724, lng: 148.662905 },\r\n { lat: -36.817685, lng: 175.699196 },\r\n { lat: -31.56391, lng: 146.154312 },\r\n { lat: -32.56391, lng: 147.154312 },\r\n { lat: -33.718234, lng: 150.363181 },\r\n { lat: -35.304724, lng: 148.662905 }\r\n ];\r\n\r\n ////////////////// left panel Checkbox list\r\n\r\n ////////////////////////////////////////////////////////////// SERVICES /////////////////////////////////////////////////////\r\n\r\n GetMapConfigData_Service() {\r\n //debugger\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, this.preDefinedConfigParam, options);\r\n\r\n }\r\n\r\n GetMapConfigDataByID_Service() {\r\n //debugger\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, this.mapDisplayOptions, options);\r\n\r\n }\r\n\r\n GetMapDispayOptions_Service() {\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, this.mapDisplayOptions, options);\r\n\r\n }\r\n\r\n SetTimestampSearch(tsSearch) {\r\n switch (tsSearch) {\r\n case 0:\r\n return \"CALL_TIMESTAMP\";\r\n case 1:\r\n return \"VQUAD_TIMESTAMP\";\r\n case 2:\r\n return \"VQT_Timestamp\";\r\n case 3:\r\n return \"DCOSS_TIMESTAMP\";\r\n }\r\n\r\n }\r\n\r\n parentRef(TSSelected) {\r\n //console.log('refresh');\r\n this.TSSelected = parseInt(TSSelected);\r\n //this.setRsltType();\r\n //////// Common filter dates \r\n ////let dates = formatDate(new Date(Date.now() + -1 * 600 * 1000)) + \"^\" + formatDate(new Date());//\"06/02/2019 11:00:00^06/02/2019 20:00:00\"; \r\n //this.commonFilterService.TSBetween.subscribe(res => this.commonFilterDates = res);//latest dates selected is set here from service\r\n ////Added to set proper dates here based on range selection\r\n //this.commonFilterService.TSRangeFilter.subscribe(res => {\r\n // if (res.RangeType !== \"custom\")\r\n // { this.commonFilterDates = lastDateFunc(res.RangeType) }\r\n //});//sets start and end dates to latest timestamps based on range type selection - IMP\r\n\r\n //this.commonFilterService.setDatesProperties(this.commonFilterDates);\r\n\r\n this.commonFilterService.usePredefinedConfig.subscribe(res => this.usePredefinedConfig = res);\r\n //this.GetPredefinedConfig(this.selMapConfig);-susheel IMP\r\n }\r\n parentEventID() {\r\n //console.log('parentid');\r\n //console.log('parentEventID')\r\n //this.filterEventIDSelected = true;\r\n //debugger;\r\n //////alert('parentEventID');\r\n this.refreshSelections();\r\n }\r\n parentAutoRef(AutoRefreshInfo) {\r\n //console.log('autorefsh');\r\n this.TSSelected = parseInt(AutoRefreshInfo.TSSelected);\r\n this.AutoRefreshInfo = AutoRefreshInfo;\r\n }\r\n\r\n\r\n\r\n displayFn(selectItem: any): string {\r\n return selectItem && selectItem.Name && !selectItem.Name.includes('--Select Map Config--') ? selectItem.Name : '';\r\n }\r\n\r\n _mapName(value: any): any[] {\r\n //console.log(value)\r\n let mapNameValue = '';\r\n if (typeof value === \"string\") {\r\n this.toHighlight = value;\r\n mapNameValue = value.toLowerCase();\r\n }\r\n else {\r\n this.toHighlight = value.Name;\r\n mapNameValue = value.Name.toLowerCase();\r\n }\r\n return this.mapFilterConfigList.filter(option => option.Name.toLowerCase().includes(mapNameValue) || option.Name.includes('--Select Map Config--'));\r\n }\r\n\r\n getList() {\r\n this.mapNamesObservable = this.mapFilterConfigList;\r\n if (this.init) {\r\n this.mapNamesObservable = [this.mapFilterConfigList[0]];\r\n }\r\n if (this.myConfigName != \"null\" && this.init)\r\n this.setConfigByName(this.myConfigName);\r\n }\r\n setConfigByName(name) {\r\n this.modelMapName = name;\r\n //console.log(this.modelMapName)\r\n let mapConfigName = this.modelMapName.trim();\r\n this.inputLength = this.modelMapName.trim().length;\r\n if (mapConfigName.length == 0) {\r\n this.GetMapConfigByID(null);\r\n return;\r\n }\r\n\r\n let id = this.mapFilterConfigList.find(x => x.Name == mapConfigName).id;\r\n this.GetMapConfigByID(id);\r\n\r\n this.init = false;\r\n }\r\n\r\n inputLength = 0;\r\n setLimitedOptions = true;\r\n onKeydownMain($event) {\r\n if (!this.setLimitedOptions) {\r\n this.setLimitedOptions = true;\r\n this.control.valueChanges.subscribe(newValue => {\r\n this.mapNamesObservable = this._mapName(newValue);\r\n })\r\n }\r\n this.inputLength = $event.target.value.length;\r\n this.modelMapName = $event.target.value;\r\n if (this.inputLength == 0) {\r\n this.triggerCollection.forEach((x, i) => {\r\n if (i == 1) {\r\n let firstSelectedOption = x.autocomplete.options.find(o => o.value.ID == this.selectedMapConfigID);\r\n if (firstSelectedOption) {\r\n this.MapClose = true;\r\n this.control.setValue(\"\");\r\n firstSelectedOption.deselect();\r\n }\r\n }\r\n });\r\n }\r\n }\r\n clearInputText() {\r\n this.control.setValue(\"\");\r\n this.inputLength = 0;\r\n }\r\n clearInput(input: HTMLInputElement, auto: MatAutocomplete) {\r\n this.control.setValue(\"\");\r\n this.inputLength = 0;\r\n this.selectedMapConfigID = 0;\r\n this.modelMapName = \"\";\r\n input.focus();\r\n //input.placeholder = '';\r\n //input.value = '';\r\n //auto.options.forEach(option => option.deselect());\r\n //auto.closePanel();\r\n\r\n //this.clearAllSelections();\r\n if (this.myConfigName != \"null\") {\r\n this.triggerCollection.forEach((x, i) => {\r\n if (i == 1)\r\n setTimeout(() => x.openPanel());\r\n });\r\n }\r\n }\r\n\r\n openOrClose = false;\r\n MapClose = false;\r\n OpenAutoCompeleteDailog(init?, closed?) {\r\n let tmOut = 0;\r\n if (init) {\r\n tmOut = 1000;\r\n }\r\n else {\r\n this.setLimitedOptions = false;\r\n this.mapNamesObservable = this.mapFilterConfigList;\r\n }\r\n\r\n this.triggerCollection.forEach((x, i) => {\r\n if (i == 1) {\r\n if (this.openOrClose == true || closed) {\r\n setTimeout(() => x.closePanel());\r\n this.openOrClose = false;\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.inputCtrl.nativeElement.blur();\r\n this.inputCtrl.nativeElement.focus();\r\n this.toHighlight = this.inputCtrl.nativeElement.value;\r\n if (this.inputLength > 0) {\r\n let firstSelectedOption = x.autocomplete.options.find(o => o.selected);\r\n if (firstSelectedOption === undefined && this.selectedMapConfigID !== 0) {\r\n firstSelectedOption = x.autocomplete.options.find(o => o.value.ID == this.selectedMapConfigID);\r\n if (firstSelectedOption) {\r\n if (this.initArrow)\r\n this.MapClose = true;\r\n firstSelectedOption.select();\r\n setTimeout(() => {\r\n x.openPanel();\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n });\r\n }\r\n }\r\n if (firstSelectedOption) {\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n }\r\n }\r\n //x.openPanel();\r\n }, tmOut);\r\n this.openOrClose = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n initArrow = true;\r\n SetArrowClick() {\r\n if (this.initArrow) {\r\n this.initArrow = false;\r\n }\r\n }\r\n\r\n\r\n\r\n displayFnReg(selectItem: any): string {\r\n return selectItem && selectItem && !selectItem.includes('--Select Region--') ? selectItem : '';\r\n }\r\n\r\n _regName(value: any): any[] {\r\n this.toHighlightReg = value;\r\n let RegNameValue = value.toLowerCase();\r\n return this.mapRegionList.filter(option => option.toLowerCase().includes(RegNameValue) || option.includes('--Select Region--'));\r\n }\r\n\r\n getListReg() {\r\n\r\n this.regNamesObservable = this.mapRegionList;\r\n if (this.myConfigNameReg != \"null\" && this.initReg)\r\n this.setConfigByNameReg(this.myConfigNameReg);\r\n\r\n ////restore previous selected region config \r\n if (this.restorePreviousMapRegionName != \"0\") {\r\n //this.isLoading = true;\r\n //////alert(this.restorePreviousMapRegionName);\r\n //this.myConfigNameReg = this.restorePreviousMapRegionName;\r\n //this.openOrCloseReg = false;\r\n this.inputRegCtrl.nativeElement.value = this.restorePreviousMapRegionName;\r\n this.setConfigByNameReg(this.restorePreviousMapRegionName);\r\n this.OpenAutoCompeleteDailogReg(false);\r\n this.inputRegCtrl.nativeElement.value = this.restorePreviousMapRegionName;\r\n }\r\n //this.isLoading = false;\r\n }\r\n setConfigByNameReg(name) {\r\n this.modelRegName = name;\r\n //this.ResetPage();\r\n //console.log(this.modelRegName)\r\n ////restore previous selected region\r\n\r\n\r\n\r\n let RegConfigName = this.modelRegName.trim();\r\n //this.resetCritErrors();\r\n if (RegConfigName.length == 0) {\r\n this.GetMapRegionDetail(\"0\");\r\n return;\r\n }\r\n this.GetMapRegionDetail(name);\r\n\r\n\r\n this.initReg = false;\r\n }\r\n\r\n inputLengthReg = 0;\r\n setLimitedOptionsReg = true;\r\n onKeydownMainReg($event) {\r\n if (!this.setLimitedOptionsReg) {\r\n this.setLimitedOptionsReg = true;\r\n this.controlReg.valueChanges.subscribe(newValue => {\r\n this.regNamesObservable = this._regName(newValue);\r\n })\r\n }\r\n this.inputLengthReg = $event.target.value.length;\r\n this.modelRegName = $event.target.value;\r\n if (this.inputLengthReg == 0) {\r\n this.triggerCollection.forEach((x, i) => {\r\n if (i == 0) {\r\n let firstSelectedOption = x.autocomplete.options.find(o => o.value == this.modelRegName);\r\n if (firstSelectedOption) {\r\n this.MapRegClose = true;\r\n this.controlReg.setValue(\"\");\r\n firstSelectedOption.deselect();\r\n }\r\n }\r\n });\r\n }\r\n }\r\n clearInputTextReg() {\r\n this.controlReg.setValue(\"\");\r\n this.inputLengthReg = 0;\r\n }\r\n clearInputReg(auto: MatAutocomplete) {\r\n this.controlReg.setValue(\"\");\r\n this.inputLengthReg = 0;\r\n this.mapRegionSelected = \"0\";\r\n this.modelRegName = \"\";\r\n //input.placeholder = '';\r\n //input.value = '';\r\n //auto.options.forEach(option => option.deselect());\r\n //auto.closePanel();\r\n this.GetMapRegionDetail(\"0\", false);\r\n if (this.myConfigNameReg != \"null\") {\r\n this.triggerCollection.forEach((x, i) => {\r\n if (i == 0)\r\n setTimeout(() => x.openPanel());\r\n });\r\n }\r\n }\r\n\r\n openOrCloseReg = false;\r\n MapRegClose = false;\r\n OpenAutoCompeleteDailogReg(init?, closed?) {\r\n //const input = document.getElementById('message') as HTMLInputElement;\r\n //input.focus();\r\n let tmOut = 0;\r\n if (init)\r\n tmOut = 1000;\r\n else {\r\n this.setLimitedOptionsReg = false;\r\n this.regNamesObservable = this.mapRegionList;\r\n }\r\n\r\n this.triggerCollection.forEach((x, i) => {\r\n if (i == 0) {\r\n if (this.openOrCloseReg == true || closed) {\r\n setTimeout(() => x.closePanel());\r\n this.openOrCloseReg = false;\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.inputRegCtrl.nativeElement.blur();\r\n this.inputRegCtrl.nativeElement.focus();\r\n this.toHighlightReg = this.inputRegCtrl.nativeElement.value;\r\n if (this.inputLengthReg > 0) {\r\n let firstSelectedOption = x.autocomplete.options.find(o => o.selected);\r\n if (firstSelectedOption === undefined && this.modelRegName.length > 0) {\r\n firstSelectedOption = x.autocomplete.options.find(o => o.value == this.modelRegName);\r\n if (firstSelectedOption) {\r\n firstSelectedOption.select();\r\n setTimeout(() => {\r\n x.openPanel();\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n });\r\n }\r\n }\r\n if (firstSelectedOption) {\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n }\r\n }\r\n\r\n //x.openPanel();\r\n }, tmOut);\r\n this.openOrCloseReg = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n initArrowReg = true;\r\n SetArrowClickReg() {\r\n if (this.initArrowReg) {\r\n this.initArrowReg = false;\r\n }\r\n }\r\n\r\n}\r\n\r\n// just an interface for type safety.\r\nclass marker {\r\n lat: string;\r\n lng: string;\r\n label?: string;\r\n draggable: boolean;\r\n iconurl: string;\r\n widthImg: number;\r\n heightImg: number;\r\n resultType: string;\r\n popUpRsltType: string;\r\n itemID: string;\r\n lat_num: number;\r\n lng_num: number;\r\n iconZIndex: number;\r\n}\r\nclass markerDisplay {\r\n lat: number;\r\n lng: number;\r\n label?: string;\r\n draggable: boolean;\r\n iconurl: string;\r\n widthImg: number;\r\n heightImg: number;\r\n resultType: string;\r\n popUpRsltType: string;\r\n itemID: string;\r\n}\r\n\r\nclass PredefinedConfig {\r\n getINISettings: string = \"\";\r\n strStartDate: string = \"\";\r\n strEndDate: string = \"\";\r\n strLastRecord: string = \"\";\r\n TimeStamp_Type: string = \"\";\r\n FilterOnOff: number = 1;\r\n drawRoute: number = 0;\r\n\r\n thresholdLegends: string = \"\";\r\n thresholdLegendsCount: string = \"\";\r\n callIDLegends: string = \"\";//susheel\r\n devIDLegends: string = \"\";\r\n callEventsLegends: string = \"\";\r\n\r\n gMapConfigID: number = 0;\r\n MainFilterID: number = 0;\r\n limitPinCount: boolean = true;\r\n drawLine: string = \"1\";\r\n restoreZoom: number = 4;\r\n restoreLat: number = 0;\r\n restoreLng: number = 0;\r\n\r\n generalFilter = [];\r\n}\r\n\r\nclass Semaphore {\r\n private permits: number;\r\n\r\n constructor(private maxPermits: number) {\r\n this.permits = maxPermits;\r\n }\r\n\r\n async delay(ms: number = 100): Promise {\r\n await new Promise(resolve => setTimeout(resolve, ms));\r\n }\r\n\r\n async acquire(): Promise {\r\n while (this.permits <= 0) {\r\n await this.delay();\r\n }\r\n this.permits -= 1;\r\n }\r\n\r\n release(): void {\r\n this.permits += 1;\r\n }\r\n}\r\n\r\n\r\n\r\n","export {PdfViewerNg2Module} from './pdf-viewer-ng2.module';\nexport {PdfViewerNg2Component} from './pdf-viewer-ng2.component';\n","module.exports = \".pdf-viewer {\\n height: 100vh;\\n width: 80vw;\\n display: block;\\n margin: 0 auto;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcG9wdXBzL2N1c3RvbS9wZGYtdmlld2VyLW5nMi9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvc3JjXFxhcHBcXHBvcHVwc1xcY3VzdG9tXFxwZGYtdmlld2VyLW5nMlxccGRmLXZpZXdlci1uZzIuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3BvcHVwcy9jdXN0b20vcGRmLXZpZXdlci1uZzIvcGRmLXZpZXdlci1uZzIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxhQUFBO0VBQ0EsV0FBQTtFQUNBLGNBQUE7RUFDQSxjQUFBO0FDQ0YiLCJmaWxlIjoic3JjL2FwcC9wb3B1cHMvY3VzdG9tL3BkZi12aWV3ZXItbmcyL3BkZi12aWV3ZXItbmcyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnBkZi12aWV3ZXIge1xyXG4gIGhlaWdodDogMTAwdmg7XHJcbiAgd2lkdGg6IDgwdnc7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbn1cclxuIiwiLnBkZi12aWV3ZXIge1xuICBoZWlnaHQ6IDEwMHZoO1xuICB3aWR0aDogODB2dztcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvO1xufSJdfQ== */\"","import { Component, OnInit, Input, Output, ViewChild, EventEmitter, ChangeDetectorRef, } from '@angular/core';\r\nimport { ModalComponent } from 'lib/modal/modal.component';\r\n//import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-pdf-viewer-ng2',\r\n templateUrl: './pdf-viewer-ng2.component.html',\r\n styleUrls: ['./pdf-viewer-ng2.component.scss']\r\n})\r\nexport class PdfViewerNg2Component implements OnInit {\r\n @Input() modalTitle: any;\r\n\r\n //https://itnext.io/you-dont-need-external-packages-to-view-pdf-in-angular-e47779f86595\r\n @Input() pdfFilePathNew: any;\r\n //urlSafe: SafeResourceUrl;\r\n\r\n @ViewChild('childModal', { static: false }) childModal: ModalComponent;\r\n @Output() closeModal: EventEmitter = new EventEmitter();\r\n\r\n constructor(private cd: ChangeDetectorRef) { }//, public sanitizer: DomSanitizer) { }\r\n\r\n ngOnInit() {\r\n ////https://stackoverflow.com/a/74444844\r\n //this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(this.pdfFilePathNew);\r\n }\r\n\r\n open() {\r\n //setTimeout(() => {\r\n // this.childModal.show();\r\n //}, 500);\r\n this.childModal.show();\r\n this.cd.markForCheck();\r\n }\r\n\r\n ////https://stackoverflow.com/questions/54450358/ng2-pdf-viewer-problems-with-render-large-pdf-over-300pages\r\n //totalPages: number;\r\n //page: number = 1;\r\n //isLoaded: boolean = false;\r\n\r\n //nextPage() {\r\n // this.page += 1;\r\n //}\r\n\r\n //previousPage() {\r\n // this.page -= 1;\r\n //}\r\n\r\n //afterLoadComplete(pdfData: any) {\r\n // this.totalPages = pdfData.numPages;\r\n // this.isLoaded = true;\r\n //}\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n////https://stackoverflow.com/a/66114907 - under package.json file\r\n////https://stackblitz.com/edit/ng2-pdf-viewer-bootstrap-modal?file=src%2Fapp%2Fapp.component.html\r\n////https://www.npmjs.com/package/ng2-pdf-viewer#install //npm install ng2-pdf-viewer@~3.0.8\r\n//import { PdfViewerModule } from 'ng2-pdf-viewer';\r\nimport { PdfViewerNg2Component } from './pdf-viewer-ng2.component';\r\n\r\nimport { ModalModule } from '../../../../../lib/modal';\r\n@NgModule({\r\n declarations: [\r\n PdfViewerNg2Component,\r\n ],\r\n imports: [\r\n CommonModule,\r\n ModalModule,\r\n //PdfViewerModule,\r\n ],\r\n exports: [\r\n PdfViewerNg2Component,\r\n ],\r\n})\r\nexport class PdfViewerNg2Module { }\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc3VsdHMvYXVkaW8tZGVsYXkvYXVkaW8tZGVsYXkuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-audio-delay',\r\n templateUrl: './audio-delay.component.html',\r\n styleUrls: ['./audio-delay.component.scss']\r\n})\r\nexport class AudioDelayComponent implements OnInit {\r\n\r\n rsltType: string = \"audio-delay\";\r\n\r\n title: string;\r\n staticScreen = false;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n parentEvent(title) {\r\n this.title = title;\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc3VsdHMvY2FsbC1ldmVudHMvY2FsbC1ldmVudHMuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-call-events',\r\n templateUrl: './call-events.component.html',\r\n styleUrls: ['./call-events.component.scss']\r\n})\r\nexport class CallEventsComponent implements OnInit {\r\n rsltType: string = \"call-events\";\r\n\r\n title: string;\r\n staticScreen = false;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() { }\r\n\r\n ////Called from App Component\r\n //refreshClicked() {\r\n // console.log('called')\r\n //}\r\n parentEvent(title) {\r\n this.title = title;\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc3VsdHMvZW11L2VtdS5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-emu',\r\n templateUrl: './emu.component.html',\r\n styleUrls: ['./emu.component.scss']\r\n})\r\nexport class EmuComponent implements OnInit {\r\n rsltType: string = \"emu\";\r\n boolMainHeader: boolean = true;\r\n\r\n title: string;\r\n staticScreen = false;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n parentEvent(title) {\r\n this.title = title;\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc3VsdHMvZmF4L2ZheC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-fax',\n templateUrl: './fax.component.html',\n styleUrls: ['./fax.component.scss']\n})\nexport class FaxComponent implements OnInit {\n rsltType: string = \"fax\";\n\n title: string;\n staticScreen = false;\n @Output() childTitleEvent = new EventEmitter();\n\n constructor() { }\n\n ngOnInit() {\n }\n\n parentEvent(title) {\n this.title = title;\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\n }\n}\n","module.exports = \".flex-container {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n /*justify-content: flex-end;\\n align-items: center;\\n min-height: 48px;\\n padding: 0 8px;*/\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVzdWx0cy9tb2JpbmZvcnNsdHMvRDpcXFNyY3dlYlxcVlMyMDE3IFByb2plY3RzXFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3L3NyY1xcYXBwXFxyZXN1bHRzXFxtb2JpbmZvcnNsdHNcXG1vYmluZm9yc2x0cy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcmVzdWx0cy9tb2JpbmZvcnNsdHMvbW9iaW5mb3JzbHRzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0EsbUJBQUE7TUFBQSxlQUFBO0VBQ0E7OztrQkFBQTtBQ0lGIiwiZmlsZSI6InNyYy9hcHAvcmVzdWx0cy9tb2JpbmZvcnNsdHMvbW9iaW5mb3JzbHRzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZsZXgtY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICAvKmp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBtaW4taGVpZ2h0OiA0OHB4O1xyXG4gIHBhZGRpbmc6IDAgOHB4OyovXHJcbn1cclxuIiwiLmZsZXgtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICAvKmp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gIHBhZGRpbmc6IDAgOHB4OyovXG59Il19 */\"","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { ResultsService } from 'src/app/shared/services/master/results/results.service';\r\n//import { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-mobinforslts',\r\n templateUrl: './mobinforslts.component.html',\r\n styleUrls: ['./mobinforslts.component.scss']\r\n})\r\nexport class MobinforsltsComponent implements OnInit {\r\n rsltType: string = \"mobileinfo\";\r\n boolMainHeader: boolean = true;\r\n\r\n title: string;\r\n staticScreen = false;\r\n RsltTypeSwitch = false;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n selectedSubResults: any;\r\n\r\n //constructor(private resultsService: ResultsService, router: Router) {\r\n // this.resultsService.NetTestOrMobInfo.subscribe(res => {\r\n // if (res.RsltTypeSwitch === true)\r\n // router.navigateByUrl('/dashboard/nettest');\r\n // });\r\n //}\r\n constructor(private resultsService: ResultsService) { }\r\n\r\n ngOnInit() {\r\n }\r\n receiveSubRslts($event) {\r\n this.selectedSubResults = $event;\r\n //console.log(this.selectedSubResults);//Table Name fo columns headers\r\n }\r\n\r\n parentEvent(title) {\r\n this.title = title;\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n\r\n resetToNetTest() {\r\n let newRes: any;\r\n this.resultsService.NetTestOrMobInfo.subscribe(res => newRes = res);\r\n if (newRes !== undefined) {\r\n this.resultsService.setNetTestOrMobInfo({\r\n RsltTypeSwitch: true,\r\n selectedNetTestIndex: newRes.selectedNetTestIndex,\r\n selectedMobInfoIndex: newRes.selectedMobInfoIndex\r\n });\r\n }\r\n }\r\n}\r\n","module.exports = \".flex-container {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n /*justify-content: flex-end;\\n align-items: center;\\n min-height: 48px;\\n padding: 0 8px;*/\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcmVzdWx0cy9uZXR0ZXN0cnNsdHMvRDpcXFNyY3dlYlxcVlMyMDE3IFByb2plY3RzXFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3L3NyY1xcYXBwXFxyZXN1bHRzXFxuZXR0ZXN0cnNsdHNcXG5ldHRlc3Ryc2x0cy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvcmVzdWx0cy9uZXR0ZXN0cnNsdHMvbmV0dGVzdHJzbHRzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0EsbUJBQUE7TUFBQSxlQUFBO0VBQ0E7OztrQkFBQTtBQ0lGIiwiZmlsZSI6InNyYy9hcHAvcmVzdWx0cy9uZXR0ZXN0cnNsdHMvbmV0dGVzdHJzbHRzLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZsZXgtY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICAvKmp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBtaW4taGVpZ2h0OiA0OHB4O1xyXG4gIHBhZGRpbmc6IDAgOHB4OyovXHJcbn1cclxuIiwiLmZsZXgtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICAvKmp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gIHBhZGRpbmc6IDAgOHB4OyovXG59Il19 */\"","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { ResultsService } from 'src/app/shared/services/master/results/results.service';\r\nimport { Router } from '@angular/router';\r\n//https://stackoverflow.com/questions/51124039/child-to-parent-value-access-using-viewchild\r\n\r\n\r\n@Component({\r\n selector: 'app-nettestrslts',\r\n templateUrl: './nettestrslts.component.html',\r\n styleUrls: ['./nettestrslts.component.scss']\r\n})\r\nexport class NettestrsltsComponent implements OnInit {\r\n rsltType: string = \"nettest\";\r\n boolMainHeader: boolean = true;\r\n\r\n title: string;\r\n staticScreen = false;\r\n RsltTypeSwitch = true;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n selectedSubResults: any;\r\n\r\n constructor(private resultsService: ResultsService, router: Router) {\r\n this.resultsService.NetTestOrMobInfo.subscribe(res => {\r\n if (res.RsltTypeSwitch === false)\r\n router.navigateByUrl('/dashboard/mobileinfo');//https://stackoverflow.com/questions/32896407/redirect-within-component-angular-2 - IMP\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n receiveSubRslts($event) {\r\n this.selectedSubResults = $event;\r\n }\r\n\r\n parentEvent(title) {\r\n this.title = title;\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc3VsdHMvcGVzcS9wZXNxLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-pesq',\r\n templateUrl: './pesq.component.html',\r\n styleUrls: ['./pesq.component.scss']\r\n})\r\nexport class PesqComponent implements OnInit {\r\n rsltType: string = \"pesq\";\r\n\r\n title: string;\r\n staticScreen = false;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n parentEvent(title) {\r\n this.title = title;\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc3VsdHMvcG9scWEvcG9scWEuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-polqa',\r\n templateUrl: './polqa.component.html',\r\n styleUrls: ['./polqa.component.scss']\r\n})\r\nexport class PolqaComponent implements OnInit {\r\n rsltType: string = \"polqa\";\r\n\r\n title: string;\r\n staticScreen = false;\r\n @Output() childTitleEvent = new EventEmitter();\r\n \r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n parentEvent(title) {\r\n this.title = title;\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc3VsdHMvdmFjL3ZhYy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-vac',\r\n templateUrl: './vac.component.html',\r\n styleUrls: ['./vac.component.scss']\r\n})\r\nexport class VacComponent implements OnInit {\r\n\r\n rsltType: string = \"vac\";\r\n boolMainHeader: boolean = true;\r\n\r\n title: string;\r\n staticScreen = false;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n parentEvent(title) {\r\n this.title = title;\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3Jlc3VsdHMvdmJhL3ZiYS5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-vba',\n templateUrl: './vba.component.html',\n styleUrls: ['./vba.component.scss']\n})\nexport class VbaComponent implements OnInit {\n rsltType: string = \"vba\";\n\n title: string;\n staticScreen = false;\n @Output() childTitleEvent = new EventEmitter();\n\n constructor() { }\n\n ngOnInit() {\n }\n\n parentEvent(title) {\n this.title = title;\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\n }\n}\n","//https://williamjuan027.github.io/angular-animations-explorer/home\r\nimport { animate, state, style, transition, trigger, group } from '@angular/animations';\r\n\r\nexport const FLY_IN_OUT_ANIMATION =\r\n trigger('flyInOutTrigger', [\r\n state('in', style({\r\n\t\tbackgroundColor: '#E3E8EC',\r\n\t color: '#080809', \r\n\t\ttransform: 'translateX(0)', \r\n\t\topacity: 1\r\n\t})),\r\n transition(':enter', [\r\n style({\r\n\t backgroundColor: '#7BBEFC',\r\n\t\ttransform: 'translateX(300%)',\r\n\t\topacity: 0\r\n\t }),\r\n group([\r\n animate('0.5s 0.1s ease-in', style({\r\n transform: 'translateX(0)',\r\n })),\r\n animate('0.3s 0.1s ease', style({\r\n opacity: 1\r\n }))\r\n ])\r\n ]),\r\n transition(':leave', [\r\n style({\r\n\t backgroundColor: '#9DCEFC',\r\n\t }),\t\r\n group([\r\n animate('0.5s ease-out', style({\r\n transform: 'translateX(300%)'\r\n })),\r\n animate('0.3s 0.1s ease', style({\r\n opacity: 0\r\n }))\r\n ])\r\n ])\r\n ]); \r\n\r\n","module.exports = \"/*start loader*/\\n#spinner {\\n -webkit-animation: frames 1s infinite linear;\\n animation: frames 1s infinite linear;\\n background: transparent;\\n border: 0.75vw solid #FFF;\\n border-radius: 100%;\\n border-top-color: #DF691A;\\n width: 5vw;\\n height: 5vw;\\n opacity: 0.6;\\n padding: 0;\\n position: absolute;\\n z-index: 999;\\n}\\n@-webkit-keyframes frames {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(359deg);\\n }\\n}\\n@keyframes frames {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(359deg);\\n }\\n}\\n#pause {\\n display: block;\\n background: rgba(0, 0, 0, 0.66) no-repeat 0 0;\\n width: 100%;\\n height: 100%;\\n position: fixed;\\n bottom: 0;\\n left: 0;\\n z-index: 1000;\\n}\\n/*end loader*/\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2Jhc2ljL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9zcmNcXGFwcFxcc2hhcmVkXFxiYXNpY1xcYmFzaWMuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9iYXNpYy9iYXNpYy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxlQUFBO0FBQ0E7RUFDRSw0Q0FBQTtFQUNBLG9DQUFBO0VBQ0EsdUJBQUE7RUFDQSx5QkFBQTtFQUNBLG1CQUFBO0VBQ0EseUJBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0FDQ0Y7QURFQTtFQUNFO0lBRUUsdUJBQUE7RUNDRjtFREVBO0lBRUUseUJBQUE7RUNBRjtBQUNGO0FEVEE7RUFDRTtJQUVFLHVCQUFBO0VDQ0Y7RURFQTtJQUVFLHlCQUFBO0VDQUY7QUFDRjtBREdBO0VBQ0UsY0FBQTtFQUNBLDZDQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxlQUFBO0VBQ0EsU0FBQTtFQUNBLE9BQUE7RUFDQSxhQUFBO0FDREY7QURJQSxhQUFBIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL2Jhc2ljL2Jhc2ljLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLypzdGFydCBsb2FkZXIqL1xyXG4jc3Bpbm5lciB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGZyYW1lcyAxcyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgYW5pbWF0aW9uOiBmcmFtZXMgMXMgaW5maW5pdGUgbGluZWFyO1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlcjogMC43NXZ3IHNvbGlkICNGRkY7XHJcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxuICBib3JkZXItdG9wLWNvbG9yOiAjREY2OTFBO1xyXG4gIHdpZHRoOiA1dnc7XHJcbiAgaGVpZ2h0OiA1dnc7XHJcbiAgb3BhY2l0eTogLjY7XHJcbiAgcGFkZGluZzogMDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgei1pbmRleDogOTk5O1xyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGZyYW1lcyB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gIH1cclxuXHJcbiAgMTAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xyXG4gIH1cclxufVxyXG5cclxuI3BhdXNlIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNjYpIG5vLXJlcGVhdCAwIDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICB6LWluZGV4OiAxMDAwO1xyXG59XHJcblxyXG4vKmVuZCBsb2FkZXIqL1xyXG4iLCIvKnN0YXJ0IGxvYWRlciovXG4jc3Bpbm5lciB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmcmFtZXMgMXMgaW5maW5pdGUgbGluZWFyO1xuICBhbmltYXRpb246IGZyYW1lcyAxcyBpbmZpbml0ZSBsaW5lYXI7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDAuNzV2dyBzb2xpZCAjRkZGO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBib3JkZXItdG9wLWNvbG9yOiAjREY2OTFBO1xuICB3aWR0aDogNXZ3O1xuICBoZWlnaHQ6IDV2dztcbiAgb3BhY2l0eTogMC42O1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDk5OTtcbn1cblxuQGtleWZyYW1lcyBmcmFtZXMge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcbiAgfVxufVxuI3BhdXNlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42Nikgbm8tcmVwZWF0IDAgMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG59XG5cbi8qZW5kIGxvYWRlciovIl19 */\"","import { Component, OnInit, Optional, Inject, Input, Output, EventEmitter, SimpleChanges, OnChanges, OnDestroy} from '@angular/core';\r\nimport { Column, CdtSettings, DataManager, RequestMetadata } from '../../../../lib/ng-crud-table';\r\nimport { DemoService } from '../demo.service';\r\nimport { getColumnsHeaders, getColumnsPlayers } from '../columns';\r\nimport { SelectItem } from '../../../../lib/common';\r\nimport { DtMessages, DtMessagesEn } from '../../../../lib/dt-translate';\r\nimport { Subscription } from 'rxjs';\r\nimport { Router, ActivatedRoute, NavigationEnd } from '@angular/router';\r\nimport { rsltTypeInTitle, rsltTypeInAPICall } from '../functions/title';\r\nimport { strictEqual } from 'assert';\r\nimport { CommonFilterService } from '../services/common-filter/common-filter.service';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\r\n\r\n//File-Saver for downloading PDF - IMP\r\ndeclare var require: any\r\nconst FileSaver = require('file-saver');\r\n\r\n//https://mazdik.github.io/ng-crud-table/#/\r\n\r\n@Component({\r\n selector: 'app-basic',\r\n templateUrl: './basic.component.html',\r\n styleUrls: ['./basic.component.scss']\r\n})\r\n\r\n//https://stackoverflow.com/questions/49159416/url-change-not-firing-in-angular/49159722#49159722\r\n//https://stackblitz.com/edit/angular-re-initialize-component-when-route-params-change?file=app%2Fviews%2Fa%2Fa.component.ts\r\n//https://blogs.ibs.com/2018/07/10/angular-refreshing-a-route-with-parameters/\r\n//https://stackblitz.com/edit/angular-kwfoxw?file=src%2Fapp%2Fapp.component.ts\r\n//https://angular-2-training-book.rangle.io/routing/query_params\r\n//https://medium.com/better-programming/angular-6-url-parameters-860db789db85\r\nexport class BasicComponent implements OnInit, OnChanges, OnDestroy {// implements OnInit {\r\n popupOrNot = false;//displaying as main screen or popup for google maps or graphs icon click\r\n\r\n @Input() rsltType: string;\r\n rsltTypeTS = '-1';\r\n deleteColumnFilter = '';\r\n\r\n TSSelected: number;\r\n DataTSSelected: number;\r\n\r\n AutoRefreshInfo: any;\r\n\r\n isLoading: boolean = false;\r\n\r\n //https://stackoverflow.com/questions/38571812/how-to-detect-when-an-input-value-changes-in-angular\r\n //https://medium.com/@bharat.tiwari/intercept-input-property-change-in-angular-690567eb63ec\r\n //https://stackblitz.com/edit/setter-and-getter-input?file=src%2Fapp%2Fchild%2Fchild.component.ts\r\n @Input() selectedSubResults: any;\r\n //_selectedSubResults: any;\r\n //@Input()\r\n //set selectedSubResults(val: any) { this._selectedSubResults = val; /* more code */ }\r\n //get selectedSubResults(): any { return this._selectedSubResults; }\r\n\r\n @Input() boolMainHeader: boolean = false;\r\n columns: Column[];\r\n selectedColumns: SelectItem[] = [];\r\n dataManager: DataManager;\r\n @Input() requestID: string;\r\n\r\n title: string;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n settings: CdtSettings = new CdtSettings({\r\n crud: false,//create button toggle used to create dynamic row from columns set - IMP\r\n bodyHeight: 380,\r\n exportAction: true,\r\n exportKMLAction: true,\r\n globalFilter: false,\r\n columnToggleAction: false,\r\n clearAllFiltersAction: true,\r\n unshiftExpandIcon: false,//Toggle frst dynamic column haing icon to show details view, update, etc as menu items - IMP\r\n });\r\n\r\n messages: DtMessages = new DtMessagesEn({\r\n titleDetailView: 'Player details',\r\n titleCreate: 'Create a new player'\r\n });\r\n\r\n private subscriptions: Subscription[] = [];\r\n //public subscribers: any = {};\r\n constructor(private _Activatedroute: ActivatedRoute, private _router: Router, private service: DemoService, private commonFilterService: CommonFilterService,\r\n public dialogBox: MatDialogRef, @Optional() @Inject(MAT_DIALOG_DATA) public data: any, private responsive: BreakpointObserver) {\r\n this.popupOrNot = false;\r\n this.commonFilterService.setNonFiltersScreen(false);\r\n if (data) {\r\n if (data.popupOrNot) {\r\n this.popupOrNot = true;\r\n this.requestID = data.requestID;\r\n this.rsltType = data.rsltType;\r\n\r\n this.settings = new CdtSettings({\r\n crud: false,//create button toggle used to create dynamic row from columns set - IMP\r\n //bodyHeight: 980,\r\n globalFilter: false,\r\n //clickRows: true,\r\n columnToggleAction: false,\r\n clearAllFiltersAction: false,\r\n unshiftExpandIcon: false,//Toggle frst dynamic column haing icon to show details view, update, etc as menu items - IMP\r\n paginator: false,\r\n });\r\n this.DataTSSelected = data.TSSelected;\r\n\r\n //this.setRsltType();-NOT NEEDED \r\n //this.parentRef(data.TSSelected);\r\n }\r\n }\r\n\r\n //this._Activatedroute.params.subscribe(val => { \r\n // //this.rsltType = this._Activatedroute.snapshot.params.urlRslt;\r\n // this.rsltType = val.urlRslt;\r\n // if (this.rsltType == null)\r\n // this.rsltType = \"pesq\";\r\n // this.setRsltType();\r\n //});\r\n\r\n //this.columns = getColumnsCallEvents();//getColumnsPlayers();\r\n ////this.columns.forEach((x, i) => (i > 0) ? x.editable = true : x.editable = false);//IMP-edit each cell\r\n\r\n ////this.columns[4].filterValues = this.filterValuesFunc;\r\n //this.dataManager = new DataManager(this.columns, this.settings, this.service, this.messages);\r\n //this.dataManager.pager.perPage = 20;\r\n\r\n this.commonFilterService.TSType.subscribe(res => this.TSSelected = res);//When page changed keep curr selected TSType, Refresh and Auto refresh are emitting this value separately - IMP\r\n\r\n //Do Refresh\r\n const _broadSubRefresh = this.commonFilterService.componentMethodCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.setRsltType();\r\n }\r\n );\r\n this.subscriptions.push(_broadSubRefresh);\r\n //subscribed to delete subject emitted by synopsis component, thus detect delete operation automatically and refresh screen\r\n const _broadSubDeleteFilter = this.commonFilterService.DeleteFilter.subscribe(res => {\r\n if (res !== '') {//IMP IMP\r\n this.deleteColumnFilter = res;\r\n this.setRsltType();//IMP\r\n }\r\n });\r\n this.subscriptions.push(_broadSubDeleteFilter);\r\n //Do Auto-refresh - start/stop\r\n const _broadSubAutoRefresh = this.commonFilterService.componentMethodWithArgCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.AutoRefreshInfo = res;\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAutoRefresh);\r\n\r\n //https://blog.angular-university.io/angular-responsive-design/\r\n //https://indepth.dev/posts/1383/responsive-angular\r\n //https://netbasal.com/improved-responsiveness-for-improved-performance-in-angular-apps-57bd49a71d17\r\n //https://www.digitalocean.com/community/tutorials/detect-responsive-screen-sizes-in-angular\r\n this.responsive.observe([Breakpoints.Web, Breakpoints.WebLandscape, Breakpoints.WebPortrait,\r\n Breakpoints.Tablet, Breakpoints.TabletPortrait, Breakpoints.TabletLandscape,\r\n Breakpoints.Handset, Breakpoints.HandsetLandscape, Breakpoints.HandsetPortrait,\r\n Breakpoints.XSmall, Breakpoints.Small, Breakpoints.Medium, Breakpoints.Large, Breakpoints.XLarge\r\n ])\r\n .subscribe(result => {\r\n\r\n const breakpoints = result.breakpoints;\r\n //console.log(breakpoints)\r\n\r\n //console.log('Web ' + breakpoints[Breakpoints.Web]);\r\n //console.log('WebLandscape ' + breakpoints[Breakpoints.WebLandscape]);\r\n //console.log('WebPortrait ' + breakpoints[Breakpoints.WebPortrait]);\r\n\r\n //console.log('Tablet ' + breakpoints[Breakpoints.Tablet]);\r\n //console.log('TabletPortrait ' + breakpoints[Breakpoints.TabletPortrait]);\r\n //console.log('TabletLandscape ' + breakpoints[Breakpoints.TabletLandscape]);\r\n\r\n //console.log('Handset ' + breakpoints[Breakpoints.Handset]);\r\n //console.log('HandsetLandscape ' + breakpoints[Breakpoints.HandsetLandscape]);\r\n //console.log('HandsetPortrait ' + breakpoints[Breakpoints.HandsetPortrait]);\r\n\r\n //console.log('XSmall ' + breakpoints[Breakpoints.XSmall]);\r\n //console.log('Small ' + breakpoints[Breakpoints.Small]);\r\n //console.log('Medium ' + breakpoints[Breakpoints.Medium]);\r\n //console.log('Large ' + breakpoints[Breakpoints.Large]);\r\n //console.log('XLarge ' + breakpoints[Breakpoints.XLarge]);\r\n\r\n if (breakpoints[Breakpoints.XLarge] || breakpoints[Breakpoints.Large]) {\r\n this.settings.bodyHeight = 380 * 2;\r\n //this.settings.rowHeight = this.settings.rowHeight * 2;\r\n }\r\n else if (breakpoints[Breakpoints.Medium]) {\r\n this.settings.bodyHeight = 380 * 1.5;\r\n }\r\n else if (breakpoints[Breakpoints.Small]) {\r\n this.settings.bodyHeight = 380;\r\n }\r\n //if (breakpoints[Breakpoints.TabletPortrait]) {\r\n //console.log(\"screens matches TabletPortrait\");\r\n //}\r\n //else if (breakpoints[Breakpoints.HandsetLandscape]) {\r\n //console.log(\"screens matches HandsetLandscape\");\r\n //}\r\n\r\n });\r\n //this.service.testWebAPISample();\r\n }\r\n\r\n ngOnInit() {\r\n this.isLoading = false;\r\n //console.log(this.selectedSubResults);\r\n if (this.popupOrNot == true)\r\n this.parentRef(this.DataTSSelected);\r\n }\r\n ngOnDestroy() {\r\n //https://dev.to/this-is-angular/dry-way-to-manage-subscriptions-in-angular-components-256j\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n \r\n //https://dev.to/nickraphael/ngonchanges-best-practice-always-use-simplechanges-always-1feg\r\n //for (const propName in changes) {\r\n // if (changes.hasOwnProperty(propName)) {\r\n // switch (propName) {\r\n // case 'selectedSubResults': {\r\n // if (changes.currentValue != undefined)\r\n // this.selectedSubResults = changes.currentValue;\r\n\r\n // break;\r\n // }\r\n // }\r\n // }\r\n //}\r\n\r\n //if (this.popupOrNot == true) {\r\n this.setRsltType();\r\n //}\r\n }\r\n\r\n filterValuesFunc(columnName: string): Promise {\r\n return new Promise((resolve) => {\r\n setTimeout(() => resolve(\r\n [\r\n { id: 'MALE', name: 'MALE' },\r\n { id: 'FEMALE', name: 'FEMALE' },\r\n ]\r\n ), 1000);\r\n });\r\n }\r\n\r\n async setRsltType() {\r\n //console.log(new Date())\r\n //https://stackoverflow.com/questions/208105/how-do-i-remove-a-property-from-a-javascript-object - Not needed\r\n //https://love2dev.com/blog/javascript-remove-from-array/ - Not Needed\r\n //https://www.freecodecamp.org/news/manipulating-arrays-in-javascript/ - Not Needed\r\n let TSTypesHidden = \"\";\r\n\r\n switch (this.rsltType) {\r\n case \"pesq\":\r\n this.rsltTypeTS = '-1';\r\n if (this.TSSelected == 2) {//for vqt TS selection in common filter\r\n TSTypesHidden = \"VQuad_Timestamp\";\r\n this.selectedColumns.every(cols => {\r\n if (cols.id == \"VQuad_Timestamp\") {\r\n cols.id = \"VQT_TimeStamp\";\r\n cols.name = \"VQT Timestamp\";\r\n return false;\r\n }\r\n return true;\r\n })\r\n }\r\n else {//for either call or vquad TS selection in common filter\r\n TSTypesHidden = \"VQT_TimeStamp\";\r\n this.selectedColumns.every(cols => {\r\n if (cols.id == \"VQT_TimeStamp\") {\r\n cols.id = \"VQuad_Timestamp\";\r\n cols.name = \"VQuad Timestamp\";\r\n return false;\r\n }\r\n return true;\r\n })\r\n }\r\n\r\n //{ id: 'VQT_TimeStamp', name: 'VQT Timestamp' }\r\n //{ id: 'VQuad_Timestamp', name: 'VQuad Timestamp' }\r\n //{ id: 'Call_Timestamp', name: 'Call Timestamp' }\r\n\r\n this.settings.columnToggleAction = true;\r\n break;\r\n case \"polqa\":\r\n this.rsltTypeTS = '-1';\r\n if (this.TSSelected == 2)//for vqt TS selection in common filter\r\n TSTypesHidden = \"VQuad_Timestamp\";\r\n else//for either call or vquad TS selection in common filter\r\n TSTypesHidden = \"VQT_Timestamp\";\r\n break;\r\n default:\r\n this.rsltTypeTS = '2';\r\n break;\r\n }\r\n //console.log(this.selectedSubResults);\r\n let DAQOrNot = false;\r\n if (this.rsltType == 'pesq') {\r\n await this.service.getVqtDAQSetting('VqtData').then(res => {\r\n DAQOrNot = res;\r\n });\r\n }\r\n this.columns = getColumnsHeaders(this.rsltType, this.selectedSubResults, DAQOrNot);\r\n if (this.popupOrNot) {\r\n this.columns.forEach(x => { x.filter = false; });//Disable all cols filters - IMP\r\n }\r\n\r\n //For Call Timestamp grouping, remove column from main table and show it in each header with count - IMP\r\n //For other TS Selection can also be used to hide the other TS column\r\n if (TSTypesHidden !== \"\")\r\n this.columns.find(x => x.name === TSTypesHidden).tableHidden = true;\r\n\r\n if (this.TSSelected == 0)//for call TS selection in common filter\r\n {\r\n if (this.columns.find(x => x.name === 'Call_Timestamp'))\r\n this.columns.find(x => x.name === 'Call_Timestamp').tableHidden = true;\r\n //For Call Timestamp grouping Enabling dynamically - VERY IMP\r\n //https://github.com/mazdik/ng-mazdik/blob/master/src/app/demo/row-group-demo.component.ts\r\n this.settings.groupRowsBy = ['Call_Timestamp'];\r\n this.settings.groupRowsByTitles = ['Call Timestamp'];\r\n this.settings.rowHeightProp = '$$height';\r\n }\r\n else {//reset to vquad/vqt timestamp filter\r\n if (this.columns.find(x => x.name === 'Call_Timestamp'))\r\n this.columns.find(x => x.name === 'Call_Timestamp').tableHidden = false;\r\n //For Call Timestamp grouping Enabling dynamically - VERY IMP\r\n //https://github.com/mazdik/ng-mazdik/blob/master/src/app/demo/row-group-demo.component.ts\r\n this.settings.groupRowsBy = [];\r\n this.settings.groupRowsByTitles = [];\r\n this.settings.rowHeightProp = '';\r\n\r\n }\r\n //console.log(this.columns)\r\n\r\n this.title = rsltTypeInTitle(this.rsltType);\r\n //https://dzone.com/articles/understanding-output-and-eventemitter-in-angular\r\n this.childTitleEvent.emit(this.title);\r\n //this.columns.forEach((x, i) => (i > 0) ? x.editable = true : x.editable = false);//IMP-edit each cell\r\n\r\n //this.columns[4].filterValues = this.filterValuesFunc;\r\n\r\n let dbTz = -500;\r\n //this.commonFilterService.DB_TZ.subscribe(res => {\r\n // dbTz = res;\r\n //});\r\n //if (dbTz == -500) {//query var col table\r\n // await this.service.getDBTimezoneDiff('VquadData').then(res => {\r\n // this.commonFilterService.setDBTZFromVarCol(res);\r\n // dbTz = res;\r\n // });\r\n //}\r\n //console.log(dbTz)\r\n //debugger;\r\n let MainFilterTZ = 0;\r\n this.commonFilterService.mfTZ.subscribe(res => MainFilterTZ = res); /// set mainfilter selected ID - elumalai\r\n //console.log(MainFilterID)\r\n let dbAndBrHrs = -500;\r\n //if (MainFilterID != 0) {\r\n this.commonFilterService.DB_BRDiff.subscribe(res => {\r\n dbAndBrHrs = res;\r\n });\r\n if (dbAndBrHrs == -500) {//query var col table\r\n await this.service.getDBAndBrowserDiffHours('VquadData').then(res => {\r\n this.commonFilterService.setDBAndBrowserHrsDiff(res);\r\n dbAndBrHrs = res;\r\n });\r\n }\r\n //console.log(dbAndBrHrs)\r\n //}\r\n\r\n this.commonFilterService.columnToggleListen.subscribe(res => this.selectedColumns = res);\r\n //console.log(this.selectedColumns)\r\n\r\n if (this.ResultOrFileType > 0) {\r\n let groupRowsBybool = false;\r\n if (this.settings.groupRowsBy) {\r\n if (this.settings.groupRowsBy.length > 0)\r\n groupRowsBybool = true;\r\n }\r\n const requestMeta: RequestMetadata = {\r\n pageMeta: { currentPage: this.dataManager.pager.current, perPage: this.dataManager.pager.perPage, perPageOrCurrPageChanged: this.dataManager.pager.perPageOrCurrPageChanged },\r\n filters: this.dataManager.dataFilter.filters,\r\n sortMeta: this.dataManager.sorter.sortMeta,\r\n globalFilterValue: this.dataManager.dataFilter.globalFilterValue,\r\n rsltType: this.dataManager.rsltType,\r\n rsltTypeActual: this.dataManager.rsltTypeActual,\r\n ResultOrFileType: this.ResultOrFileType,\r\n respColumnsList: this.dataManager.respColumnsList,\r\n groupRowsBy: groupRowsBybool,\r\n };\r\n this.isLoading = true;\r\n await this.service.getItemsExported(requestMeta).then(res => {\r\n this.isLoading = false;\r\n });\r\n }\r\n else {\r\n this.dataManager = new DataManager(this.columns, this.settings, this.service, dbTz, dbAndBrHrs, MainFilterTZ, this.selectedColumns, this.messages, rsltTypeInAPICall(this.rsltType), this.rsltType,\r\n this.ResultOrFileType, this.requestID);\r\n\r\n if (this.deleteColumnFilter !== '') {\r\n this.commonFilterService.setDeleteFilterData('');//reset if delete\r\n this.deleteColumnFilter = '';\r\n }\r\n\r\n this.commonFilterService.PaginationFilter.subscribe(res => this.dataManager.pager.perPage = res.RecordsPerPage);\r\n //console.log(this.dataManager.pager.perPage)\r\n\r\n this.commonFilterService.PaginationListners.subscribe(res => { this.dataManager.pager.perPageOrCurrPageChanged = true; });\r\n //console.log(this.dataManager)\r\n }\r\n }\r\n\r\n\r\n parentRef(TSSelected) {\r\n this.TSSelected = parseInt(TSSelected);\r\n this.setRsltType();\r\n }\r\n parentEventID() {\r\n this.setRsltType();\r\n }\r\n parentAutoRef(AutoRefreshInfo) {\r\n this.TSSelected = parseInt(AutoRefreshInfo.TSSelected);\r\n this.AutoRefreshInfo = AutoRefreshInfo;\r\n }\r\n\r\n ResultOrFileType: number = 0;//default result type\r\n \r\n onDownloaded(type): void {\r\n \r\n //alert(\"download\");\r\n //debugger;\r\n///1=pdf,2=excel,4=txt\r\n //debugger\r\n this.ResultOrFileType = type;//4\r\n\r\n this.setRsltType().finally(() =>\r\n //console.log('fetchData completed'); \r\n this.ResultOrFileType = 0//reset-susheel\r\n );\r\n //this.setRsltType();\r\n //this.ResultOrFileType = 0;//reset-susheel\r\n\r\n //let fileName = 'VquadData_202107011629.xlsx';\r\n //const myFileName = fileName; //'1.pdf';\r\n //const fileUrl = '/assets/DownloadedReports/' + fileName;\r\n //const myFileName = 'VquadData_202107011629.xlsx'; //'my-custom-file.pdf';\r\n //const fileUrl = '/assets/DownloadedReports/VquadData_202107011629.xlsx'; //'/assets/DownloadedReports/WebviewerDummy.pdf';\r\n ////const fileUrl = 'C:\\inetpub\\wwwroot\\WebviewerScheduler\\CustomReports\\1.pdf';\r\n\r\n ////https://stackoverflow.com/questions/56100555/angular-7-download-pdf-file-under-app-folder\r\n ////window.open(fileUrl, '_blank');\r\n\r\n ////https://www.freakyjolly.com/angular-7-8-9-download-pdf-files-in-browser-instead-of-opening-in-new-tab-quick-solution/\r\n //FileSaver.saveAs(fileUrl, myFileName);\r\n }\r\n\r\n onFilterCEErrorEvents(getErrorEvent): void {\r\n //alert('hi');\r\n \r\n this.setRsltType();\r\n }\r\n onFilterConnDrops(getConnDrop): void {\r\n //alert('hi');\r\n\r\n this.setRsltType();\r\n }\r\n\r\n}\r\n","import { Column } from '../../../lib/ng-crud-table';\r\nimport { Validators } from '../../../lib/common';\r\nimport {\r\n AUDIODELAYDATA,\r\n CONNDROPDATA,\r\n CUSTOMREPORTS_GROUP,\r\n CUSTOMREPORTS_NOTGROUP,\r\n DNSDATA,\r\n EMAILDATA,\r\n EMAILSERVER,\r\n EModule,\r\n EMUDATA,\r\n FAXDATA,\r\n\r\n WvFilter,\r\n WvFiltersCommonCol,\r\n WvFiltersMainCol,\r\n WvFiltersExtraCol,\r\n\r\n FTPDATA,\r\n GENERALINFO,\r\n GRAPHRSLTVIEW_GROUP,\r\n GRAPHRSLTVIEW_NOTGROUP,\r\n GROUPS_CUSTOMREPORTS,\r\n HTTPDATA,\r\n NWSTAT_EMU,\r\n NWSTAT_FILEMONITOR,\r\n NWSTAT_FM_CENTRALIPS,\r\n NWSTAT_MOBILE,\r\n NWSTAT_VAC,\r\n NWSTAT_VQT,\r\n NWSTAT_VQT_CENTRALIPS,\r\n NWSTAT_VQUAD,\r\n NWSTAT_VQUAD_BT_FXO,\r\n NWSTAT_VQUAD_CENTRALIPS,\r\n NWSTAT_VQUAD_SCRIPTS,\r\n NWSTAT_VQUAD_SCRPARAMS,\r\n PAIREDBT,\r\n PRIVILEGES,\r\n PRIVILEGES_CRITERIA,\r\n PRIVILEGES_FILTERS,\r\n PRIVILEGES_RESTRICTED,\r\n PRIVILEGES_VQUAD_AR,\r\n ROUTEDATA,\r\n SCHEDULER,\r\n SCHEDULER_EMAILANDSMS,\r\n SCHEDULER_RECURRENCE,\r\n SIMINFO,\r\n SMSDATA,\r\n TCPDATA,\r\n UDPDATA,\r\n UEINFO,\r\n VACDATA,\r\n VOIPDATA,\r\n VQTPESQDATA, \r\n VQTPOLQADATA,\r\n VQUADDATA,\r\n headersNTypes\r\n } from '../shared/models';\r\nimport { ColumnBase } from 'lib/ng-data-table/base';\r\nimport { GMaps } from './models/Configuration/GMaps/GMaps';\r\nimport { Filters } from './models/Filters/Filters';\r\n\r\nexport function getColumnsPlayers(): Column[] {\r\n const columnsPlayers: Column[] = [\r\n {\r\n title: 'Id',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'id',\r\n sortable: true,\r\n filter: true,\r\n frozen: true,\r\n width: 100,\r\n formHidden: true,\r\n type: 'number',\r\n },\r\n {\r\n title: 'Name',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'name',\r\n sortable: true,\r\n filter: true,\r\n frozen: true,\r\n width: 200,\r\n validatorFunc: Validators.get({required: true, minLength: 2, pattern: '^[a-zA-Z ]+$'}),\r\n },\r\n {\r\n title: 'Race',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'race',\r\n sortable: true,\r\n filter: true,\r\n type: 'select',\r\n options: [\r\n {id: 'ASMODIANS', name: 'ASMODIANS'},\r\n {id: 'ELYOS', name: 'ELYOS'},\r\n ],\r\n validatorFunc: Validators.get({required: true}),\r\n },\r\n {\r\n title: 'Cascading Select',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'note',\r\n type: 'select-dropdown',\r\n options: [\r\n {id: 'ASM1', name: 'ASM note 1', parentId: 'ASMODIANS'},\r\n {id: 'ASM2', name: 'ASM note 2', parentId: 'ASMODIANS'},\r\n {id: 'ASM3', name: 'ASM note 3', parentId: 'ASMODIANS'},\r\n {id: 'ASM4', name: 'ASM note 4', parentId: 'ASMODIANS'},\r\n {id: 'ELY1', name: 'ELY note 1', parentId: 'ELYOS'},\r\n {id: 'ELY2', name: 'ELY note 2', parentId: 'ELYOS'},\r\n {id: 'ELY3', name: 'ELY note 3', parentId: 'ELYOS'},\r\n ],\r\n dependsColumn: 'race',\r\n multiSelectFilter: true,\r\n },\r\n {\r\n title: 'Gender',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'gender',\r\n sortable: true,\r\n filter: true,\r\n type: 'radio',\r\n options: [\r\n {id: 'MALE', name: 'MALE'},\r\n {id: 'FEMALE', name: 'FEMALE'},\r\n ],\r\n },\r\n {\r\n title: 'Exp',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'exp',\r\n sortable: true,\r\n filter: true,\r\n type: 'number',\r\n validatorFunc: Validators.get({required: true, maxLength: 10, pattern: '^[0-9]+$'}),\r\n },\r\n {\r\n title: 'Last online',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'last_online',\r\n sortable: true,\r\n filter: true,\r\n type: 'datetime-local',\r\n },\r\n {\r\n title: 'Account name',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'account_name',\r\n type: 'select-popup',\r\n optionsUrl: 'assets/ng-crud-table/accounts.json',\r\n keyColumn: 'account_id',\r\n },\r\n {\r\n title: 'Account id',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'account_id'},\r\n{\r\n title: 'Player class',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'player_class'},\r\n {\r\n title: 'Online',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'online',\r\n type: 'checkbox',\r\n options: [\r\n {id: 1, name: 'Online'}\r\n ]\r\n },\r\n {\r\n title: 'Cube size',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'cube_size', type: 'number'},\r\n {\r\n title: 'Broker Kinah',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'brokerKinah'},\r\n {\r\n title: 'Bind point',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'bind_point'},\r\n {\r\n title: 'X',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'x'},\r\n {\r\n title: 'Y',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'y'},\r\n {\r\n title: 'Z',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'z'},\r\n {\r\n title: 'Recoverexp',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'recoverexp'},\r\n {\r\n title: 'Heading',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'heading'},\r\n {\r\n title: 'World id',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'world_id'},\r\n {\r\n title: 'Creation date',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'creation_date', type: 'datetime-local'},\r\n {\r\n title: 'Stigma slot size',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'advanced_stigma_slot_size'},\r\n {\r\n title: 'Warehouse size',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'warehouse_size'},\r\n {\r\n title: 'Mailbox Letters',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'mailboxLetters'},\r\n {\r\n title: 'Mailbox Unread',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'mailboxUnReadLetters'},\r\n {\r\n title: 'Title id',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'title_id'},\r\n {\r\n title: 'Repletion state',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'repletionstate'},\r\n {\r\n title: 'Rebirth id',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'rebirth_id'},\r\n {\r\n title: 'Member points',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'memberpoints'},\r\n {\r\n title: 'Quest status',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white', name: 'quest.status'}\r\n ];\r\n return columnsPlayers;\r\n}\r\nexport function getColumnsCustomReports(allCCList, allOperatorList, resultTypeList): Column[] {\r\n var newAllCCList = [];\r\n allCCList.filter(m => m.ID > 3).forEach(function (obj) {\r\n newAllCCList.push({ id: obj.ID, name: obj.Name });\r\n });\r\n var newAllOperatorList = [];\r\n allOperatorList.filter(m => m.ID > 3).forEach(function (obj) {\r\n newAllOperatorList.push({ id: obj.ID, name: obj.Name });\r\n });\r\n var newAllOthersOperatorList = [];\r\n allOperatorList.filter(m => m.ID <= 3 || m.ID == 9).forEach(function (obj) {\r\n newAllOthersOperatorList.push({ id: obj.ID, name: obj.Name });\r\n });\r\n var newResultTypeList = [];\r\n resultTypeList.forEach(function (obj) {\r\n newResultTypeList.push({ id: obj.ID, name: obj.DisplayName });\r\n });\r\n const columnsCustomReports: Column[] = [\r\n //{\r\n // title: 'Column Id',\r\n // name: 'ColumnID',\r\n // sortable: true,\r\n // filter: true,\r\n // frozen: false,\r\n // width: 100,\r\n // formHidden: true,\r\n // type: 'number',\r\n //}, {\r\n // title: 'Id',\r\n // name: 'ID',\r\n // sortable: true,\r\n // filter: true,\r\n // frozen: false,\r\n // width: 100,\r\n // formHidden: true,\r\n // type: 'number',\r\n //},\r\n\r\n {\r\n title: 'Column Name',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'ColumnName',\r\n sortable: true,\r\n filter: true,\r\n frozen: false,\r\n width: 200,\r\n //validatorFunc: Validators.get({ required: true, minLength: 2, pattern: '^[a-zA-Z ]+$' }),\r\n }, {\r\n title: 'Result Type',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'ResultType',\r\n sortable: true,\r\n filter: true,\r\n type: 'select',\r\n options: newResultTypeList,//https://stackoverflow.com/questions/19590865/from-an-array-of-objects-extract-value-of-a-property-as-array\r\n //validatorFunc: Validators.get({ required: true }),\r\n },\r\n\r\n\r\n {\r\n title: 'Criteria Condition',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'CriteriaCondition',\r\n sortable: true,\r\n filter: true,\r\n type: 'select',\r\n options: newAllCCList,\r\n //validatorFunc: Validators.get({ required: true }),\r\n }, \r\n\r\n\r\n {\r\n title: 'Call Condition Operator',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'CCEventConditionOperator',\r\n sortable: true,\r\n filter: true,\r\n type: 'select',\r\n options: newAllOperatorList,\r\n //validatorFunc: Validators.get({ required: true }),\r\n }, {\r\n title: 'Remove Characters from Forward and/or Backward',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'SearchMethod',\r\n sortable: true,\r\n filter: true,\r\n type: 'select',\r\n options: [\r\n { id: 'F', name: 'Forward' },\r\n { id: 'B', name: 'Backward' },\r\n ],\r\n //validatorFunc: Validators.get({ required: true }),\r\n }, {\r\n title: 'Number of Chars to be removed',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'RemoveCharCount',\r\n sortable: true,\r\n filter: true,\r\n frozen: false,//Moves the frozen colums to very left\r\n width: 100,\r\n formHidden: true,\r\n type: 'number',\r\n }, {\r\n title: 'Call Event Condition',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'CCEventConditionInput',\r\n sortable: true,\r\n filter: true,\r\n frozen: false,\r\n width: 200,\r\n //validatorFunc: Validators.get({ required: true, minLength: 2, pattern: '^[a-zA-Z ]+$' }),\r\n }, {\r\n title: 'Call Event Operator',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'CCEventOperator',\r\n sortable: true,\r\n filter: true,\r\n type: 'select',\r\n options: newAllOperatorList,\r\n //validatorFunc: Validators.get({ required: true }),\r\n }, {\r\n title: 'Call Control Event',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'CCEventInput',\r\n sortable: true,\r\n filter: true,\r\n frozen: false,\r\n width: 200,\r\n //validatorFunc: Validators.get({ required: true, minLength: 2, pattern: '^[a-zA-Z ]+$' }),\r\n }, {\r\n title: 'Call Parameter(s) to be displayed',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'CallEventsDisplayParameter',\r\n sortable: true,\r\n filter: true,\r\n type: 'select',\r\n options: [\r\n { id: '0', name: 'Call Control Event' },\r\n { id: '1', name: 'Call Event Condition' },\r\n { id: '2', name: 'Both' },],\r\n //validatorFunc: Validators.get({ required: true }),\r\n },\r\n\r\n\r\n {\r\n title: 'Input Operator',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'Operator',\r\n sortable: true,\r\n filter: true,\r\n type: 'select',\r\n options: newAllOthersOperatorList,\r\n //validatorFunc: Validators.get({ required: true }),\r\n }, {\r\n title: 'Input Value',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'CriteriaInput',\r\n sortable: true,\r\n filter: true,\r\n frozen: false,\r\n width: 200,\r\n //validatorFunc: Validators.get({ required: true, minLength: 2, pattern: '^[a-zA-Z ]+$' }),\r\n },\r\n\r\n\r\n {\r\n title: 'Hide Column in grid',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'HideColumn',\r\n type: 'checkbox',\r\n options: [\r\n { id: 1, name: 'Hide' }\r\n ]\r\n }\r\n ];\r\n return columnsCustomReports;\r\n}\r\nexport function getColumnsCallEvents(): Column[] {\r\n const columnsCallEvents: Column[] = [\r\n {\r\n title: 'VQuad Timestamp',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'VQuad_Timestamp',\r\n sortable: true,\r\n filter: true,\r\n type: 'datetime-local',\r\n },\r\n {\r\n title: 'Call Timestamp',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'Call_Timestamp',\r\n sortable: true,\r\n filter: true,\r\n type: 'datetime-local',\r\n },\r\n {\r\n title: 'VQuad Call ID',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'VQuad_Call_ID',\r\n sortable: true,\r\n filter: true,\r\n },\r\n {\r\n title: 'VQuad Device ID',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'VQuad_Device_ID',\r\n sortable: true,\r\n filter: true,\r\n },\r\n {\r\n title: 'Latitude',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'Latitude',\r\n sortable: true,\r\n filter: true,\r\n },\r\n {\r\n title: 'Longitude',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'Longitude',\r\n sortable: true,\r\n filter: true,\r\n },\r\n {\r\n title: 'Call Control Event',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'Call_Control_Event',\r\n sortable: true,\r\n filter: true,\r\n },\r\n {\r\n title: 'Call Type Originating',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'Call_Type_Originating',\r\n sortable: true,\r\n filter: true,\r\n },\r\n {\r\n title: 'Call Type Terminating',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'Call_Type_Terminating',\r\n sortable: true,\r\n filter: true,\r\n },\r\n {\r\n title: 'Call Event Condition',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'Call_Event_Condition',\r\n sortable: true,\r\n filter: true,\r\n }, \r\n {\r\n title: 'VQuad Event ID',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'VQuad_Event_ID',\r\n sortable: true,\r\n filter: true,\r\n }, \r\n ];\r\n return columnsCallEvents;\r\n}\r\n\r\nexport function mainAndSubHeaders(rsltType, selectedSubResults): any {\r\n //https://www.w3schools.com/js/tryit.asp?filename=tryjson_array_nested\r\n let columnsHeaders: any;\r\n switch (rsltType) {\r\n case \"emu\":\r\n columnsHeaders = {\r\n 'LeftStartIndex': 0, 'LeftEndIndex': 7, 'RightStartIndex': 47, 'RightEndIndex': 51,\r\n 'internal': [\r\n { 'HeaderName': 'Block1', 'StartIndex': 7, 'EndIndex': 17, 'BgColor': '#6D96D6', 'Color': 'white' },\r\n { 'HeaderName': 'Block2', 'StartIndex': 17, 'EndIndex': 27, 'BgColor': '#E9EBEC', 'Color': 'black' },\r\n { 'HeaderName': 'Block3', 'StartIndex': 27, 'EndIndex': 37, 'BgColor': '#6D96D6', 'Color': 'white' },\r\n { 'HeaderName': 'Block4', 'StartIndex': 37, 'EndIndex': 47, 'BgColor': '#E9EBEC', 'Color': 'black' }\r\n ]\r\n };\r\n break;\r\n case \"nettest\":\r\n let myInternal = [];\r\n\r\n let Diff = 0;\r\n if (selectedSubResults.indexOf('TCPDATA') == -1)\r\n Diff += 45;\r\n else\r\n myInternal.push({ 'HeaderName': 'TCP', 'StartIndex': 18, 'EndIndex': 63, 'BgColor': '#969696', 'Color': 'white' });\r\n\r\n if (selectedSubResults.indexOf('UDPDATA') == -1)\r\n Diff += 8;\r\n else\r\n myInternal.push({ 'HeaderName': 'UDP', 'StartIndex': 63 - Diff, 'EndIndex': 71 - Diff, 'BgColor': '#969696', 'Color': 'white' });\r\n\r\n if (selectedSubResults.indexOf('VOIPDATA') == -1)\r\n Diff += 13;\r\n else\r\n myInternal.push({ 'HeaderName': 'VOIP', 'StartIndex': 71 - Diff, 'EndIndex': 84 - Diff, 'BgColor': '#969696', 'Color': 'white' });\r\n\r\n if (selectedSubResults.indexOf('ROUTEDATA') == -1)\r\n Diff += 8;\r\n else\r\n myInternal.push({ 'HeaderName': 'ROUTE', 'StartIndex': 84 - Diff, 'EndIndex': 92 - Diff, 'BgColor': '#969696', 'Color': 'white' });\r\n\r\n if (selectedSubResults.indexOf('HTTPDATA') == -1)\r\n Diff += 18;\r\n else\r\n myInternal.push({ 'HeaderName': 'HTTP', 'StartIndex': 92 - Diff, 'EndIndex': 110 - Diff, 'BgColor': '#969696', 'Color': 'white' });\r\n\r\n if (selectedSubResults.indexOf('FTPDATA') == -1)\r\n Diff += 10;\r\n else\r\n myInternal.push({ 'HeaderName': 'FTP', 'StartIndex': 110 - Diff, 'EndIndex': 120 - Diff, 'BgColor': '#969696', 'Color': 'white' });\r\n\r\n if (selectedSubResults.indexOf('DNSDATA') == -1)\r\n Diff += 6;\r\n else\r\n myInternal.push({ 'HeaderName': 'DNS', 'StartIndex': 120 - Diff, 'EndIndex': 126 - Diff, 'BgColor': '#969696', 'Color': 'white' });\r\n\r\n if (selectedSubResults.indexOf('SMSDATA') == -1)\r\n Diff += 9;\r\n else\r\n myInternal.push({ 'HeaderName': 'SMS', 'StartIndex': 126 - Diff, 'EndIndex': 135 - Diff, 'BgColor': '#969696', 'Color': 'white' });\r\n\r\n if (selectedSubResults.indexOf('EMAILDATA') == -1)\r\n Diff += 9;\r\n else\r\n myInternal.push({ 'HeaderName': 'EMAIL', 'StartIndex': 135 - Diff, 'EndIndex': 144 - Diff, 'BgColor': '#969696', 'Color': 'white' });\r\n\r\n columnsHeaders = {\r\n 'LeftStartIndex': 0, 'LeftEndIndex': 18, 'RightStartIndex': 144 - Diff, 'RightEndIndex': 147 - Diff,\r\n 'internal': myInternal\r\n };\r\n break;\r\n case \"mobileinfo\":\r\n let myMobInternal = [];\r\n\r\n let mobDiff = 0;\r\n if (selectedSubResults.indexOf('GENERALINFO') == -1)\r\n mobDiff += 4;\r\n else\r\n myMobInternal.push({ 'HeaderName': 'PHONEINFO', 'StartIndex': 18, 'EndIndex': 22, 'BgColor': '#969696', 'Color': 'white' });\r\n\r\n if (selectedSubResults.indexOf('SIMINFO') == -1)\r\n mobDiff += 3;\r\n else\r\n myMobInternal.push({ 'HeaderName': 'SIM', 'StartIndex': 22 - mobDiff, 'EndIndex': 25 - mobDiff, 'BgColor': '#969696', 'Color': 'white' });\r\n\r\n if (selectedSubResults.indexOf('UEINFO') == -1)\r\n mobDiff += 8;\r\n else\r\n myMobInternal.push({ 'HeaderName': 'UE', 'StartIndex': 25 - mobDiff, 'EndIndex': 33 - mobDiff, 'BgColor': '#969696', 'Color': 'white' });\r\n\r\n columnsHeaders = {\r\n 'LeftStartIndex': 0, 'LeftEndIndex': 18, 'RightStartIndex': 33 - mobDiff, 'RightEndIndex': 36 - mobDiff,\r\n 'internal': myMobInternal\r\n };\r\n break;\r\n case \"vac\":\r\n columnsHeaders = {\r\n //'LeftStartIndex': 0, 'LeftEndIndex': 13, 'RightStartIndex': 43, 'RightEndIndex': 46,\r\n 'LeftStartIndex': 0, 'LeftEndIndex': 13, 'RightStartIndex': 41, 'RightEndIndex': 44,\r\n 'internal': [\r\n { 'HeaderName': '', 'StartIndex': 13, 'EndIndex': 16, 'BgColor': '#6D96D6', 'Color': 'white' },\r\n { 'HeaderName': 'VIDEO QUALITY', 'StartIndex': 16, 'EndIndex': 23, 'BgColor': '#E9EBEC', 'Color': 'black' },\r\n //{ 'HeaderName': 'AUDIO QUALITY', 'StartIndex': 23, 'EndIndex': 28, 'BgColor': '#6D96D6', 'Color': 'white' },\r\n //{ 'HeaderName': 'AUDIO-VIDEO QUALITY', 'StartIndex': 28, 'EndIndex': 30, 'BgColor': '#E9EBEC', 'Color': 'black' },\r\n //{ 'HeaderName': 'IP NETWORK HEALTH', 'StartIndex': 30, 'EndIndex': 37, 'BgColor': '#6D96D6', 'Color': 'white' },\r\n //{ 'HeaderName': 'CALL CONFIG INFO', 'StartIndex': 37, 'EndIndex': 43, 'BgColor': '#E9EBEC', 'Color': 'black' }\r\n { 'HeaderName': 'AUDIO QUALITY', 'StartIndex': 23, 'EndIndex': 27, 'BgColor': '#6D96D6', 'Color': 'white' },\r\n { 'HeaderName': 'AUDIO-VIDEO QUALITY', 'StartIndex': 27, 'EndIndex': 28, 'BgColor': '#E9EBEC', 'Color': 'black' },\r\n { 'HeaderName': 'IP NETWORK HEALTH', 'StartIndex': 28, 'EndIndex': 35, 'BgColor': '#6D96D6', 'Color': 'white' },\r\n { 'HeaderName': 'CALL CONFIG INFO', 'StartIndex': 35, 'EndIndex': 41, 'BgColor': '#E9EBEC', 'Color': 'black' }\r\n ]\r\n };\r\n break;\r\n }\r\n //console.log(columnsHeaders)\r\n return columnsHeaders;\r\n}\r\nexport function getColumnsHeaders(rsltType: string, selectedSubResults: any, DAQOrNot?: boolean): Column[] {\r\n\r\n let columnsHeaders: Column[] = [];\r\n switch (rsltType) {\r\n case \"pesq\":\r\n case \"pesq_config\":\r\n case \"pesq_advFilter\":\r\n columnsHeaders = headersNTypes(new VQTPESQDATA(), rsltType, DAQOrNot);\r\n break;\r\n case \"polqa\":\r\n columnsHeaders = headersNTypes(new VQTPOLQADATA(), rsltType);\r\n break;\r\n case \"call-events\":\r\n columnsHeaders = headersNTypes(new VQUADDATA(), rsltType);\r\n break;\r\n case \"vba\":\r\n columnsHeaders = headersNTypes(new EModule(), rsltType);\r\n break;\r\n case \"fax\":\r\n columnsHeaders = headersNTypes(new FAXDATA(), rsltType);\r\n break;\r\n case \"audio-delay\":\r\n columnsHeaders = headersNTypes(new AUDIODELAYDATA(), rsltType);\r\n break;\r\n case \"emu\":\r\n columnsHeaders = headersNTypes(new EMUDATA(), rsltType);\r\n break;\r\n case \"nettest\":\r\n //https://stackoverflow.com/questions/49937677/how-to-merge-class-instances-in-typescript\r\n //https://stackoverflow.com/questions/47670959/typescript-declaration-merge-a-class-and-an-interface\r\n //https://stackoverflow.com/questions/37042602/how-to-combine-object-properties-in-typescript\r\n //https://alligator.io/js/dealing-with-objects/\r\n let xy = null;\r\n //https://www.tutorialspoint.com/typescript/typescript_array_indexof.htm\r\n if (selectedSubResults.indexOf('EMAILDATA') != -1) {\r\n xy = Object.assign(\r\n new EMAILDATA(),\r\n xy\r\n );\r\n }\r\n if (selectedSubResults.indexOf('SMSDATA') != -1) {\r\n xy = Object.assign(\r\n new SMSDATA(),\r\n xy\r\n );\r\n }\r\n if (selectedSubResults.indexOf('DNSDATA') != -1) {\r\n xy = Object.assign(\r\n new DNSDATA(),\r\n xy\r\n );\r\n }\r\n if (selectedSubResults.indexOf('FTPDATA') != -1) {\r\n xy = Object.assign(\r\n new FTPDATA(),\r\n xy\r\n );\r\n }\r\n if (selectedSubResults.indexOf('HTTPDATA') != -1) {\r\n xy = Object.assign(\r\n new HTTPDATA(),\r\n xy\r\n );\r\n }\r\n if (selectedSubResults.indexOf('ROUTEDATA') != -1) {\r\n xy = Object.assign(\r\n new ROUTEDATA(),\r\n xy\r\n );\r\n }\r\n if (selectedSubResults.indexOf('VOIPDATA') != -1) {\r\n xy = Object.assign(\r\n new VOIPDATA(),\r\n xy\r\n );\r\n }\r\n if (selectedSubResults.indexOf('UDPDATA') != -1) {\r\n xy = Object.assign(\r\n new UDPDATA(),\r\n xy\r\n );\r\n }\r\n if (selectedSubResults.indexOf('TCPDATA') != -1) {\r\n xy = Object.assign(\r\n new TCPDATA(),\r\n xy\r\n );\r\n }\r\n\r\n \r\n columnsHeaders = headersNTypes(xy, rsltType);\r\n\r\n //https://stackoverflow.com/questions/44661490/understanding-findindex-in-javascript-typescript\r\n //https://riptutorial.com/typescript/example/29544/finding-object-in-array\r\n let endCols: any[] = ['CallType_Orig', 'CallType_Term', 'VQuad_CallID'];\r\n for (let xy in endCols) {\r\n const position = columnsHeaders.findIndex((quoteEl: Column) => {\r\n return quoteEl.name == endCols[xy];\r\n });\r\n\r\n //https://stackoverflow.com/questions/24909371/move-item-in-object-to-last-position\r\n //https://love2dev.com/blog/javascript-remove-from-array/\r\n columnsHeaders.push(columnsHeaders.splice(position, 1)[0]);\r\n }\r\n break;\r\n case \"mobileinfo\":\r\n let mob = null;\r\n //https://www.tutorialspoint.com/typescript/typescript_array_indexof.htm\r\n if (selectedSubResults.indexOf('UEINFO') != -1) {\r\n mob = Object.assign(\r\n new UEINFO(),\r\n mob\r\n );\r\n }\r\n if (selectedSubResults.indexOf('SIMINFO') != -1) {\r\n mob = Object.assign(\r\n new SIMINFO(),\r\n mob\r\n );\r\n }\r\n if (selectedSubResults.indexOf('GENERALINFO') != -1) {\r\n mob = Object.assign(\r\n new GENERALINFO(),\r\n mob\r\n );\r\n }\r\n\r\n\r\n columnsHeaders = headersNTypes(mob, rsltType);\r\n\r\n let mobEndCols = ['CallType_Orig', 'CallType_Term', 'VQuad_CallID'];\r\n for (let eachCol in mobEndCols) {\r\n const position = columnsHeaders.findIndex((quoteEl: Column) => {\r\n return quoteEl.name == mobEndCols[eachCol];\r\n });\r\n\r\n columnsHeaders.push(columnsHeaders.splice(position, 1)[0]);\r\n }\r\n break;\r\n case \"vac\":\r\n columnsHeaders = headersNTypes(new VACDATA(), rsltType);\r\n break;\r\n }\r\n\r\n return columnsHeaders;\r\n}\r\nexport function getConfigColumnsHeaders(rsltType: string): Column[] {\r\n\r\n let columnsHeaders: Column[] = [];\r\n switch (rsltType) {\r\n case \"gmaps-config\":\r\n columnsHeaders = headersNTypes(new GMaps(), rsltType);\r\n break;\r\n case \"filters\":\r\n columnsHeaders = headersNTypes(new Filters(), rsltType);\r\n break;\r\n }\r\n\r\n return columnsHeaders;\r\n}\r\n\r\nexport function getColumnsRank(): Column[] {\r\n const columnsRank: Column[] = [\r\n {title: 'player_id', titleBgColor: '#1976D2',titleColor: 'white', name: 'player_id', width: 100},\r\n {title: 'daily_ap', titleBgColor: '#1976D2',titleColor: 'white', name: 'daily_ap', width: 100},\r\n {title: 'weekly_ap', titleBgColor: '#1976D2',titleColor: 'white', name: 'weekly_ap', width: 100},\r\n {title: 'ap', titleBgColor: '#1976D2',titleColor: 'white', name: 'ap', width: 100},\r\n {title: 'rank', titleBgColor: '#1976D2',titleColor: 'white', name: 'rank', width: 100},\r\n {title: 'top_ranking', titleBgColor: '#1976D2',titleColor: 'white', name: 'top_ranking', width: 100},\r\n {title: 'old_ranking', titleBgColor: '#1976D2',titleColor: 'white', name: 'old_ranking', width: 100},\r\n {title: 'daily_kill', titleBgColor: '#1976D2',titleColor: 'white', name: 'old_ranking', width: 100},\r\n {title: 'weekly_kill', titleBgColor: '#1976D2',titleColor: 'white', name: 'weekly_kill', width: 100},\r\n {title: 'all_kill', titleBgColor: '#1976D2',titleColor: 'white', name: 'all_kill', width: 100},\r\n {title: 'max_rank', titleBgColor: '#1976D2',titleColor: 'white', name: 'max_rank', width: 100},\r\n {title: 'last_kill', titleBgColor: '#1976D2',titleColor: 'white', name: 'last_kill', width: 100},\r\n {title: 'last_ap', titleBgColor: '#1976D2',titleColor: 'white', name: 'last_ap', width: 100},\r\n {title: 'last_update', titleBgColor: '#1976D2',titleColor: 'white', name: 'last_update', width: 120}\r\n ];\r\n return columnsRank;\r\n}\r\n\r\nexport function getColumnsInventory(): Column[] {\r\n const columnsInventory: Column[] = [\r\n {title: 'itemUniqueId', titleBgColor: '#1976D2',titleColor: 'white', name: 'itemUniqueId', width: 100},\r\n {title: 'itemId', titleBgColor: '#1976D2',titleColor: 'white', name: 'itemId', width: 100},\r\n {title: 'itemCount', titleBgColor: '#1976D2',titleColor: 'white', name: 'itemCount', width: 100},\r\n {title: 'itemColor', titleBgColor: '#1976D2',titleColor: 'white', name: 'itemColor', width: 100},\r\n {title: 'itemOwner', titleBgColor: '#1976D2',titleColor: 'white', name: 'itemOwner', width: 100},\r\n {title: 'itemCreationTime', titleBgColor: '#1976D2',titleColor: 'white', name: 'itemCreationTime'},\r\n {title: 'itemExistTime', titleBgColor: '#1976D2',titleColor: 'white', name: 'itemExistTime'},\r\n {title: 'itemTradeTime', titleBgColor: '#1976D2',titleColor: 'white', name: 'itemTradeTime'},\r\n {title: 'isEquiped', titleBgColor: '#1976D2',titleColor: 'white', name: 'isEquiped'},\r\n {title: 'isSoulBound', titleBgColor: '#1976D2',titleColor: 'white', name: 'isSoulBound'},\r\n {title: 'slot', titleBgColor: '#1976D2',titleColor: 'white', name: 'slot'},\r\n {title: 'sealEndTime', titleBgColor: '#1976D2',titleColor: 'white', name: 'sealEndTime'}\r\n ];\r\n return columnsInventory;\r\n}\r\n\r\nexport function getTreeColumns(): Column[] {\r\n return [\r\n {\r\n title: 'Node',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'node',\r\n frozen: true,\r\n width: 250,\r\n },\r\n {\r\n title: 'Name',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'name',\r\n editable: true,\r\n validatorFunc: Validators.get({required: true, minLength: 2, pattern: '^[a-zA-Z ]+$'}),\r\n width: 250,\r\n },\r\n {\r\n title: 'Gender',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'gender',\r\n editable: true,\r\n type: 'radio',\r\n options: [\r\n {id: 'MALE', name: 'MALE'},\r\n {id: 'FEMALE', name: 'FEMALE'},\r\n ],\r\n width: 250,\r\n },\r\n {\r\n title: 'Cube_size',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'cube_size',\r\n editable: true,\r\n width: 250,\r\n type: 'number',\r\n },\r\n {\r\n title: 'Exp',\r\n titleBgColor: '#1976D2',\r\n titleColor: 'white',\r\n name: 'exp',\r\n editable: true,\r\n width: 250,\r\n }\r\n ];\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL2FwaS1yZWNhbGwtYnV0dG9uL2FwaS1yZWNhbGwtYnV0dG9uLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-api-recall-button',\n templateUrl: './api-recall-button.component.html',\n styleUrls: ['./api-recall-button.component.scss']\n})\nexport class ApiRecallButtonComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \".mat-datepick-content {\\n width: 250px;\\n font-size: 15px;\\n margin: 5px;\\n}\\n\\n.mainDiv {\\n /*https: //www.w3schools.com/css/css3_gradients.asp*/\\n background-image: linear-gradient(#A9DDFA, #EDF4F7);\\n border-radius: 8px;\\n width: 770px;\\n}\\n\\n.flex-container {\\n display: -ms-flexbox;\\n display: flex;\\n white-space: nowrap;\\n /*justify-content: flex-end;\\n align-items: center;\\n min-height: 48px;*/\\n}\\n\\n.form-cell {\\n /*position: relative;*/\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n height: 20px;\\n}\\n\\n.empty-cell {\\n width: 15px;\\n}\\n\\n.empty-sm-cell {\\n width: 1%;\\n height: 20px;\\n}\\n\\n/*https: //www.thetopsites.net/article/58243557.shtml - IMP */\\n\\n/*mat-form-field.mat-form-field.mat-form-field-appearance-outline > div.mat-form-field-wrapper > div.mat-form-field-flex > div.mat-form-field-infix {\\n padding: 0.4em 0px;\\n font-weight: bold;\\n}\\n\\nmat-form-field.mat-form-field.mat-form-field-appearance-outline > div.mat-form-field-wrapper > div.mat-form-field-flex > div.mat-form-field-infix > span.mat-form-field-label-wrapper {\\n top: -1.5em;\\n font-size: 15px;\\n font-weight: bold;\\n}\\n\\n.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label {\\n transform: translateY(-1.1em) scale(.75);\\n width: 133.33333%;\\n}*/\\n\\n/*color: gold;*/\\n\\n/*https: //stackoverflow.com/questions/55637275/changing-background-color-in-outline-input-field*/\\n\\n/*.mat-form-field-appearance-outline .mat-form-field-outline {\\n background-color: white !important;\\n}*/\\n\\n.mat-form-field-outline-start,\\n.mat-form-field-outline-gap,\\n.mat-form-field-outline-end {\\n background-color: white !important;\\n}\\n\\n:host ::ng-deep .mat-select {\\n color: black;\\n}\\n\\n.mat-form-field-flex > .mat-form-field-infix {\\n /*height settings - Imp*/\\n padding: 0.4em 0px !important;\\n}\\n\\n.mat-form-field-label-wrapper {\\n top: -1.5em;\\n}\\n\\n.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label {\\n -ms-transform: translateY(-1.1em) scale(0.75);\\n transform: translateY(-1.1em) scale(0.75);\\n width: 133.33333%;\\n}\\n\\n.mat-radio-button ~ .mat-radio-button {\\n -ms-flex-direction: row;\\n flex-direction: row;\\n margin-left: 16px;\\n}\\n\\n/*https: //stackoverflow.com/questions/6046110/styling-form-with-label-above-inputs*/\\n\\n.float-cell {\\n float: left;\\n}\\n\\n/*commented form input dropdown arrow comes down content intial load*/\\n\\n/*input, label {\\n display: block;\\n}*/\\n\\nlabel {\\n display: block;\\n}\\n\\n.float-label {\\n color: purple;\\n /*#666666;*/\\n font-size: 12px;\\n font-weight: bold;\\n padding-top: 3px;\\n width: 110px;\\n}\\n\\n/*https: //stackoverflow.com/questions/35431188/how-can-i-conditionally-disable-the-routerlink-attribute*/\\n\\na.disabled {\\n pointer-events: none;\\n cursor: default;\\n color: black;\\n}\\n\\n.errorClass {\\n border: 2px solid red;\\n}\\n\\n.controlDisable {\\n pointer-events: none;\\n cursor: default;\\n background: #dddddd;\\n}\\n\\n.customButtonCF1 {\\n height: 24px;\\n padding: 0 10px;\\n}\\n\\n.eventIDButtonCF1 {\\n height: 24px;\\n padding: 0 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvY29tbW9uLWZpbHRlci9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvc3JjXFxhcHBcXHNoYXJlZFxcY29tcG9uZW50c1xcY29tbW9uLWZpbHRlclxcY29tbW9uLWZpbHRlci5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvY29tbW9uLWZpbHRlci9jb21tb24tZmlsdGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBQTtFQUNBLGVBQUE7RUFDQSxXQUFBO0FDQ0Y7O0FERUE7RUFDRSxvREFBQTtFQUNBLG1EQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0FDQ0Y7O0FEQ0E7RUFDRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSxtQkFBQTtFQUNBOztvQkFBQTtBQ0lGOztBREFBO0VBQ0Usc0JBQUE7RUFDQSxrREFBQTtFQUNBLFlBQUE7QUNHRjs7QUREQTtFQUNFLFdBQUE7QUNJRjs7QURGQTtFQUNFLFNBQUE7RUFDQSxZQUFBO0FDS0Y7O0FERkEsNkRBQUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7O0VBQUE7O0FBZUEsZUFBQTs7QUFFQSxpR0FBQTs7QUFDQTs7RUFBQTs7QUFJQTs7O0VBR0Usa0NBQUE7QUNHRjs7QURBQTtFQUNFLFlBQUE7QUNHRjs7QURFQTtFQUErQyx3QkFBQTtFQUM3Qyw2QkFBQTtBQ0VGOztBREFBO0VBQ0UsV0FBQTtBQ0dGOztBRERBO0VBQ0UsNkNBQUE7TUFBQSx5Q0FBQTtFQUNBLGlCQUFBO0FDSUY7O0FEQ0E7RUFDRSx1QkFBQTtNQUFBLG1CQUFBO0VBQ0EsaUJBQUE7QUNFRjs7QURFQSxvRkFBQTs7QUFDQTtFQUNFLFdBQUE7QUNDRjs7QURDQSxxRUFBQTs7QUFDQTs7RUFBQTs7QUFHQztFQUNDLGNBQUE7QUNFRjs7QURBQTtFQUNFLGFBQUE7RUFBZSxXQUFBO0VBQ2YsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxZQUFBO0FDSUY7O0FEREEseUdBQUE7O0FBQ0E7RUFDRSxvQkFBQTtFQUNBLGVBQUE7RUFDQSxZQUFBO0FDSUY7O0FEQUE7RUFDRSxxQkFBQTtBQ0dGOztBREFBO0VBQ0Usb0JBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7QUNHRjs7QURDQTtFQUNFLFlBQUE7RUFDQSxlQUFBO0FDRUY7O0FEQUE7RUFDRSxZQUFBO0VBQ0EsZUFBQTtBQ0dGIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvY29tbW9uLWZpbHRlci9jb21tb24tZmlsdGVyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hdC1kYXRlcGljay1jb250ZW50IHtcclxuICB3aWR0aDogMjUwcHg7XHJcbiAgZm9udC1zaXplOiAxNXB4O1xyXG4gIG1hcmdpbjogNXB4O1xyXG59XHJcblxyXG4ubWFpbkRpdiB7XHJcbiAgLypodHRwczogLy93d3cudzNzY2hvb2xzLmNvbS9jc3MvY3NzM19ncmFkaWVudHMuYXNwKi9cclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoI0E5RERGQSwgI0VERjRGNyk7XHJcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gIHdpZHRoOiA3NzBweDtcclxufVxyXG4uZmxleC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAvKmp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBtaW4taGVpZ2h0OiA0OHB4OyovXHJcbn1cclxuLmZvcm0tY2VsbCB7XHJcbiAgLypwb3NpdGlvbjogcmVsYXRpdmU7Ki9cclxuICBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbn1cclxuLmVtcHR5LWNlbGwge1xyXG4gIHdpZHRoOiAxNXB4O1xyXG59XHJcbi5lbXB0eS1zbS1jZWxsIHtcclxuICB3aWR0aDogMSU7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG59XHJcblxyXG4vKmh0dHBzOiAvL3d3dy50aGV0b3BzaXRlcy5uZXQvYXJ0aWNsZS81ODI0MzU1Ny5zaHRtbCAtIElNUCAqL1xyXG4vKm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSA+IGRpdi5tYXQtZm9ybS1maWVsZC13cmFwcGVyID4gZGl2Lm1hdC1mb3JtLWZpZWxkLWZsZXggPiBkaXYubWF0LWZvcm0tZmllbGQtaW5maXgge1xyXG4gIHBhZGRpbmc6IDAuNGVtIDBweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lID4gZGl2Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIgPiBkaXYubWF0LWZvcm0tZmllbGQtZmxleCA+IGRpdi5tYXQtZm9ybS1maWVsZC1pbmZpeCA+IHNwYW4ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XHJcbiAgdG9wOiAtMS41ZW07XHJcbiAgZm9udC1zaXplOiAxNXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMWVtKSBzY2FsZSguNzUpO1xyXG4gIHdpZHRoOiAxMzMuMzMzMzMlO1xyXG59Ki9cclxuLypjb2xvcjogZ29sZDsqL1xyXG5cclxuLypodHRwczogLy9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTU2MzcyNzUvY2hhbmdpbmctYmFja2dyb3VuZC1jb2xvci1pbi1vdXRsaW5lLWlucHV0LWZpZWxkKi9cclxuLyoubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG59Ki9cclxuXHJcbi5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXN0YXJ0LFxyXG4ubWF0LWZvcm0tZmllbGQtb3V0bGluZS1nYXAsIC8qRm9yIGFib3ZlIG1hdC1sYWJlbCAtIElNUCovXHJcbi5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcclxuICBjb2xvcjogYmxhY2s7XHJcbn1cclxuXHJcblxyXG5cclxuLm1hdC1mb3JtLWZpZWxkLWZsZXggPiAubWF0LWZvcm0tZmllbGQtaW5maXggeyAvKmhlaWdodCBzZXR0aW5ncyAtIEltcCovXHJcbiAgcGFkZGluZzogMC40ZW0gMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xyXG4gIHRvcDogLTEuNWVtO1xyXG59XHJcbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4xZW0pIHNjYWxlKC43NSk7XHJcbiAgd2lkdGg6IDEzMy4zMzMzMyU7XHJcbn1cclxuXHJcblxyXG5cclxuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBtYXJnaW4tbGVmdDogMTZweDtcclxufVxyXG5cclxuXHJcbi8qaHR0cHM6IC8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzYwNDYxMTAvc3R5bGluZy1mb3JtLXdpdGgtbGFiZWwtYWJvdmUtaW5wdXRzKi9cclxuLmZsb2F0LWNlbGwge1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG59XHJcbi8qY29tbWVudGVkIGZvcm0gaW5wdXQgZHJvcGRvd24gYXJyb3cgY29tZXMgZG93biBjb250ZW50IGludGlhbCBsb2FkKi9cclxuLyppbnB1dCwgbGFiZWwge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59Ki9cclxuIGxhYmVsIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG4uZmxvYXQtbGFiZWwge1xyXG4gIGNvbG9yOiBwdXJwbGU7IC8qIzY2NjY2NjsqL1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBmb250LXdlaWdodDpib2xkO1xyXG4gIHBhZGRpbmctdG9wOjNweDtcclxuICB3aWR0aDoxMTBweDtcclxufVxyXG5cclxuLypodHRwczogLy9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzU0MzExODgvaG93LWNhbi1pLWNvbmRpdGlvbmFsbHktZGlzYWJsZS10aGUtcm91dGVybGluay1hdHRyaWJ1dGUqL1xyXG5hLmRpc2FibGVkIHtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgY29sb3I6IGJsYWNrO1xyXG59XHJcblxyXG5cclxuLmVycm9yQ2xhc3Mge1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkIHJlZDtcclxufVxyXG5cclxuLmNvbnRyb2xEaXNhYmxlIHtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgYmFja2dyb3VuZDogI2RkZGRkZDtcclxufVxyXG5cclxuXHJcbi5jdXN0b21CdXR0b25DRjEge1xyXG4gIGhlaWdodDogMjRweDtcclxuICBwYWRkaW5nOiAwIDEwcHg7XHJcbn1cclxuLmV2ZW50SURCdXR0b25DRjEge1xyXG4gIGhlaWdodDogMjRweDtcclxuICBwYWRkaW5nOiAwIDEwcHg7XHJcbn1cclxuIiwiLm1hdC1kYXRlcGljay1jb250ZW50IHtcbiAgd2lkdGg6IDI1MHB4O1xuICBmb250LXNpemU6IDE1cHg7XG4gIG1hcmdpbjogNXB4O1xufVxuXG4ubWFpbkRpdiB7XG4gIC8qaHR0cHM6IC8vd3d3Lnczc2Nob29scy5jb20vY3NzL2NzczNfZ3JhZGllbnRzLmFzcCovXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgjQTlEREZBLCAjRURGNEY3KTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICB3aWR0aDogNzcwcHg7XG59XG5cbi5mbGV4LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIC8qanVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWluLWhlaWdodDogNDhweDsqL1xufVxuXG4uZm9ybS1jZWxsIHtcbiAgLypwb3NpdGlvbjogcmVsYXRpdmU7Ki9cbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGhlaWdodDogMjBweDtcbn1cblxuLmVtcHR5LWNlbGwge1xuICB3aWR0aDogMTVweDtcbn1cblxuLmVtcHR5LXNtLWNlbGwge1xuICB3aWR0aDogMSU7XG4gIGhlaWdodDogMjBweDtcbn1cblxuLypodHRwczogLy93d3cudGhldG9wc2l0ZXMubmV0L2FydGljbGUvNTgyNDM1NTcuc2h0bWwgLSBJTVAgKi9cbi8qbWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lID4gZGl2Lm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIgPiBkaXYubWF0LWZvcm0tZmllbGQtZmxleCA+IGRpdi5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuNGVtIDBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSA+IGRpdi5tYXQtZm9ybS1maWVsZC13cmFwcGVyID4gZGl2Lm1hdC1mb3JtLWZpZWxkLWZsZXggPiBkaXYubWF0LWZvcm0tZmllbGQtaW5maXggPiBzcGFuLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICB0b3A6IC0xLjVlbTtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4xZW0pIHNjYWxlKC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzMlO1xufSovXG4vKmNvbG9yOiBnb2xkOyovXG4vKmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy81NTYzNzI3NS9jaGFuZ2luZy1iYWNrZ3JvdW5kLWNvbG9yLWluLW91dGxpbmUtaW5wdXQtZmllbGQqL1xuLyoubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbn0qL1xuLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtc3RhcnQsXG4ubWF0LWZvcm0tZmllbGQtb3V0bGluZS1nYXAsXG4ubWF0LWZvcm0tZmllbGQtb3V0bGluZS1lbmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1zZWxlY3Qge1xuICBjb2xvcjogYmxhY2s7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1mbGV4ID4gLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgLypoZWlnaHQgc2V0dGluZ3MgLSBJbXAqL1xuICBwYWRkaW5nOiAwLjRlbSAwcHggIWltcG9ydGFudDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICB0b3A6IC0xLjVlbTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4xZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzMzJTtcbn1cblxuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufVxuXG4vKmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy82MDQ2MTEwL3N0eWxpbmctZm9ybS13aXRoLWxhYmVsLWFib3ZlLWlucHV0cyovXG4uZmxvYXQtY2VsbCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4vKmNvbW1lbnRlZCBmb3JtIGlucHV0IGRyb3Bkb3duIGFycm93IGNvbWVzIGRvd24gY29udGVudCBpbnRpYWwgbG9hZCovXG4vKmlucHV0LCBsYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufSovXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZmxvYXQtbGFiZWwge1xuICBjb2xvcjogcHVycGxlO1xuICAvKiM2NjY2NjY7Ki9cbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZy10b3A6IDNweDtcbiAgd2lkdGg6IDExMHB4O1xufVxuXG4vKmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNTQzMTE4OC9ob3ctY2FuLWktY29uZGl0aW9uYWxseS1kaXNhYmxlLXRoZS1yb3V0ZXJsaW5rLWF0dHJpYnV0ZSovXG5hLmRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgY29sb3I6IGJsYWNrO1xufVxuXG4uZXJyb3JDbGFzcyB7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHJlZDtcbn1cblxuLmNvbnRyb2xEaXNhYmxlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYmFja2dyb3VuZDogI2RkZGRkZDtcbn1cblxuLmN1c3RvbUJ1dHRvbkNGMSB7XG4gIGhlaWdodDogMjRweDtcbiAgcGFkZGluZzogMCAxMHB4O1xufVxuXG4uZXZlbnRJREJ1dHRvbkNGMSB7XG4gIGhlaWdodDogMjRweDtcbiAgcGFkZGluZzogMCAxMHB4O1xufSJdfQ== */\"","import { Component, OnInit, ViewEncapsulation, Input, Output, EventEmitter, ViewChild, ElementRef, SimpleChanges, OnChanges, Renderer2 } from '@angular/core';\r\nimport { CommonFilterService } from '../../services/common-filter/common-filter.service';\r\nimport { DaterangepickerComponent } from '../daterangepicker/daterangepicker.component';\r\nimport { DaterangepickerDirective } from '../daterangepicker/daterangepicker.directive';\r\n\r\nimport * as moment from 'moment';\r\nimport { KeyValue } from '@angular/common';\r\nimport { DatePickerComponent } from 'ngx-bootstrap/datepicker/public_api';\r\n//import { setTimeout } from 'timers';\r\n\r\nimport { DataFilter, FilterOperator, DataType, FilterMetadata } from 'lib/ng-data-table/base';\r\nimport { DtMessages, DtMessagesEn } from 'lib/dt-translate';\r\n\r\n@Component({\r\n selector: 'app-common-filter',\r\n templateUrl: './common-filter.component.html',\r\n moduleId: module.id,\r\n styleUrls: ['./common-filter.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CommonFilterComponent implements OnInit, OnChanges {\r\n\r\n //@ViewChildren('cmp') components: QueryList;\r\n displayCalender = false;\r\n\r\n //To be bound in dropdown based on vqt and general rslt type - toggle VQT Timestamp here\r\n @Input() rsltTypeTS: string = '-1';\r\n @Input() listenNext: string = 'none';\r\n timestamps = [\r\n { value: '0', viewValue: 'Call Timestamp' },\r\n { value: '1', viewValue: 'VQuad / vMobile Timestamp' },\r\n { value: '2', viewValue: 'VQT Timestamp' }\r\n ];\r\n TSSelected = '1';\r\n TSOptionSelected = '1';\r\n //https://stackoverflow.com/questions/51930085/hide-selected-option-in-mat-select\r\n //TSDisabled = true;\r\n get filteredTSOptions() {\r\n //console.log(this.TSSelected)\r\n if (this.TSSelected == '2') {\r\n if (this.rsltTypeTS == '-1')\r\n this.TSOptionSelected = '2';\r\n else\r\n this.TSOptionSelected = '1';\r\n }\r\n return this.rsltTypeTS == '2' ?\r\n this.timestamps.filter(timestamp => timestamp.value !== this.rsltTypeTS) :\r\n this.timestamps;\r\n }\r\n\r\n @Output() RefreshClicked = new EventEmitter();\r\n AutoRefSelected = '5';\r\n //Start = '1';\r\n AutoRefStop: boolean = true;\r\n @Output() AutoRefreshInfo = new EventEmitter();\r\n\r\n @Output() EventIDFilter = new EventEmitter();\r\n\r\n selectedTime: any;\r\n selectedStartDateTime: any;\r\n selectedEndDateTime: any;\r\n //@ViewChild('dateStartInput', { static: true }) dateStartInput: ElementRef;\r\n //@ViewChildren('dateEndInput') dateEndInput: QueryList>;\r\n //@ViewChild(DaterangepickerDirective, { static: true }) pickerDirective: DaterangepickerDirective;\r\n //picker: DaterangepickerComponent;\r\n ranges: any = {\r\n 'Last 10 Minutes': [moment().subtract(13, 'minutes'), moment(), true],\r\n 'Last Hour': [moment().subtract(1, 'hours'), moment(), false],\r\n 'Last 12 Hours': [moment().subtract(12, 'hours'), moment(), false],\r\n 'Last 24 Hours': [moment().subtract(24, 'hours'), moment(), false],\r\n Today: [moment().hour(0).minute(0), moment().hour(23).minute(59), false],\r\n Yesterday: [moment().subtract(1, 'days').hour(0).minute(0), moment().subtract(1, 'days').hour(23).minute(59), false],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment(), false],\r\n //'Last 30 Days': [moment().subtract(29, 'days'), moment(), false],\r\n //'This Month': [moment().startOf('month'), moment().endOf('month'), false],\r\n 'Last Month': [\r\n moment()\r\n .subtract(1, 'month'),\r\n //.startOf('month'),\r\n moment(),\r\n //.subtract(1, 'month')\r\n //.endOf('month'),\r\n false\r\n ],\r\n 'Last 6 Months': [\r\n moment()\r\n .subtract(6, 'month'),\r\n //.startOf('month'),\r\n moment(),\r\n //.subtract(6, 'month')\r\n //.endOf('month'),\r\n false\r\n ],\r\n //'Last Year': [moment().subtract(1, 'years'), moment()],\r\n //'Search Entire dBase': [moment().subtract(5, 'years'), moment(), false]\r\n //'Custom range': [moment(), moment(), false],\r\n };\r\n // Preserve original property order\r\n originalOrder = (a: KeyValue, b: KeyValue): number => {\r\n return 0;\r\n }\r\n\r\n stringOperators: any[];\r\n defaultStringMatchMode = FilterOperator.CONTAINS;\r\n messages: DtMessages = new DtMessagesEn({});\r\n //done: boolean;\r\n constructor(private commonFilterService: CommonFilterService, private renderer: Renderer2, private el: ElementRef,) {\r\n // debugger;\r\n this.selectedTime = { startDate: moment(), endDate: moment() };\r\n this.selectedStartDateTime = { startDate: moment(), endDate: moment() };\r\n this.selectedEndDateTime = { startDate: moment(), endDate: moment() };\r\n\r\n this.stringOperators = [\r\n { value: FilterOperator.STARTS_WITH, text: this.messages.startsWith },\r\n { value: FilterOperator.ENDS_WITH, text: this.messages.endsWith },\r\n { value: FilterOperator.CONTAINS, text: this.messages.contains },\r\n { value: FilterOperator.NOT_CONTAINS, text: this.messages.notContains },\r\n { value: FilterOperator.EQUALS, text: this.messages.equals },\r\n { value: FilterOperator.NOT_EQUAL, text: this.messages.notEqual },\r\n //{ value: FilterOperator.IS_EMPTY, text: this.messages.isEmpty },\r\n //{ value: FilterOperator.IS_NOT_EMPTY, text: this.messages.isNotEmpty },\r\n ];\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.commonFilterService.TSType.subscribe(res => {//For setting recently selected value after page changed, see if VQT screen or not to select VQT Timestamp or VQuad timestamp - IMP\r\n //setTimeout(() => {\r\n this.rsltTypeTS == '-1' ? this.TSOptionSelected = res.toString() : (res == 2 ? this.TSOptionSelected = '1' : this.TSOptionSelected = res.toString());\r\n this.TSSelected = res.toString();//value subscribed for querying and sent to basic\r\n //this.done = true;\r\n //}, 0);\r\n });\r\n\r\n let inputValue = null;\r\n this.commonFilterService.TSRangeFilter.subscribe(res => inputValue = res.RangeSelected);//set input here\r\n //console.log(inputValue)\r\n this.customOrNot = false;\r\n //debugger\r\n if (inputValue == 'Custom range') {\r\n this.customOrNot = true;\r\n this.commonFilterService.TSBetween.subscribe(res => {\r\n this.wrongDateRange = false;\r\n ////https://stackoverflow.com/questions/38251763/moment-js-how-to-convert-date-string-into-date\r\n if (res != \"\") {\r\n this.selectedStartDateTime.startDate = moment(new Date(res.split('^')[0]));\r\n this.selectedEndDateTime.startDate = moment(new Date(res.split('^')[1]));\r\n }\r\n else {\r\n this.selectedStartDateTime = { startDate: moment().subtract(10, 'minutes') };\r\n this.selectedEndDateTime = { startDate: moment() };\r\n }\r\n });\r\n\r\n }\r\n\r\n this.commonFilterService.mainFilter_ContainsCustDate.subscribe(res => {\r\n this.disabled = res; //// set value(true/false) if selected mainfilter has customdate time, so that custome date control is disabled accordingly\r\n ////this.timeSelDisabled = false;\r\n //debugger;\r\n\r\n });\r\n\r\n ///// to set custom datetime defined in mainfilter config screen\r\n this.commonFilterService.mfDateTime.subscribe(res1 => {\r\n if (res1 != \"\") {\r\n ////alert('IN');\r\n //this.selectedStartDateTime = { startDate: moment(new Date(res1.split(';')[0])) }; //moment(new Date('03/23/2022 14:16:54'));\r\n //this.selectedEndDateTime = { startDate: moment(new Date(res1.split(';')[1])) }; // moment(new Date('03/27/2022 14:26:54')); \r\n }\r\n else {\r\n this.commonFilterService.TSBetween.subscribe(res => {\r\n this.wrongDateRange = false;\r\n //https://stackoverflow.com/questions/38251763/moment-js-how-to-convert-date-string-into-date\r\n if (res != \"\") {\r\n this.selectedStartDateTime.startDate = moment(new Date(res.split('^')[0]));\r\n this.selectedEndDateTime.startDate = moment(new Date(res.split('^')[1]));\r\n }\r\n\r\n if (this.origCustDateTime != \"\" && !this.disabled) {\r\n this.selectedStartDateTime.startDate = moment(new Date(this.origCustDateTime.split('^')[0]));\r\n this.selectedEndDateTime.startDate = moment(new Date(this.origCustDateTime.split('^')[1]));\r\n this.origCustDateTime = \"\";\r\n }\r\n });\r\n //this.selectedStartDateTime = { startDate: moment() }; //moment(new Date('2022/03/20 14:16:54'));\r\n //this.selectedEndDateTime = { startDate: moment() }; //moment(new Date('2022/03/24 14:26:54'));\r\n }\r\n }, err => {\r\n this.selectedStartDateTime = { startDate: moment() };\r\n this.selectedEndDateTime = { startDate: moment() };\r\n });\r\n\r\n this.setCommonFilters(inputValue);\r\n //this.AutoRefreshInfo.emit({ TSSelected: this.TSSelected, AutoRefSelected: 5 * 1000, AutoRefStop: true });//set default selection as auto refresh 5 sec and just stopped\r\n }\r\n\r\n ngOnInit() {\r\n //debugger;\r\n //console.log(this.done)\r\n this.AutoRefreshInfo.emit({ TSSelected: this.TSSelected, AutoRefSelected: 5 * 1000, AutoRefStop: true });//set default selection as auto refresh 5 sec and just stopped\r\n //console.log('init')\r\n //this.picker = this.pickerDirective.picker;\r\n \r\n }\r\n\r\n onTSChanged(): void {\r\n //debugger;\r\n this.TSSelected = this.TSOptionSelected;//Set new chnaged option value and can be sent to basic - IMP\r\n //this.setCommonFilters();\r\n this.onRefreshClicked(null, null);\r\n }\r\n wrongDateRange: boolean;\r\n origCustDateTime = \"\";//not needed as controllled the same in load filter comp\r\n onOKClicked(): void {\r\n if (this.customOrNot) {\r\n //this.dateEndInput.first.nativeElement.click();\r\n //debugger;\r\n this.wrongDateRange = false;\r\n ////https://stackoverflow.com/questions/19705003/moment-js-months-difference\r\n //let monthsDiff = parseInt(this.selectedEndDateTime.startDate.diff(this.selectedStartDateTime.startDate, 'months', true));\r\n //https://stackoverflow.com/questions/25150570/get-hours-difference-between-two-dates-in-moment-js\r\n let duration = moment.duration(this.selectedEndDateTime.startDate.diff(this.selectedStartDateTime.startDate));\r\n let monthsDiff = duration.months();\r\n let yearsDiff = duration.years();\r\n\r\n if (this.selectedStartDateTime.startDate.diff(this.selectedEndDateTime.startDate) >= 0 || monthsDiff >= 7 || yearsDiff >= 1) {\r\n if (monthsDiff >= 7 || yearsDiff >= 1) {\r\n let r = confirm('Searching for data more than 6 months may take longer time..');//alert('Dates selection cannot be more than 6 months');\r\n if (r == false)\r\n return;\r\n }\r\n else {\r\n this.wrongDateRange = true;\r\n return;\r\n }\r\n }\r\n this.onRefreshClicked(null, 'Custom range', true);\r\n\r\n //for (const key in this.ranges) {\r\n // if (this.ranges[key]) {\r\n // this.ranges[key][2] = false;\r\n // if (key == 'Custom range')\r\n // this.ranges[key][2] = true;\r\n // }\r\n //}\r\n }\r\n }\r\n onStartDateChanged($event): void {\r\n //debugger;\r\n if ($event.startDate != null)\r\n this.selectedStartDateTime.startDate = $event.startDate;\r\n }\r\n onEndDateChanged($event): void {\r\n //debugger;\r\n if ($event.startDate != null)\r\n this.selectedEndDateTime.startDate = $event.startDate;\r\n }\r\n disabled: boolean = false;\r\n //timeSelDisabled: boolean = true;\r\n startCalendarOpen: boolean;\r\n endCalendarOpen: boolean;\r\n notCustomInputValue = 'Last 10 Minutes';\r\n onRefreshClicked(event, inputValue, okClick?: boolean): void {\r\n //debugger;\r\n //console.log(this.notCustomInputValue)\r\n if (event != null)\r\n event.preventDefault();\r\n this.setCommonFilters(inputValue, okClick);\r\n let TSSelected = this.TSSelected;\r\n\r\n if (inputValue != 'Custom range' || okClick) {\r\n if (inputValue != 'Custom range' && inputValue != null)\r\n this.notCustomInputValue = inputValue;\r\n this.RefreshClicked.emit(TSSelected);\r\n }\r\n //if (inputValue == 'Custom range' && !okClick)\r\n // this.dateEndInput.first.nativeElement.click();\r\n }\r\n\r\n setCommonFilters(inputValue, okClick?: boolean) {\r\n\r\n //this.timeSelDisabled = true;\r\n //this.startDate.format(this.moment.localeData().longDateFormat('lll')) +\r\n // this.locale.separator + this.endDate.format(this.moment.localeData().longDateFormat('lll'));\r\n let startAndEndDates = this.selectedTime.startDate.format('MM/DD/YYYY HH:mm:ss') + ' - ' + this.selectedTime.endDate.format('MM/DD/YYYY HH:mm:ss');//this.dateStartInput.nativeElement.value\r\n //debugger\r\n let mfCustDateBool = false;\r\n\r\n if (inputValue != null) {\r\n if (inputValue == \"Custom range\") {\r\n //this.timeSelDisabled = false;\r\n this.selectedTime.startDate = this.selectedStartDateTime.startDate;\r\n this.selectedTime.endDate = this.selectedEndDateTime.startDate;\r\n //let dates = this.selectedTime.startDate.format('MM/DD/YYYY HH:mm:ss') + ' - ' + this.selectedTime.endDate.format('MM/DD/YYYY HH:mm:ss');\r\n //this.commonFilterService.TSBetween.subscribe(res => dates = res);\r\n if (okClick == undefined) {\r\n this.wrongDateRange = false;\r\n this.commonFilterService.TSBetween.subscribe(res => startAndEndDates = res);\r\n }\r\n else {\r\n startAndEndDates = this.selectedTime.startDate.format('MM/DD/YYYY HH:mm:ss') + ' - ' + this.selectedTime.endDate.format('MM/DD/YYYY HH:mm:ss');\r\n this.origCustDateTime = this.selectedTime.startDate.format('MM/DD/YYYY HH:mm:ss') + '^' + this.selectedTime.endDate.format('MM/DD/YYYY HH:mm:ss');\r\n }\r\n }\r\n else {\r\n //if (this.dateStartInput !== undefined || this.dateEndInput !== undefined) {\r\n //let inputValue = this.dateStartInput.nativeElement.value;\r\n //if (inputValue.length == 0)//Default/Last selected setting when page loaded / changed to different page\r\n //{\r\n //this.commonFilterService.TSRangeFilter.subscribe(res => inputValue = res.RangeSelected);//set input here\r\n for (const key in this.ranges) {\r\n if (this.ranges[key]) {\r\n this.ranges[key][2] = false;\r\n\r\n if (key == inputValue) {\r\n\r\n //// set datetime if selected mainfilter has customdate time, so that custome date control is set accordingly\r\n this.commonFilterService.mainFilter_ContainsCustDate.subscribe(res => {\r\n //this.disabled = res; //// set value(true/false) if selected mainfilter has customdate time, so that custome date control is disabled accordingly\r\n ////this.timeSelDisabled = false;\r\n\r\n if (res) {\r\n ///// set start/end datetime in mainscreen datefilter control as per mainfilter custom datetime if it has any \r\n let selectedTime: any;\r\n selectedTime = { startDate: moment(), endDate: moment() };\r\n let custDates = selectedTime.startDate.format('MM/DD/YYYY HH:mm:ss') + ' - ' + selectedTime.endDate.format('MM/DD/YYYY HH:mm:ss');//this.dateStartInput.nativeElement.value;\r\n this.commonFilterService.mfDateTime.subscribe(resd => custDates = resd);\r\n this.commonFilterService.setMFCustDT(custDates.replace('^', ';'));\r\n mfCustDateBool = true;\r\n }\r\n else {\r\n //debugger\r\n this.selectedTime.startDate = this.ranges[key][0];\r\n this.selectedTime.endDate = this.ranges[key][1];\r\n this.selectedStartDateTime = { startDate: moment(), endDate: moment() };\r\n this.selectedEndDateTime = { startDate: moment(), endDate: moment() };\r\n\r\n startAndEndDates = this.selectedTime.startDate.format('MM/DD/YYYY HH:mm:ss') + ' - ' + this.selectedTime.endDate.format('MM/DD/YYYY HH:mm:ss');\r\n }\r\n });\r\n\r\n\r\n this.ranges[key][2] = true;\r\n }\r\n }\r\n }\r\n }\r\n //debugger;\r\n //if (!this.disabled)\r\n if (inputValue == \"Custom range\" || mfCustDateBool)//NEEDED ONLY FOR CUSTOM RANGE\r\n this.commonFilterService.setProperties(parseInt(this.TSSelected), startAndEndDates);//this.TimeSelected);\r\n this.setRange(inputValue);\r\n }\r\n else\r\n this.commonFilterService.setProperties(parseInt(this.TSSelected), '');\r\n\r\n this.commonFilterService.GeneralEventIDFilter.subscribe(res => {\r\n //debugger;\r\n const filtersWithEventID: FilterMetadata = res;\r\n let filterExists = false;\r\n\r\n for (const key in filtersWithEventID) {\r\n filterExists = true;\r\n if (this.eventIDFilterVal == '') {\r\n\r\n if (filtersWithEventID[key].matchMode.toLowerCase().indexOf('contains') != -1\r\n && filtersWithEventID[key].value.indexOf('_') == 0 && filtersWithEventID[key].value.lastIndexOf('_') == filtersWithEventID[key].value.length - 1\r\n && filtersWithEventID[key].value.substring(1, filtersWithEventID[key].value.length - 1).indexOf('_') == -1) {\r\n let newVal = filtersWithEventID[key].value.substring(1, filtersWithEventID[key].value.length - 1);\r\n let newMatchMode = filtersWithEventID[key].matchMode.indexOf('not') != -1 ? 'notEqual' : 'equals';\r\n this.eventIDFilterVal = newVal;\r\n this.defaultStringMatchMode = FilterOperator[Object.keys(FilterOperator)[Object.values(FilterOperator).indexOf(newMatchMode)]];\r\n }\r\n else {\r\n this.eventIDFilterVal = filtersWithEventID[key].value;\r\n //https://levelup.gitconnected.com/typescript-enums-look-up-the-name-key-of-a-string-based-enum-member-220f16535770\r\n this.defaultStringMatchMode = FilterOperator[Object.keys(FilterOperator)[Object.values(FilterOperator).indexOf(filtersWithEventID[key].matchMode)]];\r\n }\r\n }\r\n this.critInputDisabled = false;\r\n this.resetOrNot = true;\r\n }\r\n\r\n if (this.resetOrNot && !filterExists) {//When deleted from Synop table\r\n this.resetOrNot = false;\r\n this.eventIDFilterVal = \"\";\r\n this.defaultStringMatchMode = FilterOperator.CONTAINS;\r\n }\r\n });\r\n //console.log(okClick)\r\n if (okClick == undefined)\r\n this.commonFilterService.filter(this.listenNext);//intimates that filters of this component changed\r\n }\r\n\r\n setRange(inputValue) {\r\n //console.log(inputValue)\r\n //this.dateStartInput.nativeElement.value = inputValue;\r\n //debugger;\r\n let rangeInfo: any = {\r\n RangeType: this.setRangeType(inputValue),\r\n RangeSelected: inputValue,\r\n }\r\n //console.log(rangeInfo)\r\n this.commonFilterService.setRangeFilterData(rangeInfo);\r\n }\r\n setRangeType(value) {\r\n switch (value) {\r\n case 'Last 10 Minutes':\r\n return '10min';\r\n case 'Last Hour':\r\n return 'hour';\r\n case 'Last 12 Hours':\r\n return '12hours';\r\n case 'Last 24 Hours':\r\n return '24hours';\r\n case 'Today':\r\n return 'today';\r\n case 'Yesterday':\r\n return 'yesterday';\r\n case 'Last 7 Days':\r\n return '7days';\r\n case 'Last Month':\r\n return 'month';\r\n case 'Last 6 Months':\r\n return '6months';\r\n case 'Last Year':\r\n return 'year';\r\n case 'Custom range':\r\n return 'custom';\r\n }\r\n\r\n return '';\r\n }\r\n onAutoRefreshClicked() {\r\n //debugger;\r\n this.AutoRefStop = !this.AutoRefStop;\r\n this.setCommonFilters(null);\r\n this.AutoRefreshInfo.emit({ AutoRefSelected: parseInt(this.AutoRefSelected) * 1000, AutoRefStop: this.AutoRefStop });\r\n }\r\n\r\n customOrNot: boolean = false;\r\n onCustomDatesChange() {\r\n this.origCustDateTime = \"\";//reset\r\n this.customOrNot = !this.customOrNot;\r\n if (!this.customOrNot && !this.disabled)\r\n this.onRefreshClicked(null, this.notCustomInputValue);\r\n }\r\n\r\n eventIDOrNot: boolean = true;\r\n resetOrNot: boolean = false;\r\n eventIDFilterVal: string = '';\r\n onEventIDFilterClick() {\r\n this.onOKClicked();\r\n if (this.wrongDateRange)\r\n return false;\r\n //this.validateCriteria();\r\n //if (this.critErrors == true)\r\n // return false;\r\n\r\n if (this.eventIDFilterVal.length !== 0) {\r\n let filters: FilterMetadata = {} as FilterMetadata;\r\n ////let filtersArray: GeneralFilter[] = [];\r\n\r\n //if (!this.eventIDOrNot) {//clear - not in use\r\n // this.eventIDFilterVal = \"\";\r\n // this.commonFilterService.GeneralFilter.subscribe(res => {\r\n // if (res) {\r\n // //console.log(res)\r\n // filters = res;\r\n // if (filters[\"VQuad_CallID\"]) {\r\n // delete filters[\"VQuad_CallID\"];\r\n\r\n // //this.commonFilterService.AllGeneralFilter.subscribe(resAll => {\r\n // // if (resAll) {\r\n // // filtersArray = resAll;\r\n // // //https://stackoverflow.com/questions/15287865/remove-array-element-based-on-object-property\r\n // // filtersArray = filtersArray.filter(function (obj) {\r\n // // return obj.ColumnName !== 'VQuad_CallID';\r\n // // });\r\n // // }\r\n // //});\r\n // }\r\n // }\r\n // });\r\n // //setTimeout(() => {\r\n\r\n // //}, 2000);\r\n // //console.log(filters)\r\n // this.commonFilterService.setGeneralFilterData(filters);\r\n // //this.commonFilterService.setAllGeneralFilterData(filtersArray);\r\n //}\r\n //else\r\n {//apply\r\n debugger;\r\n let value = this.eventIDFilterVal;\r\n let matchMode = this.defaultStringMatchMode;\r\n if (this.defaultStringMatchMode.toLowerCase().indexOf('equal') != -1 && this.eventIDFilterVal.indexOf('_') == -1) {\r\n value = \"_\" + value + \"_\";//dynamically changing Event filtering for either Cal ID or Device ID when equals or not equals operator selected\r\n matchMode = FilterOperator.CONTAINS;\r\n if (this.defaultStringMatchMode.toLowerCase().indexOf('not') != -1)\r\n matchMode = FilterOperator.NOT_CONTAINS;\r\n }\r\n let valueTo = null;\r\n let type = DataType.String;\r\n let rsltType = \"\";\r\n let title = 'VQuad Event ID';\r\n filters[\"VQuad_CallID\"] = { value, matchMode, valueTo, type, rsltType, title };\r\n this.resetOrNot = true;\r\n this.commonFilterService.setGeneralEventIDFilterData(filters);\r\n //this.commonFilterService.setAllGeneralFilterData(filtersArray);\r\n }\r\n //this.eventIDFilterVal = \"\";\r\n //this.defaultStringMatchMode = FilterOperator.CONTAINS;\r\n ////this.eventIDOrNot = !this.eventIDOrNot;\r\n //this.critInputDisabled = false;\r\n\r\n this.EventIDFilter.emit();//send refresh command here to all main screens\r\n }\r\n else\r\n this.commonFilterService.filter(this.listenNext);//intimates that filters of this component changed with only dates chaged\r\n }\r\n\r\n onResetClick() {\r\n this.resetOrNot = false;\r\n this.eventIDFilterVal = \"\";\r\n this.defaultStringMatchMode = FilterOperator.CONTAINS;\r\n this.critInputDisabled = false;\r\n\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n //this.commonFilterService.filter(this.listenNext);//intimates that filters of this component changed\r\n this.EventIDFilter.emit();//send refresh command here to all main screens\r\n }\r\n\r\n critInputDisabled = false;\r\n onModeChange() {\r\n this.critInputDisabled = false;\r\n if (this.defaultStringMatchMode == FilterOperator.IS_EMPTY || this.defaultStringMatchMode == FilterOperator.IS_NOT_EMPTY) {\r\n this.critInputDisabled = true;\r\n this.critErrors = false;\r\n }\r\n //else\r\n // this.eventIDFilterVal = \"\";//reset\r\n }\r\n\r\n critErrors: boolean = false;\r\n critErrorDesc = \"*Required\";\r\n validateCriteria() {\r\n this.critErrors = false;\r\n //debugger\r\n //when input empty\r\n if (this.eventIDFilterVal.length === 0 && this.critInputDisabled == false) {\r\n this.critErrors = true;\r\n }\r\n }\r\n\r\n OpenHelp() {\r\n\r\n let pdfFilePath = '/Webviewer/assets/DowloadedScripts/GoogleMapHelp.html'; //// '/Webviewer/assets/images/ITS/ITSHelp.pdf?v=6.4.2';\r\n\r\n const windowFeatures = 'menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=yes,height = ' + screen.height * .66 + ',width=' + screen.width * .66;\r\n // Open the popup window\r\n //const popupWindow = window.open('', '_blank', 'top=0,left=0,height=100%,width=auto');\r\n const popupWindow = window.open('', '_blank', windowFeatures);\r\n\r\n popupWindow.document.open();\r\n popupWindow.document.write(`\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tEvent ID Filter HELP\r\n\t\t\t\t\t\t\r\n \r\n\r\n
    \r\n
    \r\n

    Equals:

    \r\n\r\n Usage: This feature is used to filter and select exact values of the Call ID, Device ID, or Event ID within a specified time range.
    \r\n
    Example:\r\n

    \r\nEvent ID: O_5GPOLQATEST_BTPhone1_20231027150155\r\n
    If user provide the Event ID as 'O_5GPOLQATEST_BTPhone1_20231027150155', WebViewer will search the database within the specified time frame for that exact Event ID and display the result.\r\n

    Call ID: 5GPOLQATEST\r\n
    If user provide the Call ID as '5GPOLQATEST', WebViewer will search the database within the specified time frame and display all the results with the Call ID '5GPOLQATEST'.\r\n

    Device ID: BTPhone1\r\n
    If user provide the Device ID as 'BTPhone1', WebViewer will search the database within the specified time frame and display all the results with the Device ID 'BTPhone1'.\r\n

    \r\n
    \r\n\r\n
    \r\n

    Does not Equal:

    \r\n\r\n Usage: This feature is used to filter and select values of the Call ID, Device ID, or Event ID that do not match a specified value within a specified time range.
    \r\n
    Example:\r\n

    \r\nEvent ID: O_5GPOLQATEST_BTPhone1_20231027150155\r\n
    If user provide the Event ID as 'O_5GPOLQATEST_BTPhone1_20231027150155', WebViewer will search the database within the specified time frame for all Event IDs that are not equal to this value and display the results.\r\n

    Call ID: 5GPOLQATEST\r\n
    If user provide the Call ID as '5GPOLQATEST', WebViewer will search the database within the specified time frame and display all the results with Call IDs that are not equal to '5GPOLQATEST'.\r\n

    Device ID: BTPhone1\r\n
    If user provide the Device ID as 'BTPhone1', WebViewer will search the database within the specified time frame and display all the results with Device IDs that are not equal to 'BTPhone1'.\r\n

    \r\n
    \r\n\r\n
    \r\n

    Starts with:

    \r\n\r\n Usage: This feature is used to filter and select values of the Event ID that begin with a specified prefix within a specified time range.
    \r\n
    Example:\r\n

    \r\nEvent ID: O_5GPOLQATEST_BTPhone1_20231027150155\r\n
    If user provide the Event ID as 'O_', WebViewer will search the database within the specified time frame for all Event IDs that start with this prefix and display the results.\r\n

    \r\n
    \r\n\r\n
    \r\n

    Ends with:

    \r\n\r\n Usage: This feature is used to filter and select values of the Event ID that end with a specified suffix within a specified time range.
    \r\n
    Example:\r\n

    \r\nEvent ID: O_5GPOLQATEST_BTPhone1_20231027150155\r\n
    If user provide the Event ID as '150155', WebViewer will search the database within the specified time frame for all Event IDs that end with this suffix and display the results.\r\n

    \r\n
    \r\n\r\n
    \r\n

    Contains:

    \r\n\r\n Usage: This feature is used to filter and select values of the Event ID that contain a specified substring within a specified time range.
    \r\n
    Example:\r\n

    \r\nEvent ID: O_5GPOLQATEST_BTPhone1_20231027150155\r\n
    If user provides the Event ID as '20231027', WebViewer will search the database within the specified time frame for all Event IDs that contains '20231027' within their value and display the results.\r\n

    Or if user provides part of CallID which is '5G', WebViewer will search the database within the specified time frame for all Event IDs that contains the CallID portion '5G' within their value and display the results.\r\n

    Or if user provides part of Device ID which is 'Phone1', WebViewer will search the database within the specified time frame for all Event IDs that contains the Device ID portion 'Phone1' within their value and display the results.\r\n

    \r\n
    \r\n\r\n
    \r\n

    Does not contain:

    \r\n\r\n Usage: This feature is used to filter and select values of the Event ID that do not contain a specified substring within a specified time range.
    \r\n
    Example:\r\n

    \r\nEvent ID: O_5GPOLQATEST_BTPhone1_20231002123411\r\n
    If user provides the Event ID as '20231002', WebViewer will search the database within the specified time frame for all Event IDs that does not contains '20231002' within their value and display the results.\r\n

    Or if user provides part of CallID which is 'POLQATEST', WebViewer will search the database within the specified time frame for all Event IDs that does not contains the CallID portion 'POLQATEST' within their value and display the results.\r\n

    Or if user provides part of Device ID which is 'BT', WebViewer will search the database within the specified time frame for all Event IDs that does not contains the Device ID portion 'BT' within their value and display the results.\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n `)\r\n popupWindow.document.close();\r\n // Write the HTML content to the popup window\r\n // popupWindow.document.write(`\r\n // \r\n // \r\n // \r\n // \r\n // \r\n //`);\r\n\r\n // // Make sure to close the document write operation\r\n // popupWindow.document.close();\r\n\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, Optional, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\n\n@Component({\n selector: 'app-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss']\n})\nexport class ConfirmDialogComponent implements OnInit {\n title: string;\r\n message: string;\n constructor(public dialogBox: MatDialogRef, @Optional() @Inject(MAT_DIALOG_DATA) public data: any) {\n this.title = data.title;\r\n this.message = data.message;\r\n }\n\n ngOnInit() {\n }\n\n onConfirm(): void {\r\n // Close the dialog, return true\r\n this.dialogBox.close(true);\r\n }\r\n\r\n onDismiss(): void {\r\n // Close the dialog, return false\r\n this.dialogBox.close(false);\r\n }\n\n}\n","module.exports = \"/*\\n* variables\\n*/\\n/*\\n* styles\\n*/\\n.md-drppicker {\\n position: absolute;\\n font-family: Roboto, sans-serif;\\n color: inherit;\\n background-color: #fff;\\n border-radius: 4px;\\n width: 278px;\\n padding: 4px;\\n margin-top: -10px;\\n overflow: hidden;\\n z-index: 1000;\\n font-size: 12px;\\n /*14px; - calendar size - IMP*/\\n background-color: #ffffff;\\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16), 0 2px 8px 0 rgba(0, 0, 0, 0.12);\\n /* ranges */\\n /* button */\\n}\\n.md-drppicker.double {\\n width: auto;\\n}\\n.md-drppicker.inline {\\n position: relative;\\n display: inline-block;\\n}\\n.md-drppicker:before, .md-drppicker:after {\\n position: absolute;\\n display: inline-block;\\n border-bottom-color: rgba(0, 0, 0, 0.2);\\n content: \\\"\\\";\\n}\\n.md-drppicker.openscenter:before {\\n left: 0;\\n right: 0;\\n width: 0;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n.md-drppicker.openscenter:after {\\n left: 0;\\n right: 0;\\n width: 0;\\n margin-left: auto;\\n margin-right: auto;\\n}\\n.md-drppicker.single .ranges, .md-drppicker.single .calendar {\\n float: none;\\n}\\n.md-drppicker.shown {\\n -ms-transform: scale(1);\\n transform: scale(1);\\n transition: all 0.1s ease-in-out;\\n -ms-transform-origin: 0 0;\\n transform-origin: 0 0;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.md-drppicker.shown.drops-up-left {\\n -ms-transform-origin: 100% 100%;\\n transform-origin: 100% 100%;\\n}\\n.md-drppicker.shown.drops-up-right {\\n -ms-transform-origin: 0 100%;\\n transform-origin: 0 100%;\\n}\\n.md-drppicker.shown.drops-down-left {\\n -ms-transform-origin: 100% 0;\\n transform-origin: 100% 0;\\n}\\n.md-drppicker.shown.drops-down-right {\\n -ms-transform-origin: 0 0;\\n transform-origin: 0 0;\\n}\\n.md-drppicker.shown.drops-down-center {\\n -ms-transform-origin: NaN%;\\n transform-origin: NaN%;\\n}\\n.md-drppicker.shown.drops-up-center {\\n -ms-transform-origin: 50%;\\n transform-origin: 50%;\\n}\\n.md-drppicker.shown .calendar {\\n display: block;\\n}\\n.md-drppicker.hidden {\\n transition: all 0.1s ease;\\n -ms-transform: scale(0);\\n transform: scale(0);\\n -ms-transform-origin: 0 0;\\n transform-origin: 0 0;\\n cursor: default;\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.md-drppicker.hidden.drops-up-left {\\n -ms-transform-origin: 100% 100%;\\n transform-origin: 100% 100%;\\n}\\n.md-drppicker.hidden.drops-up-right {\\n -ms-transform-origin: 0 100%;\\n transform-origin: 0 100%;\\n}\\n.md-drppicker.hidden.drops-down-left {\\n -ms-transform-origin: 100% 0;\\n transform-origin: 100% 0;\\n}\\n.md-drppicker.hidden.drops-down-right {\\n -ms-transform-origin: 0 0;\\n transform-origin: 0 0;\\n}\\n.md-drppicker.hidden.drops-down-center {\\n -ms-transform-origin: NaN%;\\n transform-origin: NaN%;\\n}\\n.md-drppicker.hidden.drops-up-center {\\n -ms-transform-origin: 50%;\\n transform-origin: 50%;\\n}\\n.md-drppicker.hidden .calendar {\\n display: none;\\n}\\n.md-drppicker .calendar {\\n /* display: none; */\\n max-width: 270px;\\n margin: 4px;\\n}\\n.md-drppicker .calendar.single .calendar-table {\\n border: none;\\n}\\n.md-drppicker .calendar th, .md-drppicker .calendar td {\\n padding: 0;\\n white-space: nowrap;\\n text-align: center;\\n min-width: 32px;\\n}\\n.md-drppicker .calendar th span, .md-drppicker .calendar td span {\\n pointer-events: none;\\n}\\n.md-drppicker .calendar-table {\\n border: 1px solid #fff;\\n padding: 4px;\\n border-radius: 4px;\\n background-color: #fff;\\n}\\n.md-drppicker table {\\n width: 100%;\\n margin: 0;\\n}\\n.md-drppicker th {\\n color: #988c8c;\\n}\\n.md-drppicker td, .md-drppicker th {\\n text-align: center;\\n width: 20px;\\n height: 20px;\\n border-radius: 4px;\\n border: 1px solid transparent;\\n white-space: nowrap;\\n cursor: pointer;\\n height: 2em;\\n width: 2em;\\n}\\n.md-drppicker td.available.prev, .md-drppicker th.available.prev {\\n display: block;\\n background-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K\\\");\\n background-repeat: no-repeat;\\n background-size: 0.5em;\\n background-position: center;\\n opacity: 0.8;\\n transition: background-color 0.2s ease;\\n border-radius: 2em;\\n}\\n.md-drppicker td.available.prev:hover, .md-drppicker th.available.prev:hover {\\n margin: 0;\\n}\\n.md-drppicker td.available.next, .md-drppicker th.available.next {\\n -ms-transform: rotate(180deg);\\n transform: rotate(180deg);\\n display: block;\\n background-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K\\\");\\n background-repeat: no-repeat;\\n background-size: 0.5em;\\n background-position: center;\\n opacity: 0.8;\\n transition: background-color 0.2s ease;\\n border-radius: 2em;\\n}\\n.md-drppicker td.available.next:hover, .md-drppicker th.available.next:hover {\\n margin: 0;\\n -ms-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n.md-drppicker td.available:hover, .md-drppicker th.available:hover {\\n background-color: #eee;\\n border-color: transparent;\\n color: inherit;\\n background-repeat: no-repeat;\\n background-size: 0.5em;\\n background-position: center;\\n margin: 0.25em 0;\\n opacity: 0.8;\\n /*transition: background-color .2s ease;*/\\n border-radius: 2em;\\n -ms-transform: scale(1);\\n transform: scale(1);\\n transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;\\n}\\n.md-drppicker td.week, .md-drppicker th.week {\\n font-size: 80%;\\n color: #ccc;\\n}\\n.md-drppicker td {\\n margin: 0.25em 0;\\n opacity: 0.8;\\n transition: background-color 0.2s ease;\\n border-radius: 2em;\\n -ms-transform: scale(1);\\n transform: scale(1);\\n transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;\\n}\\n.md-drppicker td.off, .md-drppicker td.off.in-range, .md-drppicker td.off.start-date, .md-drppicker td.off.end-date {\\n background-color: #fff;\\n border-color: transparent;\\n color: #999;\\n}\\n.md-drppicker td.in-range {\\n background-color: #dde2e4;\\n border-color: transparent;\\n color: #000;\\n border-radius: 0;\\n}\\n.md-drppicker td.start-date {\\n border-radius: 2em 0 0 2em;\\n}\\n.md-drppicker td.end-date {\\n border-radius: 0 2em 2em 0;\\n}\\n.md-drppicker td.start-date.end-date {\\n border-radius: 4px;\\n}\\n.md-drppicker td.active {\\n transition: background 300ms ease-out;\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.md-drppicker td.active, .md-drppicker td.active:hover {\\n background-color: #2196F3;\\n border-color: transparent;\\n color: #fff;\\n}\\n.md-drppicker th.month {\\n width: auto;\\n}\\n.md-drppicker td.disabled, .md-drppicker option.disabled {\\n color: #999;\\n cursor: not-allowed;\\n text-decoration: line-through;\\n}\\n.md-drppicker select {\\n display: inline-block;\\n background-color: rgba(255, 255, 255, 0.9);\\n width: 100%;\\n padding: 5px;\\n border: 1px solid #f2f2f2;\\n border-radius: 2px;\\n height: 3rem;\\n}\\n.md-drppicker select.monthselect, .md-drppicker select.yearselect {\\n font-size: 12px;\\n padding: 1px;\\n height: auto;\\n margin: 0;\\n cursor: default;\\n}\\n.md-drppicker select.hourselect, .md-drppicker select.minuteselect, .md-drppicker select.secondselect, .md-drppicker select.ampmselect {\\n width: 50px;\\n margin: 0 auto;\\n background: #eee;\\n border: 1px solid #eee;\\n padding: 2px;\\n outline: 0;\\n font-size: 12px;\\n}\\n.md-drppicker select.monthselect, .md-drppicker select.yearselect {\\n cursor: pointer;\\n opacity: 0;\\n position: absolute;\\n top: 0;\\n left: 0;\\n margin: 0;\\n padding: 0;\\n}\\n.md-drppicker th.month > div {\\n position: relative;\\n display: inline-block;\\n}\\n.md-drppicker .calendar-time {\\n text-align: center;\\n margin: 4px auto 0 auto;\\n line-height: 30px;\\n position: relative;\\n}\\n.md-drppicker .calendar-time select.disabled {\\n color: #ccc;\\n cursor: not-allowed;\\n}\\n.md-drppicker .label-input {\\n border: 1px solid #ccc;\\n border-radius: 4px;\\n color: #555;\\n height: 30px;\\n line-height: 30px;\\n display: block;\\n vertical-align: middle;\\n margin: 0 auto 5px auto;\\n padding: 0 0 0 28px;\\n width: 100%;\\n}\\n.md-drppicker .label-input.active {\\n border: 1px solid #08c;\\n border-radius: 4px;\\n}\\n.md-drppicker .md-drppicker_input {\\n position: relative;\\n padding: 0 30px 0 0;\\n}\\n.md-drppicker .md-drppicker_input i, .md-drppicker .md-drppicker_input svg {\\n position: absolute;\\n left: 8px;\\n top: 8px;\\n}\\n.md-drppicker.rtl .label-input {\\n padding-right: 28px;\\n padding-left: 6px;\\n}\\n.md-drppicker.rtl .md-drppicker_input i, .md-drppicker.rtl .md-drppicker_input svg {\\n left: auto;\\n right: 8px;\\n}\\n.md-drppicker .show-ranges .drp-calendar.left {\\n border-left: 1px solid #ddd;\\n}\\n.md-drppicker .ranges {\\n float: none;\\n text-align: left;\\n margin: 0;\\n}\\n.md-drppicker .ranges ul {\\n list-style: none;\\n margin: 0 auto;\\n padding: 0;\\n width: 100%;\\n}\\n.md-drppicker .ranges ul li {\\n font-size: 12px;\\n}\\n.md-drppicker .ranges ul li button {\\n /*padding: 8px 12px; - IMP between left options*/\\n width: 100%;\\n background: none;\\n border: none;\\n text-align: left;\\n cursor: pointer;\\n}\\n.md-drppicker .ranges ul li button.active {\\n background-color: #2196F3;\\n color: #fff;\\n}\\n.md-drppicker .ranges ul li button[disabled] {\\n opacity: 0.3;\\n}\\n.md-drppicker .ranges ul li button:active {\\n background: transparent;\\n}\\n.md-drppicker .ranges ul li:hover {\\n background-color: #eee;\\n}\\n.md-drppicker .show-calendar .ranges {\\n margin-top: 8px;\\n}\\n.md-drppicker [hidden] {\\n display: none;\\n}\\n.md-drppicker .buttons {\\n text-align: right;\\n margin: 0 5px 5px 0;\\n}\\n.md-drppicker .btn {\\n position: relative;\\n overflow: hidden;\\n border-width: 0;\\n outline: none;\\n padding: 0px 6px;\\n cursor: pointer;\\n border-radius: 2px;\\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);\\n background-color: #2196F3;\\n color: #ecf0f1;\\n transition: background-color 0.4s;\\n height: auto;\\n text-transform: uppercase;\\n line-height: 36px;\\n font-size: 12px;\\n border: none;\\n}\\n.md-drppicker .btn:hover, .md-drppicker .btn:focus {\\n background-color: #2196F3;\\n}\\n.md-drppicker .btn > * {\\n position: relative;\\n}\\n.md-drppicker .btn span {\\n display: block;\\n padding: 12px 24px;\\n}\\n.md-drppicker .btn:before {\\n content: \\\"\\\";\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n display: block;\\n width: 0;\\n padding-top: 0;\\n border-radius: 100%;\\n background-color: rgba(236, 240, 241, 0.3);\\n -ms-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n}\\n.md-drppicker .btn:active:before {\\n width: 120%;\\n padding-top: 120%;\\n transition: width 0.2s ease-out, padding-top 0.2s ease-out;\\n}\\n.md-drppicker .btn:disabled {\\n opacity: 0.5;\\n}\\n.md-drppicker .btn.btn-default {\\n color: black;\\n background-color: gainsboro;\\n}\\n.md-drppicker .clear {\\n box-shadow: none;\\n background-color: #ffffff !important;\\n}\\n.md-drppicker .clear svg {\\n color: #eb3232;\\n fill: currentColor;\\n}\\n@media (min-width: 564px) {\\n .md-drppicker {\\n width: auto;\\n }\\n .md-drppicker.single .calendar.left {\\n clear: none;\\n }\\n .md-drppicker.ltr {\\n direction: ltr;\\n text-align: left;\\n }\\n .md-drppicker.ltr .calendar.left {\\n clear: left;\\n /*margin-right: 1.5em;*/\\n }\\n .md-drppicker.ltr .calendar.left .calendar-table {\\n border-right: none;\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n }\\n .md-drppicker.ltr .calendar.right {\\n margin-left: 0;\\n }\\n .md-drppicker.ltr .calendar.right .calendar-table {\\n border-left: none;\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n }\\n .md-drppicker.ltr .left .md-drppicker_input {\\n padding-right: 35px;\\n }\\n .md-drppicker.ltr .right .md-drppicker_input {\\n padding-right: 35px;\\n }\\n .md-drppicker.ltr .calendar.left .calendar-table {\\n padding-right: 12px;\\n }\\n .md-drppicker.ltr .ranges, .md-drppicker.ltr .calendar {\\n float: left;\\n }\\n .md-drppicker.rtl {\\n direction: rtl;\\n text-align: right;\\n }\\n .md-drppicker.rtl .calendar.left {\\n clear: right;\\n margin-left: 0;\\n }\\n .md-drppicker.rtl .calendar.left .calendar-table {\\n border-left: none;\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n }\\n .md-drppicker.rtl .calendar.right {\\n margin-right: 0;\\n }\\n .md-drppicker.rtl .calendar.right .calendar-table {\\n border-right: none;\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n }\\n .md-drppicker.rtl .left .md-drppicker_input {\\n padding-left: 12px;\\n }\\n .md-drppicker.rtl .calendar.left .calendar-table {\\n padding-left: 12px;\\n }\\n .md-drppicker.rtl .ranges, .md-drppicker.rtl .calendar {\\n text-align: right;\\n float: right;\\n }\\n\\n .drp-animate {\\n -ms-transform: translate(0);\\n transform: translate(0);\\n transition: transform 0.2s ease, opacity 0.2s ease;\\n }\\n .drp-animate.drp-picker-site-this {\\n transition-timing-function: linear;\\n }\\n .drp-animate.drp-animate-right {\\n -ms-transform: translateX(10%);\\n transform: translateX(10%);\\n opacity: 0;\\n }\\n .drp-animate.drp-animate-left {\\n -ms-transform: translateX(-10%);\\n transform: translateX(-10%);\\n opacity: 0;\\n }\\n}\\n@media (min-width: 730px) {\\n .md-drppicker .ranges {\\n width: auto;\\n }\\n .md-drppicker.ltr .ranges {\\n float: left;\\n }\\n .md-drppicker.rtl .ranges {\\n float: right;\\n }\\n .md-drppicker .calendar.left {\\n clear: none !important;\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvZGF0ZXJhbmdlcGlja2VyL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9zcmNcXGFwcFxcc2hhcmVkXFxjb21wb25lbnRzXFxkYXRlcmFuZ2VwaWNrZXJcXGRhdGVyYW5nZXBpY2tlci5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvZGF0ZXJhbmdlcGlja2VyL2RhdGVyYW5nZXBpY2tlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Q0FBQTtBQStEQTs7Q0FBQTtBQUdBO0VBQ0Usa0JBQUE7RUFDQSwrQkFBQTtFQUNBLGNBbEVtQjtFQW1FbkIsc0JBbEVzQjtFQW1FdEIsa0JBQUE7RUFDQSxZQTlDbUI7RUErQ25CLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsYUFBQTtFQUNBLGVBQUE7RUFBZ0IsOEJBQUE7RUFDaEIseUJBQUE7RUFDQSw0RUFBQTtFQXNZQSxXQUFBO0VBMkRBLFdBQUE7QUN6ZkY7QUQwREU7RUFDRSxXQXZEd0I7QUNENUI7QUQyREU7RUFDRSxrQkFBQTtFQUNBLHFCQUFBO0FDekRKO0FENERFO0VBQ0Usa0JBQUE7RUFDQSxxQkFBQTtFQUNBLHVDQUFBO0VBQ0EsV0FBQTtBQzFESjtBRGdFSTtFQUNFLE9BQUE7RUFDQSxRQUFBO0VBQ0EsUUFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7QUM5RE47QURpRUk7RUFDRSxPQUFBO0VBQ0EsUUFBQTtFQUNBLFFBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0FDL0ROO0FEb0VJO0VBQ0UsV0FBQTtBQ2xFTjtBRHNFRTtFQUNFLHVCQUFBO01BQUEsbUJBQUE7RUFDQSxnQ0FBQTtFQUNBLHlCQUFBO01BQUEscUJBQUE7RUFDQSwyQkFBQTtFQUNBLHlCQUFBO0VBQ0Esc0JBQUE7RUFDQSxx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ZXIvZGF0ZXJhbmdlcGlja2VyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuKiAgdmFyaWFibGVzXHJcbiovXHJcbiRtZC1kcnBwaWNrZXItY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XHJcbiRtZC1kcnBwaWNrZXItYmctY29sb3I6ICNmZmYgIWRlZmF1bHQ7XHJcblxyXG4kbWQtZHJwcGlja2VyLWNlbGwtY29sb3I6ICRtZC1kcnBwaWNrZXItY29sb3IgIWRlZmF1bHQ7XHJcbiRtZC1kcnBwaWNrZXItY2VsbC1ib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xyXG4kbWQtZHJwcGlja2VyLWNlbGwtYmctY29sb3I6ICRtZC1kcnBwaWNrZXItYmctY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4kbWQtZHJwcGlja2VyLWNlbGwtaG92ZXItY29sb3I6ICRtZC1kcnBwaWNrZXItY29sb3IgIWRlZmF1bHQ7XHJcbiRtZC1kcnBwaWNrZXItY2VsbC1ob3Zlci1ib3JkZXItY29sb3I6ICRtZC1kcnBwaWNrZXItY2VsbC1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XHJcbiRtZC1kcnBwaWNrZXItY2VsbC1ob3Zlci1iZy1jb2xvcjogI2VlZSAhZGVmYXVsdDtcclxuXHJcbiRtZC1kcnBwaWNrZXItaW4tcmFuZ2UtY29sb3I6ICMwMDAgIWRlZmF1bHQ7XHJcbiRtZC1kcnBwaWNrZXItaW4tcmFuZ2UtYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcclxuJG1kLWRycHBpY2tlci1pbi1yYW5nZS1iZy1jb2xvcjogI2RkZTJlNCAhZGVmYXVsdDtcclxuXHJcbiRtZC1kcnBwaWNrZXItYWN0aXZlLWNvbG9yOiAjZmZmICFkZWZhdWx0O1xyXG4kbWQtZHJwcGlja2VyLWFjdGl2ZS1iZy1jb2xvcjogIzIxOTZGMyAhZGVmYXVsdDtcclxuJG1kLWRycHBpY2tlci1hY3RpdmUtYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcclxuXHJcbiRtZC1kcnBwaWNrZXItdW5zZWxlY3RlZC1jb2xvcjogIzk5OSAhZGVmYXVsdDtcclxuJG1kLWRycHBpY2tlci11bnNlbGVjdGVkLWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XHJcbiRtZC1kcnBwaWNrZXItdW5zZWxlY3RlZC1iZy1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcclxuXHJcbiRtZC1kcnBwaWNrZXItd2lkdGg6IDI3OHB4ICFkZWZhdWx0O1xyXG4kbWQtZHJwcGlja2VyLXdpZHRoLWRvdWJsZTogYXV0byAhZGVmYXVsdDtcclxuJG1kLWRycHBpY2tlci1ib3JkZXItY29sb3I6ICNjY2MgIWRlZmF1bHQ7XHJcblxyXG4kbWQtZHJwcGlja2VyLWNhbGVuZGFyLW1hcmdpbjogNHB4ICFkZWZhdWx0O1xyXG4kbWQtZHJwcGlja2VyLWNhbGVuZGFyLWJnLWNvbG9yOiAkbWQtZHJwcGlja2VyLWJnLWNvbG9yICFkZWZhdWx0O1xyXG5cclxuJG1kLWRycHBpY2tlci1jYWxlbmRhci1ib3JkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xyXG4kbWQtZHJwcGlja2VyLWNhbGVuZGFyLWJvcmRlci1jb2xvcjogJG1kLWRycHBpY2tlci1iZy1jb2xvciAhZGVmYXVsdDtcclxuJG1kLWRycHBpY2tlci1jYWxlbmRhci1ib3JkZXItcmFkaXVzOiA0cHggIWRlZmF1bHQ7XHJcblxyXG4kbWQtZHJwcGlja2VyLWNlbGwtc2l6ZTogMjBweCAhZGVmYXVsdDtcclxuJG1kLWRycHBpY2tlci1jZWxsLXdpZHRoOiAkbWQtZHJwcGlja2VyLWNlbGwtc2l6ZSAhZGVmYXVsdDtcclxuJG1kLWRycHBpY2tlci1jZWxsLWhlaWdodDogJG1kLWRycHBpY2tlci1jZWxsLXNpemUgIWRlZmF1bHQ7XHJcblxyXG4kbWQtZHJwcGlja2VyLWNlbGwtYm9yZGVyLXJhZGl1czogJG1kLWRycHBpY2tlci1jYWxlbmRhci1ib3JkZXItcmFkaXVzICFkZWZhdWx0O1xyXG4kbWQtZHJwcGlja2VyLWNlbGwtYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcclxuXHJcbiRtZC1kcnBwaWNrZXItY29udHJvbC1oZWlnaHQ6IDMwcHggIWRlZmF1bHQ7XHJcbiRtZC1kcnBwaWNrZXItY29udHJvbC1saW5lLWhlaWdodDogJG1kLWRycHBpY2tlci1jb250cm9sLWhlaWdodCAhZGVmYXVsdDtcclxuJG1kLWRycHBpY2tlci1jb250cm9sLWNvbG9yOiAjNTU1ICFkZWZhdWx0O1xyXG5cclxuJG1kLWRycHBpY2tlci1jb250cm9sLWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XHJcbiRtZC1kcnBwaWNrZXItY29udHJvbC1ib3JkZXItY29sb3I6ICNjY2MgIWRlZmF1bHQ7XHJcbiRtZC1kcnBwaWNrZXItY29udHJvbC1ib3JkZXItcmFkaXVzOiA0cHggIWRlZmF1bHQ7XHJcblxyXG4kbWQtZHJwcGlja2VyLWNvbnRyb2wtYWN0aXZlLWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XHJcbiRtZC1kcnBwaWNrZXItY29udHJvbC1hY3RpdmUtYm9yZGVyLWNvbG9yOiAjMDhjICFkZWZhdWx0O1xyXG4kbWQtZHJwcGlja2VyLWNvbnRyb2wtYWN0aXZlLWJvcmRlci1yYWRpdXM6ICRtZC1kcnBwaWNrZXItY29udHJvbC1ib3JkZXItcmFkaXVzICFkZWZhdWx0O1xyXG5cclxuJG1kLWRycHBpY2tlci1jb250cm9sLWRpc2FibGVkLWNvbG9yOiAjY2NjICFkZWZhdWx0O1xyXG4vLyBTZWxlY3RcclxuJHNlbGVjdC1ib3JkZXI6IDFweCBzb2xpZCAjZjJmMmYyICFkZWZhdWx0O1xyXG4kc2VsZWN0LWJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45MCkgIWRlZmF1bHQ7XHJcbiRzZWxlY3QtcGFkZGluZzogNXB4ICFkZWZhdWx0O1xyXG4kc2VsZWN0LXJhZGl1czogMnB4ICFkZWZhdWx0O1xyXG4kaW5wdXQtaGVpZ2h0OiAzcmVtICFkZWZhdWx0O1xyXG4vKlxyXG4qIHN0eWxlc1xyXG4qL1xyXG4ubWQtZHJwcGlja2VyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgc2Fucy1zZXJpZjtcclxuICBjb2xvcjogJG1kLWRycHBpY2tlci1jb2xvcjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWQtZHJwcGlja2VyLWJnLWNvbG9yO1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICB3aWR0aDogJG1kLWRycHBpY2tlci13aWR0aDtcclxuICBwYWRkaW5nOiA0cHg7XHJcbiAgbWFyZ2luLXRvcDogLTEwcHg7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB6LWluZGV4OiAxMDAwO1xyXG4gIGZvbnQtc2l6ZTogMTJweDsvKjE0cHg7IC0gY2FsZW5kYXIgc2l6ZSAtIElNUCovXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcclxuICBib3gtc2hhZG93OiAwIDJweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMTYpLCAwIDJweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xyXG5cclxuICAmLmRvdWJsZSB7XHJcbiAgICB3aWR0aDogJG1kLWRycHBpY2tlci13aWR0aC1kb3VibGU7XHJcbiAgfVxyXG5cclxuICAmLmlubGluZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgfVxyXG5cclxuICAmOmJlZm9yZSwgJjphZnRlciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMik7XHJcbiAgICBjb250ZW50OiAnJztcclxuICB9XHJcblxyXG5cclxuXHJcbiAgJi5vcGVuc2NlbnRlciB7XHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICB3aWR0aDogMDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICAgIH1cclxuXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgbGVmdDogMDtcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgIHdpZHRoOiAwO1xyXG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5zaW5nbGUge1xyXG4gICAgLnJhbmdlcywgLmNhbGVuZGFyIHtcclxuICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnNob3duIHtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlLWluLW91dDtcclxuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcclxuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcclxuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcblxyXG4gICAgJi5kcm9wcy11cC1sZWZ0IHtcclxuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgICYuZHJvcHMtdXAtcmlnaHQge1xyXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgJi5kcm9wcy1kb3duLWxlZnQge1xyXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XHJcbiAgICB9XHJcblxyXG4gICAgJi5kcm9wcy1kb3duLXJpZ2h0IHtcclxuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xyXG4gICAgfVxyXG5cclxuICAgICYuZHJvcHMtZG93bi1jZW50ZXIge1xyXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUlIDA7XHJcbiAgICB9XHJcblxyXG4gICAgJi5kcm9wcy11cC1jZW50ZXIge1xyXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUlIDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNhbGVuZGFyIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmhpZGRlbiB7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlO1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcclxuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcclxuICAgIGN1cnNvcjogZGVmYXVsdDtcclxuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcclxuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcblxyXG4gICAgJi5kcm9wcy11cC1sZWZ0IHtcclxuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgICYuZHJvcHMtdXAtcmlnaHQge1xyXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgJi5kcm9wcy1kb3duLWxlZnQge1xyXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XHJcbiAgICB9XHJcblxyXG4gICAgJi5kcm9wcy1kb3duLXJpZ2h0IHtcclxuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xyXG4gICAgfVxyXG5cclxuICAgICYuZHJvcHMtZG93bi1jZW50ZXIge1xyXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUlIDA7XHJcbiAgICB9XHJcblxyXG4gICAgJi5kcm9wcy11cC1jZW50ZXIge1xyXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUlIDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNhbGVuZGFyIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5jYWxlbmRhciB7XHJcbiAgICAvKiBkaXNwbGF5OiBub25lOyAqL1xyXG4gICAgbWF4LXdpZHRoOiAkbWQtZHJwcGlja2VyLXdpZHRoIC0gKCRtZC1kcnBwaWNrZXItY2FsZW5kYXItbWFyZ2luICogMik7XHJcbiAgICBtYXJnaW46ICRtZC1kcnBwaWNrZXItY2FsZW5kYXItbWFyZ2luO1xyXG5cclxuICAgICYuc2luZ2xlIHtcclxuICAgICAgLmNhbGVuZGFyLXRhYmxlIHtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aCwgdGQge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIG1pbi13aWR0aDogMzJweDtcclxuXHJcbiAgICAgIHNwYW4ge1xyXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuY2FsZW5kYXItdGFibGUge1xyXG4gICAgYm9yZGVyOiAkbWQtZHJwcGlja2VyLWNhbGVuZGFyLWJvcmRlci1zaXplIHNvbGlkICRtZC1kcnBwaWNrZXItY2FsZW5kYXItYm9yZGVyLWNvbG9yO1xyXG4gICAgcGFkZGluZzogJG1kLWRycHBpY2tlci1jYWxlbmRhci1tYXJnaW47XHJcbiAgICBib3JkZXItcmFkaXVzOiAkbWQtZHJwcGlja2VyLWNhbGVuZGFyLWJvcmRlci1yYWRpdXM7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWQtZHJwcGlja2VyLWNhbGVuZGFyLWJnLWNvbG9yO1xyXG4gIH1cclxuXHJcbiAgdGFibGUge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG5cclxuICB0aCB7XHJcbiAgICBjb2xvcjogIzk4OGM4YztcclxuICB9XHJcblxyXG4gIHRkLCB0aCB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB3aWR0aDogJG1kLWRycHBpY2tlci1jZWxsLXdpZHRoO1xyXG4gICAgaGVpZ2h0OiAkbWQtZHJwcGlja2VyLWNlbGwtaGVpZ2h0O1xyXG4gICAgYm9yZGVyLXJhZGl1czogJG1kLWRycHBpY2tlci1jZWxsLWJvcmRlci1yYWRpdXM7XHJcbiAgICBib3JkZXI6ICRtZC1kcnBwaWNrZXItY2VsbC1ib3JkZXItc2l6ZSBzb2xpZCAkbWQtZHJwcGlja2VyLWNlbGwtYm9yZGVyLWNvbG9yO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGhlaWdodDogMmVtO1xyXG4gICAgd2lkdGg6IDJlbTtcclxuXHJcbiAgICAmLmF2YWlsYWJsZSB7XHJcbiAgICAgICYucHJldiB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCMlpYSnphVzl1UFNJeExqRWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRzFzYm5NNmVHeHBibXM5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR3hwYm1zaUlIZzlJakJ3ZUNJZ2VUMGlNSEI0SWcwS0NTQjJhV1YzUW05NFBTSXdJREFnTXk0M0lEWWlJR1Z1WVdKc1pTMWlZV05yWjNKdmRXNWtQU0p1WlhjZ01DQXdJRE11TnlBMklpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajROQ2p4blBnMEtDVHh3WVhSb0lHUTlJazB6TGpjc01DNDNUREV1TkN3emJESXVNeXd5TGpOTU15dzJUREFzTTJ3ekxUTk1NeTQzTERBdU4zb2lMejROQ2p3dlp6NE5Dand2YzNablBnMEtcIik7XHJcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IC41ZW07XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICAgIG9wYWNpdHk6IC44O1xyXG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjJzIGVhc2U7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMmVtO1xyXG5cclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYubmV4dCB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIyWlhKemFXOXVQU0l4TGpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZzBLQ1NCMmFXVjNRbTk0UFNJd0lEQWdNeTQzSURZaUlHVnVZV0pzWlMxaVlXTnJaM0p2ZFc1a1BTSnVaWGNnTUNBd0lETXVOeUEySWlCNGJXdzZjM0JoWTJVOUluQnlaWE5sY25abElqNE5DanhuUGcwS0NUeHdZWFJvSUdROUlrMHpMamNzTUM0M1RERXVOQ3d6YkRJdU15d3lMak5NTXl3MlREQXNNMnd6TFROTU15NDNMREF1TjNvaUx6NE5Dand2Wno0TkNqd3ZjM1puUGcwS1wiKTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogLjVlbTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICAgICAgb3BhY2l0eTogLjg7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZTtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAyZW07XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtZC1kcnBwaWNrZXItY2VsbC1ob3Zlci1iZy1jb2xvcjtcclxuICAgICAgICBib3JkZXItY29sb3I6ICRtZC1kcnBwaWNrZXItY2VsbC1ob3Zlci1ib3JkZXItY29sb3I7XHJcbiAgICAgICAgY29sb3I6ICRtZC1kcnBwaWNrZXItY2VsbC1ob3Zlci1jb2xvcjtcclxuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogLjVlbTtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgICAgICAgbWFyZ2luOiAuMjVlbSAwO1xyXG4gICAgICAgIG9wYWNpdHk6IC44O1xyXG4gICAgICAgIC8qdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZTsqL1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJlbTtcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCA0NTBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSkgMG1zO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi53ZWVrIHtcclxuICAgICAgZm9udC1zaXplOiA4MCU7XHJcbiAgICAgIGNvbG9yOiAjY2NjO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGQge1xyXG4gICAgbWFyZ2luOiAuMjVlbSAwO1xyXG4gICAgb3BhY2l0eTogLjg7XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMmVtO1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcclxuICAgIHRyYW5zaXRpb246IGFsbCA0NTBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSkgMG1zO1xyXG5cclxuICAgICYub2ZmIHtcclxuICAgICAgJiwgJi5pbi1yYW5nZSwgJi5zdGFydC1kYXRlLCAmLmVuZC1kYXRlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWQtZHJwcGlja2VyLXVuc2VsZWN0ZWQtYmctY29sb3I7XHJcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWQtZHJwcGlja2VyLXVuc2VsZWN0ZWQtYm9yZGVyLWNvbG9yO1xyXG4gICAgICAgIGNvbG9yOiAkbWQtZHJwcGlja2VyLXVuc2VsZWN0ZWQtY29sb3I7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vXHJcbiAgICAvLyBEYXRlIFJhbmdlXHJcbiAgICAmLmluLXJhbmdlIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1kLWRycHBpY2tlci1pbi1yYW5nZS1iZy1jb2xvcjtcclxuICAgICAgYm9yZGVyLWNvbG9yOiAkbWQtZHJwcGlja2VyLWluLXJhbmdlLWJvcmRlci1jb2xvcjtcclxuICAgICAgY29sb3I6ICRtZC1kcnBwaWNrZXItaW4tcmFuZ2UtY29sb3I7XHJcbiAgICAgIC8vIFRPRE86IFNob3VsZCB0aGlzIGJlIHN0YXRpYyBvciBzaG91bGQgaXQgYmUgcGFyYW1ldGVyaXplZD9cclxuICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgIH1cclxuXHJcbiAgICAmLnN0YXJ0LWRhdGUge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAyZW0gMCAwIDJlbTtcclxuICAgIH1cclxuXHJcbiAgICAmLmVuZC1kYXRlIHtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMCAyZW0gMmVtIDA7XHJcbiAgICB9XHJcblxyXG4gICAgJi5zdGFydC1kYXRlLmVuZC1kYXRlIHtcclxuICAgICAgYm9yZGVyLXJhZGl1czogJG1kLWRycHBpY2tlci1jZWxsLWJvcmRlci1yYWRpdXM7XHJcbiAgICB9XHJcblxyXG4gICAgJi5hY3RpdmUge1xyXG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDMwMG1zIGVhc2Utb3V0O1xyXG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcblxyXG4gICAgICAmLCAmOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWQtZHJwcGlja2VyLWFjdGl2ZS1iZy1jb2xvcjtcclxuICAgICAgICBib3JkZXItY29sb3I6ICRtZC1kcnBwaWNrZXItYWN0aXZlLWJvcmRlci1jb2xvcjtcclxuICAgICAgICBjb2xvcjogJG1kLWRycHBpY2tlci1hY3RpdmUtY29sb3I7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRoIHtcclxuICAgICYubW9udGgge1xyXG4gICAgICB3aWR0aDogYXV0bztcclxuICAgIH1cclxuICB9XHJcbiAgLy8gZGlzYWJsZWQgY29udHJvbHNcclxuICB0ZCwgb3B0aW9uIHtcclxuICAgICYuZGlzYWJsZWQge1xyXG4gICAgICBjb2xvcjogIzk5OTtcclxuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3Qge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNlbGVjdC1iYWNrZ3JvdW5kO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAkc2VsZWN0LXBhZGRpbmc7XHJcbiAgICBib3JkZXI6ICRzZWxlY3QtYm9yZGVyO1xyXG4gICAgYm9yZGVyLXJhZGl1czogJHNlbGVjdC1yYWRpdXM7XHJcbiAgICBoZWlnaHQ6ICRpbnB1dC1oZWlnaHQ7XHJcblxyXG4gICAgJi5tb250aHNlbGVjdCwgJi55ZWFyc2VsZWN0IHtcclxuICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICBwYWRkaW5nOiAxcHg7XHJcbiAgICAgIGhlaWdodDogYXV0bztcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgJi5ob3Vyc2VsZWN0LFxyXG4gICAgJi5taW51dGVzZWxlY3QsXHJcbiAgICAmLnNlY29uZHNlbGVjdCxcclxuICAgICYuYW1wbXNlbGVjdCB7XHJcbiAgICAgIHdpZHRoOiA1MHB4O1xyXG4gICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgYmFja2dyb3VuZDogI2VlZTtcclxuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcclxuICAgICAgcGFkZGluZzogMnB4O1xyXG4gICAgICBvdXRsaW5lOiAwO1xyXG4gICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICB9XHJcblxyXG4gICAgJi5tb250aHNlbGVjdCxcclxuICAgICYueWVhcnNlbGVjdCB7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIG1hcmdpbjogMDtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRoLm1vbnRoID4gZGl2IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB9XHJcblxyXG4gIC5jYWxlbmRhci10aW1lIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG1hcmdpbjogNHB4IGF1dG8gMCBhdXRvO1xyXG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgfVxyXG5cclxuICAuY2FsZW5kYXItdGltZSBzZWxlY3QuZGlzYWJsZWQge1xyXG4gICAgY29sb3I6ICNjY2M7XHJcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gIH1cclxuXHJcbiAgLmxhYmVsLWlucHV0IHtcclxuICAgIGJvcmRlcjogJG1kLWRycHBpY2tlci1jb250cm9sLWJvcmRlci1zaXplIHNvbGlkICRtZC1kcnBwaWNrZXItY29udHJvbC1ib3JkZXItY29sb3I7XHJcbiAgICBib3JkZXItcmFkaXVzOiAkbWQtZHJwcGlja2VyLWNvbnRyb2wtYm9yZGVyLXJhZGl1cztcclxuICAgIGNvbG9yOiAkbWQtZHJwcGlja2VyLWNvbnRyb2wtY29sb3I7XHJcbiAgICBoZWlnaHQ6ICRtZC1kcnBwaWNrZXItY29udHJvbC1saW5lLWhlaWdodDtcclxuICAgIGxpbmUtaGVpZ2h0OiAkbWQtZHJwcGlja2VyLWNvbnRyb2wtaGVpZ2h0O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgbWFyZ2luOiAwIGF1dG8gNXB4IGF1dG87XHJcbiAgICBwYWRkaW5nOiAwIDAgMCAyOHB4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcblxyXG4gICAgJi5hY3RpdmUge1xyXG4gICAgICBib3JkZXI6ICRtZC1kcnBwaWNrZXItY29udHJvbC1hY3RpdmUtYm9yZGVyLXNpemUgc29saWQgJG1kLWRycHBpY2tlci1jb250cm9sLWFjdGl2ZS1ib3JkZXItY29sb3I7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRtZC1kcnBwaWNrZXItY29udHJvbC1hY3RpdmUtYm9yZGVyLXJhZGl1cztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tZC1kcnBwaWNrZXJfaW5wdXQge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgcGFkZGluZzogMCAzMHB4IDAgMDtcclxuXHJcbiAgICBpLCBzdmcge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGxlZnQ6IDhweDtcclxuICAgICAgdG9wOiA4cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnJ0bCB7XHJcbiAgICAubGFiZWwtaW5wdXQge1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyOHB4O1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDZweDtcclxuICAgIH1cclxuXHJcbiAgICAubWQtZHJwcGlja2VyX2lucHV0IGksIC5tZC1kcnBwaWNrZXJfaW5wdXQgc3ZnIHtcclxuICAgICAgbGVmdDogYXV0bztcclxuICAgICAgcmlnaHQ6IDhweDtcclxuICAgIH1cclxuICB9XHJcbiAgLyogcmFuZ2VzICovXHJcbiAgLnNob3ctcmFuZ2VzIHtcclxuICAgIC5kcnAtY2FsZW5kYXIubGVmdCB7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RkZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5yYW5nZXMge1xyXG4gICAgZmxvYXQ6IG5vbmU7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgbWFyZ2luOiAwO1xyXG5cclxuICAgIHVsIHtcclxuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgbGkge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuXHJcbiAgICAgICAgYnV0dG9uIHtcclxuICAgICAgICAgIC8qcGFkZGluZzogOHB4IDEycHg7IC0gSU1QIGJldHdlZW4gbGVmdCBvcHRpb25zKi9cclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcclxuICAgICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzO1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmW2Rpc2FibGVkXSB7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuMztcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgbGk6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zaG93LWNhbGVuZGFyIHtcclxuICAgIC5yYW5nZXMge1xyXG4gICAgICBtYXJnaW4tdG9wOiA4cHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBbaGlkZGVuXSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICAvKiBidXR0b24gKi9cclxuICAuYnV0dG9ucyB7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgIG1hcmdpbjogMCA1cHggNXB4IDA7XHJcbiAgfVxyXG5cclxuICAuYnRuIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBib3JkZXItd2lkdGg6IDA7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgcGFkZGluZzogMHB4IDZweDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIC42KTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7XHJcbiAgICBjb2xvcjogI2VjZjBmMTtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjRzO1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xyXG4gICAgZm9udC1zaXplOjEycHg7Ly8gc2V0dGluZyBzaXplIG9mIGJ1dHRvbiAtIElNUFxyXG4gICAgYm9yZGVyOiBub25lO1xyXG5cclxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzOyAvLyMzZjUxYjUsIDIxOTY1M1xyXG4gICAgfVxyXG5cclxuICAgICYgPiAqIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgfVxyXG5cclxuICAgICYgc3BhbiB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBwYWRkaW5nOiAxMnB4IDI0cHg7XHJcbiAgICB9XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHRvcDogNTAlO1xyXG4gICAgICBsZWZ0OiA1MCU7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB3aWR0aDogMDtcclxuICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjM2LCAyNDAsIDI0MSwgLjMpO1xyXG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG4gICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG4gICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAgIH1cclxuXHJcbiAgICAmOmFjdGl2ZSB7XHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICB3aWR0aDogMTIwJTtcclxuICAgICAgICBwYWRkaW5nLXRvcDogMTIwJTtcclxuICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAuMnMgZWFzZS1vdXQsIHBhZGRpbmctdG9wIC4ycyBlYXNlLW91dDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICY6ZGlzYWJsZWQge1xyXG4gICAgICBvcGFjaXR5OiAwLjU7XHJcbiAgICB9XHJcblxyXG4gICAgJi5idG4tZGVmYXVsdCB7XHJcbiAgICAgIGNvbG9yOiBibGFjaztcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ2FpbnNib3JvO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmNsZWFyIHtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XHJcblxyXG4gICAgc3ZnIHtcclxuICAgICAgY29sb3I6ICNlYjMyMzI7XHJcbiAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiA1NjRweCkge1xyXG4gIC5tZC1kcnBwaWNrZXIge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcblxyXG4gICAgJi5zaW5nbGUge1xyXG4gICAgICAuY2FsZW5kYXIubGVmdCB7XHJcbiAgICAgICAgY2xlYXI6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmx0ciB7XHJcbiAgICAgIGRpcmVjdGlvbjogbHRyO1xyXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cclxuICAgICAgLmNhbGVuZGFyIHtcclxuICAgICAgICAmLmxlZnQge1xyXG4gICAgICAgICAgY2xlYXI6IGxlZnQ7XHJcbiAgICAgICAgICAvKm1hcmdpbi1yaWdodDogMS41ZW07Ki9cclxuICAgICAgICAgIC5jYWxlbmRhci10YWJsZSB7XHJcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XHJcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5yaWdodCB7XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuXHJcbiAgICAgICAgICAuY2FsZW5kYXItdGFibGUge1xyXG4gICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5sZWZ0IC5tZC1kcnBwaWNrZXJfaW5wdXQge1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDM1cHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5yaWdodCAubWQtZHJwcGlja2VyX2lucHV0IHtcclxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzNXB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuY2FsZW5kYXIubGVmdCAuY2FsZW5kYXItdGFibGUge1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5yYW5nZXMsIC5jYWxlbmRhciB7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLnJ0bCB7XHJcbiAgICAgIGRpcmVjdGlvbjogcnRsO1xyXG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuXHJcbiAgICAgIC5jYWxlbmRhciB7XHJcbiAgICAgICAgJi5sZWZ0IHtcclxuICAgICAgICAgIGNsZWFyOiByaWdodDtcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG5cclxuICAgICAgICAgIC5jYWxlbmRhci10YWJsZSB7XHJcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xyXG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5yaWdodCB7XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcblxyXG4gICAgICAgICAgLmNhbGVuZGFyLXRhYmxlIHtcclxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xyXG4gICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAubGVmdCAubWQtZHJwcGlja2VyX2lucHV0IHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5jYWxlbmRhci5sZWZ0IC5jYWxlbmRhci10YWJsZSB7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAucmFuZ2VzLCAuY2FsZW5kYXIge1xyXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmRycC1hbmltYXRlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDApO1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4ycyBlYXNlLCBvcGFjaXR5IC4ycyBlYXNlO1xyXG5cclxuICAgICYuZHJwLXBpY2tlci1zaXRlLXRoaXMge1xyXG4gICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xyXG4gICAgfVxyXG5cclxuICAgICYuZHJwLWFuaW1hdGUtcmlnaHQge1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAlKTtcclxuICAgICAgb3BhY2l0eTogMDtcclxuICAgIH1cclxuXHJcbiAgICAmLmRycC1hbmltYXRlLWxlZnQge1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwJSk7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogNzMwcHgpIHtcclxuICAubWQtZHJwcGlja2VyIHtcclxuICAgIC5yYW5nZXMge1xyXG4gICAgICB3aWR0aDogYXV0bztcclxuICAgIH1cclxuXHJcbiAgICAmLmx0ciB7XHJcbiAgICAgIC5yYW5nZXMge1xyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5ydGwge1xyXG4gICAgICAucmFuZ2VzIHtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY2FsZW5kYXIubGVmdCB7XHJcbiAgICAgIGNsZWFyOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8qXG4qICB2YXJpYWJsZXNcbiovXG4vKlxuKiBzdHlsZXNcbiovXG4ubWQtZHJwcGlja2VyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB3aWR0aDogMjc4cHg7XG4gIHBhZGRpbmc6IDRweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHotaW5kZXg6IDEwMDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgLyoxNHB4OyAtIGNhbGVuZGFyIHNpemUgLSBJTVAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3gtc2hhZG93OiAwIDJweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMTYpLCAwIDJweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAvKiByYW5nZXMgKi9cbiAgLyogYnV0dG9uICovXG59XG4ubWQtZHJwcGlja2VyLmRvdWJsZSB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLm1kLWRycHBpY2tlci5pbmxpbmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5tZC1kcnBwaWNrZXI6YmVmb3JlLCAubWQtZHJwcGlja2VyOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgY29udGVudDogXCJcIjtcbn1cbi5tZC1kcnBwaWNrZXIub3BlbnNjZW50ZXI6YmVmb3JlIHtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLm1kLWRycHBpY2tlci5vcGVuc2NlbnRlcjphZnRlciB7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi5tZC1kcnBwaWNrZXIuc2luZ2xlIC5yYW5nZXMsIC5tZC1kcnBwaWNrZXIuc2luZ2xlIC5jYWxlbmRhciB7XG4gIGZsb2F0OiBub25lO1xufVxuLm1kLWRycHBpY2tlci5zaG93biB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2UtaW4tb3V0O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5tZC1kcnBwaWNrZXIuc2hvd24uZHJvcHMtdXAtbGVmdCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbn1cbi5tZC1kcnBwaWNrZXIuc2hvd24uZHJvcHMtdXAtcmlnaHQge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7XG59XG4ubWQtZHJwcGlja2VyLnNob3duLmRyb3BzLWRvd24tbGVmdCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcbn1cbi5tZC1kcnBwaWNrZXIuc2hvd24uZHJvcHMtZG93bi1yaWdodCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbn1cbi5tZC1kcnBwaWNrZXIuc2hvd24uZHJvcHMtZG93bi1jZW50ZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBOYU4lO1xufVxuLm1kLWRycHBpY2tlci5zaG93bi5kcm9wcy11cC1jZW50ZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XG59XG4ubWQtZHJwcGlja2VyLnNob3duIC5jYWxlbmRhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLm1kLWRycHBpY2tlci5oaWRkZW4ge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLm1kLWRycHBpY2tlci5oaWRkZW4uZHJvcHMtdXAtbGVmdCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbn1cbi5tZC1kcnBwaWNrZXIuaGlkZGVuLmRyb3BzLXVwLXJpZ2h0IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAxMDAlO1xufVxuLm1kLWRycHBpY2tlci5oaWRkZW4uZHJvcHMtZG93bi1sZWZ0IHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xufVxuLm1kLWRycHBpY2tlci5oaWRkZW4uZHJvcHMtZG93bi1yaWdodCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbn1cbi5tZC1kcnBwaWNrZXIuaGlkZGVuLmRyb3BzLWRvd24tY2VudGVyIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogTmFOJTtcbn1cbi5tZC1kcnBwaWNrZXIuaGlkZGVuLmRyb3BzLXVwLWNlbnRlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJTtcbn1cbi5tZC1kcnBwaWNrZXIuaGlkZGVuIC5jYWxlbmRhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ubWQtZHJwcGlja2VyIC5jYWxlbmRhciB7XG4gIC8qIGRpc3BsYXk6IG5vbmU7ICovXG4gIG1heC13aWR0aDogMjcwcHg7XG4gIG1hcmdpbjogNHB4O1xufVxuLm1kLWRycHBpY2tlciAuY2FsZW5kYXIuc2luZ2xlIC5jYWxlbmRhci10YWJsZSB7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi5tZC1kcnBwaWNrZXIgLmNhbGVuZGFyIHRoLCAubWQtZHJwcGlja2VyIC5jYWxlbmRhciB0ZCB7XG4gIHBhZGRpbmc6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWluLXdpZHRoOiAzMnB4O1xufVxuLm1kLWRycHBpY2tlciAuY2FsZW5kYXIgdGggc3BhbiwgLm1kLWRycHBpY2tlciAuY2FsZW5kYXIgdGQgc3BhbiB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLm1kLWRycHBpY2tlciAuY2FsZW5kYXItdGFibGUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xuICBwYWRkaW5nOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5tZC1kcnBwaWNrZXIgdGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuLm1kLWRycHBpY2tlciB0aCB7XG4gIGNvbG9yOiAjOTg4YzhjO1xufVxuLm1kLWRycHBpY2tlciB0ZCwgLm1kLWRycHBpY2tlciB0aCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBoZWlnaHQ6IDJlbTtcbiAgd2lkdGg6IDJlbTtcbn1cbi5tZC1kcnBwaWNrZXIgdGQuYXZhaWxhYmxlLnByZXYsIC5tZC1kcnBwaWNrZXIgdGguYXZhaWxhYmxlLnByZXYge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCMlpYSnphVzl1UFNJeExqRWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRzFzYm5NNmVHeHBibXM5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR3hwYm1zaUlIZzlJakJ3ZUNJZ2VUMGlNSEI0SWcwS0NTQjJhV1YzUW05NFBTSXdJREFnTXk0M0lEWWlJR1Z1WVdKc1pTMWlZV05yWjNKdmRXNWtQU0p1WlhjZ01DQXdJRE11TnlBMklpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajROQ2p4blBnMEtDVHh3WVhSb0lHUTlJazB6TGpjc01DNDNUREV1TkN3emJESXVNeXd5TGpOTU15dzJUREFzTTJ3ekxUTk1NeTQzTERBdU4zb2lMejROQ2p3dlp6NE5Dand2YzNablBnMEtcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMC41ZW07XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgb3BhY2l0eTogMC44O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTtcbiAgYm9yZGVyLXJhZGl1czogMmVtO1xufVxuLm1kLWRycHBpY2tlciB0ZC5hdmFpbGFibGUucHJldjpob3ZlciwgLm1kLWRycHBpY2tlciB0aC5hdmFpbGFibGUucHJldjpob3ZlciB7XG4gIG1hcmdpbjogMDtcbn1cbi5tZC1kcnBwaWNrZXIgdGQuYXZhaWxhYmxlLm5leHQsIC5tZC1kcnBwaWNrZXIgdGguYXZhaWxhYmxlLm5leHQge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCMlpYSnphVzl1UFNJeExqRWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRzFzYm5NNmVHeHBibXM5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR3hwYm1zaUlIZzlJakJ3ZUNJZ2VUMGlNSEI0SWcwS0NTQjJhV1YzUW05NFBTSXdJREFnTXk0M0lEWWlJR1Z1WVdKc1pTMWlZV05yWjNKdmRXNWtQU0p1WlhjZ01DQXdJRE11TnlBMklpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajROQ2p4blBnMEtDVHh3WVhSb0lHUTlJazB6TGpjc01DNDNUREV1TkN3emJESXVNeXd5TGpOTU15dzJUREFzTTJ3ekxUTk1NeTQzTERBdU4zb2lMejROQ2p3dlp6NE5Dand2YzNablBnMEtcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMC41ZW07XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgb3BhY2l0eTogMC44O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTtcbiAgYm9yZGVyLXJhZGl1czogMmVtO1xufVxuLm1kLWRycHBpY2tlciB0ZC5hdmFpbGFibGUubmV4dDpob3ZlciwgLm1kLWRycHBpY2tlciB0aC5hdmFpbGFibGUubmV4dDpob3ZlciB7XG4gIG1hcmdpbjogMDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cbi5tZC1kcnBwaWNrZXIgdGQuYXZhaWxhYmxlOmhvdmVyLCAubWQtZHJwcGlja2VyIHRoLmF2YWlsYWJsZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDAuNWVtO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIG1hcmdpbjogMC4yNWVtIDA7XG4gIG9wYWNpdHk6IDAuODtcbiAgLyp0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlOyovXG4gIGJvcmRlci1yYWRpdXM6IDJlbTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNpdGlvbjogYWxsIDQ1MG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSAwbXM7XG59XG4ubWQtZHJwcGlja2VyIHRkLndlZWssIC5tZC1kcnBwaWNrZXIgdGgud2VlayB7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBjb2xvcjogI2NjYztcbn1cbi5tZC1kcnBwaWNrZXIgdGQge1xuICBtYXJnaW46IDAuMjVlbSAwO1xuICBvcGFjaXR5OiAwLjg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xuICBib3JkZXItcmFkaXVzOiAyZW07XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb246IGFsbCA0NTBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSkgMG1zO1xufVxuLm1kLWRycHBpY2tlciB0ZC5vZmYsIC5tZC1kcnBwaWNrZXIgdGQub2ZmLmluLXJhbmdlLCAubWQtZHJwcGlja2VyIHRkLm9mZi5zdGFydC1kYXRlLCAubWQtZHJwcGlja2VyIHRkLm9mZi5lbmQtZGF0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjOTk5O1xufVxuLm1kLWRycHBpY2tlciB0ZC5pbi1yYW5nZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZGUyZTQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjMDAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLm1kLWRycHBpY2tlciB0ZC5zdGFydC1kYXRlIHtcbiAgYm9yZGVyLXJhZGl1czogMmVtIDAgMCAyZW07XG59XG4ubWQtZHJwcGlja2VyIHRkLmVuZC1kYXRlIHtcbiAgYm9yZGVyLXJhZGl1czogMCAyZW0gMmVtIDA7XG59XG4ubWQtZHJwcGlja2VyIHRkLnN0YXJ0LWRhdGUuZW5kLWRhdGUge1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4ubWQtZHJwcGlja2VyIHRkLmFjdGl2ZSB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMzAwbXMgZWFzZS1vdXQ7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5tZC1kcnBwaWNrZXIgdGQuYWN0aXZlLCAubWQtZHJwcGlja2VyIHRkLmFjdGl2ZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZmZmO1xufVxuLm1kLWRycHBpY2tlciB0aC5tb250aCB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLm1kLWRycHBpY2tlciB0ZC5kaXNhYmxlZCwgLm1kLWRycHBpY2tlciBvcHRpb24uZGlzYWJsZWQge1xuICBjb2xvcjogIzk5OTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG59XG4ubWQtZHJwcGlja2VyIHNlbGVjdCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZjJmMmYyO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGhlaWdodDogM3JlbTtcbn1cbi5tZC1kcnBwaWNrZXIgc2VsZWN0Lm1vbnRoc2VsZWN0LCAubWQtZHJwcGlja2VyIHNlbGVjdC55ZWFyc2VsZWN0IHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nOiAxcHg7XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4ubWQtZHJwcGlja2VyIHNlbGVjdC5ob3Vyc2VsZWN0LCAubWQtZHJwcGlja2VyIHNlbGVjdC5taW51dGVzZWxlY3QsIC5tZC1kcnBwaWNrZXIgc2VsZWN0LnNlY29uZHNlbGVjdCwgLm1kLWRycHBpY2tlciBzZWxlY3QuYW1wbXNlbGVjdCB7XG4gIHdpZHRoOiA1MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgYmFja2dyb3VuZDogI2VlZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgcGFkZGluZzogMnB4O1xuICBvdXRsaW5lOiAwO1xuICBmb250LXNpemU6IDEycHg7XG59XG4ubWQtZHJwcGlja2VyIHNlbGVjdC5tb250aHNlbGVjdCwgLm1kLWRycHBpY2tlciBzZWxlY3QueWVhcnNlbGVjdCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbi5tZC1kcnBwaWNrZXIgdGgubW9udGggPiBkaXYge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5tZC1kcnBwaWNrZXIgLmNhbGVuZGFyLXRpbWUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogNHB4IGF1dG8gMCBhdXRvO1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm1kLWRycHBpY2tlciAuY2FsZW5kYXItdGltZSBzZWxlY3QuZGlzYWJsZWQge1xuICBjb2xvcjogI2NjYztcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbi5tZC1kcnBwaWNrZXIgLmxhYmVsLWlucHV0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjb2xvcjogIzU1NTtcbiAgaGVpZ2h0OiAzMHB4O1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogMCBhdXRvIDVweCBhdXRvO1xuICBwYWRkaW5nOiAwIDAgMCAyOHB4O1xuICB3aWR0aDogMTAwJTtcbn1cbi5tZC1kcnBwaWNrZXIgLmxhYmVsLWlucHV0LmFjdGl2ZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwOGM7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5tZC1kcnBwaWNrZXIgLm1kLWRycHBpY2tlcl9pbnB1dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMCAzMHB4IDAgMDtcbn1cbi5tZC1kcnBwaWNrZXIgLm1kLWRycHBpY2tlcl9pbnB1dCBpLCAubWQtZHJwcGlja2VyIC5tZC1kcnBwaWNrZXJfaW5wdXQgc3ZnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA4cHg7XG4gIHRvcDogOHB4O1xufVxuLm1kLWRycHBpY2tlci5ydGwgLmxhYmVsLWlucHV0IHtcbiAgcGFkZGluZy1yaWdodDogMjhweDtcbiAgcGFkZGluZy1sZWZ0OiA2cHg7XG59XG4ubWQtZHJwcGlja2VyLnJ0bCAubWQtZHJwcGlja2VyX2lucHV0IGksIC5tZC1kcnBwaWNrZXIucnRsIC5tZC1kcnBwaWNrZXJfaW5wdXQgc3ZnIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDhweDtcbn1cbi5tZC1kcnBwaWNrZXIgLnNob3ctcmFuZ2VzIC5kcnAtY2FsZW5kYXIubGVmdCB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RkZDtcbn1cbi5tZC1kcnBwaWNrZXIgLnJhbmdlcyB7XG4gIGZsb2F0OiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW46IDA7XG59XG4ubWQtZHJwcGlja2VyIC5yYW5nZXMgdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4ubWQtZHJwcGlja2VyIC5yYW5nZXMgdWwgbGkge1xuICBmb250LXNpemU6IDEycHg7XG59XG4ubWQtZHJwcGlja2VyIC5yYW5nZXMgdWwgbGkgYnV0dG9uIHtcbiAgLypwYWRkaW5nOiA4cHggMTJweDsgLSBJTVAgYmV0d2VlbiBsZWZ0IG9wdGlvbnMqL1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubWQtZHJwcGlja2VyIC5yYW5nZXMgdWwgbGkgYnV0dG9uLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7XG4gIGNvbG9yOiAjZmZmO1xufVxuLm1kLWRycHBpY2tlciAucmFuZ2VzIHVsIGxpIGJ1dHRvbltkaXNhYmxlZF0ge1xuICBvcGFjaXR5OiAwLjM7XG59XG4ubWQtZHJwcGlja2VyIC5yYW5nZXMgdWwgbGkgYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLm1kLWRycHBpY2tlciAucmFuZ2VzIHVsIGxpOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbn1cbi5tZC1kcnBwaWNrZXIgLnNob3ctY2FsZW5kYXIgLnJhbmdlcyB7XG4gIG1hcmdpbi10b3A6IDhweDtcbn1cbi5tZC1kcnBwaWNrZXIgW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLm1kLWRycHBpY2tlciAuYnV0dG9ucyB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXJnaW46IDAgNXB4IDVweCAwO1xufVxuLm1kLWRycHBpY2tlciAuYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItd2lkdGg6IDA7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBhZGRpbmc6IDBweCA2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzO1xuICBjb2xvcjogI2VjZjBmMTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjRzO1xuICBoZWlnaHQ6IGF1dG87XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi5tZC1kcnBwaWNrZXIgLmJ0bjpob3ZlciwgLm1kLWRycHBpY2tlciAuYnRuOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMztcbn1cbi5tZC1kcnBwaWNrZXIgLmJ0biA+ICoge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubWQtZHJwcGlja2VyIC5idG4gc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxMnB4IDI0cHg7XG59XG4ubWQtZHJwcGlja2VyIC5idG46YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzNiwgMjQwLCAyNDEsIDAuMyk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuLm1kLWRycHBpY2tlciAuYnRuOmFjdGl2ZTpiZWZvcmUge1xuICB3aWR0aDogMTIwJTtcbiAgcGFkZGluZy10b3A6IDEyMCU7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuMnMgZWFzZS1vdXQsIHBhZGRpbmctdG9wIDAuMnMgZWFzZS1vdXQ7XG59XG4ubWQtZHJwcGlja2VyIC5idG46ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG59XG4ubWQtZHJwcGlja2VyIC5idG4uYnRuLWRlZmF1bHQge1xuICBjb2xvcjogYmxhY2s7XG4gIGJhY2tncm91bmQtY29sb3I6IGdhaW5zYm9ybztcbn1cbi5tZC1kcnBwaWNrZXIgLmNsZWFyIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLm1kLWRycHBpY2tlciAuY2xlYXIgc3ZnIHtcbiAgY29sb3I6ICNlYjMyMzI7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU2NHB4KSB7XG4gIC5tZC1kcnBwaWNrZXIge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG4gIC5tZC1kcnBwaWNrZXIuc2luZ2xlIC5jYWxlbmRhci5sZWZ0IHtcbiAgICBjbGVhcjogbm9uZTtcbiAgfVxuICAubWQtZHJwcGlja2VyLmx0ciB7XG4gICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICAubWQtZHJwcGlja2VyLmx0ciAuY2FsZW5kYXIubGVmdCB7XG4gICAgY2xlYXI6IGxlZnQ7XG4gICAgLyptYXJnaW4tcmlnaHQ6IDEuNWVtOyovXG4gIH1cbiAgLm1kLWRycHBpY2tlci5sdHIgLmNhbGVuZGFyLmxlZnQgLmNhbGVuZGFyLXRhYmxlIHtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIH1cbiAgLm1kLWRycHBpY2tlci5sdHIgLmNhbGVuZGFyLnJpZ2h0IHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICAubWQtZHJwcGlja2VyLmx0ciAuY2FsZW5kYXIucmlnaHQgLmNhbGVuZGFyLXRhYmxlIHtcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIH1cbiAgLm1kLWRycHBpY2tlci5sdHIgLmxlZnQgLm1kLWRycHBpY2tlcl9pbnB1dCB7XG4gICAgcGFkZGluZy1yaWdodDogMzVweDtcbiAgfVxuICAubWQtZHJwcGlja2VyLmx0ciAucmlnaHQgLm1kLWRycHBpY2tlcl9pbnB1dCB7XG4gICAgcGFkZGluZy1yaWdodDogMzVweDtcbiAgfVxuICAubWQtZHJwcGlja2VyLmx0ciAuY2FsZW5kYXIubGVmdCAuY2FsZW5kYXItdGFibGUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XG4gIH1cbiAgLm1kLWRycHBpY2tlci5sdHIgLnJhbmdlcywgLm1kLWRycHBpY2tlci5sdHIgLmNhbGVuZGFyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubWQtZHJwcGlja2VyLnJ0bCB7XG4gICAgZGlyZWN0aW9uOiBydGw7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbiAgLm1kLWRycHBpY2tlci5ydGwgLmNhbGVuZGFyLmxlZnQge1xuICAgIGNsZWFyOiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICAubWQtZHJwcGlja2VyLnJ0bCAuY2FsZW5kYXIubGVmdCAuY2FsZW5kYXItdGFibGUge1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgfVxuICAubWQtZHJwcGlja2VyLnJ0bCAuY2FsZW5kYXIucmlnaHQge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuICAubWQtZHJwcGlja2VyLnJ0bCAuY2FsZW5kYXIucmlnaHQgLmNhbGVuZGFyLXRhYmxlIHtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIH1cbiAgLm1kLWRycHBpY2tlci5ydGwgLmxlZnQgLm1kLWRycHBpY2tlcl9pbnB1dCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICB9XG4gIC5tZC1kcnBwaWNrZXIucnRsIC5jYWxlbmRhci5sZWZ0IC5jYWxlbmRhci10YWJsZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICB9XG4gIC5tZC1kcnBwaWNrZXIucnRsIC5yYW5nZXMsIC5tZC1kcnBwaWNrZXIucnRsIC5jYWxlbmRhciB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG5cbiAgLmRycC1hbmltYXRlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZTtcbiAgfVxuICAuZHJwLWFuaW1hdGUuZHJwLXBpY2tlci1zaXRlLXRoaXMge1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIH1cbiAgLmRycC1hbmltYXRlLmRycC1hbmltYXRlLXJpZ2h0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAlKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIC5kcnAtYW5pbWF0ZS5kcnAtYW5pbWF0ZS1sZWZ0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwJSk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDczMHB4KSB7XG4gIC5tZC1kcnBwaWNrZXIgLnJhbmdlcyB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbiAgLm1kLWRycHBpY2tlci5sdHIgLnJhbmdlcyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLm1kLWRycHBpY2tlci5ydGwgLnJhbmdlcyB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG4gIC5tZC1kcnBwaWNrZXIgLmNhbGVuZGFyLmxlZnQge1xuICAgIGNsZWFyOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn0iXX0= */\"","import {\r\n Component, OnInit, ElementRef, ViewChild, EventEmitter, Output, Input, forwardRef, ViewEncapsulation, ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { FormControl } from '@angular/forms';\r\n\r\nimport * as _moment from 'moment';import { noUndefined } from '@angular/compiler/src/util';\r\n const moment = _moment;\r\n\r\nexport enum SideEnum {\r\n left = 'left',\r\n right = 'right'\r\n}\r\n\r\n@Component({\r\n selector: 'ngx-daterangepicker-material',\r\n styleUrls: ['./daterangepicker.component.scss'],\r\n templateUrl: './daterangepicker.component.html',\r\n host: {\r\n '(click)': 'handleInternalClick($event)',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DaterangepickerComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class DaterangepickerComponent implements OnInit {\r\n private _old: { start: any, end: any } = { start: null, end: null };\r\n chosenLabel: string;\r\n calendarVariables: { left: any, right: any } = { left: {}, right: {} };\r\n timepickerVariables: { left: any, right: any } = { left: {}, right: {} };\r\n daterangepicker: { start: FormControl, end: FormControl } = { start: new FormControl(), end: new FormControl() };\r\n applyBtn: { disabled: boolean } = { disabled: false };\r\n startDate = moment().startOf('day');\r\n endDate = moment().endOf('day');\r\n dateLimit = null;\r\n // used in template for compile time support of enum values.\r\n sideEnum = SideEnum;\r\n\r\n @Input()\r\n minDate: _moment.Moment = null;\r\n @Input()\r\n maxDate: _moment.Moment = null;\r\n @Input()\r\n autoApply: Boolean = false;\r\n @Input()\r\n singleDatePicker: Boolean = false;\r\n @Input()\r\n showDropdowns: Boolean = false;\r\n @Input()\r\n showWeekNumbers: Boolean = false;\r\n @Input()\r\n showISOWeekNumbers: Boolean = false;\r\n @Input()\r\n linkedCalendars: Boolean = false;\r\n @Input()\r\n autoUpdateInput: Boolean = true;\r\n @Input()\r\n alwaysShowCalendars: Boolean = false;\r\n @Input()\r\n maxSpan: Boolean = false;\r\n // timepicker variables\r\n @Input()\r\n timePicker: Boolean = false;\r\n @Input()\r\n timePicker24Hour: Boolean = false;\r\n @Input()\r\n timePickerIncrement: number = 1;\r\n @Input()\r\n timePickerSeconds: Boolean = false;\r\n // end of timepicker variables\r\n @Input()\r\n showClearButton: Boolean = false;\r\n @Input()\r\n firstMonthDayClass: string = null;\r\n @Input()\r\n lastMonthDayClass: string = null;\r\n @Input()\r\n emptyWeekRowClass: string = null;\r\n @Input()\r\n firstDayOfNextMonthClass: string = null;\r\n @Input()\r\n lastDayOfPreviousMonthClass: string = null;\r\n @Input()\r\n locale: any = {\r\n direction: 'ltr',\r\n separator: ' - ',\r\n weekLabel: 'W',\r\n applyLabel: 'Apply',\r\n cancelLabel: 'Cancel',\r\n customRangeLabel: 'Custom range',\r\n daysOfWeek: moment.weekdaysMin(),\r\n monthNames: moment.monthsShort(),\r\n firstDay: moment.localeData().firstDayOfWeek()\r\n };\r\n // custom ranges\r\n @Input()\r\n ranges: any = {};\r\n @Input()\r\n showCustomRangeLabel: boolean;\r\n @Input()\r\n showCancel: boolean = false;\r\n @Input()\r\n keepCalendarOpeningWithRange: boolean = false;\r\n @Input()\r\n showRangeLabelOnInput: boolean = false;\r\n chosenRange: string;\r\n rangesArray: Array = [];\r\n\r\n // some state information\r\n isShown: Boolean = true;\r\n inline: boolean = true;\r\n leftCalendar: any = {};\r\n rightCalendar: any = {};\r\n showCalInRanges: Boolean = false;\r\n\r\n options: any = {}; // should get some opt from user\r\n @Input() drops: string;\r\n @Input() opens: string;\r\n @Output('choosedDate') choosedDate: EventEmitter;\r\n @Output('rangeClicked') rangeClicked: EventEmitter;\r\n @Output('datesUpdated') datesUpdated: EventEmitter;\r\n @ViewChild('pickerContainer', { static: true }) pickerContainer: ElementRef;\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private _ref: ChangeDetectorRef\r\n ) {\r\n this.choosedDate = new EventEmitter();\r\n this.rangeClicked = new EventEmitter();\r\n this.datesUpdated = new EventEmitter();\r\n this.updateMonthsInView();\r\n }\r\n\r\n ngOnInit() {\r\n //if (this.locale.firstDay != 0) {\r\n // var iterator = this.locale.firstDay;\r\n // while (iterator > 0) {\r\n // this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift());\r\n // iterator--;\r\n // }\r\n //} - SUSHEEL for SUN to SAT\r\n if (this.inline) {\r\n this._old.start = this.startDate.clone();\r\n this._old.end = this.endDate.clone();\r\n }\r\n if (!this.locale.format) {\r\n if (this.timePicker) {\r\n this.locale.format = moment.localeData().longDateFormat('lll');\r\n } else {\r\n this.locale.format = moment.localeData().longDateFormat('L');\r\n }\r\n }\r\n this.renderCalendar(SideEnum.left);\r\n this.renderCalendar(SideEnum.right);\r\n this.renderRanges();\r\n }\r\n renderRanges() {\r\n let start, end;\r\n if (typeof this.ranges === 'object') {\r\n for (const range in this.ranges) {\r\n if (typeof this.ranges[range][0] === 'string') {\r\n start = moment(this.ranges[range][0], this.locale.format);\r\n } else {\r\n start = moment(this.ranges[range][0]);\r\n }\r\n\r\n if (typeof this.ranges[range][1] === 'string') {\r\n end = moment(this.ranges[range][1], this.locale.format);\r\n } else {\r\n end = moment(this.ranges[range][1]);\r\n }\r\n\r\n // If the start or end date exceed those allowed by the minDate or maxSpan\r\n // options, shorten the range to the allowable period.\r\n if (this.minDate && start.isBefore(this.minDate)) {\r\n start = this.minDate.clone();\r\n }\r\n\r\n var maxDate = this.maxDate;\r\n if (this.maxSpan && maxDate && start.clone().add(this.maxSpan).isAfter(maxDate)) {\r\n maxDate = start.clone().add(this.maxSpan);\r\n }\r\n if (maxDate && end.isAfter(maxDate)) {\r\n end = maxDate.clone();\r\n }\r\n\r\n // If the end of the range is before the minimum or the start of the range is\r\n // after the maximum, don't display this range option at all.\r\n if ((this.minDate && end.isBefore(this.minDate, this.timePicker ? 'minute' : 'day'))\r\n || (maxDate && start.isAfter(maxDate, this.timePicker ? 'minute' : 'day'))) {\r\n continue;\r\n }\r\n\r\n //Support unicode chars in the range names.\r\n var elem = document.createElement('textarea');\r\n elem.innerHTML = range;\r\n var rangeHtml = elem.value;\r\n\r\n this.ranges[rangeHtml] = [start, end];\r\n }\r\n for (const range in this.ranges) {\r\n this.rangesArray.push(range);\r\n }\r\n if (this.showCustomRangeLabel) {\r\n this.rangesArray.push(this.locale.customRangeLabel);\r\n }\r\n this.showCalInRanges = (!this.rangesArray.length) || this.alwaysShowCalendars;\r\n if (!this.timePicker) {\r\n this.startDate = this.startDate.startOf('day');\r\n this.endDate = this.endDate.endOf('day');\r\n }\r\n // can't be used together for now\r\n if (this.timePicker && this.autoApply) {\r\n this.autoApply = false;\r\n }\r\n }\r\n\r\n }\r\n renderTimePicker(side: SideEnum) {\r\n if (side == SideEnum.right && !this.endDate) {\r\n return;\r\n }\r\n let selected, minDate;\r\n let maxDate = this.maxDate\r\n if (side === SideEnum.left) {\r\n selected = this.startDate.clone(),\r\n minDate = this.minDate\r\n } else if (side === SideEnum.right) {\r\n selected = this.endDate.clone(),\r\n minDate = this.startDate\r\n }\r\n const start = this.timePicker24Hour ? 0 : 1;\r\n const end = this.timePicker24Hour ? 23 : 12;\r\n this.timepickerVariables[side] = {\r\n hours: [],\r\n minutes: [],\r\n minutesLabel: [],\r\n seconds: [],\r\n secondsLabel: [],\r\n disabledHours: [],\r\n disabledMinutes: [],\r\n disabledSeconds: [],\r\n selectedHour: 0,\r\n selectedMinute: 0,\r\n selectedSecond: 0,\r\n };\r\n // generate hours\r\n for (let i = start; i <= end; i++) {\r\n let i_in_24 = i;\r\n if (!this.timePicker24Hour) {\r\n i_in_24 = selected.hour() >= 12 ? (i == 12 ? 12 : i + 12) : (i == 12 ? 0 : i);\r\n }\r\n\r\n let time = selected.clone().hour(i_in_24);\r\n let disabled = false;\r\n if (minDate && time.minute(59).isBefore(minDate)) {\r\n disabled = true;\r\n }\r\n if (maxDate && time.minute(0).isAfter(maxDate)) {\r\n disabled = true;\r\n }\r\n\r\n this.timepickerVariables[side].hours.push(i);\r\n if (i_in_24 == selected.hour() && !disabled) {\r\n this.timepickerVariables[side].selectedHour = i;\r\n } else if (disabled) {\r\n this.timepickerVariables[side].disabledHours.push(i);\r\n }\r\n }\r\n // generate minutes\r\n for (var i = 0; i < 60; i += this.timePickerIncrement) {\r\n var padded = i < 10 ? '0' + i : i;\r\n var time = selected.clone().minute(i);\r\n\r\n var disabled = false;\r\n if (minDate && time.second(59).isBefore(minDate)) {\r\n disabled = true;\r\n }\r\n if (maxDate && time.second(0).isAfter(maxDate)) {\r\n disabled = true;\r\n }\r\n this.timepickerVariables[side].minutes.push(i);\r\n this.timepickerVariables[side].minutesLabel.push(padded);\r\n if (selected.minute() == i && !disabled) {\r\n this.timepickerVariables[side].selectedMinute = i;\r\n } else if (disabled) {\r\n this.timepickerVariables[side].disabledMinutes.push(i);\r\n }\r\n }\r\n // generate seconds\r\n if (this.timePickerSeconds) {\r\n for (var i = 0; i < 60; i++) {\r\n var padded = i < 10 ? '0' + i : i;\r\n var time = selected.clone().second(i);\r\n\r\n var disabled = false;\r\n if (minDate && time.isBefore(minDate)) {\r\n disabled = true;\r\n }\r\n if (maxDate && time.isAfter(maxDate)) {\r\n disabled = true;\r\n }\r\n\r\n this.timepickerVariables[side].seconds.push(i);\r\n this.timepickerVariables[side].secondsLabel.push(padded);\r\n if (selected.second() == i && !disabled) {\r\n this.timepickerVariables[side].selectedSecond = i;\r\n } else if (disabled) {\r\n this.timepickerVariables[side].disabledSeconds.push(i);\r\n }\r\n }\r\n }\r\n // generate AM/PM\r\n if (!this.timePicker24Hour) {\r\n\r\n var am_html = '';\r\n var pm_html = '';\r\n\r\n if (minDate && selected.clone().hour(12).minute(0).second(0).isBefore(minDate)) {\r\n this.timepickerVariables[side].amDisabled = true;\r\n }\r\n\r\n if (maxDate && selected.clone().hour(0).minute(0).second(0).isAfter(maxDate)) {\r\n this.timepickerVariables[side].pmDisabled = true;\r\n }\r\n if (selected.hour() >= 12) {\r\n this.timepickerVariables[side].ampmModel = 'PM';\r\n } else {\r\n this.timepickerVariables[side].ampmModel = 'AM';\r\n }\r\n }\r\n this.timepickerVariables[side].selected = selected;\r\n }\r\n renderCalendar(side: SideEnum) { // side enum\r\n let mainCalendar: any = (side === SideEnum.left) ? this.leftCalendar : this.rightCalendar;\r\n const month = mainCalendar.month.month();\r\n const year = mainCalendar.month.year();\r\n const hour = mainCalendar.month.hour();\r\n const minute = mainCalendar.month.minute();\r\n const second = mainCalendar.month.second();\r\n const daysInMonth = moment([year, month]).daysInMonth();\r\n const firstDay = moment([year, month, 1]);\r\n const lastDay = moment([year, month, daysInMonth]);\r\n const lastMonth = moment(firstDay).subtract(1, 'month').month();\r\n const lastYear = moment(firstDay).subtract(1, 'month').year();\r\n const daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth();\r\n const dayOfWeek = firstDay.day();\r\n // initialize a 6 rows x 7 columns array for the calendar\r\n let calendar: any = [];\r\n calendar.firstDay = firstDay;\r\n calendar.lastDay = lastDay;\r\n\r\n for (let i = 0; i < 6; i++) {\r\n calendar[i] = [];\r\n }\r\n\r\n // populate the calendar with date objects\r\n //console.log(dayOfWeek + \"::\" + this.locale.firstDay)\r\n let startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay;// + 1; - SUSHEEL for SUN to SAT\r\n if (startDay > daysInLastMonth) {\r\n startDay -= 7;//NO CHANGE - SUSHEEL for SUN to SAT\r\n }\r\n if (dayOfWeek === this.locale.firstDay) {\r\n startDay = daysInLastMonth - 7;// - 6; - SUSHEEL for SUN to SAT\r\n }\r\n //console.log(startDay)\r\n let curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]);\r\n\r\n for (let i = 0, col = 0, row = 0; i < 42; i++ , col++ , curDate = moment(curDate).add(24, 'hour')) {\r\n if (i > 0 && col % 7 === 0) {\r\n col = 0;\r\n row++;\r\n }\r\n calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second);\r\n curDate.hour(12);\r\n\r\n if (this.minDate && calendar[row][col].format('YYYY-MM-DD') === this.minDate.format('YYYY-MM-DD') &&\r\n calendar[row][col].isBefore(this.minDate) && side === 'left') {\r\n calendar[row][col] = this.minDate.clone();\r\n }\r\n\r\n if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') === this.maxDate.format('YYYY-MM-DD') &&\r\n calendar[row][col].isAfter(this.maxDate) && side === 'right') {\r\n calendar[row][col] = this.maxDate.clone();\r\n }\r\n }\r\n\r\n // make the calendar object available to hoverDate/clickDate\r\n if (side === SideEnum.left) {\r\n this.leftCalendar.calendar = calendar;\r\n } else {\r\n this.rightCalendar.calendar = calendar;\r\n }\r\n\r\n //\r\n // Display the calendar\r\n //\r\n const minDate = side === 'left' ? this.minDate : this.startDate;\r\n let maxDate = this.maxDate;\r\n const selected = side === 'left' ? this.startDate : this.endDate;\r\n this.calendarVariables[side] = {\r\n month: month,\r\n year: year,\r\n hour: hour,\r\n minute: minute,\r\n second: second,\r\n daysInMonth: daysInMonth,\r\n firstDay: firstDay,\r\n lastDay: lastDay,\r\n lastMonth: lastMonth,\r\n lastYear: lastYear,\r\n daysInLastMonth: daysInLastMonth,\r\n dayOfWeek: dayOfWeek,\r\n // other vars\r\n calRows: Array.from(Array(6).keys()),\r\n calCols: Array.from(Array(7).keys()),\r\n classes: {},\r\n minDate: minDate,\r\n maxDate: maxDate,\r\n calendar: calendar\r\n };\r\n\r\n if (this.showDropdowns) {\r\n const currentMonth = calendar[1][1].month();\r\n const currentYear = calendar[1][1].year();\r\n const maxYear = (maxDate && maxDate.year()) || (currentYear + 5);\r\n const minYear = (minDate && minDate.year()) || (currentYear - 50);\r\n const inMinYear = currentYear === minYear;\r\n const inMaxYear = currentYear === maxYear;\r\n const years = [];\r\n for (var y = minYear; y <= maxYear; y++) {\r\n years.push(y);\r\n }\r\n this.calendarVariables[side].dropdowns = {\r\n currentMonth: currentMonth,\r\n currentYear: currentYear,\r\n maxYear: maxYear,\r\n minYear: minYear,\r\n inMinYear: inMinYear,\r\n inMaxYear: inMaxYear,\r\n monthArrays: Array.from(Array(12).keys()),\r\n yearArrays: years\r\n };\r\n }\r\n\r\n // adjust maxDate to reflect the dateLimit setting in order to\r\n // grey out end dates beyond the dateLimit\r\n if (this.endDate === null && this.dateLimit) {\r\n const maxLimit = this.startDate.clone().add(this.dateLimit).endOf('day');\r\n if (!maxDate || maxLimit.isBefore(maxDate)) {\r\n maxDate = maxLimit;\r\n }\r\n }\r\n\r\n for (let row = 0; row < 6; row++) {\r\n this.calendarVariables[side].classes[row] = {};\r\n const rowClasses = [];\r\n if (this.emptyWeekRowClass && !this.hasCurrentMonthDays(month, calendar[row])) {\r\n rowClasses.push(this.emptyWeekRowClass);\r\n }\r\n for (let col = 0; col < 7; col++) {\r\n const classes = [];\r\n\r\n // highlight today's date\r\n if (calendar[row][col].isSame(new Date(), 'day')) {\r\n classes.push('today');\r\n }\r\n\r\n // highlight weekends\r\n if (calendar[row][col].isoWeekday() > 5) {\r\n classes.push('weekend');\r\n }\r\n\r\n // grey out the dates in other months displayed at beginning and end of this calendar\r\n if (calendar[row][col].month() !== calendar[1][1].month()) {\r\n classes.push('off');\r\n\r\n // mark the last day of the previous month in this calendar\r\n if (this.lastDayOfPreviousMonthClass && (calendar[row][col].month() < calendar[1][1].month() || calendar[1][1].month() === 0) && calendar[row][col].date() === daysInLastMonth) {\r\n classes.push(this.lastDayOfPreviousMonthClass);\r\n }\r\n\r\n // mark the first day of the next month in this calendar\r\n if (this.firstDayOfNextMonthClass && (calendar[row][col].month() > calendar[1][1].month() || calendar[row][col].month() === 0) && calendar[row][col].date() === 1) {\r\n classes.push(this.firstDayOfNextMonthClass);\r\n }\r\n }\r\n\r\n // mark the first day of the current month with a custom class\r\n if (this.firstMonthDayClass && calendar[row][col].month() === calendar[1][1].month() && calendar[row][col].date() === calendar.firstDay.date()) {\r\n classes.push(this.firstMonthDayClass);\r\n }\r\n\r\n // mark the last day of the current month with a custom class\r\n if (this.lastMonthDayClass && calendar[row][col].month() === calendar[1][1].month() && calendar[row][col].date() === calendar.lastDay.date()) {\r\n classes.push(this.lastMonthDayClass);\r\n }\r\n\r\n // don't allow selection of dates before the minimum date\r\n if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day')) {\r\n classes.push('off', 'disabled');\r\n }\r\n\r\n // don't allow selection of dates after the maximum date\r\n if (maxDate && calendar[row][col].isAfter(maxDate, 'day')) {\r\n classes.push('off', 'disabled');\r\n }\r\n\r\n // don't allow selection of date if a custom function decides it's invalid\r\n if (this.isInvalidDate(calendar[row][col])) {\r\n classes.push('off', 'disabled');\r\n }\r\n\r\n // highlight the currently selected start date\r\n if (this.startDate && calendar[row][col].format('YYYY-MM-DD') === this.startDate.format('YYYY-MM-DD')) {\r\n classes.push('active', 'start-date');\r\n }\r\n\r\n // highlight the currently selected end date\r\n if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') === this.endDate.format('YYYY-MM-DD')) {\r\n classes.push('active', 'end-date');\r\n }\r\n\r\n // highlight dates in-between the selected dates\r\n if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate) {\r\n classes.push('in-range');\r\n }\r\n\r\n // apply custom classes for this date\r\n const isCustom = this.isCustomDate(calendar[row][col]);\r\n if (isCustom !== false) {\r\n if (typeof isCustom === 'string') {\r\n classes.push(isCustom);\r\n } else {\r\n Array.prototype.push.apply(classes, isCustom);\r\n }\r\n }\r\n // store classes var\r\n let cname = '', disabled = false;\r\n for (let i = 0; i < classes.length; i++) {\r\n cname += classes[i] + ' ';\r\n if (classes[i] === 'disabled') {\r\n disabled = true;\r\n }\r\n }\r\n if (!disabled) {\r\n cname += 'available';\r\n }\r\n\r\n this.calendarVariables[side].classes[row][col] = cname.replace(/^\\s+|\\s+$/g, '');\r\n }\r\n\r\n this.calendarVariables[side].classes[row].classList = rowClasses.join(' ');\r\n }\r\n }\r\n setStartDate(startDate) {\r\n if (typeof startDate === 'string') {\r\n this.startDate = moment(startDate, this.locale.format);\r\n }\r\n\r\n if (typeof startDate === 'object') {\r\n this.startDate = moment(startDate);\r\n }\r\n if (!this.timePicker) {\r\n this.startDate = this.startDate.startOf('day');\r\n }\r\n\r\n if (this.timePicker && this.timePickerIncrement) {\r\n this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n }\r\n\r\n\r\n if (this.minDate && this.startDate.isBefore(this.minDate)) {\r\n this.startDate = this.minDate.clone();\r\n if (this.timePicker && this.timePickerIncrement) {\r\n this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n }\r\n\r\n }\r\n\r\n if (this.maxDate && this.startDate.isAfter(this.maxDate)) {\r\n this.startDate = this.maxDate.clone();\r\n if (this.timePicker && this.timePickerIncrement) {\r\n this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n }\r\n }\r\n\r\n if (!this.isShown) {\r\n this.updateElement();\r\n }\r\n\r\n this.updateMonthsInView();\r\n }\r\n\r\n setEndDate(endDate) {\r\n if (typeof endDate === 'string') {\r\n this.endDate = moment(endDate, this.locale.format);\r\n }\r\n\r\n if (typeof endDate === 'object') {\r\n this.endDate = moment(endDate);\r\n }\r\n if (!this.timePicker) {\r\n this.endDate = this.endDate.add(1, 'd').startOf('day').subtract(1, 'second');\r\n }\r\n\r\n if (this.timePicker && this.timePickerIncrement) {\r\n this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n }\r\n\r\n\r\n if (this.endDate.isBefore(this.startDate)) {\r\n this.endDate = this.startDate.clone();\r\n }\r\n\r\n if (this.maxDate && this.endDate.isAfter(this.maxDate)) {\r\n this.endDate = this.maxDate.clone();\r\n }\r\n\r\n if (this.dateLimit && this.startDate.clone().add(this.dateLimit).isBefore(this.endDate)) {\r\n this.endDate = this.startDate.clone().add(this.dateLimit);\r\n }\r\n\r\n\r\n if (!this.isShown) {\r\n // this.updateElement();\r\n }\r\n this.updateMonthsInView();\r\n if (this.autoApply) {\r\n this.datesUpdated.emit({ startDate: this.startDate, endDate: this.endDate });\r\n }\r\n }\r\n @Input()\r\n isInvalidDate(date) {\r\n return false;\r\n }\r\n\r\n isCustomDate(date) {\r\n return false;\r\n }\r\n\r\n updateView() {\r\n if (this.timePicker) {\r\n this.renderTimePicker(SideEnum.left);\r\n this.renderTimePicker(SideEnum.right);\r\n }\r\n this.updateMonthsInView();\r\n this.updateCalendars();\r\n }\r\n\r\n updateMonthsInView() {\r\n if (this.endDate) {\r\n // if both dates are visible already, do nothing\r\n if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month &&\r\n ((this.startDate && this.leftCalendar && this.startDate.format('YYYY-MM') === this.leftCalendar.month.format('YYYY-MM')) ||\r\n (this.startDate && this.rightCalendar && this.startDate.format('YYYY-MM') === this.rightCalendar.month.format('YYYY-MM')))\r\n &&\r\n (this.endDate.format('YYYY-MM') === this.leftCalendar.month.format('YYYY-MM') ||\r\n this.endDate.format('YYYY-MM') === this.rightCalendar.month.format('YYYY-MM'))\r\n ) {\r\n return;\r\n }\r\n if (this.startDate) {\r\n this.leftCalendar.month = this.startDate.clone().date(2);\r\n if (!this.linkedCalendars && (this.endDate.month() !== this.startDate.month() ||\r\n this.endDate.year() !== this.startDate.year())) {\r\n this.rightCalendar.month = this.endDate.clone().date(2);\r\n } else {\r\n this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\r\n }\r\n }\r\n\r\n } else {\r\n if (this.leftCalendar.month.format('YYYY-MM') !== this.startDate.format('YYYY-MM') &&\r\n this.rightCalendar.month.format('YYYY-MM') !== this.startDate.format('YYYY-MM')) {\r\n this.leftCalendar.month = this.startDate.clone().date(2);\r\n this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\r\n }\r\n }\r\n if (this.maxDate && this.linkedCalendars && !this.singleDatePicker && this.rightCalendar.month > this.maxDate) {\r\n this.rightCalendar.month = this.maxDate.clone().date(2);\r\n this.leftCalendar.month = this.maxDate.clone().date(2).subtract(1, 'month');\r\n }\r\n }\r\n /**\r\n * This is responsible for updating the calendars\r\n */\r\n updateCalendars() {\r\n this.renderCalendar(SideEnum.left);\r\n this.renderCalendar(SideEnum.right);\r\n \r\n if (this.endDate === null) { return; }\r\n this.calculateChosenLabel();\r\n }\r\n updateElement() {\r\n if (!this.singleDatePicker && this.autoUpdateInput) {\r\n if (this.startDate && this.endDate) {\r\n // if we use ranges and should show range label on inpu\r\n if (this.rangesArray.length && this.showRangeLabelOnInput === true && this.chosenRange &&\r\n this.locale.customRangeLabel !== this.chosenRange) {\r\n this.chosenLabel = this.chosenRange;\r\n } else {\r\n if (this.chosenRange != \"Search Entire dBase\") {\r\n if (this.showCustomRangeLabel == undefined)\r\n this.chosenLabel = this.startDate.format(this.locale.format) +\r\n this.locale.separator + this.endDate.format(this.locale.format);\r\n else\r\n this.chosenLabel = this.chosenRange;//Set Custom range label on Input instead of selected date range - IMP\r\n }\r\n else\r\n this.chosenLabel = \"Search Entire dBase\";\r\n }\r\n //console.log(this.chosenLabel + \":\" + this.chosenRange)\r\n }\r\n } else if (this.autoUpdateInput) {\r\n this.chosenLabel = this.startDate.format(this.locale.format);\r\n }\r\n }\r\n\r\n remove() {\r\n this.isShown = false;\r\n }\r\n /**\r\n * this should calculate the label\r\n */\r\n calculateChosenLabel() {\r\n let customRange = true;\r\n let i = 0;\r\n if (this.rangesArray.length > 0) {\r\n for (const range in this.ranges) {\r\n if (this.timePicker) {\r\n var format = this.timePickerSeconds ? \"YYYY-MM-DD HH:mm:ss\" : \"YYYY-MM-DD HH:mm\";\r\n //ignore times when comparing dates if time picker seconds is not enabled\r\n if (this.startDate.format(format) == this.ranges[range][0].format(format) && this.endDate.format(format) == this.ranges[range][1].format(format)) {\r\n customRange = false;\r\n this.chosenRange = this.rangesArray[i];\r\n break;\r\n }\r\n } else {\r\n //ignore times when comparing dates if time picker is not enabled\r\n if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) {\r\n customRange = false;\r\n this.chosenRange = this.rangesArray[i];\r\n break;\r\n }\r\n }\r\n\r\n i++;\r\n }\r\n\r\n this.showCalInRanges = false;//Don't display calendar if it is not custom range selected on input - IMP\r\n //console.log(customRange + \"||\" + this.custRangeMonthPrevNext)//susheel\r\n if (customRange || this.custRangeMonthPrevNext) {\r\n\r\n if (this.showCustomRangeLabel) {\r\n //console.log(this.locale.customRangeLabel)\r\n this.chosenRange = this.locale.customRangeLabel;\r\n //this.chosenRange = \"Custom range\";\r\n } else {\r\n this.chosenRange = null;\r\n }\r\n // if custom label: show calenar\r\n this.showCalInRanges = true;\r\n }\r\n }\r\n\r\n this.updateElement();\r\n }\r\n\r\n applyClicked = false;\r\n clickApply(e?) {\r\n this.applyClicked = true;\r\n //debugger\r\n if (!this.isDateSelected)\r\n return false;\r\n //if (e !== undefined) {//Set Custom range label on Input instead of selected date range - IMP\r\n // if (this.showCustomRangeLabel)\r\n // this.chosenLabel = \"Custom Range\";\r\n //}\r\n if (!this.singleDatePicker && this.startDate && !this.endDate) {\r\n this.endDate = this.startDate.clone();\r\n this.calculateChosenLabel();\r\n }\r\n if (this.isInvalidDate && this.startDate && this.endDate) {\r\n // get if there are invalid date between range\r\n let d = this.startDate.clone();\r\n while (d.isBefore(this.endDate)) {\r\n if (this.isInvalidDate(d)) {\r\n this.endDate = d.subtract(1, 'days');\r\n this.calculateChosenLabel();\r\n break;\r\n }\r\n d.add(1, 'days');\r\n }\r\n }\r\n if (this.chosenLabel) {\r\n //console.log(this.chosenLabel)\r\n this.choosedDate.emit({ chosenLabel: this.chosenLabel, startDate: this.startDate, endDate: this.endDate });\r\n }\r\n\r\n this.datesUpdated.emit({ startDate: this.startDate, endDate: this.endDate });\r\n this.hide();\r\n }\r\n\r\n clickCancel(e) {\r\n this.startDate = this._old.start;\r\n this.endDate = this._old.end;\r\n if (this.inline) {\r\n this.updateView();\r\n }\r\n this.hide();\r\n }\r\n /**\r\n * called when month is changed\r\n * @param monthEvent get value in event.target.value\r\n * @param side left or right\r\n */\r\n monthChanged(monthEvent: any, side: SideEnum) {\r\n const year = this.calendarVariables[side].dropdowns.currentYear;\r\n const month = parseInt(monthEvent.target.value, 10);\r\n this.monthOrYearChanged(month, year, side);\r\n }\r\n /**\r\n * called when year is changed\r\n * @param yearEvent get value in event.target.value\r\n * @param side left or right\r\n */\r\n yearChanged(yearEvent: any, side: SideEnum) {\r\n const month = this.calendarVariables[side].dropdowns.currentMonth;\r\n const year = parseInt(yearEvent.target.value, 10);\r\n this.monthOrYearChanged(month, year, side);\r\n }\r\n /**\r\n * called when time is changed\r\n * @param timeEvent an event\r\n * @param side left or right\r\n */\r\n timeChanged(timeEvent: any, side: SideEnum) {\r\n\r\n var hour = parseInt(this.timepickerVariables[side].selectedHour, 10);\r\n var minute = parseInt(this.timepickerVariables[side].selectedMinute, 10);\r\n var second = this.timePickerSeconds ? parseInt(this.timepickerVariables[side].selectedSecond, 10) : 0;\r\n\r\n if (!this.timePicker24Hour) {\r\n var ampm = this.timepickerVariables[side].ampmModel;\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n\r\n if (side === SideEnum.left) {\r\n var start = this.startDate.clone();\r\n start.hour(hour);\r\n start.minute(minute);\r\n start.second(second);\r\n this.setStartDate(start);\r\n if (this.singleDatePicker) {\r\n this.endDate = this.startDate.clone();\r\n } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) {\r\n this.setEndDate(start.clone());\r\n }\r\n } else if (this.endDate) {\r\n var end = this.endDate.clone();\r\n end.hour(hour);\r\n end.minute(minute);\r\n end.second(second);\r\n this.setEndDate(end);\r\n }\r\n\r\n //update the calendars so all clickable dates reflect the new time component\r\n this.updateCalendars();\r\n\r\n //re-render the time pickers because changing one selection can affect what's enabled in another\r\n this.renderTimePicker(SideEnum.left);\r\n this.renderTimePicker(SideEnum.right);\r\n }\r\n /**\r\n * call when month or year changed\r\n * @param month month number 0 -11\r\n * @param year year eg: 1995\r\n * @param side left or right\r\n */\r\n isDateSelected = true;\r\n monthOrYearChanged(month: number, year: number, side: SideEnum) {\r\n this.isDateSelected = false;\r\n this.applyClicked = false;\r\n const isLeft = side === SideEnum.left;\r\n\r\n if (!isLeft) {\r\n if (year < this.startDate.year() || (year === this.startDate.year() && month < this.startDate.month())) {\r\n month = this.startDate.month();\r\n year = this.startDate.year();\r\n }\r\n }\r\n\r\n if (this.minDate) {\r\n if (year < this.minDate.year() || (year === this.minDate.year() && month < this.minDate.month())) {\r\n month = this.minDate.month();\r\n year = this.minDate.year();\r\n }\r\n }\r\n\r\n if (this.maxDate) {\r\n if (year > this.maxDate.year() || (year === this.maxDate.year() && month > this.maxDate.month())) {\r\n month = this.maxDate.month();\r\n year = this.maxDate.year();\r\n }\r\n }\r\n this.calendarVariables[side].dropdowns.currentYear = year;\r\n this.calendarVariables[side].dropdowns.currentMonth = month;\r\n if (isLeft) {\r\n this.leftCalendar.month.month(month).year(year);\r\n if (this.linkedCalendars) {\r\n this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month');\r\n }\r\n } else {\r\n this.rightCalendar.month.month(month).year(year);\r\n if (this.linkedCalendars) {\r\n this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month');\r\n }\r\n }\r\n\r\n this.custRangeMonthPrevNext = true;//IMP to show calender after any year or month selection in the dropdown\r\n this.updateCalendars();\r\n this.custRangeMonthPrevNext = false;\r\n }\r\n\r\n custRangeMonthPrevNext = false;\r\n /**\r\n * Click on previous month\r\n * @param side left or right calendar\r\n */\r\n clickPrev(side: SideEnum) {\r\n if (side === SideEnum.left) {\r\n this.leftCalendar.month.subtract(1, 'month');\r\n if (this.linkedCalendars) {\r\n this.rightCalendar.month.subtract(1, 'month');\r\n }\r\n } else {\r\n this.rightCalendar.month.subtract(1, 'month');\r\n }\r\n\r\n this.custRangeMonthPrevNext = true;\r\n this.updateCalendars();\r\n this.custRangeMonthPrevNext = false;\r\n }\r\n /**\r\n * Click on next month\r\n * @param side left or right calendar\r\n */\r\n clickNext(side: SideEnum) {\r\n if (side === SideEnum.left) {\r\n this.leftCalendar.month.add(1, 'month');\r\n } else {\r\n this.rightCalendar.month.add(1, 'month');\r\n if (this.linkedCalendars) {\r\n this.leftCalendar.month.add(1, 'month');\r\n }\r\n }\r\n\r\n this.custRangeMonthPrevNext = true;\r\n this.updateCalendars();\r\n this.custRangeMonthPrevNext = false;\r\n }\r\n /**\r\n * When selecting a date\r\n * @param e event: get value by e.target.value\r\n * @param side left or right\r\n * @param row row position of the current date clicked\r\n * @param col col position of the current date clicked\r\n */\r\n clickDate(e, side: SideEnum, row: number, col: number) {\r\n //debugger\r\n this.isDateSelected = true;\r\n if (e.target.tagName === 'TD') {\r\n if (!e.target.classList.contains('available')) {\r\n return;\r\n }\r\n } else if (e.target.tagName === 'SPAN') {\r\n if (!e.target.parentElement.classList.contains('available')) {\r\n return;\r\n }\r\n }\r\n if (this.rangesArray.length) {\r\n this.chosenRange = this.locale.customRangeLabel;\r\n }\r\n\r\n let date = side === SideEnum.left ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];\r\n\r\n if (this.endDate || date.isBefore(this.startDate, 'day')) { // picking start\r\n if (this.timePicker) {\r\n let hour = parseInt(this.timepickerVariables['left'].selectedHour, 10);\r\n if (!this.timePicker24Hour) {\r\n var ampm = this.timepickerVariables['left'].ampmModel;\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n var minute = parseInt(this.timepickerVariables['left'].selectedMinute, 10);\r\n var second = this.timePickerSeconds ? parseInt(this.timepickerVariables['left'].selectedSecond, 10) : 0;\r\n date = date.clone().hour(hour).minute(minute).second(second);\r\n }\r\n this.endDate = null;\r\n this.setStartDate(date.clone());\r\n } else if (!this.endDate && date.isBefore(this.startDate)) {\r\n // special case: clicking the same date for start/end,\r\n // but the time of the end date is before the start date\r\n this.setEndDate(this.startDate.clone());\r\n } else { // picking end\r\n if (this.timePicker) {\r\n var hour = parseInt(this.timepickerVariables['right'].selectedHour, 10);\r\n if (!this.timePicker24Hour) {\r\n var ampm = this.timepickerVariables['right'].ampmModel;\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n var minute = parseInt(this.timepickerVariables['right'].selectedMinute, 10);\r\n var second = this.timePickerSeconds ? parseInt(this.timepickerVariables['right'].selectedSecond, 10) : 0;\r\n date = date.clone().hour(hour).minute(minute).second(second);\r\n }\r\n this.setEndDate(date.clone());\r\n if (this.autoApply) {\r\n this.calculateChosenLabel();\r\n this.clickApply();\r\n }\r\n }\r\n\r\n if (this.singleDatePicker) {\r\n this.setEndDate(this.startDate);\r\n this.updateElement();\r\n if (this.autoApply) {\r\n this.clickApply();\r\n }\r\n }\r\n\r\n this.updateView();\r\n\r\n // This is to cancel the blur event handler if the mouse was in one of the inputs\r\n e.stopPropagation();\r\n\r\n }\r\n /**\r\n * Click on the custom range\r\n * @param e: Event\r\n * @param label\r\n */\r\n clickRange(e, label) {\r\n this.chosenRange = label;\r\n if (label == this.locale.customRangeLabel) {\r\n this.isShown = true; // show calendars\r\n this.showCalInRanges = true;\r\n } else {\r\n var dates = this.ranges[label];\r\n this.startDate = dates[0].clone();\r\n this.endDate = dates[1].clone();\r\n if (this.showRangeLabelOnInput && label !== this.locale.customRangeLabel) {\r\n this.chosenLabel = label;\r\n } else {\r\n this.calculateChosenLabel();\r\n }\r\n this.showCalInRanges = (!this.rangesArray.length) || this.alwaysShowCalendars;\r\n\r\n if (!this.timePicker) {\r\n this.startDate.startOf('day');\r\n this.endDate.endOf('day');\r\n }\r\n\r\n if (!this.alwaysShowCalendars) {\r\n this.isShown = false; // hide calendars\r\n }\r\n this.rangeClicked.emit({ label: label, dates: dates });\r\n if (!this.keepCalendarOpeningWithRange) {\r\n this.clickApply();\r\n } else {\r\n this.renderCalendar(SideEnum.left);\r\n this.renderCalendar(SideEnum.right);\r\n }\r\n\r\n }\r\n };\r\n\r\n\r\n\r\n show(e?) {\r\n //console.log('show')\r\n this.isDateSelected = true;\r\n if (this.isShown) { return; }\r\n this._old.start = this.startDate.clone();\r\n this._old.end = this.endDate.clone();\r\n this.isShown = true;\r\n this.updateView();\r\n }\r\n\r\n hide(e?) {\r\n if (!this.isShown) {\r\n return;\r\n }\r\n // incomplete date selection, revert to last values\r\n if (!this.endDate) {\r\n if (this._old.start) {\r\n this.startDate = this._old.start.clone();\r\n }\r\n if (this._old.end) {\r\n this.endDate = this._old.end.clone();\r\n }\r\n }\r\n\r\n // if a new date range was selected, invoke the user callback function\r\n if (!this.startDate.isSame(this._old.start) || !this.endDate.isSame(this._old.end)) {\r\n // this.callback(this.startDate, this.endDate, this.chosenLabel);\r\n }\r\n\r\n // if picker is attached to a text input, update it\r\n this.updateElement();\r\n this.isShown = false;\r\n this._ref.detectChanges();\r\n\r\n }\r\n\r\n /**\r\n * handle click on all element in the component, usefull for outside of click\r\n * @param e event\r\n */\r\n handleInternalClick(e) {\r\n e.stopPropagation()\r\n }\r\n /**\r\n * update the locale options\r\n * @param locale\r\n */\r\n updateLocale(locale) {\r\n for (const key in locale) {\r\n if (locale.hasOwnProperty(key)) {\r\n this.locale[key] = locale[key];\r\n }\r\n }\r\n }\r\n /**\r\n * clear the daterange picker\r\n */\r\n clear() {\r\n this.startDate = moment().startOf('day');\r\n this.endDate = moment().endOf('day');\r\n this.choosedDate.emit({ chosenLabel: '', startDate: null, endDate: null });\r\n this.datesUpdated.emit({ startDate: null, endDate: null });\r\n this.hide();\r\n }\r\n\r\n /**\r\n * Find out if the selected range should be disabled if it doesn't\r\n * fit into minDate and maxDate limitations.\r\n */\r\n disableRange(range) {\r\n if (range === this.locale.customRangeLabel) {\r\n return false;\r\n }\r\n const rangeMarkers = this.ranges[range];\r\n const areBothBefore = rangeMarkers.every(date => {\r\n if (!this.minDate) {\r\n return false;\r\n }\r\n return date.isBefore(this.minDate)\r\n });\r\n\r\n const areBothAfter = rangeMarkers.every(date => {\r\n if (!this.maxDate) {\r\n return false;\r\n }\r\n return date.isAfter(this.maxDate)\r\n });\r\n return (areBothBefore || areBothAfter);\r\n }\r\n\r\n /**\r\n * Find out if the current calendar row has current month days\r\n * (as opposed to consisting of only previous/next month days)\r\n */\r\n hasCurrentMonthDays(currentMonth, row) {\r\n for (let day = 0; day < 7; day++) {\r\n if (row[day].month() === currentMonth) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import {\r\n Directive,\r\n ViewContainerRef,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n HostListener,\r\n forwardRef,\r\n ChangeDetectorRef,\r\n OnInit,\r\n OnChanges,\r\n SimpleChanges,\r\n Input,\r\n DoCheck,\r\n KeyValueDiffer,\r\n KeyValueDiffers,\r\n Output,\r\n EventEmitter,\r\n Renderer2\r\n} from '@angular/core';\r\nimport { DaterangepickerComponent } from './daterangepicker.component';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport * as _moment from 'moment';\r\nimport { concat } from 'rxjs/operators';\r\nconst moment = _moment;\r\n\r\n@Directive({\r\n selector: 'input[ngxDaterangepickerMd]',\r\n host: {\r\n '(keyup.esc)': 'hide()',\r\n '(blur)': 'onBlur()',\r\n '(click)': 'open()'\r\n },\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DaterangepickerDirective), multi: true\r\n }\r\n ]\r\n})\r\nexport class DaterangepickerDirective implements OnInit, OnChanges, DoCheck {\r\n //numberOfClicks = 0;\r\n //@HostListener('click', ['$event.target']) onClick(inp) {\r\n // console.log(\"input\", inp, \"number of clicks:\", this.numberOfClicks++);\r\n // debugger\r\n // this.open();\r\n //}\r\n public picker: DaterangepickerComponent;\r\n private _onChange = Function.prototype;\r\n private _onTouched = Function.prototype;\r\n private _validatorChange = Function.prototype;\r\n private _value: any;\r\n private localeDiffer: KeyValueDiffer;\r\n @Input()\r\n minDate: _moment.Moment\r\n @Input()\r\n maxDate: _moment.Moment\r\n @Input()\r\n autoApply: boolean;\r\n @Input()\r\n alwaysShowCalendars: boolean;\r\n @Input()\r\n showCustomRangeLabel: boolean;\r\n @Input()\r\n linkedCalendars: boolean;\r\n @Input()\r\n singleDatePicker: boolean;\r\n @Input()\r\n showWeekNumbers: boolean;\r\n @Input()\r\n showISOWeekNumbers: boolean;\r\n @Input()\r\n showDropdowns: boolean;\r\n @Input()\r\n isInvalidDate: Function;\r\n @Input()\r\n isCustomDate: Function;\r\n @Input()\r\n showClearButton: boolean;\r\n @Input()\r\n ranges: any;\r\n @Input()\r\n opens: string;\r\n @Input()\r\n drops: string;\r\n firstMonthDayClass: string;\r\n @Input()\r\n lastMonthDayClass: string;\r\n @Input()\r\n emptyWeekRowClass: string;\r\n @Input()\r\n firstDayOfNextMonthClass: string;\r\n @Input()\r\n lastDayOfPreviousMonthClass: string;\r\n @Input()\r\n keepCalendarOpeningWithRange: boolean;\r\n @Input()\r\n showRangeLabelOnInput: boolean;\r\n @Input()\r\n showCancel: boolean = false;\r\n // timepicker variables\r\n @Input()\r\n timePicker: Boolean = false;\r\n @Input()\r\n timePicker24Hour: Boolean = false;\r\n @Input()\r\n timePickerIncrement: number = 1;\r\n @Input()\r\n timePickerSeconds: Boolean = false;\r\n _locale: any = {};\r\n @Input() set locale(value) {\r\n if (value !== null) {\r\n this._locale = value;\r\n }\r\n }\r\n get locale(): any {\r\n return this._locale;\r\n }\r\n @Input()\r\n private _endKey: string = 'endDate';\r\n private _startKey: string = 'startDate';\r\n @Input() set startKey(value) {\r\n if (value !== null) {\r\n this._startKey = value;\r\n } else {\r\n this._startKey = 'startDate';\r\n }\r\n };\r\n @Input() set endKey(value) {\r\n if (value !== null) {\r\n this._endKey = value;\r\n } else {\r\n this._endKey = 'endDate';\r\n }\r\n };\r\n notForChangesProperty: Array = [\r\n 'locale',\r\n 'endKey',\r\n 'startKey'\r\n ];\r\n\r\n get value() {\r\n return this._value || null;\r\n }\r\n set value(val) {\r\n this._value = val;\r\n this._onChange(val);\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n @Output('change') onChange: EventEmitter = new EventEmitter();\r\n @Output('rangeClicked') rangeClicked: EventEmitter = new EventEmitter();\r\n @Output('datesUpdated') datesUpdated: EventEmitter = new EventEmitter();\r\n constructor(\r\n public viewContainerRef: ViewContainerRef,\r\n public _changeDetectorRef: ChangeDetectorRef,\r\n private _componentFactoryResolver: ComponentFactoryResolver,\r\n private _el: ElementRef,\r\n private _renderer: Renderer2,\r\n private differs: KeyValueDiffers\r\n ) {\r\n this.drops = 'down';\r\n this.opens = 'right';\r\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(DaterangepickerComponent);\r\n viewContainerRef.clear();\r\n const componentRef = viewContainerRef.createComponent(componentFactory);\r\n this.picker = (componentRef.instance);\r\n this.picker.inline = false; // set inline to false for all directive usage\r\n }\r\n ngOnInit() {\r\n this.picker.rangeClicked.asObservable().subscribe((range: any) => {\r\n this.rangeClicked.emit(range);\r\n });\r\n this.picker.datesUpdated.asObservable().subscribe((range: any) => {\r\n this.datesUpdated.emit(range);\r\n });\r\n this.picker.choosedDate.asObservable().subscribe((change: any) => {\r\n if (change) {\r\n const value = {};\r\n value[this._startKey] = change.startDate;\r\n value[this._endKey] = change.endDate;\r\n this.value = value;\r\n this.onChange.emit(value);\r\n if (typeof change.chosenLabel === 'string') {\r\n this._el.nativeElement.value = change.chosenLabel;\r\n }\r\n }\r\n });\r\n this.picker.firstMonthDayClass = this.firstMonthDayClass;\r\n this.picker.lastMonthDayClass = this.lastMonthDayClass;\r\n this.picker.emptyWeekRowClass = this.emptyWeekRowClass;\r\n this.picker.firstDayOfNextMonthClass = this.firstDayOfNextMonthClass;\r\n this.picker.lastDayOfPreviousMonthClass = this.lastDayOfPreviousMonthClass;\r\n this.picker.drops = this.drops;\r\n this.picker.opens = this.opens;\r\n this.localeDiffer = this.differs.find(this.locale).create();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n for (let change in changes) {\r\n if (changes.hasOwnProperty(change)) {\r\n if (this.notForChangesProperty.indexOf(change) === -1) {\r\n this.picker[change] = changes[change].currentValue;\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngDoCheck() {\r\n if (this.localeDiffer) {\r\n const changes = this.localeDiffer.diff(this.locale);\r\n if (changes) {\r\n this.picker.updateLocale(this.locale);\r\n }\r\n }\r\n }\r\n\r\n onBlur() {\r\n this._onTouched();\r\n }\r\n\r\n onClicked() {\r\n //console.log('cal click')\r\n }\r\n\r\n open(event?: any) {\r\n //console.log(this.picker)\r\n this.picker.show(event);\r\n setTimeout(() => {\r\n this.setPosition();\r\n })\r\n }\r\n\r\n hide(e?) {\r\n this.picker.hide(e);\r\n }\r\n toggle(e?) {\r\n if (this.picker.isShown) {\r\n this.hide(e);\r\n } else {\r\n this.open(e);\r\n }\r\n }\r\n\r\n clear() {\r\n this.picker.clear();\r\n }\r\n\r\n writeValue(value) {\r\n this.value = value;\r\n this.setValue(value);\r\n }\r\n registerOnChange(fn) {\r\n this._onChange = fn;\r\n }\r\n registerOnTouched(fn) {\r\n this._onTouched = fn;\r\n }\r\n private setValue(val: any) {\r\n if (val) {\r\n if (val[this._startKey]) {\r\n this.picker.setStartDate(val[this._startKey])\r\n }\r\n if (val[this._endKey]) {\r\n this.picker.setEndDate(val[this._endKey])\r\n }\r\n this.picker.calculateChosenLabel();\r\n if (this.picker.chosenLabel) {\r\n this._el.nativeElement.value = this.picker.chosenLabel;\r\n }\r\n } else {\r\n this.picker.clear();\r\n }\r\n }\r\n /**\r\n * Set position of the calendar\r\n */\r\n setPosition() {\r\n let style;\r\n let containerTop;\r\n const container = this.picker.pickerContainer.nativeElement;\r\n const element = this._el.nativeElement;\r\n if (this.drops && this.drops == 'up') {\r\n containerTop = (element.offsetTop - container.clientHeight) + 'px';\r\n } else {\r\n containerTop = 'auto';\r\n }\r\n if (this.opens == 'left') {\r\n style = {\r\n top: containerTop,\r\n left: (element.offsetLeft - container.clientWidth + element.clientWidth) + 'px',\r\n right: 'auto'\r\n };\r\n } else if (this.opens == 'center') {\r\n style = {\r\n top: containerTop,\r\n left: (element.offsetLeft + element.clientWidth / 2\r\n - container.clientWidth / 2) + 'px',\r\n right: 'auto'\r\n };\r\n } else {\r\n style = {\r\n top: containerTop,\r\n left: element.offsetLeft + 'px',\r\n right: 'auto'\r\n }\r\n }\r\n if (style) {\r\n this._renderer.setStyle(container, 'top', style.top);\r\n this._renderer.setStyle(container, 'left', style.left);\r\n this._renderer.setStyle(container, 'right', style.right);\r\n }\r\n\r\n }\r\n /**\r\n * For click outside of the calendar's container\r\n * @param event event object\r\n * @param targetElement target element object\r\n */\r\n @HostListener('document:click', ['$event', '$event.target'])\r\n outsideClick(event, targetElement: HTMLElement): void {\r\n if (!targetElement) {\r\n return;\r\n }\r\n if (targetElement.classList.contains('ngx-daterangepicker-action')) {\r\n return;\r\n }\r\n const clickedInside = this._el.nativeElement.contains(targetElement);\r\n if (!clickedInside) {\r\n this.hide()\r\n }\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL2Rvd25sb2FkLWZpbGUvZG93bmxvYWQtZmlsZS5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\n//import { DownloadFileService } from '../../services/file-transfers/download-file.service';\r\nimport * as fileSaver from 'file-saver';\r\nimport { HttpResponse } from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'app-download-file',\r\n templateUrl: './download-file.component.html',\r\n styleUrls: ['./download-file.component.scss']\r\n})\r\nexport class DownloadFileComponent {\r\n\r\n title = 'Angular File Download';\r\n\r\n constructor() { }//(private downloadFileService: DownloadFileService) { }\r\n\r\n download() {\r\n //this.downloadFileService.downloadFile().subscribe(response => {\r\n // let blob:any = new Blob([response], { type: 'text/json; charset=utf-8' });//Expecetd file type and content type\r\n // const url= window.URL.createObjectURL(blob);\r\n // //window.open(url);\r\n // window.location.href = url;\r\n // //fileSaver.saveAs(blob, 'employees.json');\r\n //}), error => console.log('Error downloading the file'),\r\n // () => console.info('File downloaded successfully');\r\n }\r\n\r\n\r\n\r\n showPdfDocument() {\r\n let filename: string = 'document.pdf';\r\n //this.downloadFileService.getFile(filename).then((result: any) => {\r\n // this.showFile(result._body, filename);\r\n //});\r\n }\r\n\r\n private showFile(blob: any, filename: string) {\r\n // It is necessary to create a new blob object with mime-type \r\n // explicitly set otherwise only Chrome works like it should\r\n let newBlob = new Blob([blob], { type: \"application/pdf\" });\r\n\r\n // IE doesn't allow using a blob object directly as link href \r\n // instead it is necessary to use msSaveOrOpenBlob\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(newBlob);\r\n return;\r\n }\r\n\r\n // For other browsers: \r\n // Create a link pointing to the ObjectURL containing the blob.\r\n let data = window.URL.createObjectURL(newBlob);\r\n let link = document.createElement('a');\r\n link.href = data;\r\n link.download = filename;\r\n link.click();\r\n setTimeout(() => {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n }, 100);\r\n }\r\n\r\n}\r\n","module.exports = \".labelClass {\\n font-size: 12px;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n font-weight: bold;\\n top: 10px;\\n width: 100px;\\n}\\n\\n.inputClass {\\n width: 300px;\\n}\\n\\n.lineSpaceDiv {\\n height: 8px;\\n}\\n\\n* {\\n box-sizing: border-box;\\n}\\n\\nbody {\\n font-family: \\\"Lato\\\", sans-serif;\\n}\\n\\n/* Style the tab */\\n\\n.tab {\\n float: left;\\n border: 1px solid #ccc;\\n /*background-color: #f1f1f1;*/\\n background-color: white;\\n width: 30%;\\n height: 1420px;\\n}\\n\\n/* Style the buttons inside the tab */\\n\\n.tab button {\\n display: block;\\n background-color: inherit;\\n color: black;\\n padding: 18px 16px;\\n width: 100%;\\n border: none;\\n outline: none;\\n text-align: left;\\n cursor: pointer;\\n transition: 0.3s;\\n font-size: 15px;\\n border-radius: 10px;\\n}\\n\\n/* Change background color of buttons on hover */\\n\\n.tab button:hover {\\n /*background-color: #ddd;*/\\n background-color: #035A9E;\\n color: white;\\n font-weight: bolder;\\n}\\n\\n/* Create an active/current \\\"tab button\\\" class */\\n\\n.tab button.active {\\n /*background-color: #ccc;*/\\n background-color: #035A9E;\\n color: white;\\n font-weight: bolder;\\n}\\n\\n/* Style the tab content */\\n\\n.tabcontent {\\n float: left;\\n padding: 0px 12px;\\n border: 1px solid #ccc;\\n width: 70%;\\n border-left: none;\\n height: 1420px;\\n background-color: aliceblue;\\n color: darkblue;\\n}\\n\\n.tabcontentShow {\\n display: block;\\n}\\n\\n.tabcontentHide {\\n display: none;\\n}\\n\\n/*:host {*/\\n\\n:host(.custom-class) {\\n position: absolute;\\n top: -8%;\\n left: 1%;\\n right: 1%;\\n z-index: 1002;\\n border: 3px solid black;\\n height: 82%;\\n width: 98%;\\n overflow-y: scroll;\\n background: #fff;\\n padding: 20px;\\n border-radius: 5px;\\n /*position: fixed;*/\\n top: 50%;\\n left: 50%;\\n -ms-transform: translate(-50%, -58%);\\n transform: translate(-50%, -58%);\\n /*background-color: rgb(227, 232, 236);*/\\n}\\n\\n.closebuttoncss {\\n width: 100%;\\n position: absolute;\\n top: 0;\\n left: 0;\\n}\\n\\n/*start Accordion*/\\n\\n.custom-expansion-panel-header {\\n height: 40px !important;\\n /* Adjust the height according to your requirements */\\n}\\n\\n.active-header {\\n background-color: #9DC2E5 !important;\\n /*#2196F3 !important;*/\\n /* Change this to the desired active header color */\\n color: white !important;\\n /* Change this to the desired text color for the active header */\\n}\\n\\n/*End Accordion*/\\n\\n.overlayBackGround {\\n display: block;\\n position: fixed;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.2);\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvZXhwbG9yZS1vcHRpb25zL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9zcmNcXGFwcFxcc2hhcmVkXFxjb21wb25lbnRzXFxleHBsb3JlLW9wdGlvbnNcXGV4cGxvcmUtb3B0aW9ucy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvZXhwbG9yZS1vcHRpb25zL2V4cGxvcmUtb3B0aW9ucy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGVBQUE7RUFDQSxrREFBQTtFQUNBLGlCQUFBO0VBQ0EsU0FBQTtFQUNBLFlBQUE7QUNDRjs7QURFQTtFQUNFLFlBQUE7QUNDRjs7QURFQTtFQUNFLFdBQUE7QUNDRjs7QURFQTtFQUNFLHNCQUFBO0FDQ0Y7O0FERUE7RUFDRSwrQkFBQTtBQ0NGOztBREVBLGtCQUFBOztBQUNBO0VBQ0UsV0FBQTtFQUNBLHNCQUFBO0VBQ0EsNkJBQUE7RUFDQSx1QkFBQTtFQUNBLFVBQUE7RUFDQSxjQUFBO0FDQ0Y7O0FERUEscUNBQUE7O0FBQ0E7RUFDRSxjQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxtQkFBQTtBQ0NGOztBREVBLGdEQUFBOztBQUNBO0VBQ0UsMEJBQUE7RUFDQSx5QkFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtBQ0NGOztBREVBLGdEQUFBOztBQUNBO0VBQ0UsMEJBQUE7RUFDQSx5QkFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtBQ0NGOztBREVBLDBCQUFBOztBQUNBO0VBQ0UsV0FBQTtFQUNBLGlCQUFBO0VBQ0Esc0JBQUE7RUFDQSxVQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBO0VBQ0EsMkJBQUE7RUFDQSxlQUFBO0FDQ0Y7O0FERUE7RUFDRSxjQUFBO0FDQ0Y7O0FEQ0E7RUFDRSxhQUFBO0FDRUY7O0FERUEsVUFBQTs7QUFDQTtFQUNFLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsYUFBQTtFQUNBLHVCQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsYUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLG9DQUFBO01BQUEsZ0NBQUE7RUFDQSx3Q0FBQTtBQ0NGOztBREVBO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7QUNDRjs7QURFQSxrQkFBQTs7QUFFQTtFQUNFLHVCQUFBO0VBQXlCLHFEQUFBO0FDQzNCOztBREVBO0VBQ0Usb0NBQUE7RUFBc0Msc0JBQUE7RUFBd0IsbURBQUE7RUFDOUQsdUJBQUE7RUFBeUIsZ0VBQUE7QUNJM0I7O0FEREEsZ0JBQUE7O0FBRUE7RUFDRSxjQUFBO0VBQ0EsZUFBQTtFQUNBLE9BQUE7RUFDQSxNQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxvQ0FBQTtBQ0dGIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvZXhwbG9yZS1vcHRpb25zL2V4cGxvcmUtb3B0aW9ucy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5sYWJlbENsYXNzIHtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgdG9wOiAxMHB4O1xyXG4gIHdpZHRoOiAxMDBweDtcclxufVxyXG5cclxuLmlucHV0Q2xhc3Mge1xyXG4gIHdpZHRoOiAzMDBweDtcclxufVxyXG5cclxuLmxpbmVTcGFjZURpdiB7XHJcbiAgaGVpZ2h0OiA4cHg7XHJcbn1cclxuXHJcbioge1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3hcclxufVxyXG5cclxuYm9keSB7XHJcbiAgZm9udC1mYW1pbHk6IFwiTGF0b1wiLCBzYW5zLXNlcmlmO1xyXG59XHJcblxyXG4vKiBTdHlsZSB0aGUgdGFiICovXHJcbi50YWIge1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7ICBcclxuICAvKmJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7Ki9cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICB3aWR0aDogMzAlO1xyXG4gIGhlaWdodDogMTQyMHB4O1xyXG59XHJcblxyXG4vKiBTdHlsZSB0aGUgYnV0dG9ucyBpbnNpZGUgdGhlIHRhYiAqL1xyXG4udGFiIGJ1dHRvbiB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcclxuICBjb2xvcjogYmxhY2s7XHJcbiAgcGFkZGluZzogMThweCAxNnB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBvdXRsaW5lOiBub25lO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHRyYW5zaXRpb246IDAuM3M7XHJcbiAgZm9udC1zaXplOiAxNXB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbn1cclxuXHJcbi8qIENoYW5nZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIGJ1dHRvbnMgb24gaG92ZXIgKi9cclxuLnRhYiBidXR0b246aG92ZXIge1xyXG4gIC8qYmFja2dyb3VuZC1jb2xvcjogI2RkZDsqL1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMzVBOUU7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XHJcbn1cclxuXHJcbi8qIENyZWF0ZSBhbiBhY3RpdmUvY3VycmVudCBcInRhYiBidXR0b25cIiBjbGFzcyAqL1xyXG4udGFiIGJ1dHRvbi5hY3RpdmUge1xyXG4gIC8qYmFja2dyb3VuZC1jb2xvcjogI2NjYzsqL1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMzVBOUU7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGZvbnQtd2VpZ2h0OmJvbGRlcjtcclxufVxyXG5cclxuLyogU3R5bGUgdGhlIHRhYiBjb250ZW50ICovXHJcbi50YWJjb250ZW50IHtcclxuICBmbG9hdDogbGVmdDtcclxuICBwYWRkaW5nOiAwcHggMTJweDtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xyXG4gIHdpZHRoOiA3MCU7XHJcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XHJcbiAgaGVpZ2h0OiAxNDIwcHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjphbGljZWJsdWU7XHJcbiAgY29sb3I6ZGFya2JsdWU7XHJcbn1cclxuXHJcbi50YWJjb250ZW50U2hvd3tcclxuICBkaXNwbGF5OmJsb2NrO1xyXG59XHJcbi50YWJjb250ZW50SGlkZSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuXHJcbi8qOmhvc3QgeyovXHJcbjpob3N0KC5jdXN0b20tY2xhc3MpIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAtOCU7XHJcbiAgbGVmdDogMSU7XHJcbiAgcmlnaHQ6IDElO1xyXG4gIHotaW5kZXg6IDEwMDI7XHJcbiAgYm9yZGVyOiAzcHggc29saWQgYmxhY2s7XHJcbiAgaGVpZ2h0OiA4MiU7XHJcbiAgd2lkdGg6IDk4JTtcclxuICBvdmVyZmxvdy15OiBzY3JvbGw7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjtcclxuICBwYWRkaW5nOiAyMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAvKnBvc2l0aW9uOiBmaXhlZDsqL1xyXG4gIHRvcDogNTAlO1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTglKTtcclxuICAvKmJhY2tncm91bmQtY29sb3I6IHJnYigyMjcsIDIzMiwgMjM2KTsqL1xyXG59XHJcblxyXG4uY2xvc2VidXR0b25jc3Mge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgbGVmdDogMDtcclxufVxyXG5cclxuLypzdGFydCBBY2NvcmRpb24qL1xyXG5cclxuLmN1c3RvbS1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcclxuICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDsgLyogQWRqdXN0IHRoZSBoZWlnaHQgYWNjb3JkaW5nIHRvIHlvdXIgcmVxdWlyZW1lbnRzICovXHJcbn1cclxuXHJcbi5hY3RpdmUtaGVhZGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOURDMkU1ICFpbXBvcnRhbnQ7IC8qIzIxOTZGMyAhaW1wb3J0YW50OyovIC8qIENoYW5nZSB0aGlzIHRvIHRoZSBkZXNpcmVkIGFjdGl2ZSBoZWFkZXIgY29sb3IgKi9cclxuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDsgLyogQ2hhbmdlIHRoaXMgdG8gdGhlIGRlc2lyZWQgdGV4dCBjb2xvciBmb3IgdGhlIGFjdGl2ZSBoZWFkZXIgKi9cclxufVxyXG5cclxuLypFbmQgQWNjb3JkaW9uKi9cclxuXHJcbi5vdmVybGF5QmFja0dyb3VuZCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIGxlZnQ6IDA7XHJcbiAgdG9wOiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMik7XHJcbn1cclxuIiwiLmxhYmVsQ2xhc3Mge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdG9wOiAxMHB4O1xuICB3aWR0aDogMTAwcHg7XG59XG5cbi5pbnB1dENsYXNzIHtcbiAgd2lkdGg6IDMwMHB4O1xufVxuXG4ubGluZVNwYWNlRGl2IHtcbiAgaGVpZ2h0OiA4cHg7XG59XG5cbioge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IFwiTGF0b1wiLCBzYW5zLXNlcmlmO1xufVxuXG4vKiBTdHlsZSB0aGUgdGFiICovXG4udGFiIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIC8qYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTsqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgd2lkdGg6IDMwJTtcbiAgaGVpZ2h0OiAxNDIwcHg7XG59XG5cbi8qIFN0eWxlIHRoZSBidXR0b25zIGluc2lkZSB0aGUgdGFiICovXG4udGFiIGJ1dHRvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICBjb2xvcjogYmxhY2s7XG4gIHBhZGRpbmc6IDE4cHggMTZweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiAwLjNzO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG5cbi8qIENoYW5nZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIGJ1dHRvbnMgb24gaG92ZXIgKi9cbi50YWIgYnV0dG9uOmhvdmVyIHtcbiAgLypiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOyovXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMzVBOUU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyogQ3JlYXRlIGFuIGFjdGl2ZS9jdXJyZW50IFwidGFiIGJ1dHRvblwiIGNsYXNzICovXG4udGFiIGJ1dHRvbi5hY3RpdmUge1xuICAvKmJhY2tncm91bmQtY29sb3I6ICNjY2M7Ki9cbiAgYmFja2dyb3VuZC1jb2xvcjogIzAzNUE5RTtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKiBTdHlsZSB0aGUgdGFiIGNvbnRlbnQgKi9cbi50YWJjb250ZW50IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IDBweCAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICB3aWR0aDogNzAlO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgaGVpZ2h0OiAxNDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IGFsaWNlYmx1ZTtcbiAgY29sb3I6IGRhcmtibHVlO1xufVxuXG4udGFiY29udGVudFNob3cge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnRhYmNvbnRlbnRIaWRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyo6aG9zdCB7Ki9cbjpob3N0KC5jdXN0b20tY2xhc3MpIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC04JTtcbiAgbGVmdDogMSU7XG4gIHJpZ2h0OiAxJTtcbiAgei1pbmRleDogMTAwMjtcbiAgYm9yZGVyOiAzcHggc29saWQgYmxhY2s7XG4gIGhlaWdodDogODIlO1xuICB3aWR0aDogOTglO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgLypwb3NpdGlvbjogZml4ZWQ7Ki9cbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTU4JSk7XG4gIC8qYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNywgMjMyLCAyMzYpOyovXG59XG5cbi5jbG9zZWJ1dHRvbmNzcyB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cblxuLypzdGFydCBBY2NvcmRpb24qL1xuLmN1c3RvbS1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgaGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gIC8qIEFkanVzdCB0aGUgaGVpZ2h0IGFjY29yZGluZyB0byB5b3VyIHJlcXVpcmVtZW50cyAqL1xufVxuXG4uYWN0aXZlLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5REMyRTUgIWltcG9ydGFudDtcbiAgLyojMjE5NkYzICFpbXBvcnRhbnQ7Ki9cbiAgLyogQ2hhbmdlIHRoaXMgdG8gdGhlIGRlc2lyZWQgYWN0aXZlIGhlYWRlciBjb2xvciAqL1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgLyogQ2hhbmdlIHRoaXMgdG8gdGhlIGRlc2lyZWQgdGV4dCBjb2xvciBmb3IgdGhlIGFjdGl2ZSBoZWFkZXIgKi9cbn1cblxuLypFbmQgQWNjb3JkaW9uKi9cbi5vdmVybGF5QmFja0dyb3VuZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xufSJdfQ== */\"","import { Component, OnInit, Output, EventEmitter, ViewChild, Sanitizer, ElementRef, ChangeDetectorRef, Inject, AfterViewInit, Renderer2 } from '@angular/core';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { request } from 'http';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n//import { RequestMetadata, PagedResult } from '../../../../lib/ng-crud-table';\r\nimport { MatTableDataSource, fadeInContent } from '@angular/material';\r\nimport { DataSource } from '@angular/cdk/table';\r\nimport { MatDialog, MatDialogConfig, PageEvent, MatPaginator } from '@angular/material';\r\nimport { Row } from 'lib/ng-data-table';\r\nimport { SelectItem, Keys } from 'lib/common';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as moment from 'moment';\r\nimport { ConfirmDialogComponent } from 'src/app/shared/components/confirm-dialog/confirm-dialog.component';\r\nimport { NgSwitchCase, DOCUMENT } from '@angular/common';\r\nimport { validateBasis } from '@angular/flex-layout';\r\nimport { AppComponent } from 'src/app/app.component';\r\nimport { SystemSettingConfig } from 'src/app/shared/models/SystemSettingConfig';\r\nimport { SystemSettingsService } from 'src/app/shared/services/system-settings/system-settings.service';\r\nimport { transcode } from 'buffer';\r\n\r\n\r\n@Component({\r\n selector: 'app-explore-options',\r\n templateUrl: './explore-options.component.html',\r\n styleUrls: ['./explore-options.component.scss']\r\n})\r\nexport class ExploreOptionsComponent implements OnInit {\r\n\r\n title: string = \"ExpolreOptions\";\r\n staticScreen = true;\r\n @Output() childTitleEvent = new EventEmitter();\r\n baseUrl: string;\r\n //@Input() activePanel;\r\n isPanelActive_1: boolean = false;\r\n isPanelActive_2: boolean = false;\r\n isPanelActive_3: boolean = false;\r\n isPanelActive_4: boolean = false;\r\n isPanelActive_5: boolean = false;\r\n isPanelActive_6: boolean = false;\r\n isPanelActive_7: boolean = false;\r\n isPanelActive_8: boolean = false;\r\n isPanelActive_F1: boolean = false;\r\n isPanelActive_F2: boolean = false;\r\n imgSrc: string;\r\n imageDetails: any;\r\n showImageModal: boolean = false;\r\n modalWidth: number;\r\n modalHeight: number;\r\n constructor(private elementRef: ElementRef, private renderer: Renderer2, private el: ElementRef, private http: HttpClient, private cdr: ChangeDetectorRef, private logservice: SystemSettingsService, private dialog: MatDialog, @Inject(DOCUMENT) private _document: Document, private router: Router, private route: ActivatedRoute) {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n //this.router.navigate([{ outlets: { filterPopup: null, configPopup: null } }]);\r\n\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.renderer.addClass(this.el.nativeElement, 'custom-class');\r\n this.parentEvent();\r\n this.AddOverlayBackGround();\r\n }\r\n\r\n AddOverlayBackGround() {\r\n // Create overlay element\r\n const overlay = this.renderer.createElement('div');\r\n\r\n // Add overlay class and append to body\r\n this.renderer.addClass(overlay, 'overlayBackGround');\r\n this.renderer.appendChild(document.body, overlay);\r\n }\r\n\r\n parentEvent() {\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n\r\n close() {\r\n // Remove overlay element from body\r\n const overlay = document.querySelector('.overlayBackGround');\r\n if (overlay) {\r\n overlay.parentNode.removeChild(overlay);\r\n }\r\n\r\n\r\n this.router.navigate([{ outlets: { popupExploreOptions: null } }]); \r\n }\r\n\r\n\r\n openTab(tabID: string, tabContentID): void {\r\n debugger;\r\n ///// TO Remove all active class from left panel\r\n const divButtons = this.elementRef.nativeElement.querySelector('.tab');\r\n if (divButtons) {\r\n const buttons = divButtons.querySelectorAll('button');\r\n\r\n buttons.forEach((button: HTMLButtonElement) => {\r\n // Remove any existing class from each button\r\n button.classList.remove('active');\r\n });\r\n }\r\n ///// To hide all div content from right panel except the selected one\r\n const divTabContnet = this.elementRef.nativeElement.querySelector('.DivTabContent');\r\n if (divTabContnet) {\r\n const divList = divTabContnet.querySelectorAll('div');\r\n\r\n divList.forEach((div: HTMLDivElement) => {\r\n // Remove any existing class from each button\r\n div.classList.remove('tabcontentShow');\r\n div.classList.add('tabcontentHide');\r\n });\r\n }\r\n\r\n ////// To make specific button active from left panel and div visible from right panel\r\n const elementTab = this.elementRef.nativeElement.querySelector(`#${tabID}`);\r\n const elementTabContent = this.elementRef.nativeElement.querySelector(`#${tabContentID}`);\r\n if (elementTab) {\r\n elementTab.classList.add('active');\r\n elementTabContent.classList.remove('tabcontentHide');\r\n elementTabContent.classList.add('tabcontentShow');\r\n if (tabContentID == \"GoogleMapContent\" || tabContentID == \"CustomReportContent\" || tabContentID == \"FilterContent\" || tabContentID == \"ReportSchedulingContent\") {\r\n const innerDivList = elementTabContent.querySelectorAll('div');\r\n innerDivList.forEach((div: HTMLDivElement) => {\r\n // Remove any existing class from each button\r\n div.classList.remove('tabcontentHide');\r\n div.classList.add('tabcontentShow');\r\n });\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n OpenHelpPdf(targetPageNumber) {\r\n\r\n let pdfFilePath = '/Webviewer/assets/DowloadedScripts/WebViewer-UM.pdf?v=6.4.2'; //// '/Webviewer/assets/images/ITS/ITSHelp.pdf?v=6.4.2';\r\n\r\n const pdfViewerUrl = `${pdfFilePath}#page=${targetPageNumber}`; /// to open particular page number of pdf\r\n\r\n const windowFeatures = 'menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=yes,height = ' + screen.height * .66 + ',width=' + screen.width * .66;\r\n // Open the popup window\r\n //const popupWindow = window.open('', '_blank', 'top=0,left=0,height=100%,width=auto');\r\n const popupWindow = window.open('', '_blank', windowFeatures);\r\n\r\n popupWindow.document.open();\r\n popupWindow.document.write(`\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tWebviewer User Module\r\n\t\t\t\t\t\t\r\n \r\n \r\n \r\n `);\r\n ///// \r\n /// /// to open partiular page of pdf\r\n popupWindow.document.close();\r\n\r\n }\r\n\r\n // Toggle the active state when the panel is expanded or collapsed\r\n togglePanelState(panelName: string): void {\r\n \r\n if (panelName == \"panel1\") {\r\n this.isPanelActive_1 = !this.isPanelActive_1;\r\n }\r\n else if (panelName == \"panel2\") {\r\n this.isPanelActive_2 = !this.isPanelActive_2;\r\n }\r\n else if (panelName == \"panel3\") {\r\n this.isPanelActive_3 = !this.isPanelActive_3;\r\n }\r\n else if (panelName == \"panel4\") {\r\n this.isPanelActive_4 = !this.isPanelActive_4;\r\n }\r\n else if (panelName == \"crpanel1\") {\r\n this.isPanelActive_5 = !this.isPanelActive_5;\r\n }\r\n else if (panelName == \"crpanel2\") {\r\n this.isPanelActive_6 = !this.isPanelActive_6;\r\n }\r\n else if (panelName == \"crpanel3\") {\r\n this.isPanelActive_7 = !this.isPanelActive_7;\r\n }\r\n else if (panelName == \"crpanel4\") {\r\n this.isPanelActive_8 = !this.isPanelActive_8;\r\n }\r\n else if (panelName == \"FilterPanel1\") {\r\n this.isPanelActive_F1 = !this.isPanelActive_F1;\r\n }\r\n else if (panelName == \"FilterPanel2\") {\r\n this.isPanelActive_F2 = !this.isPanelActive_F2;\r\n }\r\n\r\n }\r\n\r\n onClick(event) {\r\n debugger;\r\n const imgElem = event.target;\r\n var target = event.target || event.srcElement || event.currentTarget;\r\n var srcAttr = target.attributes.src;\r\n this.imgSrc = srcAttr.nodeValue;\r\n this.modalWidth = event.target.naturalWidth;\r\n this.modalHeight = event.target.naturalHeight;\r\n\r\n this.showImageModal = true;\r\n this.imageDetails = this.imgSrc;\r\n\r\n }\r\n onCloseModal(event) {\r\n\r\n }\r\n\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL2V4cGxvcmUtb3B0aW9ucy9pbWFnZS1wb3B1cC1tb2RhbHMvaW1hZ2UtcG9wdXAtbW9kYWxzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, OnChanges, SimpleChanges, SimpleChange, Input, Output, ViewChild, ChangeDetectionStrategy, ChangeDetectorRef, EventEmitter, ViewEncapsulation, ElementRef, Renderer2 } from '@angular/core';\r\nimport { ModalComponent } from 'lib/modal/modal.component';\r\nimport { KeyValue } from '@angular/common';\r\nimport { Keys } from 'lib/common';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\n\r\n//// ['./criteria.component.scss', '../user-privileges.component.scss', '../../filters-tabs/search-criteria/search-criteria.component.scss',\r\n///'../../styles/input.css', '../../styles/buttons.css', '../../styles/mat-themes.scss']\r\n@Component({\r\n selector: 'app-image-popup-modals',\r\n templateUrl: './image-popup-modals.component.html',\r\n styleUrls: ['./image-popup-modals.component.scss']\r\n})\r\nexport class ImagePopupModalsComponent implements OnInit {\r\n\r\n imageUrl: any = \"\"; //\"..//Webviewer/assets/images/Help/ExplorOptions/Custom Reports/VoiceQualityTestHeader.jpg\";\r\n @Input() imageDetails: any;\r\n @Input() modalWidth: number;\r\n @Input() modalHeight: number;\r\n @ViewChild('childModal', { static: false }) childModal: ModalComponent;\r\n @Output() closeModal: EventEmitter = new EventEmitter();\r\n\r\n constructor(private cd: ChangeDetectorRef, private renderer: Renderer2, private el: ElementRef) { }\r\n\r\n ngOnInit() {\r\n debugger;\r\n // this.loadInitSelection();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n debugger;\r\n //recall on pinDetails changed from original config screen - IMP\r\n this.loadInitSelection();\r\n }\r\n\r\n open() {\r\n debugger;\r\n setTimeout(() => {\r\n this.childModal.show();\r\n }, 500);\r\n //this.childModal.show();\r\n this.cd.markForCheck();\r\n }\r\n\r\n loadInitSelection() {\r\n debugger;\r\n if (this.imageDetails !== undefined) {\r\n this.imageUrl = \"../\" + this.imageDetails;\r\n this.increaseOverlayHeight();\r\n }\r\n }\r\n\r\n onCloseModal() {\r\n //console.log(this.modelPinColor) \r\n let pinDetails = \"test\"; \r\n this.closeModal.emit(pinDetails);\r\n }\r\n\r\n onMouseDown(event: MouseEvent) {\r\n // Prevent default behavior of mouse down event\r\n event.preventDefault();\r\n }\r\n\r\n increaseOverlayHeight() {\r\n // Select the overlay div by its class or ID\r\n const overlayDiv = this.el.nativeElement.querySelector('.ui-modal-overlay');\r\n\r\n // Check if the overlay div exists\r\n if (overlayDiv) {\r\n // Increase the height of the overlay div\r\n this.renderer.setStyle(overlayDiv, 'height', '1500px'); // Example height\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \".div-filter-mat-form-field {\\n font-size: 12px;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n}\\n\\n/*https: //stackoverflow.com/questions/51096529/changing-border-color-in-mat-form-field - IMP*/\\n\\n/*host ng-deep resembles it only works for this html*/\\n\\n:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline {\\n background-color: #1153A3 !important;\\n /*#2196F3*/\\n /*padding-top: 5px;*/\\n}\\n\\n:host ::ng-deep mat-form-field.mat-form-field.mat-form-field-appearance-outline > div.mat-form-field-wrapper > div.mat-form-field-flex > div.mat-form-field-infix > span.mat-form-field-label-wrapper {\\n color: aliceblue;\\n font-size: 9px;\\n /*font-weight: bold;*/\\n}\\n\\n/* Font color */\\n\\ninput.mat-input-element {\\n color: black;\\n}\\n\\n/*https: //stackoverflow.com/questions/53907313/how-to-remove-the-outline-mat-form-filed-border-corner-radius - IMP\\nhttps: //stackoverflow.com/questions/52813506/angular-mat-select-text-color-doesnt-change*/\\n\\n:host ::ng-deep .mat-form-field-outline-start,\\n:host ::ng-deep .mat-form-field-outline-gap,\\n:host ::ng-deep .mat-form-field-outline-end {\\n background-color: white !important;\\n}\\n\\n:host ::ng-deep .mat-select {\\n color: black;\\n}\\n\\n/*https: //stackoverflow.com/questions/54760371/how-to-change-height-in-mat-form-field\\nhttps: //stackoverflow.com/questions/59977079/angular-8-change-height-in-mat-form-field-to-specific-pixel-number*/\\n\\n:host ::ng-deep .mat-form-field-flex > .mat-form-field-infix {\\n padding: 0.4em 0px !important;\\n}\\n\\n:host ::ng-deep .mat-form-field-label-wrapper {\\n top: -1.5em;\\n}\\n\\n:host ::ng-deep .mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label {\\n -ms-transform: translateY(-1.1em) scale(0.75);\\n transform: translateY(-1.1em) scale(0.75);\\n width: 133.33333%;\\n}\\n\\n.customLFButton1 {\\n height: 28px;\\n padding: 0 10px;\\n}\\n\\n.disabledDiv {\\n pointer-events: none;\\n}\\n\\n.errorClass {\\n border: 2px solid red;\\n}\\n\\n.mat-selected {\\n background: darkblue !important;\\n color: lightgray !important;\\n}\\n\\n/*background colr change after selcting option*/\\n\\n.mat-selecte-default {\\n background: darkblue !important;\\n color: lightgray !important;\\n}\\n\\n/*bold filtered options while typing*/\\n\\n.highlight {\\n font-weight: bold;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvbG9hZC1maWx0ZXIvRDpcXFNyY3dlYlxcVlMyMDE3IFByb2plY3RzXFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3L3NyY1xcYXBwXFxzaGFyZWRcXGNvbXBvbmVudHNcXGxvYWQtZmlsdGVyXFxsb2FkLWZpbHRlci5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvbG9hZC1maWx0ZXIvbG9hZC1maWx0ZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxlQUFBO0VBQ0Esa0RBQUE7RUFDQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSxtQkFBQTtNQUFBLGVBQUE7QUNDRjs7QURFQSw4RkFBQTs7QUFDQSxxREFBQTs7QUFDQTtFQUNFLG9DQUFBO0VBQXNDLFVBQUE7RUFDdEMsb0JBQUE7QUNFRjs7QURBQTtFQUNFLGdCQUFBO0VBQ0EsY0FBQTtFQUNBLHFCQUFBO0FDR0Y7O0FEQUEsZUFBQTs7QUFDQTtFQUNFLFlBQUE7QUNHRjs7QURBQTswRkFBQTs7QUFFQTs7O0VBR0Usa0NBQUE7QUNHRjs7QUREQTtFQUNFLFlBQUE7QUNJRjs7QUREQTtpSEFBQTs7QUFFQTtFQUNFLDZCQUFBO0FDSUY7O0FERkE7RUFDRSxXQUFBO0FDS0Y7O0FESEE7RUFDRSw2Q0FBQTtNQUFBLHlDQUFBO0VBQ0EsaUJBQUE7QUNNRjs7QURIQTtFQUNFLFlBQUE7RUFDQSxlQUFBO0FDTUY7O0FESEE7RUFDRSxvQkFBQTtBQ01GOztBREZBO0VBQ0UscUJBQUE7QUNLRjs7QUREQTtFQUNFLCtCQUFBO0VBQ0EsMkJBQUE7QUNJRjs7QURGQSwrQ0FBQTs7QUFDQTtFQUNFLCtCQUFBO0VBQ0EsMkJBQUE7QUNLRjs7QURGQSxxQ0FBQTs7QUFDQTtFQUNFLGlCQUFBO0FDS0YiLCJmaWxlIjoic3JjL2FwcC9zaGFyZWQvY29tcG9uZW50cy9sb2FkLWZpbHRlci9sb2FkLWZpbHRlci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5kaXYtZmlsdGVyLW1hdC1mb3JtLWZpZWxkIHtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbn1cclxuXHJcbi8qaHR0cHM6IC8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzUxMDk2NTI5L2NoYW5naW5nLWJvcmRlci1jb2xvci1pbi1tYXQtZm9ybS1maWVsZCAtIElNUCovXHJcbi8qaG9zdCBuZy1kZWVwIHJlc2VtYmxlcyBpdCBvbmx5IHdvcmtzIGZvciB0aGlzIGh0bWwqL1xyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzExNTNBMyAhaW1wb3J0YW50OyAvKiMyMTk2RjMqL1xyXG4gIC8qcGFkZGluZy10b3A6IDVweDsqL1xyXG59XHJcbjpob3N0IDo6bmctZGVlcCBtYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgPiBkaXYubWF0LWZvcm0tZmllbGQtd3JhcHBlciA+IGRpdi5tYXQtZm9ybS1maWVsZC1mbGV4ID4gZGl2Lm1hdC1mb3JtLWZpZWxkLWluZml4ID4gc3Bhbi5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcclxuICBjb2xvcjogYWxpY2VibHVlO1xyXG4gIGZvbnQtc2l6ZTogOXB4O1xyXG4gIC8qZm9udC13ZWlnaHQ6IGJvbGQ7Ki9cclxufVxyXG5cclxuLyogRm9udCBjb2xvciAqL1xyXG5pbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XHJcbiAgY29sb3I6IGJsYWNrO1xyXG59XHJcblxyXG4vKmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy81MzkwNzMxMy9ob3ctdG8tcmVtb3ZlLXRoZS1vdXRsaW5lLW1hdC1mb3JtLWZpbGVkLWJvcmRlci1jb3JuZXItcmFkaXVzIC0gSU1QXHJcbmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy81MjgxMzUwNi9hbmd1bGFyLW1hdC1zZWxlY3QtdGV4dC1jb2xvci1kb2VzbnQtY2hhbmdlKi9cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXN0YXJ0LFxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZ2FwLCAvKkZvciBhYm92ZSBtYXQtbGFiZWwgLSBJTVAqL1xyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZW5kIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG59XHJcbjpob3N0IDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XHJcbiAgY29sb3I6IGJsYWNrO1xyXG59XHJcblxyXG4vKmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy81NDc2MDM3MS9ob3ctdG8tY2hhbmdlLWhlaWdodC1pbi1tYXQtZm9ybS1maWVsZFxyXG5odHRwczogLy9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTk5NzcwNzkvYW5ndWxhci04LWNoYW5nZS1oZWlnaHQtaW4tbWF0LWZvcm0tZmllbGQtdG8tc3BlY2lmaWMtcGl4ZWwtbnVtYmVyKi9cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1mbGV4ID4gLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcclxuICBwYWRkaW5nOiAwLjRlbSAwcHggIWltcG9ydGFudDtcclxufVxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xyXG4gIHRvcDogLTEuNWVtO1xyXG59XHJcbjpob3N0IDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMWVtKSBzY2FsZSguNzUpO1xyXG4gIHdpZHRoOiAxMzMuMzMzMzMlO1xyXG59XHJcblxyXG4uY3VzdG9tTEZCdXR0b24xIHtcclxuICBoZWlnaHQ6IDI4cHg7XHJcbiAgcGFkZGluZzogMCAxMHB4O1xyXG59XHJcblxyXG4uZGlzYWJsZWREaXYge1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59XHJcblxyXG5cclxuLmVycm9yQ2xhc3Mge1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkIHJlZDtcclxufVxyXG5cclxuXHJcbi5tYXQtc2VsZWN0ZWQge1xyXG4gIGJhY2tncm91bmQ6IGRhcmtibHVlICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6IGxpZ2h0Z3JheSAhaW1wb3J0YW50O1xyXG59XHJcbi8qYmFja2dyb3VuZCBjb2xyIGNoYW5nZSBhZnRlciBzZWxjdGluZyBvcHRpb24qL1xyXG4ubWF0LXNlbGVjdGUtZGVmYXVsdCB7XHJcbiAgYmFja2dyb3VuZDogZGFya2JsdWUgIWltcG9ydGFudDtcclxuICBjb2xvcjogbGlnaHRncmF5ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi8qYm9sZCBmaWx0ZXJlZCBvcHRpb25zIHdoaWxlIHR5cGluZyovXHJcbi5oaWdobGlnaHQge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcbiIsIi5kaXYtZmlsdGVyLW1hdC1mb3JtLWZpZWxkIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4vKmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy81MTA5NjUyOS9jaGFuZ2luZy1ib3JkZXItY29sb3ItaW4tbWF0LWZvcm0tZmllbGQgLSBJTVAqL1xuLypob3N0IG5nLWRlZXAgcmVzZW1ibGVzIGl0IG9ubHkgd29ya3MgZm9yIHRoaXMgaHRtbCovXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMTUzQTMgIWltcG9ydGFudDtcbiAgLyojMjE5NkYzKi9cbiAgLypwYWRkaW5nLXRvcDogNXB4OyovXG59XG5cbjpob3N0IDo6bmctZGVlcCBtYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgPiBkaXYubWF0LWZvcm0tZmllbGQtd3JhcHBlciA+IGRpdi5tYXQtZm9ybS1maWVsZC1mbGV4ID4gZGl2Lm1hdC1mb3JtLWZpZWxkLWluZml4ID4gc3Bhbi5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgY29sb3I6IGFsaWNlYmx1ZTtcbiAgZm9udC1zaXplOiA5cHg7XG4gIC8qZm9udC13ZWlnaHQ6IGJvbGQ7Ki9cbn1cblxuLyogRm9udCBjb2xvciAqL1xuaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBjb2xvcjogYmxhY2s7XG59XG5cbi8qaHR0cHM6IC8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzUzOTA3MzEzL2hvdy10by1yZW1vdmUtdGhlLW91dGxpbmUtbWF0LWZvcm0tZmlsZWQtYm9yZGVyLWNvcm5lci1yYWRpdXMgLSBJTVBcbmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy81MjgxMzUwNi9hbmd1bGFyLW1hdC1zZWxlY3QtdGV4dC1jb2xvci1kb2VzbnQtY2hhbmdlKi9cbjpob3N0IDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydCxcbjpob3N0IDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1nYXAsXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbn1cblxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcbiAgY29sb3I6IGJsYWNrO1xufVxuXG4vKmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy81NDc2MDM3MS9ob3ctdG8tY2hhbmdlLWhlaWdodC1pbi1tYXQtZm9ybS1maWVsZFxuaHR0cHM6IC8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzU5OTc3MDc5L2FuZ3VsYXItOC1jaGFuZ2UtaGVpZ2h0LWluLW1hdC1mb3JtLWZpZWxkLXRvLXNwZWNpZmljLXBpeGVsLW51bWJlciovXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWZsZXggPiAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBwYWRkaW5nOiAwLjRlbSAwcHggIWltcG9ydGFudDtcbn1cblxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAtMS41ZW07XG59XG5cbjpob3N0IDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjFlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzMlO1xufVxuXG4uY3VzdG9tTEZCdXR0b24xIHtcbiAgaGVpZ2h0OiAyOHB4O1xuICBwYWRkaW5nOiAwIDEwcHg7XG59XG5cbi5kaXNhYmxlZERpdiB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZXJyb3JDbGFzcyB7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHJlZDtcbn1cblxuLm1hdC1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQ6IGRhcmtibHVlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBsaWdodGdyYXkgIWltcG9ydGFudDtcbn1cblxuLypiYWNrZ3JvdW5kIGNvbHIgY2hhbmdlIGFmdGVyIHNlbGN0aW5nIG9wdGlvbiovXG4ubWF0LXNlbGVjdGUtZGVmYXVsdCB7XG4gIGJhY2tncm91bmQ6IGRhcmtibHVlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBsaWdodGdyYXkgIWltcG9ydGFudDtcbn1cblxuLypib2xkIGZpbHRlcmVkIG9wdGlvbnMgd2hpbGUgdHlwaW5nKi9cbi5oaWdobGlnaHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn0iXX0= */\"","import { Component, OnInit, Input, Output, EventEmitter, AfterViewInit, ViewChildren, QueryList, OnDestroy, ViewChild } from '@angular/core';\r\nimport { MAINFILTER } from '../../models/MAINFILTER';\r\nimport { FiltersService } from '../../services/filters/filters.service';\r\nimport { CommonFilterService } from '../../services/common-filter/common-filter.service';\r\nimport { lastDateFunc, formatDate, formatDBTZDateToLocalDate } from 'lib/common/utils';\r\nimport * as moment from 'moment';\r\nimport { Router } from '@angular/router';\r\nimport { MatDialog, MatDialogConfig, MatAutocomplete, MatAutocompleteTrigger, PageEvent, MatPaginator } from '@angular/material';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-load-filter',\r\n templateUrl: './load-filter.component.html',\r\n styleUrls: ['./load-filter.component.scss']\r\n})\r\nexport class LoadFilterComponent implements OnInit, AfterViewInit, OnDestroy {\r\n //@Input() isFilters: boolean;\r\n FilterOFF: boolean = true;\r\n FilterOFFNum: number = 0;\r\n nonFilterScreens: boolean;\r\n dtPeriod1: any;\r\n dtPeriod2: any;\r\n filtersList = [];\r\n filterNamesObservable = [];\r\n selectedFilters: number = 0;\r\n modifiedFilters: number = 0;\r\n modelFilterName: string;\r\n constructorLoad = false;\r\n ismainFilterEnabled: boolean = true; //true;\r\n @Output() RefreshClicked = new EventEmitter();\r\n\r\n toHighlight: string = '';\r\n insertedOrNot = false;\r\n constructor(private service: FiltersService, private commonFilterService: CommonFilterService, private router: Router) {\r\n this.commonFilterService.nonFilterScreen$.subscribe(res => {\r\n if (this.inputLengthFilter == 0)\r\n this.wrongFilter = false;\r\n this.nonFilterScreens = res;\r\n });\r\n\r\n this.commonFilterService.componentMethodCalled$.subscribe(res => {\r\n debugger;\r\n if (this.inputLengthFilter == 0)\r\n this.wrongFilter = false;\r\n if (this.FilterOFF) {\r\n //this.selectedFilters = 0;\r\n //this.constructorLoad = true;\r\n this.onFilterChange(null, true);\r\n }\r\n else {\r\n debugger;\r\n this.triggerCollection.forEach((x, i) => {\r\n if (i == 0) {\r\n const selMatOption = x.autocomplete.options.toArray();\r\n if (selMatOption.length > 0) {\r\n let filterSel = selMatOption.find((o) => o.value.CriteriaName === this.filterSelName);\r\n if (filterSel)\r\n this.controlFilter.setValue(filterSel.value);\r\n }\r\n }\r\n });\r\n }\r\n });\r\n\r\n this.commonFilterService.componentFilterMethodCalled$.subscribe(res => {\r\n //this.insertedOrNot = false;\r\n debugger;\r\n if (res == 3) {\r\n\r\n this.onFilterOFFClicked();//selected filter deleted so filter load should be off and selected filter should be null or default value\r\n\r\n //this.clearInputTextFilter();\r\n //////alert(this.selectedFilters);\r\n debugger;\r\n\r\n this.FilterOFF = true;\r\n }\r\n\r\n if (this.inputLengthFilter == 0)\r\n this.wrongFilter = false;\r\n //this.selectedFilters = 0;\r\n //this.constructorLoad = true;\r\n if (res == 1 || res == 3)\r\n this.onFilterChange(null, false);\r\n else if (res == 2)\r\n this.onFilterChange(this.modifiedFilters, false);//modified, so selected the same fitler\r\n //else if (res == 3)\r\n // this.onFilterChange(null, true);\r\n\r\n if (res == 1)\r\n this.insertedOrNot = true;//created a new filter or a duplicate from selected filter, so refresh of main screen results avoided\r\n });\r\n }\r\n\r\n @ViewChildren(MatAutocompleteTrigger) triggerCollection: QueryList;\r\n @ViewChild('inputFilter', { static: false }) inputCtrl;\r\n\r\n controlFilter = new FormControl();\r\n\r\n @Input() myConfigNameFilter = \"null\";\r\n\r\n initFilter = false;\r\n ngOnInit() {\r\n\r\n if (this.myConfigNameFilter == \"\")\r\n this.myConfigNameFilter = \"null\";\r\n //////alert(5);\r\n\r\n if (!this.constructorLoad) {\r\n this.constructorLoad = false;\r\n this.selectedFilters = 0;\r\n this.onFilterChange(null, false);\r\n }\r\n\r\n this.controlFilter.valueChanges.subscribe(newValue => {\r\n this.filterNamesObservable = this._FilterName(newValue);\r\n })\r\n }\r\n ngOnDestroy() {\r\n setTimeout(() => {\r\n this.triggerCollection.forEach((x, i) => {\r\n x.closePanel();\r\n });\r\n }, 1000);\r\n }\r\n\r\n isLoading = false;\r\n interval;\r\n ngAfterViewInit() {\r\n\r\n if (this.myConfigNameFilter != \"null\") {\r\n this.isLoading = true;\r\n this.interval = setInterval(() => {\r\n this.triggerCollection.forEach((x, i) => {\r\n if (i == 0) {\r\n const selMatOption = x.autocomplete.options.toArray();\r\n if (selMatOption.length > 0) {\r\n let filterSel = selMatOption.find((o) => o.value.CriteriaName === this.myConfigNameFilter);\r\n if (filterSel)\r\n this.controlFilter.setValue(filterSel.value);\r\n clearInterval(this.interval);\r\n }\r\n }\r\n });\r\n }, 1000);\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n filterSelName = '';\r\n mainFilterCloseChk = false;\r\n onFilterChange(event, mainFilterClose, clearInput?): void {\r\n debugger;\r\n //if (this.FilterClose) {\r\n // this.FilterClose = false;\r\n // return;\r\n //}\r\n\r\n this.filterSelName = \"\";\r\n if (this.FilterOFF && event != null) {\r\n this.inputLengthFilter = 1;\r\n this.selectedFilters = parseInt(event);//IMP\r\n return;\r\n }\r\n //////alert(1);\r\n if (event == '-1') {//NEVER HAPPENS\r\n ////https://stackoverflow.com/questions/52936803/routing-a-page-using-material-select-and-routerlink-angular-6\r\n //this.router.navigateByUrl('/filters');\r\n\r\n //IMP\r\n this.router.navigate([{ outlets: { filterPopup: ['filters'], configPopup: null } }]);\r\n\r\n ///// when calling modify search set mainfilter to initial values\r\n this.commonFilterService.SetMainFilter(0);// set selected mainfilter id\r\n this.commonFilterService.SetMainFilterCriteriaName(''); //set mainfilter criterianame\r\n this.commonFilterService.setMFCustDT(\"\");\r\n this.commonFilterService.setMFTZON(0);\r\n\r\n if (!this.insertedOrNot)\r\n this.RefreshClicked.emit();\r\n }\r\n else {\r\n\r\n this.commonFilterService.SetMainFilterCustomDate(false); // set false by default\r\n this.commonFilterService.setMFCustDT(\"\");\r\n this.commonFilterService.setMFTZON(0);\r\n\r\n if (event == undefined || event == null) {//refresh ddl to latest list from db and reset all controls to default and fill ddl with filters\r\n this.getFilterConfig(0, '0', mainFilterClose);//this.getFilterConfig(0, '0');\r\n\r\n //this.selectedFilters = 0;\r\n\r\n if (this.selectedFilters != 0 && mainFilterClose == false && !this.FilterOFF) {\r\n this.SetCustomDatetime(this.selectedFilters);\r\n }\r\n //this.commonFilterService.setMFCustDT(\"\");\r\n //this.commonFilterService.SetMainFilter(0);// set selected mainfilter id\r\n //if (!this.insertedOrNot)\r\n //this.RefreshClicked.emit();\r\n }\r\n else if (event !== undefined && event !== null) {//selected filter loads resp. criteria into controls and display saved tables\r\n this.setLimitedOptions = true;\r\n this.filterNamesObservable = this.filtersList;\r\n this.commonFilterService.SetMainFilterMapRegion('');\r\n debugger;\r\n let selID = parseInt(event);\r\n this.commonFilterService.SetMainFilter(selID);// set selected mainfilter id\r\n if (selID > 0) {\r\n let filterSel = this.filtersList.find(m => m.ID == selID);\r\n if (filterSel) {\r\n this.filterSelName = filterSel.CriteriaName;\r\n this.inputLengthFilter = this.filterSelName.length;\r\n this.commonFilterService.SetMainFilterCriteriaName(this.filterSelName); ////set mainfilter criterianame\r\n if (filterSel.MapRegion != \"--Select Config--\" && filterSel.MapRegion != '')\r\n this.commonFilterService.SetMainFilterMapRegion(filterSel.MapRegion); ////set mainfilter criterianame\r\n }\r\n }\r\n else {\r\n this.commonFilterService.SetMainFilterCriteriaName(''); //set mainfilter criterianame\r\n this.commonFilterService.SetMainFilterMapRegion('');\r\n }\r\n\r\n //this.commonFilterService.mainFilterID.subscribe(res => {\r\n // //console.log(res)\r\n //});\r\n\r\n this.modifiedFilters = selID;\r\n\r\n /////below code is to check selected filter has custom datetime then set true/false accordinly elumalai\r\n if (selID > 0 && !this.FilterOFF) {\r\n let filterSelOff = this.filtersList.find(m => m.ID == selID);\r\n if (filterSelOff)\r\n this.filterSelName = filterSelOff.CriteriaName;\r\n this.SetCustomDatetime(selID);\r\n\r\n //let mainfilterCustDatetime = this.filtersList.find(m => m.ID == selID).CustDateTime;\r\n\r\n //if (mainfilterCustDatetime != \";\") {\r\n // this.commonFilterService.SetMainFilterCustomDate(true);// set true if selected mainfilter has customdate time\r\n\r\n // this.commonFilterService.setMFCustDT(mainfilterCustDatetime);\r\n // //this.commonFilterService.setDatesProperties(mainfilterCustDatetime.replace(';', '^'));///set in common filter control elumalai\r\n //}\r\n //else {\r\n\r\n // this.commonFilterService.setMFCustDT(\"\");\r\n\r\n //}\r\n\r\n ////////////////////////////\r\n //this.getFilterConfig(1, event);\r\n\r\n\r\n ////////// Set TimeZone\r\n //console.log(this.filtersList)\r\n //debugger;\r\n if (filterSelOff) {\r\n let isTimeZone = filterSelOff.Timezone;\r\n //console.log(isTimeZone)\r\n if (isTimeZone == 'False') {\r\n //this.GetTimeZoneDatePeriod(selID);\r\n this.commonFilterService.setMFTZON(0);\r\n this.commonFilterService.setDBAndBrowserHrsDiff(-500); ////if timezone is false then set default value as -500\r\n }\r\n else\r\n this.commonFilterService.setMFTZON(1);\r\n }\r\n }\r\n else {\r\n //////if maimfilter ddl is unselected then set datetime filter to previous selected custom date time if any\r\n\r\n let selectedTime: any;\r\n selectedTime = { startDate: moment(), endDate: moment() };\r\n let custDates = \"\";//selectedTime.startDate.format('MM/DD/YYYY HH:mm:ss') + ' - ' + selectedTime.endDate.format('MM/DD/YYYY HH:mm:ss');//this.dateStartInput.nativeElement.value;\r\n this.commonFilterService.TSBetween.subscribe(res => custDates = res);\r\n //console.log(custDates);\r\n if (custDates == \"\")\r\n custDates = selectedTime.startDate.format('MM/DD/YYYY HH:mm:ss') + '^' + selectedTime.endDate.format('MM/DD/YYYY HH:mm:ss');\r\n //this.commonFilterService.setDatesProperties(custDates);\r\n }\r\n\r\n if (this.myConfigNameFilter == \"null\" && clearInput)\r\n this.OpenAutoCompeleteDailogFilter(clearInput);\r\n\r\n if (!this.insertedOrNot)\r\n this.RefreshClicked.emit();\r\n }\r\n }\r\n\r\n if (this.insertedOrNot)\r\n this.insertedOrNot = false;//reset after modify filters screen closed for ddl item changes later\r\n\r\n }\r\n\r\n SetCustomDatetime(selID) {\r\n //////alert(2);\r\n if (selID > 0) {\r\n let filterSel = this.filtersList.find(m => m.ID == selID);\r\n if (filterSel) {\r\n let mainfilterCustDatetime = filterSel.CustDateTime;\r\n\r\n if (mainfilterCustDatetime != \";\") {\r\n let formateFromdt = formatDate(new Date(mainfilterCustDatetime.split(';')[0]));//, null, null);\r\n let formateTodt = formatDate(new Date(mainfilterCustDatetime.split(';')[1]));//, null, null);\r\n mainfilterCustDatetime = formateFromdt + ';' + formateTodt;\r\n\r\n this.commonFilterService.SetMainFilterCustomDate(true);// set true if selected mainfilter has customdate time\r\n\r\n this.commonFilterService.setMFCustDT(mainfilterCustDatetime);\r\n\r\n //this.commonFilterService.setDatesProperties(mainfilterCustDatetime.replace(';', '^'));\r\n }\r\n else {\r\n this.commonFilterService.SetMainFilterCustomDate(false);// set false if selected mainfilter doesnt has customdate time\r\n this.commonFilterService.setMFCustDT(\"\");\r\n }\r\n }\r\n else {\r\n this.commonFilterService.SetMainFilterCustomDate(false);// set false if selected mainfilter doesnt has customdate time\r\n this.commonFilterService.setMFCustDT(\"\");\r\n }\r\n\r\n ////////// Set TimeZone\r\n //let isTimeZone = this.filtersList.find(m => m.ID == selID).Timezone; \r\n //if (isTimeZone == 'False') {\r\n // this.GetTimeZoneDatePeriod(selID);\r\n //}\r\n\r\n }\r\n }\r\n\r\n getFilterConfig(type: number, FilterID: string, mainFilterClose: boolean) {\r\n ////alert(3);\r\n if (type == 0) {\r\n let filterNames = [];\r\n this.service.getConfigsList(type, FilterID).subscribe((res) => {\r\n //https://stackoverflow.com/questions/53275405/typeerror-data-foreach-is-not-a-function/53275463 - JSON.parse - IMP\r\n //const rows: any[] = JSON.parse(res) as any[] || [];\r\n let rows: any[] = JSON.parse(res) as any[] || [];\r\n debugger;\r\n ////////// check if user previlege configed any mainfilter or not\r\n if (sessionStorage.getItem('SystemSettings')) {\r\n this.ismainFilterEnabled = JSON.parse(sessionStorage.getItem('SystemSettings')).ismainFilterEnabled; /// commented by elumalai as ismainFilterEnabled is always true since this value(treu/false) is to check mainfilter is present in systemsettings or not.\r\n\r\n if (sessionStorage.getItem('SystemSettings') != null && JSON.parse(sessionStorage.getItem('SystemSettings')).mainFilterIDs != '') {\r\n let userConfigMainFilterIDs = JSON.parse(sessionStorage.getItem('SystemSettings')).mainFilterIDs.split(';');\r\n if (userConfigMainFilterIDs != null && userConfigMainFilterIDs.length > 0) {\r\n //rows = rows.filter(m => userConfigMainFilterIDs.includes(m.ID));\r\n let filteredRows = [];\r\n userConfigMainFilterIDs.forEach(item => {\r\n let itemRow = rows.filter(m => m.ID == item);\r\n filteredRows.push(itemRow[0]);\r\n });\r\n if (filteredRows.length > 0) {\r\n rows = filteredRows;\r\n }\r\n }\r\n }\r\n }\r\n ////////////////////\r\n\r\n rows.forEach(row => {\r\n filterNames.push({ ID: row.ID, CriteriaName: row.CriteriaName, CustDateTime: row.CustomDateTime, Timezone: row.Timezone, MapRegion: row.MapRegion });\r\n });\r\n // console.log('checkselectedFilters');\r\n // console.log(this.selectedFilters); \r\n this.filtersList = filterNames;\r\n debugger;\r\n ///////if selected mainfilter is deleted in modify filter page then clear textbox\r\n if (this.selectedFilters > 0) {\r\n let recordExists = this.filtersList.find(m => m.ID == this.selectedFilters);\r\n if (!recordExists || recordExists==undefined)\r\n this.clearInputTextFilter();\r\n }\r\n\r\n this.getListFilter();\r\n //console.log(this.filtersList)\r\n if (mainFilterClose) {\r\n this.mainFilterCloseChk = true;\r\n this.onFilterChange(this.selectedFilters, false);\r\n //this.controlFilter.setValue(this.inputCtrl.nativeElement.value);\r\n }\r\n });//0 - binds configs on top, 1 - selected config details by its ID, 2 - Saved and fetched details immediately\r\n }\r\n else if (type == 1) {\r\n //this.filterIDSelected = parseInt(FilterID);\r\n\r\n this.service.getConfigsList(type, FilterID).subscribe((res) => {\r\n const rows: MAINFILTER[] = JSON.parse(res) as MAINFILTER[] || [];\r\n //debugger;\r\n //console.log(rows)\r\n ////////// Set/ maintain custom date after main filter selection // below code will resolve issue \"cust date is set to some date and then mainfilter is selected then cust date is setback to current date..expected value is it should not change on mainfilter selection.\"\r\n //rows[0].CustomDateTime\r\n //this.commonFilterService.mainFilter_ContainsCustDate.subscribe(res => {\r\n // //// set value(true/false) if selected mainfilter has customdate time, so that custome date control is disabled accordingly\r\n // if (!res) {\r\n // let selectedTime: any;\r\n // selectedTime = { startDate: moment(), endDate: moment() };\r\n // let custDates = selectedTime.startDate.format('MM/DD/YYYY HH:mm:ss') + ' - ' + selectedTime.endDate.format('MM/DD/YYYY HH:mm:ss');//this.dateStartInput.nativeElement.value;\r\n // this.commonFilterService.TSBetween.subscribe(res => custDates = res);\r\n // this.commonFilterService.setMFCustDT(custDates.replace('^', ';'));\r\n // //////alert(custDates);\r\n // this.commonFilterService.setDatesProperties(custDates.replace(';', '^'));\r\n // }\r\n // else {\r\n\r\n // }\r\n //});\r\n rows.every(row => {\r\n //this.setConfigFromDB(row);\r\n return false;\r\n });\r\n });\r\n }\r\n\r\n }\r\n\r\n GetTimeZoneDatePeriod(mainFilterID) {\r\n //debugger;\r\n //////alert(4);\r\n let selectedTime: any;\r\n selectedTime = { startDate: moment(), endDate: moment() };\r\n\r\n let custDates = selectedTime.startDate.format('MM/DD/YYYY HH:mm:ss') + ' - ' + selectedTime.endDate.format('MM/DD/YYYY HH:mm:ss');//this.dateStartInput.nativeElement.value;\r\n //this.commonFilterService.TSBetween.subscribe(res => custDates = res);\r\n\r\n this.service.GetTimeZoneDatePeriod_Service(mainFilterID, custDates).subscribe((res) => {\r\n const rows = JSON.parse(res);\r\n\r\n //debugger;\r\n if (rows != \";\")\r\n this.commonFilterService.setMFCustDT(rows);\r\n else {\r\n // this.commonFilterService.TSBetween.subscribe(res => custDates = res);\r\n // this.commonFilterService.setMFCustDT(custDates.replace('^', ';'));\r\n //this.commonFilterService.setDatesProperties(custDates);\r\n //this.commonFilterService.setDates(custDates);\r\n //this.commonFilter.setCommonFilters(\"Custom range\");\r\n //this.commonFilter1.SetCustomDateTime();\r\n }\r\n //console.log(rows);\r\n });\r\n }\r\n\r\n wrongFilter = false;\r\n onFilterOFFClicked() {\r\n this.wrongFilter = false;\r\n this.FilterOFF = !this.FilterOFF;\r\n if (this.FilterOFF) {\r\n // this.ismainFilterEnabled = false;\r\n if (this.inputLengthFilter == 0) {\r\n this.triggerCollection.forEach((x, i) => {\r\n if (i == 0) {\r\n let firstSelectedOption = x.autocomplete.options.find(o => o.value.ID == this.selectedFilters);\r\n if (firstSelectedOption) {\r\n //this.FilterClose = true;\r\n this.controlFilter.setValue(\"\");\r\n firstSelectedOption.deselect();\r\n }\r\n }\r\n });\r\n }\r\n this.FilterOFF = !this.FilterOFF;\r\n this.onFilterChange(0, false);\r\n this.FilterOFF = !this.FilterOFF;\r\n }\r\n else {\r\n //this.ismainFilterEnabled = true;\r\n let filterSelID = this.filtersList.find(m => m.CriteriaName == this.inputCtrl.nativeElement.value);\r\n this.selectedFilters = 0;\r\n if (filterSelID)\r\n this.selectedFilters = filterSelID.ID;\r\n else {\r\n this.FilterOFF = !this.FilterOFF;\r\n this.wrongFilter = true;\r\n return;\r\n }\r\n this.onFilterChange(this.selectedFilters, false);\r\n }\r\n }\r\n\r\n\r\n displayFnFilter(selectItem: any): string {\r\n return selectItem && selectItem.CriteriaName && !selectItem.CriteriaName.includes('--Select Filter--') ? selectItem.CriteriaName : '';\r\n }\r\n\r\n _FilterName(value: any): any[] {\r\n let FilterNameValue = '';\r\n if (typeof value === \"string\") {\r\n this.toHighlight = value;\r\n FilterNameValue = value.toLowerCase();\r\n }\r\n else {\r\n this.toHighlight = value.CriteriaName;\r\n FilterNameValue = value.CriteriaName.toLowerCase();\r\n }\r\n\r\n return this.filtersList.filter(option => option.CriteriaName.toLowerCase().includes(FilterNameValue) || option.CriteriaName.includes('--Select Filter--'));\r\n }\r\n\r\n getListFilter() {\r\n this.filterNamesObservable = this.filtersList;\r\n\r\n if (this.myConfigNameFilter != \"null\" && this.initFilter)\r\n this.setConfigByNameFilter(this.myConfigNameFilter);\r\n }\r\n setConfigByNameFilter(name) {\r\n this.modelFilterName = name;\r\n //this.ResetPage();\r\n //console.log(this.modelFilterName)\r\n let FilterConfigName = this.modelFilterName.trim();\r\n //this.resetCritErrors();\r\n if (FilterConfigName.length == 0) {\r\n this.onFilterChange(null, false);\r\n return;\r\n }\r\n\r\n let found = this.filtersList.find(x => x.name == FilterConfigName);\r\n if (found) {\r\n let id = found.id;\r\n this.onFilterChange(id, false);\r\n }\r\n\r\n this.initFilter = false;\r\n }\r\n\r\n inputLengthFilter = 0;\r\n setLimitedOptions = true;\r\n onKeydownMainFilter($event) {\r\n this.wrongFilter = false;\r\n if (!this.setLimitedOptions) {\r\n this.setLimitedOptions = true;\r\n this.controlFilter.valueChanges.subscribe(newValue => {\r\n this.filterNamesObservable = this._FilterName(newValue);\r\n })\r\n }\r\n this.inputLengthFilter = $event.target.value.length;\r\n this.modelFilterName = $event.target.value;\r\n if (this.inputLengthFilter == 0 && this.FilterOFF) {\r\n this.triggerCollection.forEach((x, i) => {\r\n if (i == 0) {\r\n let firstSelectedOption = x.autocomplete.options.find(o => o.value.ID == this.selectedFilters);\r\n if (firstSelectedOption) {\r\n //this.FilterClose = true;\r\n this.controlFilter.setValue(\"\");\r\n firstSelectedOption.deselect();\r\n }\r\n }\r\n });\r\n }\r\n }\r\n clearInputTextFilter() {\r\n this.controlFilter.setValue(\"\");\r\n this.inputLengthFilter = 0;\r\n }\r\n clearInputFilter(auto: MatAutocomplete) {\r\n this.clearInputTextFilter();\r\n this.selectedFilters = 0;\r\n this.modelFilterName = \"\";\r\n //input.placeholder = '';\r\n //input.value = '';\r\n //auto.options.forEach(option => option.deselect());\r\n //auto.closePanel();\r\n this.onFilterChange(null, false, false);\r\n //if (this.myConfigNameFilter != \"null\") {\r\n // this.triggerCollection.forEach((x, i) => {\r\n // if (i == 0)\r\n // setTimeout(() => x.openPanel());\r\n // });\r\n //}\r\n }\r\n\r\n openOrCloseFilter = false;\r\n //FilterClose = false;\r\n OpenAutoCompeleteDailogFilter(init?, closed?) {\r\n //const input = document.getElementById('message') as HTMLInputElement;\r\n //input.focus();\r\n let tmOut = 0;\r\n if (init)\r\n tmOut = 1000;\r\n else {\r\n this.setLimitedOptions = false;\r\n this.filterNamesObservable = this.filtersList;\r\n }\r\n this.triggerCollection.forEach((x, i) => {\r\n if (i == 0) {\r\n if (this.openOrCloseFilter == true || closed) {\r\n setTimeout(() => x.closePanel());\r\n this.openOrCloseFilter = false;\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.inputCtrl.nativeElement.blur();\r\n this.inputCtrl.nativeElement.focus();\r\n this.toHighlight = this.inputCtrl.nativeElement.value;\r\n if (this.inputLengthFilter > 0) {\r\n //https://stackoverflow.com/a/76496095\r\n let firstSelectedOption = x.autocomplete.options.find(o => o.selected);\r\n if (this.mainFilterCloseChk) {\r\n firstSelectedOption = x.autocomplete.options.find(o => o.value.ID == this.selectedFilters);\r\n if (firstSelectedOption) {\r\n firstSelectedOption.select();\r\n setTimeout(() => {\r\n x.openPanel();\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n });\r\n }\r\n this.mainFilterCloseChk = false;\r\n }\r\n\r\n if (firstSelectedOption) {\r\n firstSelectedOption._getHostElement().scrollIntoView({\r\n block: 'center',\r\n });\r\n }\r\n }\r\n\r\n //x.openPanel();\r\n }, tmOut);\r\n this.openOrCloseFilter = true;\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","module.exports = \".customSpan {\\n color: aliceblue;\\n /*#97CEF9 FCFDFE*/\\n font-size: 12px;\\n font-style: italic;\\n}\\n\\n.customImageButton {\\n color: aliceblue;\\n background-color: #2196F3;\\n font-weight: bold;\\n font-size: 12px;\\n}\\n\\n/*https: //stackoverflow.com/questions/43962188/how-to-remove-outline-on-circular-button-when-clicked\\nhttps: //stackoverflow.com/questions/22083833/css-how-to-get-rid-of-border-that-appears-around-custom-button-on-and-after-clic*/\\n\\nbutton:focus {\\n /*border-color: transparent !important;*/\\n outline: none;\\n}\\n\\n/*https: //stackoverflow.com/questions/35269947/css-align-one-item-right-with-flexbox - IMP*/\\n\\n.wrap {\\n display: -ms-flexbox;\\n display: flex;\\n /*background: #ccc;*/\\n /*justify-content: space-between;*/\\n}\\n\\n.wrap div:last-child {\\n /*margin-left: auto;*/\\n /*https: //www.w3schools.com/cssref/css3_pr_text-shadow.asp*/\\n /*https: //www.eggradients.com/category/blue-white-gradient\\n background-color: #007ea7;\\n background-image: linear-gradient(315deg, #007ea7 0%, #80ced7 74%);*/\\n}\\n\\n.alignRight {\\n margin-left: auto;\\n}\\n\\n.customButton1 {\\n height: 28px;\\n padding: 0 10px;\\n}\\n\\n/*@import '../../../../themes/theme.scss';\\n$primary: map-get($custom-theme, primary);\\n$warn: map-get($custom-theme, warn);\\n$accent: map-get($custom-theme, accent);\\n\\n.color-primary {\\n background-color: mat-color($primary);\\n}*/\\n\\n.lblFont {\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n color: white;\\n}\\n\\n.div-AR-mat-form-field {\\n font-size: 12px;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n height: 36px;\\n}\\n\\n:host ::ng-deep .mat-form-field-flex > .mat-form-field-infix {\\n padding: 0.4em 0px !important;\\n}\\n\\n:host ::ng-deep .mat-form-field-label-wrapper {\\n top: -1.5em;\\n}\\n\\n:host ::ng-deep .mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label {\\n -ms-transform: translateY(-1.1em) scale(0.75);\\n transform: translateY(-1.1em) scale(0.75);\\n width: 133.33333%;\\n}\\n\\n:host ::ng-deep .mat-form-field-outline-start,\\n:host ::ng-deep .mat-form-field-outline-gap,\\n:host ::ng-deep .mat-form-field-outline-end {\\n background-color: white !important;\\n}\\n\\n:host ::ng-deep .mat-select {\\n color: black;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvc2NyZWVuLXNlY29uZC1oZWFkZXIvRDpcXFNyY3dlYlxcVlMyMDE3IFByb2plY3RzXFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3L3NyY1xcYXBwXFxzaGFyZWRcXGNvbXBvbmVudHNcXHNjcmVlbi1zZWNvbmQtaGVhZGVyXFxzY3JlZW4tc2Vjb25kLWhlYWRlci5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvc2NyZWVuLXNlY29uZC1oZWFkZXIvc2NyZWVuLXNlY29uZC1oZWFkZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxnQkFBQTtFQUFrQixpQkFBQTtFQUNsQixlQUFBO0VBQ0Esa0JBQUE7QUNFRjs7QURDQTtFQUNFLGdCQUFBO0VBQ0EseUJBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7QUNFRjs7QURDQTsrSEFBQTs7QUFFQTtFQUNFLHdDQUFBO0VBQ0EsYUFBQTtBQ0VGOztBRENBLDRGQUFBOztBQUNBO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQ0FBQTtBQ0VGOztBRENBO0VBQ0UscUJBQUE7RUFDQSw0REFBQTtFQUNBOztzRUFBQTtBQ0lGOztBRENBO0VBQ0UsaUJBQUE7QUNFRjs7QURDQTtFQUNFLFlBQUE7RUFDQSxlQUFBO0FDRUY7O0FEQ0E7Ozs7Ozs7RUFBQTs7QUFTQTtFQUNFLGtEQUFBO0VBQ0EsWUFBQTtBQ0NGOztBREVBO0VBQ0UsZUFBQTtFQUNBLGtEQUFBO0VBQ0Esb0JBQUE7RUFBQSxhQUFBO0VBQ0EsbUJBQUE7TUFBQSxlQUFBO0VBQ0EsWUFBQTtBQ0NGOztBREdBO0VBQ0UsNkJBQUE7QUNBRjs7QURHQTtFQUNFLFdBQUE7QUNBRjs7QURHQTtFQUNFLDZDQUFBO01BQUEseUNBQUE7RUFDQSxpQkFBQTtBQ0FGOztBREtBOzs7RUFHRSxrQ0FBQTtBQ0ZGOztBREtBO0VBQ0UsWUFBQTtBQ0ZGIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvc2NyZWVuLXNlY29uZC1oZWFkZXIvc2NyZWVuLXNlY29uZC1oZWFkZXIuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuY3VzdG9tU3BhbiB7XHJcbiAgY29sb3I6IGFsaWNlYmx1ZTsgLyojOTdDRUY5IEZDRkRGRSovXHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG5cclxuLmN1c3RvbUltYWdlQnV0dG9uIHtcclxuICBjb2xvcjogYWxpY2VibHVlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG59XHJcblxyXG4vKmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80Mzk2MjE4OC9ob3ctdG8tcmVtb3ZlLW91dGxpbmUtb24tY2lyY3VsYXItYnV0dG9uLXdoZW4tY2xpY2tlZFxyXG5odHRwczogLy9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjIwODM4MzMvY3NzLWhvdy10by1nZXQtcmlkLW9mLWJvcmRlci10aGF0LWFwcGVhcnMtYXJvdW5kLWN1c3RvbS1idXR0b24tb24tYW5kLWFmdGVyLWNsaWMqL1xyXG5idXR0b246Zm9jdXMge1xyXG4gIC8qYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyovXHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxuLypodHRwczogLy9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzUyNjk5NDcvY3NzLWFsaWduLW9uZS1pdGVtLXJpZ2h0LXdpdGgtZmxleGJveCAtIElNUCovXHJcbi53cmFwIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC8qYmFja2dyb3VuZDogI2NjYzsqL1xyXG4gIC8qanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyovXHJcbn1cclxuXHJcbi53cmFwIGRpdjpsYXN0LWNoaWxkIHtcclxuICAvKm1hcmdpbi1sZWZ0OiBhdXRvOyovXHJcbiAgLypodHRwczogLy93d3cudzNzY2hvb2xzLmNvbS9jc3NyZWYvY3NzM19wcl90ZXh0LXNoYWRvdy5hc3AqL1xyXG4gIC8qaHR0cHM6IC8vd3d3LmVnZ3JhZGllbnRzLmNvbS9jYXRlZ29yeS9ibHVlLXdoaXRlLWdyYWRpZW50XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2VhNztcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMzE1ZGVnLCAjMDA3ZWE3IDAlLCAjODBjZWQ3IDc0JSk7Ki9cclxufVxyXG5cclxuLmFsaWduUmlnaHQge1xyXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG59XHJcblxyXG4uY3VzdG9tQnV0dG9uMSB7XHJcbiAgaGVpZ2h0OiAyOHB4O1xyXG4gIHBhZGRpbmc6IDAgMTBweDtcclxufVxyXG5cclxuLypAaW1wb3J0ICcuLi8uLi8uLi8uLi90aGVtZXMvdGhlbWUuc2Nzcyc7XHJcbiRwcmltYXJ5OiBtYXAtZ2V0KCRjdXN0b20tdGhlbWUsIHByaW1hcnkpO1xyXG4kd2FybjogbWFwLWdldCgkY3VzdG9tLXRoZW1lLCB3YXJuKTtcclxuJGFjY2VudDogbWFwLWdldCgkY3VzdG9tLXRoZW1lLCBhY2NlbnQpO1xyXG5cclxuLmNvbG9yLXByaW1hcnkge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XHJcbn0qL1xyXG5cclxuLmxibEZvbnQge1xyXG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLmRpdi1BUi1tYXQtZm9ybS1maWVsZCB7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGhlaWdodDogMzZweDtcclxufVxyXG5cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtZmxleCA+IC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XHJcbiAgcGFkZGluZzogMC40ZW0gMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XHJcbiAgdG9wOiAtMS41ZW07XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMWVtKSBzY2FsZSguNzUpO1xyXG4gIHdpZHRoOiAxMzMuMzMzMzMlO1xyXG59XHJcblxyXG5cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydCxcclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWdhcCwgLypGb3IgYWJvdmUgbWF0LWxhYmVsIC0gSU1QKi9cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtc2VsZWN0IHtcclxuICBjb2xvcjogYmxhY2s7XHJcbn1cclxuIiwiLmN1c3RvbVNwYW4ge1xuICBjb2xvcjogYWxpY2VibHVlO1xuICAvKiM5N0NFRjkgRkNGREZFKi9cbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5jdXN0b21JbWFnZUJ1dHRvbiB7XG4gIGNvbG9yOiBhbGljZWJsdWU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi8qaHR0cHM6IC8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQzOTYyMTg4L2hvdy10by1yZW1vdmUtb3V0bGluZS1vbi1jaXJjdWxhci1idXR0b24td2hlbi1jbGlja2VkXG5odHRwczogLy9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjIwODM4MzMvY3NzLWhvdy10by1nZXQtcmlkLW9mLWJvcmRlci10aGF0LWFwcGVhcnMtYXJvdW5kLWN1c3RvbS1idXR0b24tb24tYW5kLWFmdGVyLWNsaWMqL1xuYnV0dG9uOmZvY3VzIHtcbiAgLypib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7Ki9cbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLypodHRwczogLy9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzUyNjk5NDcvY3NzLWFsaWduLW9uZS1pdGVtLXJpZ2h0LXdpdGgtZmxleGJveCAtIElNUCovXG4ud3JhcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qYmFja2dyb3VuZDogI2NjYzsqL1xuICAvKmp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsqL1xufVxuXG4ud3JhcCBkaXY6bGFzdC1jaGlsZCB7XG4gIC8qbWFyZ2luLWxlZnQ6IGF1dG87Ki9cbiAgLypodHRwczogLy93d3cudzNzY2hvb2xzLmNvbS9jc3NyZWYvY3NzM19wcl90ZXh0LXNoYWRvdy5hc3AqL1xuICAvKmh0dHBzOiAvL3d3dy5lZ2dyYWRpZW50cy5jb20vY2F0ZWdvcnkvYmx1ZS13aGl0ZS1ncmFkaWVudFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3ZWE3O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMzE1ZGVnLCAjMDA3ZWE3IDAlLCAjODBjZWQ3IDc0JSk7Ki9cbn1cblxuLmFsaWduUmlnaHQge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuLmN1c3RvbUJ1dHRvbjEge1xuICBoZWlnaHQ6IDI4cHg7XG4gIHBhZGRpbmc6IDAgMTBweDtcbn1cblxuLypAaW1wb3J0ICcuLi8uLi8uLi8uLi90aGVtZXMvdGhlbWUuc2Nzcyc7XG4kcHJpbWFyeTogbWFwLWdldCgkY3VzdG9tLXRoZW1lLCBwcmltYXJ5KTtcbiR3YXJuOiBtYXAtZ2V0KCRjdXN0b20tdGhlbWUsIHdhcm4pO1xuJGFjY2VudDogbWFwLWdldCgkY3VzdG9tLXRoZW1lLCBhY2NlbnQpO1xuXG4uY29sb3ItcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG59Ki9cbi5sYmxGb250IHtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmRpdi1BUi1tYXQtZm9ybS1maWVsZCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgaGVpZ2h0OiAzNnB4O1xufVxuXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWZsZXggPiAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBwYWRkaW5nOiAwLjRlbSAwcHggIWltcG9ydGFudDtcbn1cblxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAtMS41ZW07XG59XG5cbjpob3N0IDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjFlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzMlO1xufVxuXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtc3RhcnQsXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZ2FwLFxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbjpob3N0IDo6bmctZGVlcCAubWF0LXNlbGVjdCB7XG4gIGNvbG9yOiBibGFjaztcbn0iXX0= */\"","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\r\nimport { SystemSettingsService } from '../../services/system-settings/system-settings.service';\r\n\r\n@Component({\r\n selector: 'app-screen-second-header',\r\n templateUrl: './screen-second-header.component.html',\r\n styleUrls: ['./screen-second-header.component.scss']\r\n})\r\nexport class ScreenSecondHeaderComponent implements OnInit {\r\n\r\n //@Input() isFilters: boolean;\r\n logserviceHTML: SystemSettingsService;\r\n\r\n constructor(private logservice: SystemSettingsService) {\r\n this.logserviceHTML = logservice;\r\n }\r\n\r\n ngOnInit() {\r\n setTimeout(() => {\r\n let logserviceObj;\r\n //console.log(sessionStorage.getItem('SystemSettings'))\r\n //console.log(localStorage.getItem('SystemSettings'))\r\n if (sessionStorage.getItem('SystemSettings') != null) {\r\n logserviceObj = JSON.parse(sessionStorage.getItem('SystemSettings'));\r\n }\r\n else if (localStorage.getItem('SystemSettings') != null) {\r\n logserviceObj = JSON.parse(localStorage.getItem('SystemSettings'));\r\n }\r\n\r\n if (logserviceObj) {\r\n this.logserviceHTML.logDetail = logserviceObj.logDetail;\r\n this.logserviceHTML.LogType = logserviceObj.LogType;\r\n this.logserviceHTML.CompanyLogo = logserviceObj.CompanyLogo;\r\n this.logserviceHTML.CompanyRebrand = logserviceObj.CompanyRebrand;\r\n this.logserviceHTML.UserName = logserviceObj.UserName;\r\n this.logserviceHTML.isLoggedIn = logserviceObj.isLoggedIn;\r\n this.logserviceHTML.isCommonLogo = logserviceObj.isCommonLogo;\r\n this.logserviceHTML.startupScreen = logserviceObj.startupScreen;\r\n this.logserviceHTML.restrictScreens = logserviceObj.restrictScreens;\r\n }\r\n //console.log(this.logserviceHTML)\r\n });\r\n }\r\n\r\n @Output() RefreshClicked = new EventEmitter();\r\n onRefreshClicked(): void {\r\n //this.setCommonFilters();\r\n //let TSSelected = this.TSSelected;\r\n this.RefreshClicked.emit();\r\n }\r\n\r\n\r\n AutoRefSelected = '5';\r\n //Start = false;\r\n AutoRefStop: boolean = true;\r\n @Output() AutoRefreshClicked = new EventEmitter();\r\n onAutoRefreshClicked() {\r\n this.AutoRefStop = !this.AutoRefStop;\r\n this.AutoRefreshClicked.emit({ AutoRefSelected: parseInt(this.AutoRefSelected) * 1000, AutoRefStop: this.AutoRefStop });\r\n }\r\n\r\n}\r\n","module.exports = \".customSpan {\\n color: aliceblue;\\n /*#97CEF9 FCFDFE*/\\n font-size: 12px;\\n font-style: italic;\\n}\\n\\n.customImageButton {\\n color: aliceblue;\\n background-color: #2196F3;\\n font-weight: bold;\\n font-size: 12px;\\n}\\n\\n/*https: //stackoverflow.com/questions/43962188/how-to-remove-outline-on-circular-button-when-clicked\\nhttps: //stackoverflow.com/questions/22083833/css-how-to-get-rid-of-border-that-appears-around-custom-button-on-and-after-clic*/\\n\\nbutton:focus {\\n /*border-color: transparent !important;*/\\n outline: none;\\n}\\n\\n/*https: //stackoverflow.com/questions/35269947/css-align-one-item-right-with-flexbox - IMP*/\\n\\n.wrap {\\n display: -ms-flexbox;\\n display: flex;\\n /*background: #ccc;*/\\n width: 96%;\\n height: 60px;\\n /*justify-content: space-between;*/\\n}\\n\\n.wrap div:last-child {\\n /*margin-left: auto;*/\\n /*https: //www.w3schools.com/cssref/css3_pr_text-shadow.asp*/\\n /*https: //www.eggradients.com/category/blue-white-gradient\\n background-color: #007ea7;\\n background-image: linear-gradient(315deg, #007ea7 0%, #80ced7 74%);*/\\n}\\n\\n.alignRight {\\n margin-left: auto;\\n}\\n\\n.customButton1 {\\n height: 28px;\\n padding: 0 10px;\\n}\\n\\n/*@import '../../../../themes/theme.scss';\\n$primary: map-get($custom-theme, primary);\\n$warn: map-get($custom-theme, warn);\\n$accent: map-get($custom-theme, accent);\\n.color-primary {\\n background-color: mat-color($primary);\\n}*/\\n\\n.lblFont {\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n color: white;\\n}\\n\\n.divHover:hover {\\n color: orange;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvc2NyZWVuLXRvcC1oZWFkZXIvRDpcXFNyY3dlYlxcVlMyMDE3IFByb2plY3RzXFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3L3NyY1xcYXBwXFxzaGFyZWRcXGNvbXBvbmVudHNcXHNjcmVlbi10b3AtaGVhZGVyXFxzY3JlZW4tdG9wLWhlYWRlci5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvc2NyZWVuLXRvcC1oZWFkZXIvc2NyZWVuLXRvcC1oZWFkZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxnQkFBQTtFQUFrQixpQkFBQTtFQUNsQixlQUFBO0VBQ0Esa0JBQUE7QUNFRjs7QURBQTtFQUNFLGdCQUFBO0VBQ0EseUJBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7QUNHRjs7QURBQTsrSEFBQTs7QUFFQTtFQUNFLHdDQUFBO0VBQ0EsYUFBQTtBQ0dGOztBREFBLDRGQUFBOztBQUNBO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0Esb0JBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtFQUNBLGtDQUFBO0FDR0Y7O0FEREE7RUFDRSxxQkFBQTtFQUVBLDREQUFBO0VBQ0E7O3NFQUFBO0FDS0Y7O0FEQUE7RUFDRSxpQkFBQTtBQ0dGOztBRERBO0VBQ0UsWUFBQTtFQUNBLGVBQUE7QUNJRjs7QUREQTs7Ozs7O0VBQUE7O0FBUUE7RUFDRSxrREFBQTtFQUNBLFlBQUE7QUNHRjs7QURBQTtFQUNFLGFBQUE7QUNHRiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL3NjcmVlbi10b3AtaGVhZGVyL3NjcmVlbi10b3AtaGVhZGVyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmN1c3RvbVNwYW4ge1xyXG4gIGNvbG9yOiBhbGljZWJsdWU7IC8qIzk3Q0VGOSBGQ0ZERkUqL1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuLmN1c3RvbUltYWdlQnV0dG9uIHtcclxuICBjb2xvcjogYWxpY2VibHVlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG59XHJcblxyXG4vKmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80Mzk2MjE4OC9ob3ctdG8tcmVtb3ZlLW91dGxpbmUtb24tY2lyY3VsYXItYnV0dG9uLXdoZW4tY2xpY2tlZFxyXG5odHRwczogLy9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjIwODM4MzMvY3NzLWhvdy10by1nZXQtcmlkLW9mLWJvcmRlci10aGF0LWFwcGVhcnMtYXJvdW5kLWN1c3RvbS1idXR0b24tb24tYW5kLWFmdGVyLWNsaWMqL1xyXG5idXR0b246Zm9jdXMge1xyXG4gIC8qYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyovXHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxuLypodHRwczogLy9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzUyNjk5NDcvY3NzLWFsaWduLW9uZS1pdGVtLXJpZ2h0LXdpdGgtZmxleGJveCAtIElNUCovXHJcbi53cmFwIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC8qYmFja2dyb3VuZDogI2NjYzsqL1xyXG4gIHdpZHRoOiA5NiU7XHJcbiAgaGVpZ2h0OiA2MHB4O1xyXG4gIC8qanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyovXHJcbn1cclxuLndyYXAgZGl2Omxhc3QtY2hpbGQge1xyXG4gIC8qbWFyZ2luLWxlZnQ6IGF1dG87Ki9cclxuXHJcbiAgLypodHRwczogLy93d3cudzNzY2hvb2xzLmNvbS9jc3NyZWYvY3NzM19wcl90ZXh0LXNoYWRvdy5hc3AqL1xyXG4gIC8qaHR0cHM6IC8vd3d3LmVnZ3JhZGllbnRzLmNvbS9jYXRlZ29yeS9ibHVlLXdoaXRlLWdyYWRpZW50XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2VhNztcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMzE1ZGVnLCAjMDA3ZWE3IDAlLCAjODBjZWQ3IDc0JSk7Ki9cclxufVxyXG5cclxuLmFsaWduUmlnaHQge1xyXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG59XHJcbi5jdXN0b21CdXR0b24xIHtcclxuICBoZWlnaHQ6IDI4cHg7XHJcbiAgcGFkZGluZzogMCAxMHB4O1xyXG59XHJcblxyXG4vKkBpbXBvcnQgJy4uLy4uLy4uLy4uL3RoZW1lcy90aGVtZS5zY3NzJztcclxuJHByaW1hcnk6IG1hcC1nZXQoJGN1c3RvbS10aGVtZSwgcHJpbWFyeSk7XHJcbiR3YXJuOiBtYXAtZ2V0KCRjdXN0b20tdGhlbWUsIHdhcm4pO1xyXG4kYWNjZW50OiBtYXAtZ2V0KCRjdXN0b20tdGhlbWUsIGFjY2VudCk7XHJcbi5jb2xvci1wcmltYXJ5IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnkpO1xyXG59Ki9cclxuXHJcbi5sYmxGb250IHtcclxuICBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxuICBjb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbi5kaXZIb3Zlcjpob3ZlciB7XHJcbiAgY29sb3I6IG9yYW5nZTtcclxufVxyXG5cclxuIiwiLmN1c3RvbVNwYW4ge1xuICBjb2xvcjogYWxpY2VibHVlO1xuICAvKiM5N0NFRjkgRkNGREZFKi9cbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5jdXN0b21JbWFnZUJ1dHRvbiB7XG4gIGNvbG9yOiBhbGljZWJsdWU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi8qaHR0cHM6IC8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQzOTYyMTg4L2hvdy10by1yZW1vdmUtb3V0bGluZS1vbi1jaXJjdWxhci1idXR0b24td2hlbi1jbGlja2VkXG5odHRwczogLy9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjIwODM4MzMvY3NzLWhvdy10by1nZXQtcmlkLW9mLWJvcmRlci10aGF0LWFwcGVhcnMtYXJvdW5kLWN1c3RvbS1idXR0b24tb24tYW5kLWFmdGVyLWNsaWMqL1xuYnV0dG9uOmZvY3VzIHtcbiAgLypib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7Ki9cbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLypodHRwczogLy9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzUyNjk5NDcvY3NzLWFsaWduLW9uZS1pdGVtLXJpZ2h0LXdpdGgtZmxleGJveCAtIElNUCovXG4ud3JhcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qYmFja2dyb3VuZDogI2NjYzsqL1xuICB3aWR0aDogOTYlO1xuICBoZWlnaHQ6IDYwcHg7XG4gIC8qanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyovXG59XG5cbi53cmFwIGRpdjpsYXN0LWNoaWxkIHtcbiAgLyptYXJnaW4tbGVmdDogYXV0bzsqL1xuICAvKmh0dHBzOiAvL3d3dy53M3NjaG9vbHMuY29tL2Nzc3JlZi9jc3MzX3ByX3RleHQtc2hhZG93LmFzcCovXG4gIC8qaHR0cHM6IC8vd3d3LmVnZ3JhZGllbnRzLmNvbS9jYXRlZ29yeS9ibHVlLXdoaXRlLWdyYWRpZW50XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDdlYTc7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgzMTVkZWcsICMwMDdlYTcgMCUsICM4MGNlZDcgNzQlKTsqL1xufVxuXG4uYWxpZ25SaWdodCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4uY3VzdG9tQnV0dG9uMSB7XG4gIGhlaWdodDogMjhweDtcbiAgcGFkZGluZzogMCAxMHB4O1xufVxuXG4vKkBpbXBvcnQgJy4uLy4uLy4uLy4uL3RoZW1lcy90aGVtZS5zY3NzJztcbiRwcmltYXJ5OiBtYXAtZ2V0KCRjdXN0b20tdGhlbWUsIHByaW1hcnkpO1xuJHdhcm46IG1hcC1nZXQoJGN1c3RvbS10aGVtZSwgd2Fybik7XG4kYWNjZW50OiBtYXAtZ2V0KCRjdXN0b20tdGhlbWUsIGFjY2VudCk7XG4uY29sb3ItcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG59Ki9cbi5sYmxGb250IHtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmRpdkhvdmVyOmhvdmVyIHtcbiAgY29sb3I6IG9yYW5nZTtcbn0iXX0= */\"","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\r\nimport { SystemSettingsService } from '../../services/system-settings/system-settings.service';\r\n\r\n@Component({\r\n selector: 'app-screen-top-header',\r\n templateUrl: './screen-top-header.component.html',\r\n styleUrls: ['./screen-top-header.component.scss', '../load-filter/load-filter.component.scss']\r\n})\r\nexport class ScreenTopHeaderComponent implements OnInit {\r\n //@Input() isFilters: boolean;\r\n logserviceHTML: SystemSettingsService;\r\n\r\n constructor(private logservice: SystemSettingsService) {\r\n this.logserviceHTML = logservice; \r\n }\r\n\r\n ngOnInit() {\r\n setTimeout(() => {\r\n let logserviceObj;\r\n //console.log(sessionStorage.getItem('SystemSettings'))\r\n //console.log(localStorage.getItem('SystemSettings'))\r\n if (sessionStorage.getItem('SystemSettings') != null) {\r\n logserviceObj = JSON.parse(sessionStorage.getItem('SystemSettings'));\r\n }\r\n else if (localStorage.getItem('SystemSettings') != null) {\r\n logserviceObj = JSON.parse(localStorage.getItem('SystemSettings'));\r\n }\r\n\r\n if (logserviceObj) {\r\n this.logserviceHTML.logDetail = logserviceObj.logDetail;\r\n this.logserviceHTML.LogType = logserviceObj.LogType;\r\n this.logserviceHTML.CompanyLogo = logserviceObj.CompanyLogo;\r\n this.logserviceHTML.CompanyRebrand = logserviceObj.CompanyRebrand;\r\n this.logserviceHTML.UserName = logserviceObj.UserName;\r\n this.logserviceHTML.isLoggedIn = logserviceObj.isLoggedIn;\r\n this.logserviceHTML.isCommonLogo = logserviceObj.isCommonLogo;\r\n this.logserviceHTML.startupScreen = logserviceObj.startupScreen;\r\n this.logserviceHTML.restrictScreens = logserviceObj.restrictScreens;\r\n }\r\n //console.log(this.logserviceHTML)\r\n });\r\n }\r\n\r\n @Output() RefreshClicked = new EventEmitter();\r\n onRefreshClicked(): void {\r\n //this.setCommonFilters();\r\n //let TSSelected = this.TSSelected;\r\n this.RefreshClicked.emit();\r\n }\r\n}\r\n","module.exports = \"/*https: //codepen.io/ig0ramad0/pen/HwJgr*/\\n/*@import \\\"compass/css3\\\";*/\\n/*https: //stackoverflow.com/questions/47931986/import-css3-compass-from-angular-typescript*/\\nbody {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n margin-top: -50px;\\n margin-left: -50px;\\n}\\n.loader {\\n display: block;\\n width: 100px;\\n height: 100px;\\n position: relative;\\n -ms-transform-origin: 63px 63px;\\n transform-origin: 63px 63px;\\n -webkit-animation: spin 1s infinite linear;\\n animation: spin 1s infinite linear;\\n}\\n.loader .spinner {\\n display: block;\\n width: 100%;\\n height: 100%;\\n border-radius: 50%;\\n position: absolute;\\n top: 0;\\n left: 0;\\n border-width: 0px 0px 26px 26px;\\n border-style: solid;\\n border-color: transparent;\\n}\\n.loader .spinner.yellow {\\n border-left-color: #ffff99;\\n}\\n.loader .spinner.orange {\\n border-left-color: #ffcc66;\\n -ms-transform: rotate(-45deg);\\n transform: rotate(-45deg);\\n}\\n.loader .spinner.red {\\n border-left-color: #ff9966;\\n -ms-transform: rotate(-90deg);\\n transform: rotate(-90deg);\\n}\\n.loader .spinner.pink {\\n border-left-color: #ff6699;\\n -ms-transform: rotate(-135deg);\\n transform: rotate(-135deg);\\n}\\n.loader .spinner.violet {\\n border-left-color: #cc66cc;\\n -ms-transform: rotate(-180deg);\\n transform: rotate(-180deg);\\n}\\n.loader .spinner.mauve {\\n border-left-color: #cc99cc;\\n -ms-transform: rotate(-225deg);\\n transform: rotate(-225deg);\\n}\\n.loader .spinner.light-yellow {\\n border-left-color: #fffad5;\\n -ms-transform: rotate(-270deg);\\n transform: rotate(-270deg);\\n}\\n.loader .text {\\n position: absolute;\\n top: 100%;\\n left: 0;\\n right: 0;\\n margin-top: 1.6em;\\n text-align: center;\\n font-size: 80%;\\n color: rgba(0, 0, 0, 0.4);\\n}\\n@-webkit-keyframes spin {\\n from {\\n transform: rotate(0deg);\\n }\\n to {\\n transform: rotate(-360deg);\\n }\\n}\\n@keyframes spin {\\n from {\\n transform: rotate(0deg);\\n }\\n to {\\n transform: rotate(-360deg);\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvc3Bpbm5lcnMvYm9sZC1zcGluL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9zcmNcXGFwcFxcc2hhcmVkXFxjb21wb25lbnRzXFxzcGlubmVyc1xcYm9sZC1zcGluXFxib2xkLXNwaW4uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL3NwaW5uZXJzL2JvbGQtc3Bpbi9ib2xkLXNwaW4uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMENBQUE7QUFFQSwwQkFBQTtBQUNBLDRGQUFBO0FBUUE7RUFDRSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtBQ1BGO0FEVUE7RUFDRSxjQUFBO0VBQ0EsWUFoQk07RUFpQk4sYUFqQk07RUFrQk4sa0JBQUE7RUFDQSwrQkFBQTtNQUFBLDJCQUFBO0VBQ0EsMENBQUE7VUFBQSxrQ0FBQTtBQ1BGO0FEU0U7RUFDRSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSwrQkFBQTtFQUNBLG1CQUFBO0VBQ0EseUJBQUE7QUNQSjtBRFNJO0VBQ0UsMEJBQUE7QUNQTjtBRFVJO0VBQ0UsMEJBQUE7RUFDQSw2QkFBQTtNQUFBLHlCQUFBO0FDUk47QURXSTtFQUNFLDBCQUFBO0VBQ0EsNkJBQUE7TUFBQSx5QkFBQTtBQ1ROO0FEWUk7RUFDRSwwQkFBQTtFQUNBLDhCQUFBO01BQUEsMEJBQUE7QUNWTjtBRGFJO0VBQ0UsMEJBQUE7RUFDQSw4QkFBQTtNQUFBLDBCQUFBO0FDWE47QURjSTtFQUNFLDBCQUFBO0VBQ0EsOEJBQUE7TUFBQSwwQkFBQTtBQ1pOO0FEZUk7RUFDRSwwQkFBQTtFQUNBLDhCQUFBO01BQUEsMEJBQUE7QUNiTjtBRGtCQTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLGNBQUE7RUFDQSx5QkFBQTtBQ2ZGO0FEa0JBO0VBQ0U7SUFDRSx1QkFBQTtFQ2ZGO0VEa0JBO0lBQ0UsMEJBQUE7RUNoQkY7QUFDRjtBRFNBO0VBQ0U7SUFDRSx1QkFBQTtFQ2ZGO0VEa0JBO0lBQ0UsMEJBQUE7RUNoQkY7QUFDRiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL3NwaW5uZXJzL2JvbGQtc3Bpbi9ib2xkLXNwaW4uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKmh0dHBzOiAvL2NvZGVwZW4uaW8vaWcwcmFtYWQwL3Blbi9Id0pnciovXHJcblxyXG4vKkBpbXBvcnQgXCJjb21wYXNzL2NzczNcIjsqL1xyXG4vKmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80NzkzMTk4Ni9pbXBvcnQtY3NzMy1jb21wYXNzLWZyb20tYW5ndWxhci10eXBlc2NyaXB0Ki9cclxuXHJcbiR3aWR0aDogMTAwcHg7XHJcbiRoZWlnaHQ6ICR3aWR0aDtcclxuJGJvcmRlcjogMjZweDtcclxuJGR1cmF0aW9uOiAxcztcclxuJHJlcGV0aXRpb246IGluZmluaXRlO1xyXG5cclxuYm9keSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogNTAlO1xyXG4gIGxlZnQ6IDUwJTtcclxuICBtYXJnaW4tdG9wOiAtJGhlaWdodC8yO1xyXG4gIG1hcmdpbi1sZWZ0OiAtJHdpZHRoLzI7XHJcbn1cclxuXHJcbi5sb2FkZXIge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHdpZHRoOiAkd2lkdGg7XHJcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB0cmFuc2Zvcm0tb3JpZ2luOiAoJHdpZHRoKyRib3JkZXIpLzIgKCRoZWlnaHQrJGJvcmRlcikvMjtcclxuICBhbmltYXRpb246IHNwaW4gJGR1cmF0aW9uICRyZXBldGl0aW9uIGxpbmVhcjtcclxuXHJcbiAgLnNwaW5uZXIge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBib3JkZXItd2lkdGg6IDBweCAwcHggJGJvcmRlciAkYm9yZGVyO1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblxyXG4gICAgJi55ZWxsb3cge1xyXG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogI2ZmZmY5OTtcclxuICAgIH1cclxuXHJcbiAgICAmLm9yYW5nZSB7XHJcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZmZjYzY2O1xyXG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xyXG4gICAgfVxyXG5cclxuICAgICYucmVkIHtcclxuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNmZjk5NjY7XHJcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5waW5rIHtcclxuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNmZjY2OTk7XHJcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xyXG4gICAgfVxyXG5cclxuICAgICYudmlvbGV0IHtcclxuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNjYzY2Y2M7XHJcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpO1xyXG4gICAgfVxyXG5cclxuICAgICYubWF1dmUge1xyXG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogI2NjOTljYztcclxuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTIyNWRlZyk7XHJcbiAgICB9XHJcblxyXG4gICAgJi5saWdodC15ZWxsb3cge1xyXG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogI2ZmZmFkNTtcclxuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTI3MGRlZyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ubG9hZGVyIC50ZXh0IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAxMDAlO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgbWFyZ2luLXRvcDogMS42ZW07XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGZvbnQtc2l6ZTogODAlO1xyXG4gIGNvbG9yOiBoc2xhKDAsIDAlLCAwJSwgMC40KTtcclxufVxyXG5cclxuQGtleWZyYW1lcyBzcGluIHtcclxuICBmcm9tIHtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gIH1cclxuXHJcbiAgdG8ge1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTM2MGRlZyk7XHJcbiAgfVxyXG59XHJcbiIsIi8qaHR0cHM6IC8vY29kZXBlbi5pby9pZzByYW1hZDAvcGVuL0h3SmdyKi9cbi8qQGltcG9ydCBcImNvbXBhc3MvY3NzM1wiOyovXG4vKmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80NzkzMTk4Ni9pbXBvcnQtY3NzMy1jb21wYXNzLWZyb20tYW5ndWxhci10eXBlc2NyaXB0Ki9cbmJvZHkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6IC01MHB4O1xuICBtYXJnaW4tbGVmdDogLTUwcHg7XG59XG5cbi5sb2FkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMHB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDYzcHggNjNweDtcbiAgYW5pbWF0aW9uOiBzcGluIDFzIGluZmluaXRlIGxpbmVhcjtcbn1cbi5sb2FkZXIgLnNwaW5uZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm9yZGVyLXdpZHRoOiAwcHggMHB4IDI2cHggMjZweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5sb2FkZXIgLnNwaW5uZXIueWVsbG93IHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNmZmZmOTk7XG59XG4ubG9hZGVyIC5zcGlubmVyLm9yYW5nZSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjZmZjYzY2O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xufVxuLmxvYWRlciAuc3Bpbm5lci5yZWQge1xuICBib3JkZXItbGVmdC1jb2xvcjogI2ZmOTk2NjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbn1cbi5sb2FkZXIgLnNwaW5uZXIucGluayB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjZmY2Njk5O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbn1cbi5sb2FkZXIgLnNwaW5uZXIudmlvbGV0IHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNjYzY2Y2M7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpO1xufVxuLmxvYWRlciAuc3Bpbm5lci5tYXV2ZSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjY2M5OWNjO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMjI1ZGVnKTtcbn1cbi5sb2FkZXIgLnNwaW5uZXIubGlnaHQteWVsbG93IHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNmZmZhZDU7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0yNzBkZWcpO1xufVxuXG4ubG9hZGVyIC50ZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBtYXJnaW4tdG9wOiAxLjZlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDgwJTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cblxuQGtleWZyYW1lcyBzcGluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0zNjBkZWcpO1xuICB9XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-bold-spin',\n templateUrl: './bold-spin.component.html',\n styleUrls: ['./bold-spin.component.scss']\n})\nexport class BoldSpinComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \"/*https: //codepen.io/Cybolic/pen/CAlJr*/\\nhtml,\\nbody {\\n text-align: center;\\n vertical-align: middle;\\n height: 100%;\\n font-family: sans-serif;\\n}\\n.spinner {\\n display: inline-block;\\n width: 51.2px;\\n height: 51.2px;\\n position: relative;\\n top: 50%;\\n margin-top: -25.6px;\\n line-height: 100%;\\n}\\n.spinner .text {\\n position: absolute;\\n top: 100%;\\n left: 0;\\n right: 0;\\n margin-top: 1.6em;\\n text-align: center;\\n font-size: 80%;\\n color: rgba(0, 0, 0, 0.4);\\n}\\n.spinner .spinner-circle {\\n position: absolute;\\n background-color: transparent;\\n border-radius: 50%;\\n border-style: solid;\\n border-color: #181818 transparent #181818 transparent;\\n}\\n.spinner .spinner-circle.spinner-circle-outer {\\n width: 51.2px;\\n height: 51.2px;\\n border-width: 12.8px;\\n top: -6.4px;\\n left: -6.4px;\\n opacity: 0.2;\\n -ms-filter: alpha(opacity=50);\\n filter: alpha(opacity=50);\\n -webkit-animation: spinner-rotate-outer 2s 0s ease-in-out infinite;\\n animation: spinner-rotate-outer 2s 0s ease-in-out infinite;\\n}\\n.spinner .spinner-circle.spinner-circle-inner {\\n width: 25.6px;\\n height: 25.6px;\\n border-width: 6.4px;\\n top: 12.8px;\\n left: 12.8px;\\n opacity: 0;\\n -ms-filter: alpha(opacity=70);\\n filter: alpha(opacity=70);\\n -webkit-animation: spinner-rotate-inner 3s 0s linear infinite;\\n animation: spinner-rotate-inner 3s 0s linear infinite;\\n}\\n.spinner .spinner-circle.spinner-circle-single-1 {\\n width: 38.4px;\\n height: 38.4px;\\n border-width: 9.6px;\\n top: 3.2px;\\n left: 3.2px;\\n opacity: 0.9;\\n -ms-filter: alpha(opacity=30);\\n filter: alpha(opacity=30);\\n -webkit-animation: spinner-rotate-single-1 5s 0s ease-in-out infinite;\\n animation: spinner-rotate-single-1 5s 0s ease-in-out infinite;\\n border-color: transparent transparent transparent #4dc3ff;\\n box-shadow: 2px 0 2px #4dc3ff;\\n}\\n.spinner .spinner-circle.spinner-circle-single-2 {\\n width: 0;\\n height: 0;\\n border-width: 25.6px;\\n top: 6.4px;\\n left: 6.4px;\\n opacity: 0;\\n -ms-filter: alpha(opacity=30);\\n filter: alpha(opacity=30);\\n -webkit-animation: spinner-rotate-single-2 7s 0s ease-in-out infinite;\\n animation: spinner-rotate-single-2 7s 0s ease-in-out infinite;\\n border-color: #4dc3ff transparent transparent transparent;\\n box-shadow: 0 -12px 4px #4dc3ff;\\n}\\n@-webkit-keyframes spinner-rotate-outer {\\n 0% {\\n transform: rotateZ(0deg);\\n }\\n 100% {\\n transform: rotateZ(360deg);\\n }\\n}\\n@keyframes spinner-rotate-outer {\\n 0% {\\n transform: rotateZ(0deg);\\n }\\n 100% {\\n transform: rotateZ(360deg);\\n }\\n}\\n@-webkit-keyframes spinner-rotate-inner {\\n 0% {\\n transform: rotateZ(30deg);\\n }\\n 100% {\\n transform: rotateZ(390deg);\\n }\\n}\\n@keyframes spinner-rotate-inner {\\n 0% {\\n transform: rotateZ(30deg);\\n }\\n 100% {\\n transform: rotateZ(390deg);\\n }\\n}\\n@-webkit-keyframes spinner-rotate-single-1 {\\n 0% {\\n transform: rotateZ(56deg);\\n }\\n 20% {\\n transform: rotateZ(-132deg);\\n }\\n 40% {\\n transform: rotateZ(-250deg);\\n }\\n 60% {\\n transform: rotateZ(40deg);\\n }\\n 70% {\\n transform: rotateZ(-80deg);\\n }\\n 100% {\\n transform: rotateZ(56deg);\\n }\\n}\\n@keyframes spinner-rotate-single-1 {\\n 0% {\\n transform: rotateZ(56deg);\\n }\\n 20% {\\n transform: rotateZ(-132deg);\\n }\\n 40% {\\n transform: rotateZ(-250deg);\\n }\\n 60% {\\n transform: rotateZ(40deg);\\n }\\n 70% {\\n transform: rotateZ(-80deg);\\n }\\n 100% {\\n transform: rotateZ(56deg);\\n }\\n}\\n@-webkit-keyframes spinner-rotate-single-2 {\\n 0% {\\n transform: rotateZ(-24deg);\\n }\\n 10% {\\n transform: rotateZ(142deg);\\n }\\n 20% {\\n transform: rotateZ(-87deg);\\n }\\n 30% {\\n transform: rotateZ(-345deg);\\n }\\n 40% {\\n transform: rotateZ(86deg);\\n }\\n 50% {\\n transform: rotateZ(175deg);\\n }\\n 60% {\\n transform: rotateZ(-245deg);\\n }\\n 70% {\\n transform: rotateZ(4deg);\\n }\\n 80% {\\n transform: rotateZ(-132deg);\\n }\\n 90% {\\n transform: rotateZ(345deg);\\n }\\n 100% {\\n transform: rotateZ(-24deg);\\n }\\n}\\n@keyframes spinner-rotate-single-2 {\\n 0% {\\n transform: rotateZ(-24deg);\\n }\\n 10% {\\n transform: rotateZ(142deg);\\n }\\n 20% {\\n transform: rotateZ(-87deg);\\n }\\n 30% {\\n transform: rotateZ(-345deg);\\n }\\n 40% {\\n transform: rotateZ(86deg);\\n }\\n 50% {\\n transform: rotateZ(175deg);\\n }\\n 60% {\\n transform: rotateZ(-245deg);\\n }\\n 70% {\\n transform: rotateZ(4deg);\\n }\\n 80% {\\n transform: rotateZ(-132deg);\\n }\\n 90% {\\n transform: rotateZ(345deg);\\n }\\n 100% {\\n transform: rotateZ(-24deg);\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvc3Bpbm5lcnMvbG9hZGluZy1zcGluL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9zcmNcXGFwcFxcc2hhcmVkXFxjb21wb25lbnRzXFxzcGlubmVyc1xcbG9hZGluZy1zcGluXFxsb2FkaW5nLXNwaW4uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL3NwaW5uZXJzL2xvYWRpbmctc3Bpbi9sb2FkaW5nLXNwaW4uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0NBQUE7QUFFQTs7RUFFRSxrQkFBQTtFQUNBLHNCQUFBO0VBQ0EsWUFBQTtFQUNBLHVCQUFBO0FDQUY7QURHQTtFQUNFLHFCQUFBO0VBQ0EsYUFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0FDQUY7QURHQTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLGNBQUE7RUFDQSx5QkFBQTtBQ0FGO0FER0E7RUFDRSxrQkFBQTtFQUNBLDZCQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLHFEQUFBO0FDQUY7QURHQTtFQUNFLGFBQUE7RUFDQSxjQUFBO0VBQ0Esb0JBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSw2QkFBQTtFQUNBLHlCQUFBO0VBQ0Esa0VBQUE7RUFDQSwwREFBQTtBQ0FGO0FER0E7RUFDRSxhQUFBO0VBQ0EsY0FBQTtFQUNBLG1CQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxVQUFBO0VBQ0EsNkJBQUE7RUFDQSx5QkFBQTtFQUNBLDZEQUFBO0VBQ0EscURBQUE7QUNBRjtBREdBO0VBQ0UsYUFBQTtFQUNBLGNBQUE7RUFDQSxtQkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLDZCQUFBO0VBQ0EseUJBQUE7RUFDQSxxRUFBQTtFQUNBLDZEQUFBO0VBQ0EseURBQUE7RUFDQSw2QkFBQTtBQ0FGO0FER0E7RUFDRSxRQUFBO0VBQ0EsU0FBQTtFQUNBLG9CQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0VBQ0EsNkJBQUE7RUFDQSx5QkFBQTtFQUNBLHFFQUFBO0VBQ0EsNkRBQUE7RUFDQSx5REFBQTtFQUNBLCtCQUFBO0FDQUY7QURHQTtFQUNFO0lBRUUsd0JBQUE7RUNBRjtFREdBO0lBRUUsMEJBQUE7RUNERjtBQUNGO0FESUE7RUFDRTtJQUVFLHdCQUFBO0VDRkY7RURLQTtJQUVFLDBCQUFBO0VDSEY7QUFDRjtBRE1BO0VBQ0U7SUFFRSx5QkFBQTtFQ0pGO0VET0E7SUFFRSwwQkFBQTtFQ0xGO0FBQ0Y7QURRQTtFQUNFO0lBRUUseUJBQUE7RUNORjtFRFNBO0lBRUUsMEJBQUE7RUNQRjtBQUNGO0FEVUE7RUFDRTtJQUVFLHlCQUFBO0VDUkY7RURXQTtJQUVFLDJCQUFBO0VDVEY7RURZQTtJQUVFLDJCQUFBO0VDVkY7RURhQTtJQUVFLHlCQUFBO0VDWEY7RURjQTtJQUVFLDBCQUFBO0VDWkY7RURlQTtJQUVFLHlCQUFBO0VDYkY7QUFDRjtBRGdCQTtFQUNFO0lBRUUseUJBQUE7RUNkRjtFRGlCQTtJQUVFLDJCQUFBO0VDZkY7RURrQkE7SUFFRSwyQkFBQTtFQ2hCRjtFRG1CQTtJQUVFLHlCQUFBO0VDakJGO0VEb0JBO0lBRUUsMEJBQUE7RUNsQkY7RURxQkE7SUFFRSx5QkFBQTtFQ25CRjtBQUNGO0FEc0JBO0VBQ0U7SUFFRSwwQkFBQTtFQ3BCRjtFRHVCQTtJQUVFLDBCQUFBO0VDckJGO0VEd0JBO0lBRUUsMEJBQUE7RUN0QkY7RUR5QkE7SUFFRSwyQkFBQTtFQ3ZCRjtFRDBCQTtJQUVFLHlCQUFBO0VDeEJGO0VEMkJBO0lBRUUsMEJBQUE7RUN6QkY7RUQ0QkE7SUFFRSwyQkFBQTtFQzFCRjtFRDZCQTtJQUVFLHdCQUFBO0VDM0JGO0VEOEJBO0lBRUUsMkJBQUE7RUM1QkY7RUQrQkE7SUFFRSwwQkFBQTtFQzdCRjtFRGdDQTtJQUVFLDBCQUFBO0VDOUJGO0FBQ0Y7QURpQ0E7RUFDRTtJQUVFLDBCQUFBO0VDL0JGO0VEa0NBO0lBRUUsMEJBQUE7RUNoQ0Y7RURtQ0E7SUFFRSwwQkFBQTtFQ2pDRjtFRG9DQTtJQUVFLDJCQUFBO0VDbENGO0VEcUNBO0lBRUUseUJBQUE7RUNuQ0Y7RURzQ0E7SUFFRSwwQkFBQTtFQ3BDRjtFRHVDQTtJQUVFLDJCQUFBO0VDckNGO0VEd0NBO0lBRUUsd0JBQUE7RUN0Q0Y7RUR5Q0E7SUFFRSwyQkFBQTtFQ3ZDRjtFRDBDQTtJQUVFLDBCQUFBO0VDeENGO0VEMkNBO0lBRUUsMEJBQUE7RUN6Q0Y7QUFDRiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL3NwaW5uZXJzL2xvYWRpbmctc3Bpbi9sb2FkaW5nLXNwaW4uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKmh0dHBzOiAvL2NvZGVwZW4uaW8vQ3lib2xpYy9wZW4vQ0FsSnIqL1xyXG5cclxuaHRtbCxcclxuYm9keSB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xyXG59XHJcblxyXG4uc3Bpbm5lciB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiA1MS4ycHg7XHJcbiAgaGVpZ2h0OiA1MS4ycHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHRvcDogNTAlO1xyXG4gIG1hcmdpbi10b3A6IC0yNS42cHg7XHJcbiAgbGluZS1oZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbi5zcGlubmVyIC50ZXh0IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAxMDAlO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgbWFyZ2luLXRvcDogMS42ZW07XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGZvbnQtc2l6ZTogODAlO1xyXG4gIGNvbG9yOiBoc2xhKDAsIDAlLCAwJSwgMC40KTtcclxufVxyXG5cclxuLnNwaW5uZXIgLnNwaW5uZXItY2lyY2xlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgYm9yZGVyLWNvbG9yOiAjMTgxODE4IHRyYW5zcGFyZW50ICMxODE4MTggdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi5zcGlubmVyIC5zcGlubmVyLWNpcmNsZS5zcGlubmVyLWNpcmNsZS1vdXRlciB7XHJcbiAgd2lkdGg6IDUxLjJweDtcclxuICBoZWlnaHQ6IDUxLjJweDtcclxuICBib3JkZXItd2lkdGg6IDEyLjhweDtcclxuICB0b3A6IC02LjQwMDAwMDAwMDAwMDAwMnB4O1xyXG4gIGxlZnQ6IC02LjQwMDAwMDAwMDAwMDAwMnB4O1xyXG4gIG9wYWNpdHk6IDAuMjtcclxuICAtbXMtZmlsdGVyOiBhbHBoYShvcGFjaXR5PTUwKTtcclxuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NTApO1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBzcGlubmVyLXJvdGF0ZS1vdXRlciAycyAwcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcclxuICBhbmltYXRpb246IHNwaW5uZXItcm90YXRlLW91dGVyIDJzIDBzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xyXG59XHJcblxyXG4uc3Bpbm5lciAuc3Bpbm5lci1jaXJjbGUuc3Bpbm5lci1jaXJjbGUtaW5uZXIge1xyXG4gIHdpZHRoOiAyNS42cHg7XHJcbiAgaGVpZ2h0OiAyNS42cHg7XHJcbiAgYm9yZGVyLXdpZHRoOiA2LjRweDtcclxuICB0b3A6IDEyLjc5OTk5OTk5OTk5OTk5OXB4O1xyXG4gIGxlZnQ6IDEyLjc5OTk5OTk5OTk5OTk5OXB4O1xyXG4gIG9wYWNpdHk6IDAuMDtcclxuICAtbXMtZmlsdGVyOiBhbHBoYShvcGFjaXR5PTcwKTtcclxuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NzApO1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBzcGlubmVyLXJvdGF0ZS1pbm5lciAzcyAwcyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgYW5pbWF0aW9uOiBzcGlubmVyLXJvdGF0ZS1pbm5lciAzcyAwcyBsaW5lYXIgaW5maW5pdGU7XHJcbn1cclxuXHJcbi5zcGlubmVyIC5zcGlubmVyLWNpcmNsZS5zcGlubmVyLWNpcmNsZS1zaW5nbGUtMSB7XHJcbiAgd2lkdGg6IDM4LjRweDtcclxuICBoZWlnaHQ6IDM4LjRweDtcclxuICBib3JkZXItd2lkdGg6IDkuNnB4O1xyXG4gIHRvcDogMy4yMDAwMDAwMDAwMDAwMDFweDtcclxuICBsZWZ0OiAzLjIwMDAwMDAwMDAwMDAwMXB4O1xyXG4gIG9wYWNpdHk6IDAuOTtcclxuICAtbXMtZmlsdGVyOiBhbHBoYShvcGFjaXR5PTMwKTtcclxuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MzApO1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBzcGlubmVyLXJvdGF0ZS1zaW5nbGUtMSA1cyAwcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcclxuICBhbmltYXRpb246IHNwaW5uZXItcm90YXRlLXNpbmdsZS0xIDVzIDBzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xyXG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzRkYzNmZjtcclxuICBib3gtc2hhZG93OiAycHggMCAycHggIzRkYzNmZjtcclxufVxyXG5cclxuLnNwaW5uZXIgLnNwaW5uZXItY2lyY2xlLnNwaW5uZXItY2lyY2xlLXNpbmdsZS0yIHtcclxuICB3aWR0aDogMDtcclxuICBoZWlnaHQ6IDA7XHJcbiAgYm9yZGVyLXdpZHRoOiAyNS42cHg7XHJcbiAgdG9wOiA2LjM5OTk5OTk5OTk5OTk5OXB4O1xyXG4gIGxlZnQ6IDYuMzk5OTk5OTk5OTk5OTk5cHg7XHJcbiAgb3BhY2l0eTogMC4wO1xyXG4gIC1tcy1maWx0ZXI6IGFscGhhKG9wYWNpdHk9MzApO1xyXG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0zMCk7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW5uZXItcm90YXRlLXNpbmdsZS0yIDdzIDBzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xyXG4gIGFuaW1hdGlvbjogc3Bpbm5lci1yb3RhdGUtc2luZ2xlLTIgN3MgMHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XHJcbiAgYm9yZGVyLWNvbG9yOiAjNGRjM2ZmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG4gIGJveC1zaGFkb3c6IDAgLTEycHggNHB4ICM0ZGMzZmY7XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBzcGlubmVyLXJvdGF0ZS1vdXRlciB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooMGRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMGRlZyk7XHJcbiAgfVxyXG5cclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDM2MGRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMzYwZGVnKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgc3Bpbm5lci1yb3RhdGUtb3V0ZXIge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDBkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDBkZWcpO1xyXG4gIH1cclxuXHJcbiAgMTAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigzNjBkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDM2MGRlZyk7XHJcbiAgfVxyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3Bpbm5lci1yb3RhdGUtaW5uZXIge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDMwZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlWigzMGRlZyk7XHJcbiAgfVxyXG5cclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDM5MGRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMzkwZGVnKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgc3Bpbm5lci1yb3RhdGUtaW5uZXIge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDMwZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlWigzMGRlZyk7XHJcbiAgfVxyXG5cclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDM5MGRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMzkwZGVnKTtcclxuICB9XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBzcGlubmVyLXJvdGF0ZS1zaW5nbGUtMSB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooNTZkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDU2ZGVnKTtcclxuICB9XHJcblxyXG4gIDIwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigtMTMyZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlWigtMTMyZGVnKTtcclxuICB9XHJcblxyXG4gIDQwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigtMjUwZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlWigtMjUwZGVnKTtcclxuICB9XHJcblxyXG4gIDYwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWig0MGRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooNDBkZWcpO1xyXG4gIH1cclxuXHJcbiAgNzAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKC04MGRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooLTgwZGVnKTtcclxuICB9XHJcblxyXG4gIDEwMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooNTZkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDU2ZGVnKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgc3Bpbm5lci1yb3RhdGUtc2luZ2xlLTEge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDU2ZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlWig1NmRlZyk7XHJcbiAgfVxyXG5cclxuICAyMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooLTEzMmRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooLTEzMmRlZyk7XHJcbiAgfVxyXG5cclxuICA0MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooLTI1MGRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooLTI1MGRlZyk7XHJcbiAgfVxyXG5cclxuICA2MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooNDBkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDQwZGVnKTtcclxuICB9XHJcblxyXG4gIDcwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigtODBkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKC04MGRlZyk7XHJcbiAgfVxyXG5cclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDU2ZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlWig1NmRlZyk7XHJcbiAgfVxyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3Bpbm5lci1yb3RhdGUtc2luZ2xlLTIge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKC0yNGRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooLTI0ZGVnKTtcclxuICB9XHJcblxyXG4gIDEwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigxNDJkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDE0MmRlZyk7XHJcbiAgfVxyXG5cclxuICAyMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooLTg3ZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlWigtODdkZWcpO1xyXG4gIH1cclxuXHJcbiAgMzAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKC0zNDVkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKC0zNDVkZWcpO1xyXG4gIH1cclxuXHJcbiAgNDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDg2ZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlWig4NmRlZyk7XHJcbiAgfVxyXG5cclxuICA1MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooMTc1ZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlWigxNzVkZWcpO1xyXG4gIH1cclxuXHJcbiAgNjAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKC0yNDVkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKC0yNDVkZWcpO1xyXG4gIH1cclxuXHJcbiAgNzAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDRkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDRkZWcpO1xyXG4gIH1cclxuXHJcbiAgODAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKC0xMzJkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKC0xMzJkZWcpO1xyXG4gIH1cclxuXHJcbiAgOTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDM0NWRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMzQ1ZGVnKTtcclxuICB9XHJcblxyXG4gIDEwMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooLTI0ZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlWigtMjRkZWcpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBzcGlubmVyLXJvdGF0ZS1zaW5nbGUtMiB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooLTI0ZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlWigtMjRkZWcpO1xyXG4gIH1cclxuXHJcbiAgMTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDE0MmRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMTQyZGVnKTtcclxuICB9XHJcblxyXG4gIDIwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigtODdkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKC04N2RlZyk7XHJcbiAgfVxyXG5cclxuICAzMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooLTM0NWRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooLTM0NWRlZyk7XHJcbiAgfVxyXG5cclxuICA0MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooODZkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDg2ZGVnKTtcclxuICB9XHJcblxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigxNzVkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDE3NWRlZyk7XHJcbiAgfVxyXG5cclxuICA2MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooLTI0NWRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooLTI0NWRlZyk7XHJcbiAgfVxyXG5cclxuICA3MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooNGRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooNGRlZyk7XHJcbiAgfVxyXG5cclxuICA4MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooLTEzMmRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooLTEzMmRlZyk7XHJcbiAgfVxyXG5cclxuICA5MCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooMzQ1ZGVnKTtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlWigzNDVkZWcpO1xyXG4gIH1cclxuXHJcbiAgMTAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigtMjRkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKC0yNGRlZyk7XHJcbiAgfVxyXG59XHJcbiIsIi8qaHR0cHM6IC8vY29kZXBlbi5pby9DeWJvbGljL3Blbi9DQWxKciovXG5odG1sLFxuYm9keSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbn1cblxuLnNwaW5uZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA1MS4ycHg7XG4gIGhlaWdodDogNTEuMnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtMjUuNnB4O1xuICBsaW5lLWhlaWdodDogMTAwJTtcbn1cblxuLnNwaW5uZXIgLnRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIG1hcmdpbi10b3A6IDEuNmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuXG4uc3Bpbm5lciAuc3Bpbm5lci1jaXJjbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogIzE4MTgxOCB0cmFuc3BhcmVudCAjMTgxODE4IHRyYW5zcGFyZW50O1xufVxuXG4uc3Bpbm5lciAuc3Bpbm5lci1jaXJjbGUuc3Bpbm5lci1jaXJjbGUtb3V0ZXIge1xuICB3aWR0aDogNTEuMnB4O1xuICBoZWlnaHQ6IDUxLjJweDtcbiAgYm9yZGVyLXdpZHRoOiAxMi44cHg7XG4gIHRvcDogLTYuNHB4O1xuICBsZWZ0OiAtNi40cHg7XG4gIG9wYWNpdHk6IDAuMjtcbiAgLW1zLWZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT01MCk7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBzcGlubmVyLXJvdGF0ZS1vdXRlciAycyAwcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uOiBzcGlubmVyLXJvdGF0ZS1vdXRlciAycyAwcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLnNwaW5uZXIgLnNwaW5uZXItY2lyY2xlLnNwaW5uZXItY2lyY2xlLWlubmVyIHtcbiAgd2lkdGg6IDI1LjZweDtcbiAgaGVpZ2h0OiAyNS42cHg7XG4gIGJvcmRlci13aWR0aDogNi40cHg7XG4gIHRvcDogMTIuOHB4O1xuICBsZWZ0OiAxMi44cHg7XG4gIG9wYWNpdHk6IDA7XG4gIC1tcy1maWx0ZXI6IGFscGhhKG9wYWNpdHk9NzApO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NzApO1xuICAtd2Via2l0LWFuaW1hdGlvbjogc3Bpbm5lci1yb3RhdGUtaW5uZXIgM3MgMHMgbGluZWFyIGluZmluaXRlO1xuICBhbmltYXRpb246IHNwaW5uZXItcm90YXRlLWlubmVyIDNzIDBzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLnNwaW5uZXIgLnNwaW5uZXItY2lyY2xlLnNwaW5uZXItY2lyY2xlLXNpbmdsZS0xIHtcbiAgd2lkdGg6IDM4LjRweDtcbiAgaGVpZ2h0OiAzOC40cHg7XG4gIGJvcmRlci13aWR0aDogOS42cHg7XG4gIHRvcDogMy4ycHg7XG4gIGxlZnQ6IDMuMnB4O1xuICBvcGFjaXR5OiAwLjk7XG4gIC1tcy1maWx0ZXI6IGFscGhhKG9wYWNpdHk9MzApO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MzApO1xuICAtd2Via2l0LWFuaW1hdGlvbjogc3Bpbm5lci1yb3RhdGUtc2luZ2xlLTEgNXMgMHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIGFuaW1hdGlvbjogc3Bpbm5lci1yb3RhdGUtc2luZ2xlLTEgNXMgMHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzRkYzNmZjtcbiAgYm94LXNoYWRvdzogMnB4IDAgMnB4ICM0ZGMzZmY7XG59XG5cbi5zcGlubmVyIC5zcGlubmVyLWNpcmNsZS5zcGlubmVyLWNpcmNsZS1zaW5nbGUtMiB7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci13aWR0aDogMjUuNnB4O1xuICB0b3A6IDYuNHB4O1xuICBsZWZ0OiA2LjRweDtcbiAgb3BhY2l0eTogMDtcbiAgLW1zLWZpbHRlcjogYWxwaGEob3BhY2l0eT0zMCk7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0zMCk7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBzcGlubmVyLXJvdGF0ZS1zaW5nbGUtMiA3cyAwcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uOiBzcGlubmVyLXJvdGF0ZS1zaW5nbGUtMiA3cyAwcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgYm9yZGVyLWNvbG9yOiAjNGRjM2ZmIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwIC0xMnB4IDRweCAjNGRjM2ZmO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3Bpbm5lci1yb3RhdGUtb3V0ZXIge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDM2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDM2MGRlZyk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc3Bpbm5lci1yb3RhdGUtb3V0ZXIge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDM2MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDM2MGRlZyk7XG4gIH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyBzcGlubmVyLXJvdGF0ZS1pbm5lciB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigzMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDMwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigzOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWigzOTBkZWcpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHNwaW5uZXItcm90YXRlLWlubmVyIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDMwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMzBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDM5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDM5MGRlZyk7XG4gIH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyBzcGlubmVyLXJvdGF0ZS1zaW5nbGUtMSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWig1NmRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDU2ZGVnKTtcbiAgfVxuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKC0xMzJkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWigtMTMyZGVnKTtcbiAgfVxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKC0yNTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWigtMjUwZGVnKTtcbiAgfVxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDQwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooNDBkZWcpO1xuICB9XG4gIDcwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooLTgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooLTgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWig1NmRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDU2ZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyBzcGlubmVyLXJvdGF0ZS1zaW5nbGUtMSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWig1NmRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDU2ZGVnKTtcbiAgfVxuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKC0xMzJkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWigtMTMyZGVnKTtcbiAgfVxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKC0yNTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWigtMjUwZGVnKTtcbiAgfVxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDQwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooNDBkZWcpO1xuICB9XG4gIDcwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooLTgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooLTgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWig1NmRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDU2ZGVnKTtcbiAgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIHNwaW5uZXItcm90YXRlLXNpbmdsZS0yIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKC0yNGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKC0yNGRlZyk7XG4gIH1cbiAgMTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigxNDJkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWigxNDJkZWcpO1xuICB9XG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooLTg3ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooLTg3ZGVnKTtcbiAgfVxuICAzMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKC0zNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWigtMzQ1ZGVnKTtcbiAgfVxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDg2ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooODZkZWcpO1xuICB9XG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooMTc1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMTc1ZGVnKTtcbiAgfVxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKC0yNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWigtMjQ1ZGVnKTtcbiAgfVxuICA3MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDRkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWig0ZGVnKTtcbiAgfVxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKC0xMzJkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWigtMTMyZGVnKTtcbiAgfVxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDM0NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDM0NWRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooLTI0ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooLTI0ZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyBzcGlubmVyLXJvdGF0ZS1zaW5nbGUtMiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigtMjRkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWigtMjRkZWcpO1xuICB9XG4gIDEwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooMTQyZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMTQyZGVnKTtcbiAgfVxuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKC04N2RlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKC04N2RlZyk7XG4gIH1cbiAgMzAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigtMzQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooLTM0NWRlZyk7XG4gIH1cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWig4NmRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDg2ZGVnKTtcbiAgfVxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDE3NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDE3NWRlZyk7XG4gIH1cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigtMjQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooLTI0NWRlZyk7XG4gIH1cbiAgNzAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWig0ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooNGRlZyk7XG4gIH1cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigtMTMyZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooLTEzMmRlZyk7XG4gIH1cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigzNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWigzNDVkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKC0yNGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKC0yNGRlZyk7XG4gIH1cbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-loading-spin',\n templateUrl: './loading-spin.component.html',\n styleUrls: ['./loading-spin.component.scss']\n})\nexport class LoadingSpinComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \"/*https://codepen.io/uchardon/pen/VEBbdw*/\\n.loader {\\n width: 20vw;\\n max-height: 90vh;\\n -ms-transform-origin: 50% 50%;\\n transform-origin: 50% 50%;\\n overflow: visible;\\n}\\n.loader .ci1 {\\n fill: var(--higru);\\n -webkit-animation: toBig 3s infinite -1.5s;\\n animation: toBig 3s infinite -1.5s;\\n transform-box: fill-box;\\n -ms-transform-origin: 50% 50%;\\n transform-origin: 50% 50%;\\n}\\n.loader .ciw {\\n transform-box: fill-box;\\n -ms-transform-origin: 50% 50%;\\n transform-origin: 50% 50%;\\n -webkit-animation: breath 3s infinite;\\n animation: breath 3s infinite;\\n}\\n.loader .ci2 {\\n fill: var(--higru);\\n -webkit-animation: toBig2 3s infinite;\\n animation: toBig2 3s infinite;\\n transform-box: fill-box;\\n -ms-transform-origin: 50% 50%;\\n transform-origin: 50% 50%;\\n}\\n.points {\\n -webkit-animation: rot 3s infinite;\\n animation: rot 3s infinite;\\n transform-box: fill-box;\\n -ms-transform-origin: 50% 50%;\\n transform-origin: 50% 50%;\\n}\\n@-webkit-keyframes rot {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 30% {\\n transform: rotate(360deg);\\n }\\n 50% {\\n transform: rotate(360deg);\\n }\\n 80% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes rot {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 30% {\\n transform: rotate(360deg);\\n }\\n 50% {\\n transform: rotate(360deg);\\n }\\n 80% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(0deg);\\n }\\n}\\n@-webkit-keyframes toBig {\\n 0% {\\n transform: scale(1) translateX(0px);\\n }\\n 30% {\\n transform: scale(1) translateX(0px);\\n }\\n 50% {\\n transform: scale(10) translateX(-4.5px);\\n }\\n 80% {\\n transform: scale(10) translateX(-4.5px);\\n }\\n 100% {\\n transform: scale(1) translateX(0px);\\n }\\n}\\n@keyframes toBig {\\n 0% {\\n transform: scale(1) translateX(0px);\\n }\\n 30% {\\n transform: scale(1) translateX(0px);\\n }\\n 50% {\\n transform: scale(10) translateX(-4.5px);\\n }\\n 80% {\\n transform: scale(10) translateX(-4.5px);\\n }\\n 100% {\\n transform: scale(1) translateX(0px);\\n }\\n}\\n@-webkit-keyframes toBig2 {\\n 0% {\\n transform: scale(1) translateX(0px);\\n }\\n 30% {\\n transform: scale(1) translateX(0px);\\n }\\n 50% {\\n transform: scale(10) translateX(4.5px);\\n }\\n 80% {\\n transform: scale(10) translateX(4.5px);\\n }\\n 100% {\\n transform: scale(1) translateX(0px);\\n }\\n}\\n@keyframes toBig2 {\\n 0% {\\n transform: scale(1) translateX(0px);\\n }\\n 30% {\\n transform: scale(1) translateX(0px);\\n }\\n 50% {\\n transform: scale(10) translateX(4.5px);\\n }\\n 80% {\\n transform: scale(10) translateX(4.5px);\\n }\\n 100% {\\n transform: scale(1) translateX(0px);\\n }\\n}\\n@-webkit-keyframes breath {\\n 15% {\\n transform: scale(1);\\n }\\n 40% {\\n transform: scale(1.1);\\n }\\n 65% {\\n transform: scale(1);\\n }\\n 90% {\\n transform: scale(1.1);\\n }\\n}\\n@keyframes breath {\\n 15% {\\n transform: scale(1);\\n }\\n 40% {\\n transform: scale(1.1);\\n }\\n 65% {\\n transform: scale(1);\\n }\\n 90% {\\n transform: scale(1.1);\\n }\\n}\\n@font-face {\\n font-family: \\\"Roboto\\\";\\n font-style: italic;\\n font-weight: 400;\\n src: local(\\\"Roboto Italic\\\"), local(\\\"Roboto-Italic\\\"), url(https://fonts.gstatic.com/s/roboto/v20/KFOkCnqEu92Fr1Mu51xIIzc.ttf) format(\\\"truetype\\\");\\n}\\n@font-face {\\n font-family: \\\"Roboto\\\";\\n font-style: normal;\\n font-weight: 400;\\n src: local(\\\"Roboto\\\"), local(\\\"Roboto-Regular\\\"), url(https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu4mxP.ttf) format(\\\"truetype\\\");\\n}\\n@font-face {\\n font-family: \\\"Roboto\\\";\\n font-style: normal;\\n font-weight: 700;\\n src: local(\\\"Roboto Bold\\\"), local(\\\"Roboto-Bold\\\"), url(https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfBBc9.ttf) format(\\\"truetype\\\");\\n}\\nhtml {\\n height: 100%;\\n background: var(--higru);\\n color: #fff;\\n}\\nbody {\\n font-family: Roboto, sans-serif;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -ms-flex-align: center;\\n align-items: center;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n height: 100%;\\n}\\n*,\\n*:before,\\n*:after {\\n position: relative;\\n box-sizing: border-box;\\n --higru: #1a2a3a;\\n}\\n.dwf,\\n.share {\\n position: fixed;\\n bottom: 4px;\\n right: 10px;\\n background-color: #0003;\\n padding: 3px;\\n border-radius: 3px;\\n}\\n.dwf .btn,\\n.share .btn {\\n color: #fff;\\n text-decoration: none;\\n}\\n.dwf a,\\n.share a {\\n color: #fff;\\n text-decoration: none;\\n}\\n.share {\\n right: auto;\\n left: 10px;\\n border-radius: 50%;\\n padding: 5px;\\n}\\n.share .twitter {\\n width: 20px;\\n fill: #fff;\\n stroke: none;\\n overflow: visible;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvc3Bpbm5lcnMvbWFnbmlmeS1zcGluL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9zcmNcXGFwcFxcc2hhcmVkXFxjb21wb25lbnRzXFxzcGlubmVyc1xcbWFnbmlmeS1zcGluXFxtYWduaWZ5LXNwaW4uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL3NwaW5uZXJzL21hZ25pZnktc3Bpbi9tYWduaWZ5LXNwaW4uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseUNBQUE7QUFDQTtFQUNFLFdBQUE7RUFDQSxnQkFBQTtFQUNBLDZCQUFBO01BQUEseUJBQUE7RUFDQSxpQkFBQTtBQ0NGO0FERUE7RUFDRSxrQkFBQTtFQUNBLDBDQUFBO1VBQUEsa0NBQUE7RUFDQSx1QkFBQTtFQUNBLDZCQUFBO01BQUEseUJBQUE7QUNDRjtBREVBO0VBQ0UsdUJBQUE7RUFDQSw2QkFBQTtNQUFBLHlCQUFBO0VBQ0EscUNBQUE7VUFBQSw2QkFBQTtBQ0NGO0FERUE7RUFDRSxrQkFBQTtFQUNBLHFDQUFBO1VBQUEsNkJBQUE7RUFDQSx1QkFBQTtFQUNBLDZCQUFBO01BQUEseUJBQUE7QUNDRjtBREVBO0VBQ0Usa0NBQUE7VUFBQSwwQkFBQTtFQUNBLHVCQUFBO0VBQ0EsNkJBQUE7TUFBQSx5QkFBQTtBQ0NGO0FERUE7RUFDRTtJQUNFLHVCQUFBO0VDQ0Y7RURFQTtJQUNFLHlCQUFBO0VDQUY7RURHQTtJQUNFLHlCQUFBO0VDREY7RURJQTtJQUNFLHVCQUFBO0VDRkY7RURLQTtJQUNFLHVCQUFBO0VDSEY7QUFDRjtBRGhCQTtFQUNFO0lBQ0UsdUJBQUE7RUNDRjtFREVBO0lBQ0UseUJBQUE7RUNBRjtFREdBO0lBQ0UseUJBQUE7RUNERjtFRElBO0lBQ0UsdUJBQUE7RUNGRjtFREtBO0lBQ0UsdUJBQUE7RUNIRjtBQUNGO0FETUE7RUFDRTtJQUNFLG1DQUFBO0VDSkY7RURPQTtJQUNFLG1DQUFBO0VDTEY7RURRQTtJQUNFLHVDQUFBO0VDTkY7RURTQTtJQUNFLHVDQUFBO0VDUEY7RURVQTtJQUNFLG1DQUFBO0VDUkY7QUFDRjtBRFhBO0VBQ0U7SUFDRSxtQ0FBQTtFQ0pGO0VET0E7SUFDRSxtQ0FBQTtFQ0xGO0VEUUE7SUFDRSx1Q0FBQTtFQ05GO0VEU0E7SUFDRSx1Q0FBQTtFQ1BGO0VEVUE7SUFDRSxtQ0FBQTtFQ1JGO0FBQ0Y7QURXQTtFQUNFO0lBQ0UsbUNBQUE7RUNURjtFRFlBO0lBQ0UsbUNBQUE7RUNWRjtFRGFBO0lBQ0Usc0NBQUE7RUNYRjtFRGNBO0lBQ0Usc0NBQUE7RUNaRjtFRGVBO0lBQ0UsbUNBQUE7RUNiRjtBQUNGO0FETkE7RUFDRTtJQUNFLG1DQUFBO0VDVEY7RURZQTtJQUNFLG1DQUFBO0VDVkY7RURhQTtJQUNFLHNDQUFBO0VDWEY7RURjQTtJQUNFLHNDQUFBO0VDWkY7RURlQTtJQUNFLG1DQUFBO0VDYkY7QUFDRjtBRGdCQTtFQUNFO0lBQ0UsbUJBQUE7RUNkRjtFRGlCQTtJQUNFLHFCQUFBO0VDZkY7RURrQkE7SUFDRSxtQkFBQTtFQ2hCRjtFRG1CQTtJQUNFLHFCQUFBO0VDakJGO0FBQ0Y7QURFQTtFQUNFO0lBQ0UsbUJBQUE7RUNkRjtFRGlCQTtJQUNFLHFCQUFBO0VDZkY7RURrQkE7SUFDRSxtQkFBQTtFQ2hCRjtFRG1CQTtJQUNFLHFCQUFBO0VDakJGO0FBQ0Y7QURvQkE7RUFDRSxxQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSwrSUFBQTtBQ2xCRjtBRHFCQTtFQUNFLHFCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLHNJQUFBO0FDbkJGO0FEc0JBO0VBQ0UscUJBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsNElBQUE7QUNwQkY7QUR1QkE7RUFDRSxZQUFBO0VBQ0Esd0JBQUE7RUFDQSxXQUFBO0FDckJGO0FEd0JBO0VBQ0UsK0JBQUE7RUFDQSxvQkFBQTtFQUFBLGFBQUE7RUFDQSxxQkFBQTtNQUFBLHVCQUFBO0VBQ0Esc0JBQUE7TUFBQSxtQkFBQTtFQUNBLDBCQUFBO01BQUEsc0JBQUE7RUFDQSxZQUFBO0FDckJGO0FEd0JBOzs7RUFHRSxrQkFBQTtFQUNBLHNCQUFBO0VBQ0EsZ0JBQUE7QUNyQkY7QUR3QkE7O0VBRUUsZUFBQTtFQUNBLFdBQUE7RUFDQSxXQUFBO0VBQ0EsdUJBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7QUNyQkY7QUR3QkE7O0VBRUUsV0FBQTtFQUNBLHFCQUFBO0FDckJGO0FEd0JBOztFQUVFLFdBQUE7RUFDQSxxQkFBQTtBQ3JCRjtBRHdCQTtFQUNFLFdBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0FDckJGO0FEd0JBO0VBQ0UsV0FBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7QUNyQkYiLCJmaWxlIjoic3JjL2FwcC9zaGFyZWQvY29tcG9uZW50cy9zcGlubmVycy9tYWduaWZ5LXNwaW4vbWFnbmlmeS1zcGluLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLypodHRwczovL2NvZGVwZW4uaW8vdWNoYXJkb24vcGVuL1ZFQmJkdyovXHJcbi5sb2FkZXIge1xyXG4gIHdpZHRoOiAyMHZ3O1xyXG4gIG1heC1oZWlnaHQ6IDkwdmg7XHJcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcclxuICBvdmVyZmxvdzogdmlzaWJsZTtcclxufVxyXG5cclxuLmxvYWRlciAuY2kxIHtcclxuICBmaWxsOiB2YXIoLS1oaWdydSk7XHJcbiAgYW5pbWF0aW9uOiB0b0JpZyAzcyBpbmZpbml0ZSAtMS41cztcclxuICB0cmFuc2Zvcm0tYm94OiBmaWxsLWJveDtcclxuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xyXG59XHJcblxyXG4ubG9hZGVyIC5jaXcge1xyXG4gIHRyYW5zZm9ybS1ib3g6IGZpbGwtYm94O1xyXG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XHJcbiAgYW5pbWF0aW9uOiBicmVhdGggM3MgaW5maW5pdGU7XHJcbn1cclxuXHJcbi5sb2FkZXIgLmNpMiB7XHJcbiAgZmlsbDogdmFyKC0taGlncnUpO1xyXG4gIGFuaW1hdGlvbjogdG9CaWcyIDNzIGluZmluaXRlO1xyXG4gIHRyYW5zZm9ybS1ib3g6IGZpbGwtYm94O1xyXG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XHJcbn1cclxuXHJcbi5wb2ludHMge1xyXG4gIGFuaW1hdGlvbjogcm90IDNzIGluZmluaXRlO1xyXG4gIHRyYW5zZm9ybS1ib3g6IGZpbGwtYm94O1xyXG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgcm90IHtcclxuICAwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICB9XHJcblxyXG4gIDMwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xyXG4gIH1cclxuXHJcbiAgNTAlIHtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XHJcbiAgfVxyXG5cclxuICA4MCUge1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgfVxyXG5cclxuICAxMDAlIHtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyB0b0JpZyB7XHJcbiAgMCUge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVYKDBweCk7XHJcbiAgfVxyXG5cclxuICAzMCUge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVYKDBweCk7XHJcbiAgfVxyXG5cclxuICA1MCUge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxMCkgdHJhbnNsYXRlWCgtNC41cHgpO1xyXG4gIH1cclxuXHJcbiAgODAlIHtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMTApIHRyYW5zbGF0ZVgoLTQuNXB4KTtcclxuICB9XHJcblxyXG4gIDEwMCUge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVYKDBweCk7XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIHRvQmlnMiB7XHJcbiAgMCUge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVYKDBweCk7XHJcbiAgfVxyXG5cclxuICAzMCUge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVYKDBweCk7XHJcbiAgfVxyXG5cclxuICA1MCUge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxMCkgdHJhbnNsYXRlWCg0LjVweCk7XHJcbiAgfVxyXG5cclxuICA4MCUge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxMCkgdHJhbnNsYXRlWCg0LjVweCk7XHJcbiAgfVxyXG5cclxuICAxMDAlIHtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWCgwcHgpO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBicmVhdGgge1xyXG4gIDE1JSB7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG4gIH1cclxuXHJcbiAgNDAlIHtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcclxuICB9XHJcblxyXG4gIDY1JSB7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG4gIH1cclxuXHJcbiAgOTAlIHtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcclxuICB9XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICBzcmM6IGxvY2FsKCdSb2JvdG8gSXRhbGljJyksIGxvY2FsKCdSb2JvdG8tSXRhbGljJyksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3YyMC9LRk9rQ25xRXU5MkZyMU11NTF4SUl6Yy50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG4gIHNyYzogbG9jYWwoJ1JvYm90bycpLCBsb2NhbCgnUm9ib3RvLVJlZ3VsYXInKSwgdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG8vdjIwL0tGT21DbnFFdTkyRnIxTXU0bXhQLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ1JvYm90byc7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgc3JjOiBsb2NhbCgnUm9ib3RvIEJvbGQnKSwgbG9jYWwoJ1JvYm90by1Cb2xkJyksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3YyMC9LRk9sQ25xRXU5MkZyMU1tV1VsZkJCYzkudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XHJcbn1cclxuXHJcbmh0bWwge1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1oaWdydSk7XHJcbiAgY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbmJvZHkge1xyXG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIHNhbnMtc2VyaWY7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4qLFxyXG4qOmJlZm9yZSxcclxuKjphZnRlciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgLS1oaWdydTogIzFhMmEzYTtcclxufVxyXG5cclxuLmR3ZixcclxuLnNoYXJlIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgYm90dG9tOiA0cHg7XHJcbiAgcmlnaHQ6IDEwcHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDM7XHJcbiAgcGFkZGluZzogM3B4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxufVxyXG5cclxuLmR3ZiAuYnRuLFxyXG4uc2hhcmUgLmJ0biB7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG4uZHdmIGEsXHJcbi5zaGFyZSBhIHtcclxuICBjb2xvcjogI2ZmZjtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbn1cclxuXHJcbi5zaGFyZSB7XHJcbiAgcmlnaHQ6IGF1dG87XHJcbiAgbGVmdDogMTBweDtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgcGFkZGluZzogNXB4O1xyXG59XHJcblxyXG4uc2hhcmUgLnR3aXR0ZXIge1xyXG4gIHdpZHRoOiAyMHB4O1xyXG4gIGZpbGw6ICNmZmY7XHJcbiAgc3Ryb2tlOiBub25lO1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xyXG59XHJcbiIsIi8qaHR0cHM6Ly9jb2RlcGVuLmlvL3VjaGFyZG9uL3Blbi9WRUJiZHcqL1xuLmxvYWRlciB7XG4gIHdpZHRoOiAyMHZ3O1xuICBtYXgtaGVpZ2h0OiA5MHZoO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLmxvYWRlciAuY2kxIHtcbiAgZmlsbDogdmFyKC0taGlncnUpO1xuICBhbmltYXRpb246IHRvQmlnIDNzIGluZmluaXRlIC0xLjVzO1xuICB0cmFuc2Zvcm0tYm94OiBmaWxsLWJveDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbn1cblxuLmxvYWRlciAuY2l3IHtcbiAgdHJhbnNmb3JtLWJveDogZmlsbC1ib3g7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7XG4gIGFuaW1hdGlvbjogYnJlYXRoIDNzIGluZmluaXRlO1xufVxuXG4ubG9hZGVyIC5jaTIge1xuICBmaWxsOiB2YXIoLS1oaWdydSk7XG4gIGFuaW1hdGlvbjogdG9CaWcyIDNzIGluZmluaXRlO1xuICB0cmFuc2Zvcm0tYm94OiBmaWxsLWJveDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbn1cblxuLnBvaW50cyB7XG4gIGFuaW1hdGlvbjogcm90IDNzIGluZmluaXRlO1xuICB0cmFuc2Zvcm0tYm94OiBmaWxsLWJveDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbn1cblxuQGtleWZyYW1lcyByb3Qge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMzAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHRvQmlnIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWCgwcHgpO1xuICB9XG4gIDMwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVYKDBweCk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEwKSB0cmFuc2xhdGVYKC00LjVweCk7XG4gIH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEwKSB0cmFuc2xhdGVYKC00LjVweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVYKDBweCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgdG9CaWcyIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWCgwcHgpO1xuICB9XG4gIDMwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVYKDBweCk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEwKSB0cmFuc2xhdGVYKDQuNXB4KTtcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMTApIHRyYW5zbGF0ZVgoNC41cHgpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWCgwcHgpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGJyZWF0aCB7XG4gIDE1JSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgfVxuICA2NSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIH1cbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IGxvY2FsKFwiUm9ib3RvIEl0YWxpY1wiKSwgbG9jYWwoXCJSb2JvdG8tSXRhbGljXCIpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92MjAvS0ZPa0NucUV1OTJGcjFNdTUxeElJemMudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IGxvY2FsKFwiUm9ib3RvXCIpLCBsb2NhbChcIlJvYm90by1SZWd1bGFyXCIpLCB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL3JvYm90by92MjAvS0ZPbUNucUV1OTJGcjFNdTRteFAudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IGxvY2FsKFwiUm9ib3RvIEJvbGRcIiksIGxvY2FsKFwiUm9ib3RvLUJvbGRcIiksIHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3Mvcm9ib3RvL3YyMC9LRk9sQ25xRXU5MkZyMU1tV1VsZkJCYzkudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbn1cbmh0bWwge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWhpZ3J1KTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtLWhpZ3J1OiAjMWEyYTNhO1xufVxuXG4uZHdmLFxuLnNoYXJlIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDRweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAzO1xuICBwYWRkaW5nOiAzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLmR3ZiAuYnRuLFxuLnNoYXJlIC5idG4ge1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uZHdmIGEsXG4uc2hhcmUgYSB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5zaGFyZSB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBhZGRpbmc6IDVweDtcbn1cblxuLnNoYXJlIC50d2l0dGVyIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGZpbGw6ICNmZmY7XG4gIHN0cm9rZTogbm9uZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-magnify-spin',\n templateUrl: './magnify-spin.component.html',\n styleUrls: ['./magnify-spin.component.scss']\n})\nexport class MagnifySpinComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \"/*https://tobiasahlin.com/spinkit/*/\\n/*https://codepen.io/takeradi/pen/MyawBN - three-spin*/\\nbody {\\n min-height: 100vh;\\n padding: 0px;\\n margin: 0px;\\n}\\n.spin-wrapper {\\n position: relative;\\n width: 100%;\\n height: 100vh;\\n background: #080705;\\n}\\n.spin-wrapper .spinner {\\n position: absolute;\\n height: 60px;\\n width: 60px;\\n border: 3px solid transparent;\\n border-top-color: #a04668;\\n top: 50%;\\n left: 50%;\\n margin: -30px;\\n border-radius: 50%;\\n -webkit-animation: spin 2s linear infinite;\\n animation: spin 2s linear infinite;\\n}\\n.spin-wrapper .spinner:before, .spin-wrapper .spinner:after {\\n content: \\\"\\\";\\n position: absolute;\\n border: 3px solid transparent;\\n border-radius: 50%;\\n}\\n.spin-wrapper .spinner:before {\\n border-top-color: #254e70;\\n top: -12px;\\n left: -12px;\\n right: -12px;\\n bottom: -12px;\\n -webkit-animation: spin 3s linear infinite;\\n animation: spin 3s linear infinite;\\n}\\n.spin-wrapper .spinner:after {\\n border-top-color: #fffbfe;\\n top: 6px;\\n left: 6px;\\n right: 6px;\\n bottom: 6px;\\n -webkit-animation: spin 4s linear infinite;\\n animation: spin 4s linear infinite;\\n}\\n@-webkit-keyframes spin {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes spin {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvc3Bpbm5lcnMvdGhyZWUtc3Bpbi9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvc3JjXFxhcHBcXHNoYXJlZFxcY29tcG9uZW50c1xcc3Bpbm5lcnNcXHRocmVlLXNwaW5cXHRocmVlLXNwaW4uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL3NwaW5uZXJzL3RocmVlLXNwaW4vdGhyZWUtc3Bpbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQ0FBQTtBQUVBLHNEQUFBO0FBQ0E7RUFDRSxpQkFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0FDQUY7QURHQTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLGFBQUE7RUFDQSxtQkFBQTtBQ0FGO0FER0E7RUFDRSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0EsNkJBQUE7RUFDQSx5QkFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsYUFBQTtFQUNBLGtCQUFBO0VBQ0EsMENBQUE7VUFBQSxrQ0FBQTtBQ0FGO0FER0E7RUFDRSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSw2QkFBQTtFQUNBLGtCQUFBO0FDQUY7QURHQTtFQUNFLHlCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLDBDQUFBO1VBQUEsa0NBQUE7QUNBRjtBREdBO0VBQ0UseUJBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsMENBQUE7VUFBQSxrQ0FBQTtBQ0FGO0FER0E7RUFDRTtJQUNFLHVCQUFBO0VDQUY7RURHQTtJQUNFLHlCQUFBO0VDREY7QUFDRjtBRE5BO0VBQ0U7SUFDRSx1QkFBQTtFQ0FGO0VER0E7SUFDRSx5QkFBQTtFQ0RGO0FBQ0YiLCJmaWxlIjoic3JjL2FwcC9zaGFyZWQvY29tcG9uZW50cy9zcGlubmVycy90aHJlZS1zcGluL3RocmVlLXNwaW4uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKmh0dHBzOi8vdG9iaWFzYWhsaW4uY29tL3NwaW5raXQvKi9cclxuXHJcbi8qaHR0cHM6Ly9jb2RlcGVuLmlvL3Rha2VyYWRpL3Blbi9NeWF3Qk4gLSB0aHJlZS1zcGluKi9cclxuYm9keSB7XHJcbiAgbWluLWhlaWdodDogMTAwdmg7XHJcbiAgcGFkZGluZzogMHB4O1xyXG4gIG1hcmdpbjogMHB4O1xyXG59XHJcblxyXG4uc3Bpbi13cmFwcGVyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDB2aDtcclxuICBiYWNrZ3JvdW5kOiAjMDgwNzA1O1xyXG59XHJcblxyXG4uc3Bpbi13cmFwcGVyIC5zcGlubmVyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgaGVpZ2h0OiA2MHB4O1xyXG4gIHdpZHRoOiA2MHB4O1xyXG4gIGJvcmRlcjogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlci10b3AtY29sb3I6ICNhMDQ2Njg7XHJcbiAgdG9wOiA1MCU7XHJcbiAgbGVmdDogNTAlO1xyXG4gIG1hcmdpbjogLTMwcHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7XHJcbn1cclxuXHJcbi5zcGluLXdyYXBwZXIgLnNwaW5uZXI6YmVmb3JlLCAuc3Bpbi13cmFwcGVyIC5zcGlubmVyOmFmdGVyIHtcclxuICBjb250ZW50OiBcIlwiO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3JkZXI6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbn1cclxuXHJcbi5zcGluLXdyYXBwZXIgLnNwaW5uZXI6YmVmb3JlIHtcclxuICBib3JkZXItdG9wLWNvbG9yOiAjMjU0ZTcwO1xyXG4gIHRvcDogLTEycHg7XHJcbiAgbGVmdDogLTEycHg7XHJcbiAgcmlnaHQ6IC0xMnB4O1xyXG4gIGJvdHRvbTogLTEycHg7XHJcbiAgYW5pbWF0aW9uOiBzcGluIDNzIGxpbmVhciBpbmZpbml0ZTtcclxufVxyXG5cclxuLnNwaW4td3JhcHBlciAuc3Bpbm5lcjphZnRlciB7XHJcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZmJmZTtcclxuICB0b3A6IDZweDtcclxuICBsZWZ0OiA2cHg7XHJcbiAgcmlnaHQ6IDZweDtcclxuICBib3R0b206IDZweDtcclxuICBhbmltYXRpb246IHNwaW4gNHMgbGluZWFyIGluZmluaXRlO1xyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIHNwaW4ge1xyXG4gIDAlIHtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gIH1cclxuXHJcbiAgMTAwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xyXG4gIH1cclxufVxyXG4iLCIvKmh0dHBzOi8vdG9iaWFzYWhsaW4uY29tL3NwaW5raXQvKi9cbi8qaHR0cHM6Ly9jb2RlcGVuLmlvL3Rha2VyYWRpL3Blbi9NeWF3Qk4gLSB0aHJlZS1zcGluKi9cbmJvZHkge1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgcGFkZGluZzogMHB4O1xuICBtYXJnaW46IDBweDtcbn1cblxuLnNwaW4td3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwdmg7XG4gIGJhY2tncm91bmQ6ICMwODA3MDU7XG59XG5cbi5zcGluLXdyYXBwZXIgLnNwaW5uZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogNjBweDtcbiAgd2lkdGg6IDYwcHg7XG4gIGJvcmRlcjogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wLWNvbG9yOiAjYTA0NjY4O1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0zMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbi5zcGluLXdyYXBwZXIgLnNwaW5uZXI6YmVmb3JlLCAuc3Bpbi13cmFwcGVyIC5zcGlubmVyOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXI6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4uc3Bpbi13cmFwcGVyIC5zcGlubmVyOmJlZm9yZSB7XG4gIGJvcmRlci10b3AtY29sb3I6ICMyNTRlNzA7XG4gIHRvcDogLTEycHg7XG4gIGxlZnQ6IC0xMnB4O1xuICByaWdodDogLTEycHg7XG4gIGJvdHRvbTogLTEycHg7XG4gIGFuaW1hdGlvbjogc3BpbiAzcyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbi5zcGluLXdyYXBwZXIgLnNwaW5uZXI6YWZ0ZXIge1xuICBib3JkZXItdG9wLWNvbG9yOiAjZmZmYmZlO1xuICB0b3A6IDZweDtcbiAgbGVmdDogNnB4O1xuICByaWdodDogNnB4O1xuICBib3R0b206IDZweDtcbiAgYW5pbWF0aW9uOiBzcGluIDRzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBzcGluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-three-spin',\n templateUrl: './three-spin.component.html',\n styleUrls: ['./three-spin.component.scss']\n})\nexport class ThreeSpinComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \".flex-chks-container {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n /*justify-content: flex-end;\\n align-items: center;\\n min-height: 48px;\\n padding: 0 8px;*/\\n}\\n\\n.align-center-chks {\\n -ms-flex-align: center;\\n align-items: center;\\n}\\n\\n.form-chks {\\n display: -ms-flexbox;\\n display: flex;\\n border: 1px solid #d4d4d4;\\n border-radius: 4px;\\n padding: 20px;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n}\\n\\n.element-chks {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n margin-bottom: 10px;\\n width: 100%;\\n margin-left: 15px;\\n}\\n\\n.element-chks label-chks {\\n text-align: left;\\n margin: 0px 10px;\\n padding: 10px 0px;\\n}\\n\\n.multi-checkbox {\\n margin: 0px 5px;\\n}\\n\\nh2 {\\n background-color: #1818cc;\\n color: white;\\n padding: 10px 10px;\\n margin-top: 0px;\\n}\\n\\n.text-center {\\n text-align: center;\\n}\\n\\nlabel {\\n padding: 4px 6px;\\n line-height: 190%;\\n outline-style: none;\\n transition: all 0.6s;\\n}\\n\\n/*.hiddenCB div {\\n display: inline;\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n}*/\\n\\n/*.hiddenCB input[type=\\\"checkbox\\\"],\\n.hiddenCB input[type=\\\"radio\\\"] {\\n display: none;\\n}\\n\\n.hiddenCB label {\\n cursor: pointer;\\n}\\n\\n.hiddenCB input[type=\\\"checkbox\\\"] + label:hover {\\n background-color: rgba(255,0,0,0.3);\\n}\\n\\n.hiddenCB input[type=\\\"checkbox\\\"]:checked + label {\\n background-color: rgba(255,0,0,0.3);\\n}\\n\\n.hiddenCB input[type=\\\"checkbox\\\"]:checked + label:hover {\\n background-color: rgba(255,0,0,0.3);\\n}*/\\n\\n/*https://stackoverflow.com/questions/7398462/css-background-color-attribute-not-working-on-checkbox-inside-div*/\\n\\n/*content: \\\"\\\\2714\\\";*/\\n\\n/*input[type=\\\"checkbox\\\"]:checked { \\n background: red;\\n}*/\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvc3ViLXJlc3VsdHMtc2VsZWN0aW9uL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9zcmNcXGFwcFxcc2hhcmVkXFxjb21wb25lbnRzXFxzdWItcmVzdWx0cy1zZWxlY3Rpb25cXHN1Yi1yZXN1bHRzLXNlbGVjdGlvbi5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvc3ViLXJlc3VsdHMtc2VsZWN0aW9uL3N1Yi1yZXN1bHRzLXNlbGVjdGlvbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLG9CQUFBO0VBQUEsYUFBQTtFQUNBLG1CQUFBO01BQUEsZUFBQTtFQUNBOzs7a0JBQUE7QUNJRjs7QURFQTtFQUNFLHNCQUFBO01BQUEsbUJBQUE7QUNDRjs7QURFQTtFQUNFLG9CQUFBO0VBQUEsYUFBQTtFQUNBLHlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBO0VBQ0EsbUJBQUE7TUFBQSxlQUFBO0VBQ0EsMEJBQUE7TUFBQSxzQkFBQTtBQ0NGOztBREVBO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0EsMEJBQUE7TUFBQSxzQkFBQTtFQUNBLG1CQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0FDQ0Y7O0FEQ0U7RUFDRSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7QUNDSjs7QURHQTtFQUNFLGVBQUE7QUNBRjs7QURHQTtFQUNFLHlCQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtBQ0FGOztBREdBO0VBQ0Usa0JBQUE7QUNBRjs7QURNQTtFQUNFLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0FDSEY7O0FETUE7Ozs7O0VBQUE7O0FBUUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFBQTs7QUFzQkEsZ0hBQUE7O0FBQ0Esb0JBQUE7O0FBQ0E7O0VBQUEiLCJmaWxlIjoic3JjL2FwcC9zaGFyZWQvY29tcG9uZW50cy9zdWItcmVzdWx0cy1zZWxlY3Rpb24vc3ViLXJlc3VsdHMtc2VsZWN0aW9uLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZsZXgtY2hrcy1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIC8qanVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XHJcbiAgcGFkZGluZzogMCA4cHg7Ki9cclxufVxyXG5cclxuLmFsaWduLWNlbnRlci1jaGtzIHtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4uZm9ybS1jaGtzIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNkNGQ0ZDQ7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIHBhZGRpbmc6IDIwcHg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuXHJcbi5lbGVtZW50LWNoa3Mge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xyXG5cclxuICBsYWJlbC1jaGtzIHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICBtYXJnaW46IDBweCAxMHB4O1xyXG4gICAgcGFkZGluZzogMTBweCAwcHg7XHJcbiAgfVxyXG59XHJcblxyXG4ubXVsdGktY2hlY2tib3gge1xyXG4gIG1hcmdpbjogMHB4IDVweDtcclxufVxyXG5cclxuaDIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMxODE4Y2M7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHBhZGRpbmc6IDEwcHggMTBweDtcclxuICBtYXJnaW4tdG9wOiAwcHg7XHJcbn1cclxuXHJcbi50ZXh0LWNlbnRlciB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG5sYWJlbCB7XHJcbiAgcGFkZGluZzogNHB4IDZweDtcclxuICBsaW5lLWhlaWdodDogMTkwJTtcclxuICBvdXRsaW5lLXN0eWxlOiBub25lO1xyXG4gIHRyYW5zaXRpb246IGFsbCAuNnM7XHJcbn1cclxuXHJcbi8qLmhpZGRlbkNCIGRpdiB7XHJcbiAgZGlzcGxheTogaW5saW5lO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbn0qL1xyXG5cclxuXHJcbi8qLmhpZGRlbkNCIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcclxuLmhpZGRlbkNCIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLmhpZGRlbkNCIGxhYmVsIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5oaWRkZW5DQiBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbDpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMCwwLDAuMyk7XHJcbn1cclxuXHJcbi5oaWRkZW5DQiBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCArIGxhYmVsIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwwLDAsMC4zKTtcclxufVxyXG5cclxuLmhpZGRlbkNCIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkICsgbGFiZWw6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDAsMCwwLjMpO1xyXG59Ki9cclxuXHJcblxyXG4vKmh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzczOTg0NjIvY3NzLWJhY2tncm91bmQtY29sb3ItYXR0cmlidXRlLW5vdC13b3JraW5nLW9uLWNoZWNrYm94LWluc2lkZS1kaXYqL1xyXG4vKmNvbnRlbnQ6IFwiXFwyNzE0XCI7Ki9cclxuLyppbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCB7ICBcclxuICBiYWNrZ3JvdW5kOiByZWQ7XHJcbn0qL1xyXG5cclxuIiwiLmZsZXgtY2hrcy1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIC8qanVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWluLWhlaWdodDogNDhweDtcbiAgcGFkZGluZzogMCA4cHg7Ki9cbn1cblxuLmFsaWduLWNlbnRlci1jaGtzIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmZvcm0tY2hrcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkNGQ0ZDQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcGFkZGluZzogMjBweDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZWxlbWVudC1jaGtzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xufVxuLmVsZW1lbnQtY2hrcyBsYWJlbC1jaGtzIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luOiAwcHggMTBweDtcbiAgcGFkZGluZzogMTBweCAwcHg7XG59XG5cbi5tdWx0aS1jaGVja2JveCB7XG4gIG1hcmdpbjogMHB4IDVweDtcbn1cblxuaDIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxOGNjO1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDEwcHggMTBweDtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbmxhYmVsIHtcbiAgcGFkZGluZzogNHB4IDZweDtcbiAgbGluZS1oZWlnaHQ6IDE5MCU7XG4gIG91dGxpbmUtc3R5bGU6IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjZzO1xufVxuXG4vKi5oaWRkZW5DQiBkaXYge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn0qL1xuLyouaGlkZGVuQ0IgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuLmhpZGRlbkNCIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5oaWRkZW5DQiBsYWJlbCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmhpZGRlbkNCIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMCwwLDAuMyk7XG59XG5cbi5oaWRkZW5DQiBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCArIGxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMCwwLDAuMyk7XG59XG5cbi5oaWRkZW5DQiBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCArIGxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMCwwLDAuMyk7XG59Ki9cbi8qaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzM5ODQ2Mi9jc3MtYmFja2dyb3VuZC1jb2xvci1hdHRyaWJ1dGUtbm90LXdvcmtpbmctb24tY2hlY2tib3gtaW5zaWRlLWRpdiovXG4vKmNvbnRlbnQ6IFwiXFwyNzE0XCI7Ki9cbi8qaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQgeyAgXG4gIGJhY2tncm91bmQ6IHJlZDtcbn0qLyJdfQ== */\"","import { Component, OnInit, Output, EventEmitter, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { of } from 'rxjs';\r\nimport {\r\n FormBuilder,\r\n FormGroup,//Collections of FormControl\r\n FormArray,//Array of FormControls\r\n FormControl,// Individual form Item, maintain status and validation rules\r\n ValidatorFn\r\n} from '@angular/forms';\r\n//https://coryrylan.com/blog/creating-a-dynamic-checkbox-list-in-angular\r\n//https://medium.com/@vladguleaev/reusable-angular-create-multiple-checkbox-group-component-84f0e4727677\r\n\r\n//https://netbasal.com/handling-multiple-checkboxes-in-angular-forms-57eb8e846d21\r\nimport * as _ from \"lodash\";\r\n\r\nimport { ResultsService } from '../../services/master/results/results.service';\r\n\r\n@Component({\r\n selector: 'app-sub-results-selection',\r\n templateUrl: './sub-results-selection.component.html',\r\n styleUrls: ['./sub-results-selection.component.scss']\r\n})\r\n\r\nexport class SubResultsSelectionComponent implements OnChanges {\r\n form: FormGroup;\r\n selectionList = [];\r\n netTestData = [\r\n { id: 1, name: 'TCP' },\r\n { id: 2, name: 'UDP' },\r\n { id: 3, name: 'VOIP' },\r\n { id: 4, name: 'ROUTE' },\r\n { id: 5, name: 'HTTP' },\r\n { id: 6, name: 'FTP' },\r\n { id: 7, name: 'DNS' },\r\n { id: 8, name: 'SMS' },\r\n { id: 9, name: 'EMAIL' }\r\n ];\r\n\r\n mobileInfoData = [\r\n { id: 1, name: 'Phone' },\r\n { id: 2, name: 'SIM' },\r\n { id: 3, name: 'UE' }\r\n ];\r\n\r\n constructor(private resultsService: ResultsService) {//(private formBuilder: FormBuilder) {\r\n //this.form = this.formBuilder.group({\r\n // results: new FormArray([], this.minSelectedCheckboxes(1))\r\n //});\r\n\r\n //// async results (could be a http service call)\r\n //of(this.getOrders()).subscribe(results => {\r\n // this.selectionList = results;\r\n // this.addCheckboxes();\r\n //});\r\n\r\n ////// synchronous results\r\n ////this.selectionList = this.getOrders();\r\n ////this.addCheckboxes();\r\n\r\n this.resultsService.NetTestOrMobInfo.subscribe(res => {\r\n //this.RsltTypeSwitch = res.RsltTypeSwitch;\r\n\r\n\r\n if (res.RsltTypeSwitch === true) {\r\n this.netTests.forEach(function (value, i) {\r\n value.selected = false;\r\n res.selectedNetTestIndex.forEach(function (indexSelected) {\r\n if (i === indexSelected)\r\n value.selected = true;\r\n });\r\n });\r\n }\r\n else {\r\n this.mobileInfos.forEach(function (value, i) {\r\n value.selected = false;\r\n res.selectedMobInfoIndex.forEach(function (indexSelected) {\r\n if (i === indexSelected)\r\n value.selected = true;\r\n });\r\n });\r\n }\r\n\r\n });\r\n }\r\n\r\n //private addCheckboxes() {\r\n // this.selectionList.forEach((o, i) => {\r\n // const control = new FormControl(i < this.selectionList.length);//select all options by default (i === 0); // if first item then set it to true, else false\r\n // (this.form.controls.results as FormArray).push(control);\r\n // });\r\n //}\r\n\r\n //getOrders() {\r\n // return this.netTestData;\r\n //}\r\n\r\n minSelectedCheckboxes(min = 1) {\r\n const validator: ValidatorFn = (formArray: FormArray) => {\r\n const totalSelected = formArray.controls\r\n // get a list of checkbox values (boolean)\r\n .map(control => control.value)\r\n // total up the number of checked checkboxes\r\n .reduce((prev, next) => next ? prev + next : prev, 0);\r\n\r\n // if the total is not greater than the minimum, return the error message\r\n return totalSelected >= min ? null : { required: true };\r\n };\r\n\r\n return validator;\r\n }\r\n\r\n //submit() {\r\n // const selectedOrderIds = this.form.value.results\r\n // .map((v, i) => (v ? this.selectionList[i].id : null))2226\r\n // .filter(v => v !== null);\r\n // console.log(selectedOrderIds);\r\n //}\r\n\r\n\r\n\r\n //https://medium.com/@DheerajJaiswal6/multi-checkbox-form-control-angular7-39cbdabede57\r\n @Input() RsltTypeSwitch: boolean;\r\n @Output() childSubRsltsEvent = new EventEmitter();\r\n\r\n subResultsForm: FormGroup;\r\n //selectedResultsNames: [string];\r\n netTests: any = [\r\n {\r\n name: \"TCP\",\r\n value: \"TCPDATA\",\r\n selected: true\r\n },\r\n {\r\n name: \"UDP\",\r\n value: \"UDPDATA\",\r\n selected: true\r\n },\r\n {\r\n name: \"VOIP\",\r\n value: \"VOIPDATA\",\r\n selected: true\r\n },\r\n {\r\n name: \"ROUTE\",\r\n value: \"ROUTEDATA\",\r\n selected: true\r\n },\r\n {\r\n name: \"HTTP\",\r\n value: \"HTTPDATA\",\r\n selected: true\r\n },\r\n {\r\n name: \"FTP\",\r\n value: \"FTPDATA\",\r\n selected: true\r\n },\r\n {\r\n name: \"DNS\",\r\n value: \"DNSDATA\",\r\n selected: true\r\n },\r\n {\r\n name: \"SMS\",\r\n value: \"SMSDATA\",\r\n selected: true\r\n },\r\n {\r\n name: \"EMAIL\",\r\n value: \"EMAILDATA\",\r\n selected: true\r\n }\r\n ];\r\n mobileInfos: any = [\r\n {\r\n name: \"Phone\",\r\n value: \"GENERALINFO\",\r\n selected: true\r\n },\r\n {\r\n name: \"SIM\",\r\n value: \"SIMINFO\",\r\n selected: true\r\n },\r\n {\r\n name: \"UE\",\r\n value: \"UEINFO\",\r\n selected: true\r\n }\r\n ];\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.createFormInputs();\r\n }\r\n\r\n //used in HTML - IMP\r\n get rslts() {\r\n return this.subResultsForm.get('rslts') as FormArray;\r\n }\r\n createFormInputs() {\r\n this.subResultsForm = new FormGroup({\r\n rslts: this.createResults(this.RsltTypeSwitch === true ? this.netTests : this.mobileInfos)\r\n });\r\n this.childSubmit();\r\n //this.getSelectedResults();\r\n }\r\n\r\n createResults(rsltsInputs) {\r\n const arr = rsltsInputs.map(rslt => {\r\n return new FormControl(rslt.selected || false);\r\n });\r\n return new FormArray(arr, this.minSelectedCheckboxes(1));\r\n }\r\n\r\n //getSelectedResults() {\r\n // this.selectedResultsNames = _.map(\r\n // this.subResultsForm.controls.rslts[\"controls\"],\r\n // (rslt, i) => {\r\n // return rslt.value && this.netTests[i].value;\r\n // }\r\n // );\r\n // this.getSelectedResultsName();\r\n //}\r\n\r\n //getSelectedResultsName() {\r\n // this.selectedResultsNames = _.filter(\r\n // this.selectedResultsNames,\r\n // function (rslt) {\r\n // if (rslt !== false) {\r\n // return rslt;\r\n // }\r\n // }\r\n // );\r\n //}\r\n\r\n childSubmit() {\r\n\r\n const selectedSubResultsIndex = this.subResultsForm.value.rslts\r\n .map((v, i) => (v ? i : null))\r\n .filter(v => v !== null);\r\n\r\n //console.log(selectedSubResultsIndex)//To be passed as selected rslt types indices to API\r\n\r\n //https://stackoverflow.com/questions/47821809/rangeerror-maximum-call-stack-size-exceeded-when-using-valuechanges-subscribe - dont call subject next set inside subscribe - iMP\r\n let newRes:any;\r\n this.resultsService.NetTestOrMobInfo.subscribe(res => newRes = res);\r\n if (newRes !== undefined) {\r\n this.resultsService.setNetTestOrMobInfo({\r\n RsltTypeSwitch: this.RsltTypeSwitch,\r\n selectedNetTestIndex: this.RsltTypeSwitch === true ? selectedSubResultsIndex : newRes.selectedNetTestIndex,\r\n selectedMobInfoIndex: this.RsltTypeSwitch === false ? selectedSubResultsIndex : newRes.selectedMobInfoIndex\r\n });\r\n }\r\n\r\n\r\n const selectedSubResults = this.subResultsForm.value.rslts\r\n .map((v, i) => (v ? (this.RsltTypeSwitch === true ? this.netTests[i].value : this.mobileInfos[i].value) : null))\r\n .filter(v => v !== null);\r\n\r\n this.childSubRsltsEvent.emit(selectedSubResults);\r\n }\r\n}\r\n","module.exports = \".flex-cell {\\n width: 10%;\\n}\\n\\n.flex-container {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n /*justify-content: flex-end;\\n align-items: center;\\n min-height: 48px;\\n padding: 0 8px;*/\\n}\\n\\n.flexc {\\n padding: 0 16px;\\n -ms-flex-positive: 1;\\n flex-grow: 1;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-pack: start;\\n justify-content: flex-start;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvc3lub3BzaXMvRDpcXFNyY3dlYlxcVlMyMDE3IFByb2plY3RzXFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3L3NyY1xcYXBwXFxzaGFyZWRcXGNvbXBvbmVudHNcXHN5bm9wc2lzXFxzeW5vcHNpcy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvc3lub3BzaXMvc3lub3BzaXMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxVQUFBO0FDQ0Y7O0FERUE7RUFDRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSxtQkFBQTtNQUFBLGVBQUE7RUFDQTs7O2tCQUFBO0FDSUY7O0FESUE7RUFDRSxlQUFBO0VBQ0Esb0JBQUE7TUFBQSxZQUFBO0VBQ0Esb0JBQUE7RUFBQSxhQUFBO0VBQ0Esb0JBQUE7TUFBQSwyQkFBQTtBQ0RGIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvc3lub3BzaXMvc3lub3BzaXMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZmxleC1jZWxsIHtcclxuICB3aWR0aDogMTAlO1xyXG59XHJcblxyXG4uZmxleC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIC8qanVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XHJcbiAgcGFkZGluZzogMCA4cHg7Ki9cclxufVxyXG5cclxuXHJcblxyXG4uZmxleGMge1xyXG4gIHBhZGRpbmc6IDAgMTZweDtcclxuICBmbGV4LWdyb3c6IDE7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbn1cclxuXHJcbiIsIi5mbGV4LWNlbGwge1xuICB3aWR0aDogMTAlO1xufVxuXG4uZmxleC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIC8qanVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWluLWhlaWdodDogNDhweDtcbiAgcGFkZGluZzogMCA4cHg7Ki9cbn1cblxuLmZsZXhjIHtcbiAgcGFkZGluZzogMCAxNnB4O1xuICBmbGV4LWdyb3c6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn0iXX0= */\"","import { Component, OnInit, ChangeDetectorRef} from '@angular/core';\r\nimport { CommonFilterService } from '../../services/common-filter/common-filter.service';\r\nimport { FilterMetadata, FilterMeta } from 'lib/ng-data-table';\r\nimport { DataFilter } from 'lib/ng-data-table/base/data-filter'; \r\nimport { filter } from 'minimatch';\r\n\r\n@Component({\r\n selector: 'app-synopsis',\r\n templateUrl: './synopsis.component.html',\r\n styleUrls: ['./synopsis.component.scss']\r\n})\r\nexport class SynopsisComponent implements OnInit {\r\n private dataFilter: DataFilter;\r\n breakpoint;\r\n constructor(private commonFilterService: CommonFilterService, private cd: ChangeDetectorRef) {\r\n this.dataFilter = new DataFilter();\r\n }\r\n filtersArray: Array = [];\r\n\r\n onResize(event) {\r\n this.breakpoint = (event.target.innerWidth <= 400) ? 1 : 6;\r\n }\r\n\r\n ngOnInit() {\r\n this.breakpoint = (window.innerWidth <= 400) ? 1 : 6;\r\n this.commonFilterService.GeneralFilter.subscribe(res => {\r\n this.filtersArray = [];\r\n const filters: FilterMetadata = res;\r\n\r\n this.dataFilter.filters = filters;\r\n\r\n //console.log(filters)\r\n for (const key in filters) {\r\n if (filters[key]) {\r\n this.setFilterArray(key, filters[key]);\r\n }\r\n }\r\n\r\n //https://stackoverflow.com/questions/37849453/attempt-to-use-a-destroyed-view-detectchanges\r\n //https://stackoverflow.com/a/60060172\r\n //https://stackoverflow.com/questions/56056911/attempt-to-use-a-destroyed-view-detectchanges-event-though-the-view-is-detached\r\n if (!this.cd['destroyed']) {\r\n //https://suneetbansal.medium.com/angular-expressionchangedafterithasbeencheckederror-lets-see-why-it-comes-and-how-can-fix-it-22fc905ee01e - IMP\r\n this.cd.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n //https://stackoverflow.com/questions/46562305/angular-4-how-to-dynamically-add-and-delete-rows-in-a-table/46562718\r\n private setFilterArray(key: string, filter: FilterMeta) {\r\n if (key.toLowerCase().indexOf('_timestamp') == -1) {\r\n debugger\r\n if (key.toLowerCase().indexOf('vquad_callid') != -1 && filter.matchMode.toLowerCase().indexOf('contains') != -1\r\n && filter.value.indexOf('_') == 0 && filter.value.lastIndexOf('_') == filter.value.length - 1\r\n && filter.value.substring(1, filter.value.length - 1).indexOf('_') == -1) {\r\n let newVal = filter.value.substring(1, filter.value.length - 1);\r\n let newMatchMode = filter.matchMode.indexOf('not') != -1 ? 'notEqual' : 'equals';\r\n this.filtersArray.push({ columnName: key, column: filter.title, operator: (this.dataFilter.getOperatorType(newMatchMode))[1], value: newVal, valueTo: filter.valueTo });\r\n }\r\n else\r\n this.filtersArray.push({ columnName: key, column: filter.title, operator: (this.dataFilter.getOperatorType(filter.matchMode))[1], value: filter.value, valueTo: filter.valueTo });\r\n }\r\n //filter.title.replace(new RegExp('
    ', 'g'), ' ')\r\n }\r\n\r\n deleteFilter(columnName) {\r\n //https://love2dev.com/blog/javascript-remove-from-array/\r\n for (var i = 0; i < this.filtersArray.length; i++) {\r\n\r\n if (this.filtersArray[i].columnName === columnName) {\r\n this.filtersArray.splice(i, 1);\r\n i--;\r\n }\r\n }\r\n\r\n this.commonFilterService.setDeleteFilterData(columnName);//Set deleted column here\r\n\r\n //console.log('del')\r\n //if (columnName == 'VQuad_CallID')\r\n // this.commonFilterService.setGeneralEventIDFilterData({});\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL3RpdGxlL3RpdGxlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnChanges, SimpleChanges, Input, OnInit } from '@angular/core';//, ChangeDetectorRef\r\nimport { CommonFilterService } from '../../services/common-filter/common-filter.service';\r\n//import { DatePipe } from '@angular/common'\r\nimport { DemoService } from '../../demo.service';\r\nimport { formatDBTZDateToLocalDate } from 'lib/common';\r\nimport { stream } from 'exceljs';\r\n\r\n@Component({\r\n selector: 'app-title',\r\n templateUrl: './title.component.html',\r\n styleUrls: ['./title.component.scss']\r\n})\r\nexport class TitleComponent implements OnInit { //OnChanges {\r\n @Input() title: string;\r\n @Input() staticScreen: boolean;\r\n dates: string = \"\";\r\n rangeInfo: string = \"Last 10 Minutes\";\r\n prevRangeInfo: string = \"Last 10 Minutes\";\r\n //formatedDate: Date;\r\n constructor(private commonFilterService: CommonFilterService, private service: DemoService) {//, private cd: ChangeDetectorRef) {//, public datepipe: DatePipe) {\r\n this.updateScreen();\r\n }\r\n ngOnInit() {\r\n //this.cd.detectChanges();\r\n }\r\n //ngOnChanges(changes: SimpleChanges) {// change from oninit to onchanges to get latest input chnaged by its parent comp - IMP\r\n // //if (!this.staticScreen) {\r\n // // this.commonFilterService.TSBetween.subscribe(res => {\r\n // // debugger;\r\n // // setTimeout(() => {\r\n // // this.dates = ' between ' + res.replace('^', ' and ');\r\n // // });\r\n // // }\r\n // // );\r\n // // this.commonFilterService.TSRangeFilter.subscribe(res => this.rangeInfo = res);\r\n // // //console.log(this.rangeInfo)\r\n // //}\r\n //}\r\n async updateScreen() {\r\n if (!this.staticScreen) {\r\n\r\n let MainFilterTZ = 0;\r\n this.commonFilterService.mfTZ.subscribe(res => MainFilterTZ = res);// set mainfilter ID\r\n\r\n let dbTz = -500;\r\n //this.commonFilterService.DB_TZ.subscribe(res => {\r\n // dbTz = res;\r\n //});\r\n //if (dbTz == -500) {//query var col table\r\n // await this.service.getDBTimezoneDiff('VquadData').then(res => {\r\n // this.commonFilterService.setDBTZFromVarCol(res);\r\n // dbTz = res;\r\n // });\r\n //}\r\n ////console.log(dbTz)\r\n //debugger;\r\n let dbAndBrHrs = -500;\r\n //if (this.commonFilter.MainFilterID != 0) {\r\n this.commonFilterService.DB_BRDiff.subscribe(res => {\r\n dbAndBrHrs = res;\r\n });\r\n if (dbAndBrHrs == -500) {//query var col table\r\n await this.service.getDBAndBrowserDiffHours('VquadData').then(res => {\r\n this.commonFilterService.setDBAndBrowserHrsDiff(res);\r\n dbAndBrHrs = res;\r\n });\r\n }\r\n //}\r\n\r\n\r\n //// set custom date from selected mainfilter\r\n let mainFilterDateOrNot = false;\r\n this.commonFilterService.mainFilter_ContainsCustDate.subscribe(res1 => {\r\n //debugger;\r\n //check if mainfilter has custom date or not\r\n mainFilterDateOrNot = res1;\r\n this.commonFilterService.mfDateTime.subscribe(resmf => {\r\n if (resmf != \"\") {\r\n ////this.dates = ' between ' + resmf.replace(';', ' and ');\r\n\r\n // let dt = res.split('^')[0];\r\n //this.formatedDate = new Date(dt);\r\n // let latest_date = this.datepipe.transform(this.formatedDate, 'MM-dd-yyyy');\r\n //this.dates = ' between ' + this.datepipe.transform(new Date(resmf.split(';')[0]), 'MM/dd/yyyy HH:mm:ss') + ' and ' + this.datepipe.transform(new Date(resmf.split(';')[1]), 'MM/dd/yyyy HH:mm:ss');\r\n let datesArr = resmf.split(';');\r\n let startDate = formatDBTZDateToLocalDate(datesArr[0], dbTz, dbAndBrHrs, MainFilterTZ);\r\n let endDate = formatDBTZDateToLocalDate(datesArr[1], dbTz, dbAndBrHrs, MainFilterTZ);\r\n this.dates = ' between ' + startDate + ' and ' + endDate;\r\n this.rangeInfo = \"Custom range - Filter\";\r\n }\r\n else\r\n this.rangeInfo = this.prevRangeInfo;\r\n });\r\n });\r\n\r\n\r\n this.commonFilterService.TSRangeFilter.subscribe(res => {\r\n if (!mainFilterDateOrNot) {\r\n //setTimeout(() => {\r\n this.rangeInfo = res.RangeSelected;\r\n this.prevRangeInfo = this.rangeInfo;\r\n //});\r\n }\r\n });\r\n this.commonFilterService.TSBetween.subscribe(res => {\r\n if (!mainFilterDateOrNot) {\r\n let datesArr = res.split('^');\r\n let startDate = formatDBTZDateToLocalDate(datesArr[0], dbTz, dbAndBrHrs, MainFilterTZ);\r\n let endDate = formatDBTZDateToLocalDate(datesArr[1], dbTz, dbAndBrHrs, MainFilterTZ);\r\n //this.dates = ' between ' + res.replace('^', ' and ');\r\n setTimeout(() => {//https://stackoverflow.com/questions/53127074/angular-material-change-detection-using-ngonchanges-throwing-error-expressionc - IMP\r\n this.dates = ' between ' + startDate + ' and ' + endDate;\r\n });\r\n //this.dates = ' between ' + this.datepipe.transform(new Date(moment().subtract(10, 'minutes').toString()), 'MM-dd-yyyy HH:mm:ss') + ' and ' + this.datepipe.transform(new Date(moment().toString()), 'MM-dd-yyyy HH:mm:ss');\r\n }\r\n });\r\n //console.log(this.rangeInfo)\r\n }\r\n }\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL3VwbG9hZC1maWxlL3VwbG9hZC1maWxlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-upload-file',\n templateUrl: './upload-file.component.html',\n styleUrls: ['./upload-file.component.scss']\n})\nexport class UploadFileComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL3VybC1yZWxvYWQtYnV0dG9uL3VybC1yZWxvYWQtYnV0dG9uLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-url-reload-button',\n templateUrl: './url-reload-button.component.html',\n styleUrls: ['./url-reload-button.component.scss']\n})\nexport class UrlReloadButtonComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \".lblFont {\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n color: white;\\n}\\n\\na:hover {\\n color: orange;\\n text-decoration: underline;\\n}\\n\\n/*https: //www.w3schools.com/howto/tryit.asp?filename=tryhow_css_js_dropdown_hover - IMP*/\\n\\n.dropdown {\\n position: relative;\\n display: inline-block;\\n}\\n\\n.dropdown-content {\\n display: none;\\n position: absolute;\\n background-color: #f1f1f1;\\n min-width: 160px;\\n box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);\\n z-index: 2;\\n /*border-radius: 25px;*/\\n left: -50px;\\n padding: 10px 10px 10px 10px;\\n}\\n\\n.dropdown-content a {\\n color: black;\\n padding: 3px 4px;\\n text-decoration: none;\\n display: block;\\n position: relative;\\n font-weight: 600;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n font-size: 10px;\\n}\\n\\n.dropdown-content a:hover {\\n background-color: #ddd;\\n color: blue;\\n}\\n\\n.dropdown:hover .dropdown-content {\\n display: block;\\n}\\n\\n.dropdown-content a.disabled {\\n pointer-events: none;\\n cursor: default;\\n color: gray;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvdXNlci1pbmZvL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9zcmNcXGFwcFxcc2hhcmVkXFxjb21wb25lbnRzXFx1c2VyLWluZm9cXHVzZXItaW5mby5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvdXNlci1pbmZvL3VzZXItaW5mby5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGtEQUFBO0VBQ0EsWUFBQTtBQ0NGOztBREVBO0VBQ0UsYUFBQTtFQUNBLDBCQUFBO0FDQ0Y7O0FERUEseUZBQUE7O0FBQ0E7RUFDRSxrQkFBQTtFQUNBLHFCQUFBO0FDQ0Y7O0FERUE7RUFDRSxhQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0EsK0NBQUE7RUFDQSxVQUFBO0VBQ0EsdUJBQUE7RUFDQSxXQUFBO0VBQ0EsNEJBQUE7QUNDRjs7QURFQTtFQUNFLFlBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrREFBQTtFQUNBLGVBQUE7QUNDRjs7QURFQTtFQUNFLHNCQUFBO0VBQ0EsV0FBQTtBQ0NGOztBREVBO0VBQ0UsY0FBQTtBQ0NGOztBREdBO0VBQ0Usb0JBQUE7RUFDQSxlQUFBO0VBQ0EsV0FBQTtBQ0FGIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL2NvbXBvbmVudHMvdXNlci1pbmZvL3VzZXItaW5mby5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5sYmxGb250IHtcclxuICBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxuICBjb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbmE6aG92ZXIge1xyXG4gIGNvbG9yOiBvcmFuZ2U7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbn1cclxuXHJcbi8qaHR0cHM6IC8vd3d3Lnczc2Nob29scy5jb20vaG93dG8vdHJ5aXQuYXNwP2ZpbGVuYW1lPXRyeWhvd19jc3NfanNfZHJvcGRvd25faG92ZXIgLSBJTVAqL1xyXG4uZHJvcGRvd24ge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbi5kcm9wZG93bi1jb250ZW50IHtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xyXG4gIG1pbi13aWR0aDogMTYwcHg7XHJcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxNnB4IDBweCByZ2JhKDAsMCwwLDAuMik7XHJcbiAgei1pbmRleDogMjtcclxuICAvKmJvcmRlci1yYWRpdXM6IDI1cHg7Ki9cclxuICBsZWZ0OiAtNTBweDtcclxuICBwYWRkaW5nOiAxMHB4IDEwcHggMTBweCAxMHB4O1xyXG59XHJcblxyXG4uZHJvcGRvd24tY29udGVudCBhIHtcclxuICBjb2xvcjogYmxhY2s7XHJcbiAgcGFkZGluZzogM3B4IDRweDtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbiAgZm9udC1zaXplOiAxMHB4O1xyXG59XHJcblxyXG4uZHJvcGRvd24tY29udGVudCBhOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xyXG4gIGNvbG9yOmJsdWU7XHJcbn1cclxuXHJcbi5kcm9wZG93bjpob3ZlciAuZHJvcGRvd24tY29udGVudCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcblxyXG4uZHJvcGRvd24tY29udGVudCBhLmRpc2FibGVkIHtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgY29sb3I6IGdyYXk7XHJcbn1cclxuIiwiLmxibEZvbnQge1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG5hOmhvdmVyIHtcbiAgY29sb3I6IG9yYW5nZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi8qaHR0cHM6IC8vd3d3Lnczc2Nob29scy5jb20vaG93dG8vdHJ5aXQuYXNwP2ZpbGVuYW1lPXRyeWhvd19jc3NfanNfZHJvcGRvd25faG92ZXIgLSBJTVAqL1xuLmRyb3Bkb3duIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5kcm9wZG93bi1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuICBtaW4td2lkdGg6IDE2MHB4O1xuICBib3gtc2hhZG93OiAwcHggOHB4IDE2cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgei1pbmRleDogMjtcbiAgLypib3JkZXItcmFkaXVzOiAyNXB4OyovXG4gIGxlZnQ6IC01MHB4O1xuICBwYWRkaW5nOiAxMHB4IDEwcHggMTBweCAxMHB4O1xufVxuXG4uZHJvcGRvd24tY29udGVudCBhIHtcbiAgY29sb3I6IGJsYWNrO1xuICBwYWRkaW5nOiAzcHggNHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEwcHg7XG59XG5cbi5kcm9wZG93bi1jb250ZW50IGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xuICBjb2xvcjogYmx1ZTtcbn1cblxuLmRyb3Bkb3duOmhvdmVyIC5kcm9wZG93bi1jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5kcm9wZG93bi1jb250ZW50IGEuZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBjb2xvcjogZ3JheTtcbn0iXX0= */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { SystemSettingsService } from '../../services/system-settings/system-settings.service';\r\nimport { SystemSettingConfig } from '../../models/SystemSettingConfig';\r\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\r\n\r\n@Component({\r\n selector: 'app-user-info',\r\n templateUrl: './user-info.component.html',\r\n styleUrls: ['./user-info.component.scss'],\r\n})\r\nexport class UserInfoComponent implements OnInit {\r\n @Input() UserName: string = \"\";\r\n baseUrl: string;\r\n url: string;\r\n\r\n loginDetails = new SystemSettingConfig();\r\n isDeskTop = true;\r\n\r\n constructor(private http: HttpClient, private logservice: SystemSettingsService, private router: Router, private responsive: BreakpointObserver) {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n\r\n //https://stackoverflow.com/questions/72945583/breakpointobserver-angular\r\n //https://www.geeksforgeeks.org/how-to-target-desktop-tablet-and-mobile-using-media-query/\r\n this.responsive.observe(['(min-width: 960px)','(max-width: 1279.99px)', '(min-width: 1280px)', Breakpoints.Web, Breakpoints.WebLandscape, Breakpoints.WebPortrait,\r\n Breakpoints.Tablet, Breakpoints.TabletPortrait, Breakpoints.TabletLandscape,\r\n Breakpoints.Handset, Breakpoints.HandsetLandscape, Breakpoints.HandsetPortrait,\r\n Breakpoints.XSmall, Breakpoints.Small, Breakpoints.Medium, Breakpoints.Large, Breakpoints.XLarge\r\n ])\r\n .subscribe(result => {\r\n\r\n const breakpoints = result.breakpoints;\r\n //console.log(breakpoints)\r\n\r\n //https://stackoverflow.com/questions/25393865/how-do-you-detect-between-a-desktop-and-mobile-chrome-user-agent/25394023#25394023\r\n //var ua = navigator.userAgent;\r\n //console.log(ua)\r\n //if (/Chrome/i.test(ua))\r\n // console.log('mob')\r\n //else if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|mobile/i.test(ua))\r\n // console.log('mob')\r\n //else\r\n // console.log('desk')\r\n if (breakpoints[Breakpoints.Tablet] || breakpoints[Breakpoints.TabletPortrait] || breakpoints[Breakpoints.TabletLandscape]\r\n || breakpoints[Breakpoints.Handset] || breakpoints[Breakpoints.HandsetPortrait] || breakpoints[Breakpoints.HandsetLandscape]\r\n || breakpoints[Breakpoints.XSmall] || breakpoints[Breakpoints.Small]) {\r\n //console.log('mobile/ipad')\r\n this.isDeskTop = false;\r\n if ((breakpoints['(min-width: 960px)'] && breakpoints['(max-width: 1279.99px)']) || breakpoints['(min-width: 1280px)']) {\r\n //console.log('desktop')\r\n this.isDeskTop = true;\r\n }\r\n }\r\n else if (breakpoints[Breakpoints.Medium]) {\r\n //console.log('ipad pro')\r\n this.isDeskTop = false;\r\n }\r\n else {\r\n //console.log('desktop')\r\n this.isDeskTop = true;\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.GetSystemConfig();\r\n }\r\n\r\n disableConfig = false;\r\n GetSystemConfig() {\r\n this.url = this.baseUrl + 'UserAndSytemConfig/GetUserSystemConfiguration';\r\n\r\n this.GetConfigurations_Service().subscribe((res: any) => {\r\n //debugger;\r\n let rows: any[] = JSON.parse(res) as any[];\r\n\r\n let AdminName = rows[\"AdminName\"];\r\n if (this.UserName !== AdminName)\r\n this.disableConfig = true;\r\n });\r\n }\r\n\r\n check() {\r\n const user_approval = window.confirm('Do you wish to logout?');\r\n if (!user_approval) {\r\n return false;\r\n } else {\r\n this.router.navigate(['/logout']);\r\n }\r\n }\r\n\r\n pdfFilePathNew = \"/Webviewer/assets/DowloadedScripts/WebViewer-UM.pdf?v=6.4.2\";//http://localhost:4200/assets/DowloadedScripts/WebViewer-UM.pdf?v=6.4.2\r\n\r\n\r\n OpenUM() {\r\n\r\n let pdfFilePath = '/Webviewer/assets/DowloadedScripts/WebViewer-UM.pdf?v=6.4.2'; //// '/Webviewer/assets/images/ITS/ITSHelp.pdf?v=6.4.2';\r\n\r\n //const pdfViewerUrl = `${pdfFilePath}#page=${83}`; /// to open particular page number of pdf\r\n\r\n const windowFeatures = 'menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=yes,height = ' + screen.height * .66 + ',width=' + screen.width * .66;\r\n // Open the popup window\r\n //const popupWindow = window.open('', '_blank', 'top=0,left=0,height=100%,width=auto');\r\n const popupWindow = window.open('', '_blank', windowFeatures);\r\n\r\n popupWindow.document.open();\r\n popupWindow.document.write(`\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tWebViewer User Manual\r\n\t\t\t\t\t\t\r\n \r\n \r\n \r\n `);\r\n ///// \r\n /// /// to open partiular page of pdf\r\n popupWindow.document.close();\r\n\r\n // Write the HTML content to the popup window\r\n // popupWindow.document.write(`\r\n // \r\n // \r\n // \r\n // \r\n // \r\n //`);\r\n\r\n // // Make sure to close the document write operation\r\n // popupWindow.document.close();\r\n\r\n }\r\n\r\n ChangePassword() {\r\n debugger;\r\n let logserviceObj;\r\n if (sessionStorage.getItem('SystemSettings') != null) {\r\n this.logservice = JSON.parse(sessionStorage.getItem('SystemSettings'));\r\n }\r\n else if (localStorage.getItem('SystemSettings') != null) {\r\n this.logservice = JSON.parse(localStorage.getItem('SystemSettings'));\r\n }\r\n\r\n if (this.logservice.UserName != null && this.logservice.UserName != \"\") {\r\n\r\n if (this.logservice.UserName.length <= 0) {\r\n alert(\"Session expired!!\");\r\n this.router.navigateByUrl('/login');\r\n }\r\n this.loginDetails.UserName = this.logservice.UserName;//this.logservice.logDetail.split('@')[0];\r\n //this.loginDetails.Pin = this.logservice.logDetail.split('@')[1];\r\n }\r\n\r\n //this.router.navigateByUrl('login/Config?cp=1');\r\n //this.router.navigate([{ outlets: { ComponentOutlet: 'login/Config?cp=1', configPopup:null } }]);\r\n //this.router.navigate([{ outlets: { popupOutlet: 'login/Config?cp=1' } }]);\r\n this.router.navigate(\r\n [\r\n {\r\n outlets: {\r\n popupOutlet: 'login/Config',\r\n },\r\n },\r\n ],\r\n {\r\n queryParams: {\r\n cp: '1',\r\n },\r\n }\r\n );\r\n\r\n\r\n }\r\n\r\n OpenExploreOptions() {\r\n debugger;\r\n \r\n //this.router.navigateByUrl('login/Config?cp=1');\r\n //this.router.navigate([{ outlets: { ComponentOutlet: 'login/Config?cp=1', configPopup:null } }]);\r\n // this.router.navigate([{ outlets: { popupExploreOptions: 'help/exploreOptions' } }]);\r\n this.router.navigate(\r\n [\r\n {\r\n outlets: {\r\n popupExploreOptions: 'help/exploreOptions',\r\n },\r\n },\r\n ],\r\n {\r\n queryParams: {\r\n cp: '1',\r\n },\r\n }\r\n );\r\n\r\n }\r\n\r\n //////////////////////////////////////////////////////// SERVICES\r\n GetConfigurations_Service() {\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, options);\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n//import { HttpClient } from '@angular/common/http';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { DataSource, RequestMetadata, PagedResult, DataType } from '../../../lib/ng-crud-table';\r\nimport { DataSort, DataFilter, FilterOperator, FilterMetadata, DataTable, Settings } from '../../../lib/ng-data-table/base';\r\nimport { arrayPaginate, formatDate, lastDateFunc } from '../../../lib/common/utils';\r\nimport { NotifyService } from '../../../lib/notify/notify.service';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { CommonFilterService } from './services/common-filter/common-filter.service';\r\nimport { CommonFilter, GeneralFilter, NETTESTTYPES, MOBILEINFOTYPES } from './models/Common/common-filter';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ResultsService } from './services/master/results/results.service';\r\nimport { getColumnsHeaders } from './columns';\r\nimport { Column } from '../../../lib/ng-data-table';\r\nimport { Router } from '@angular/router';\r\nimport { GetMapColumnAliia } from 'src/app/shared/models';\r\n//import { environment } from '../../environments/environment.prod';\r\n\r\n//File-Saver for downloading PDF - IMP\r\ndeclare var require: any\r\nconst FileSaver = require('file-saver');\r\n\r\n//https://indepth.dev/posts/1287/rxjs-heads-up-topromise-is-being-deprecated\r\n//https://labs.thisdot.co/blog/a-breakdown-of-rxjs-7-0-performance-improvements\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DemoService implements DataSource{\r\n url: string = 'assets/ng-crud-table/players.json';\r\n\r\n primaryKeys: string[] = ['id'];\r\n\r\n private dataFilter: DataFilter;\r\n private dataSort: DataSort;\r\n private datatable: DataTable;\r\n columns: Column[];\r\n settings: Settings = new Settings({});\r\n pagerCache: any = {};\r\n\r\n private commonFilter: CommonFilter;\r\n private generalFilterArray: Array;\r\n private netTestOrMobileInfoTypesArray: number[];\r\n constructor(private http: HttpClient, private notifyService: NotifyService, private commonFilterService: CommonFilterService, private resultsService: ResultsService, private router: Router) {\r\n this.dataFilter = new DataFilter();\r\n this.dataSort = new DataSort();\r\n \r\n\r\n this.commonFilter = new CommonFilter();\r\n this.generalFilterArray = [];\r\n this.netTestOrMobileInfoTypesArray = [];\r\n //console.log('route url');\r\n //console.log(this.router.url);\r\n }\r\n\r\n testWebAPISample() {\r\n this.url = environment.urlAddress.replace('WebviewerAPI', 'webapisample') + '/api/values';\r\n this.http.get(this.url).subscribe(res => console.log(res));\r\n }\r\n\r\n //https://stackoverflow.com/questions/46903190/how-to-wait-for-return-of-a-function-in-typescript\r\n //https://dev.to/viniciuskneves/yet-another-post-about-asyncawait-and-promises-49gg\r\n //https://stackoverflow.com/questions/45057278/angular-4-settimeout-does-not-wait\r\n //http://www.learn-it-with-examples.com/development/html-css-javascript/angular/settimeout-angular-example.html\r\n //https://medium.com/@balramchavan/using-async-await-feature-in-angular-587dd56fdc77\r\n //async getTotalRecords(dates, dateOperator, rsltType): Promise {\r\n async getTotalRecords(commFilter, generalFilterArr, netTestOrMobileInfoTypesArr, rsltType): Promise {\r\n //console.log(generalFilterArr)\r\n //console.log(netTestOrMobileInfoTypesArr)\r\n\r\n //let params = new HttpParams()\r\n // .set('TSType', '1')\r\n // .set('TSBetween', dates)\r\n // .set('Operator', dateOperator);\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers\r\n };\r\n this.url = environment.urlAddress + '/api/' + rsltType + '/Post' + rsltType + 'Count';\r\n //return await this.http.get(this.url, { params })\r\n let body = JSON.stringify({ commonFilter: commFilter, generalFilterArray: generalFilterArr, netTestOrMobileInfoTypesArray: netTestOrMobileInfoTypesArr });\r\n if (rsltType != \"NetTestData\" && rsltType != \"MobileInfoData\")\r\n body = JSON.stringify({ commonFilter: commFilter, generalFilterArray: generalFilterArr });\r\n //console.log(body)\r\n\r\n //return await this.http.post(this.url, body, options)\r\n return await this.http.post(this.url, body, options)\r\n .toPromise()\r\n .then(function (res) {\r\n\r\n const totalCount: number = res || 0; return totalCount;\r\n }.bind(this))\r\n .catch(this.handleError.bind(this));\r\n\r\n\r\n }\r\n\r\n async getDBTimezoneDiff(rsltType): Promise {\r\n let headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n //console.log(rsltType)\r\n this.url = environment.urlAddress + '/api/' + rsltType + '/GetDBTZFromVarCol';\r\n return await this.http.get(this.url, { headers: headerOptions })\r\n .toPromise()\r\n .then(function (res) {\r\n\r\n const dbTz: number = res || 0; return dbTz;\r\n }.bind(this))\r\n .catch(this.handleError.bind(this));\r\n }\r\n\r\n async getDBAndBrowserDiffHours(rsltType): Promise {\r\n let headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n //console.log(rsltType)\r\n this.url = environment.urlAddress + '/api/' + rsltType + '/GetBrowserAndDBDatesDiff?BrowserDate=' + formatDate(new Date());\r\n return await this.http.get(this.url, { headers: headerOptions })\r\n .toPromise()\r\n .then(function (res) {\r\n\r\n const hoursDiff: number = res || 0; return hoursDiff;\r\n }.bind(this))\r\n .catch(this.handleError.bind(this));\r\n }\r\n\r\n async getVqtDAQSetting(rsltType): Promise {\r\n let headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n //console.log(rsltType)\r\n this.url = environment.urlAddress + '/api/' + rsltType + '/GetVqtDAQSetting';\r\n return await this.http.get(this.url, { headers: headerOptions })\r\n .toPromise()\r\n .then(function (res) {\r\n\r\n const vqtDAQ: boolean = res; return vqtDAQ;\r\n }.bind(this))\r\n .catch(this.handleError.bind(this));\r\n }\r\n\r\n //Clear All Filters - IMP\r\n //boolClearFilters = false;\r\n clearAllFilters() {\r\n //console.log(\"cleared\")\r\n this.dataFilter = new DataFilter();\r\n //this.boolClearFilters = true;\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n }\r\n Ten_min: boolean = true;\r\n async getItems(requestMeta: RequestMetadata): Promise {\r\n //console.log('inside');\r\n //console.log(\"getitem\");\r\n //if (this.commonFilter.ResultOrFileType == 1) {\r\n // return;\r\n //}\r\n\r\n //console.log('test')\r\n ////Clear All Filters - Not in use - IMP\r\n //let boolClearFilters = true;\r\n //for (const key in this.dataFilter.filters) {\r\n // if (this.dataFilter.filters[key]) {\r\n // boolClearFilters = false;\r\n // break;\r\n // }\r\n //}\r\n //if (boolClearFilters)\r\n // this.dataFilter = new DataFilter();\r\n\r\n\r\n\r\n this.commonFilterService.GeneralEventIDFilter.subscribe(res => {\r\n //console.log(res)\r\n const filtersWithEventID: FilterMetadata = res;\r\n //console.log(filtersWithEventID)\r\n //this.dataFilter.filters = filtersWithEventID;\r\n for (const key in this.dataFilter.filters) {\r\n if (key == 'VQuad_CallID')\r\n delete this.dataFilter.filters[key];\r\n }\r\n this.dataFilter.filters = { ...this.dataFilter.filters, ...filtersWithEventID };\r\n\r\n //if (typeof res == 'object' && Object.keys(res).length > 0) {\r\n // delete this.dataFilter.filters[\"VQuad_CallID\"];\r\n //}\r\n });\r\n\r\n\r\n this.commonFilterService.ClearAllFilters.subscribe(res => { this.clearAllFilters() });\r\n\r\n const currentPage = requestMeta.pageMeta.currentPage;\r\n\r\n const perPage = requestMeta.pageMeta.perPage;\r\n\r\n const ResultOrFileType = requestMeta.ResultOrFileType;\r\n const respColumnsList = requestMeta.respColumnsList;\r\n //let respColumnsList = requestMeta.respColumnsList; /// Get Alias Column Name along with actual column\r\n //console.log(respColumnsList);\r\n //debugger;\r\n /////// APPEND COLUMN ALIAS NAME ALONG WITH ACTUAL COLUMN NAME\r\n respColumnsList.forEach((item, index) => {\r\n if (item.indexOf('@') === -1)//IMP-for not getting repeatedly appended\r\n respColumnsList[index] = item + \"@\" + GetMapColumnAliia(item, \"\", \"\");\r\n }); \r\n //console.log(respColumnsList)\r\n\r\n\r\n let dbTz = -500;\r\n //this.commonFilterService.DB_TZ.subscribe(res => {\r\n // dbTz = res;\r\n //});\r\n //if (dbTz == -500) {//query var col table\r\n // await this.getDBTimezoneDiff('VquadData').then(res => {\r\n // this.commonFilterService.setDBTZFromVarCol(res);\r\n // dbTz = res;\r\n // });\r\n //}\r\n ////console.log(dbTz)\r\n //debugger;\r\n this.commonFilterService.mainFilterID.subscribe(res => this.commonFilter.MainFilterID = res); /// set mainfilter selected ID - elumalai\r\n //console.log(this.commonFilter.MainFilterID)\r\n let dbAndBrHrs = -500;\r\n //if (this.commonFilter.MainFilterID != 0) {\r\n this.commonFilterService.DB_BRDiff.subscribe(res => {\r\n dbAndBrHrs = res;\r\n });\r\n if (dbAndBrHrs == -500) {//query var col table\r\n await this.getDBAndBrowserDiffHours('VquadData').then(res => {\r\n this.commonFilterService.setDBAndBrowserHrsDiff(res);\r\n dbAndBrHrs = res;\r\n });\r\n }\r\n //}\r\n //console.log(dbAndBrHrs)\r\n let dates = formatDate(new Date(Date.now() + -1 * 600 * 1000), dbTz, dbAndBrHrs) + \"^\" + formatDate(new Date(), dbTz, dbAndBrHrs);//\"06/02/2019 11:00:00^06/02/2019 20:00:00\";\r\n this.commonFilterService.TSBetween.subscribe(res => dates = res);\r\n //console.log(dates)\r\n let perPageOrCurrPageChanged = requestMeta.pageMeta.perPageOrCurrPageChanged;\r\n //console.log(perPageOrCurrPageChanged)\r\n\r\n let columnName = \"VQuad_Timestamp\";\r\n let columnTitle = \"VQuad Timestamp\";\r\n let rsltType = requestMeta.rsltTypeActual;\r\n\r\n let arrDates = this.dataFilter.filteringDatesArr(dates);//filteringDates();//make proper dates string to be passed to db\r\n //console.log(arrDates)\r\n const boolDateFilterSelected = ((arrDates.length == 2) || (arrDates.length == 0));\r\n this.commonFilterService.TSType.subscribe(res => this.commonFilter.TimestampType = res);\r\n if (boolDateFilterSelected) {\r\n if (arrDates.length == 0) {//Always goes here\r\n\r\n if ((requestMeta.rsltTypeActual == 'pesq' || requestMeta.rsltTypeActual == 'polqa') && this.commonFilter.TimestampType == 2) {\r\n columnName = \"VQT_Timestamp\";\r\n if (requestMeta.rsltTypeActual == 'pesq')\r\n columnName = \"VQT_TimeStamp\";\r\n columnTitle = \"VQT Timestamp\";\r\n }\r\n else if (this.commonFilter.TimestampType == 0) {\r\n columnName = \"Call_Timestamp\";\r\n columnTitle = \"Call Timestamp\";\r\n }\r\n\r\n let colName = columnName.toLowerCase();\r\n if (colName.indexOf('timestamp') != -1\r\n || colName.indexOf('gps') != -1)\r\n rsltType = \"\";\r\n\r\n if (colName == 'vqt_timestamp')\r\n rsltType = \"pesq|polqa\";\r\n else if (colName == 'start_timestamp')\r\n rsltType = \"nettest|mobileinfo|vac\";\r\n else if (colName == 'battery_level')\r\n rsltType = \"nettest|mobileinfo\";\r\n else if (colName == 'rssi' && rsltType != 'pesq' && rsltType != 'polqa')\r\n rsltType = \"nettest|mobileinfo\";\r\n\r\n \r\n //Added to set proper dates here based on range selection\r\n this.commonFilterService.TSRangeFilter.subscribe(res => { if (res.RangeType !== \"custom\" && ((perPageOrCurrPageChanged == false && ResultOrFileType == 0))) { dates = lastDateFunc(res.RangeType, dbTz, dbAndBrHrs) } });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n\r\n this.dataFilter.replOldTSFilterWithNew();//deletes old TS type selection here\r\n //console.log(dates)\r\n }\r\n else {//Never happens as instead of range filter, we are using common filter component\r\n dates = arrDates[0];//Custom date - else set dates to down\r\n this.commonFilterService.TSRangeFilter.subscribe(res => { if (res.RangeType !== \"custom\" && (perPageOrCurrPageChanged == false && ResultOrFileType == 0)) { dates = lastDateFunc(res.RangeType, dbTz, dbAndBrHrs) } });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n }\r\n }\r\n\r\n \r\n if ((requestMeta.rsltTypeActual != 'pesq' && requestMeta.rsltTypeActual != 'polqa') && this.commonFilter.TimestampType == 2) {\r\n this.commonFilter.TimestampType = 1;//Change VQT to VQuad Timestamp if screen doesn't belongs to VQT types nd send as TSTYpe in filtering - IMP\r\n }\r\n\r\n\r\n //Save current date selection in service - IMP\r\n //console.log(dates)\r\n if (perPageOrCurrPageChanged == false && ResultOrFileType == 0)\r\n this.commonFilterService.setDatesProperties(dates);\r\n\r\n this.dataFilter.setFilter((dates.split('^'))[0], columnName, FilterOperator.IN_RANGE, (dates.split('^'))[1], DataType.Date, rsltType, columnTitle);//Adds new TSType here\r\n let reqFilters = requestMeta.filters;//{ VQuad_Timestamp: { \"value\": \"05/03/2023 22:26:13\", \"matchMode\": \"inRange\", \"valueTo\": \"05/03/2023 22:36:13\", \"type\": \"date\", \"rsltType\": \"\", \"title\": \"VQuad Timestamp\" } };\r\n if (reqFilters) {\r\n for (const key in reqFilters) {\r\n if (key) {\r\n if (key.toLowerCase().indexOf('_timestamp') != -1) {\r\n delete reqFilters[key];//for auto refresh dates selection\r\n }\r\n }\r\n }\r\n }\r\n //console.log(reqFilters)\r\n\r\n //debugger\r\n //https://stackoverflow.com/questions/37042602/how-to-combine-object-properties-in-typescript\r\n //https://davidwalsh.name/merge-objects\r\n this.dataFilter.filters = { ...this.dataFilter.filters, ...requestMeta.filters };\r\n //console.log(this.dataFilter.filters)\r\n this.commonFilterService.DeleteFilter.subscribe(res => {\r\n //console.log(res)\r\n if (res !== '') {\r\n if (res == 'VQuad_CallID') {\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n }\r\n delete this.dataFilter.filters[res];\r\n }\r\n });\r\n //this.commonFilterService.setDeleteFilterData('');//reset if delete\r\n\r\n //////Delete Filter from Synopsis - IMP\r\n //if (requestMeta.deleteColumnFilter !== '') {\r\n // console.log(requestMeta.deleteColumnFilter)\r\n // delete this.dataFilter.filters[requestMeta.deleteColumnFilter];\r\n //}\r\n let generalFilterArrayAll = this.dataFilter.getProcessedFiltersArray(\"ALL\");\r\n //console.log(this.dataFilter.filters)\r\n //console.log(generalFilterArrayAll)\r\n\r\n //Save current filters to service - IMP\r\n const filterCurr = this.dataFilter.getProcessedFilters(requestMeta.rsltType);\r\n this.commonFilterService.setGeneralFilterDFData(this.dataFilter.filters);\r\n this.commonFilterService.setGeneralFilterData(filterCurr);//For synopsis component\r\n //console.log(filterCurr)\r\n this.generalFilterArray = this.dataFilter.getProcessedFiltersArray(requestMeta.rsltType);\r\n //console.log(this.generalFilterArray)\r\n\r\n if (requestMeta.rsltType == \"NetTestData\" || requestMeta.rsltType == \"MobileInfoData\") {\r\n this.netTestOrMobileInfoTypesArray = [];\r\n\r\n let currNetMobArray;\r\n this.resultsService.NetTestOrMobInfo.subscribe(res => currNetMobArray = res);\r\n\r\n if (currNetMobArray !== undefined) {\r\n if (requestMeta.rsltType == \"NetTestData\") {\r\n //this.netTestOrMobileInfoTypesArray.push(NETTESTTYPES.TCPDATA);\r\n //this.netTestOrMobileInfoTypesArray.push(NETTESTTYPES.UDPDATA);\r\n //https://www.samanthaming.com/tidbits/35-es6-way-to-clone-an-array/\r\n //https://stackoverflow.com/questions/4156101/copy-array-items-into-another-array\r\n this.netTestOrMobileInfoTypesArray = [...currNetMobArray.selectedNetTestIndex];\r\n }\r\n else if (requestMeta.rsltType == \"MobileInfoData\") {\r\n //this.netTestOrMobileInfoTypesArray.push(MOBILEINFOTYPES.GENERALINFO);\r\n //this.netTestOrMobileInfoTypesArray.push(MOBILEINFOTYPES.SIMINFO);\r\n this.netTestOrMobileInfoTypesArray = [...currNetMobArray.selectedMobInfoIndex];\r\n }\r\n }\r\n\r\n //https://stackoverflow.com/questions/12482961/is-it-possible-to-change-values-of-the-array-when-doing-foreach-in-javascript\r\n this.netTestOrMobileInfoTypesArray.forEach(function (value, index) {\r\n this[index] = value + 1;\r\n }, this.netTestOrMobileInfoTypesArray); // use arr as this\r\n }\r\n //console.log(requestMeta.globalFilterValue)\r\n\r\n // if (this.commonFilter.ResultOrFileType == 0 || this.commonFilter.ResultOrFileType==undefined) {\r\n this.dataFilter.globalFilterValue = requestMeta.globalFilterValue;//Set Global Filte value - IMP\r\n\r\n this.dataSort.sortMeta = requestMeta.sortMeta;\r\n //console.log(requestMeta.sortMeta)\r\n let SortCols = \"\";\r\n for (let key in this.dataSort.sortMeta) {\r\n if (this.dataSort.sortMeta[key]) {\r\n let order = this.dataSort.sortMeta[key].order;\r\n let orderText = (order === -1) ? '-' : '';\r\n SortCols += orderText + this.dataSort.sortMeta[key].field + ',';\r\n }\r\n }\r\n if (SortCols.length > 0)// && !this.boolClearFilters)\r\n this.commonFilter.SortByOrder = SortCols.substring(0, SortCols.length - 1);\r\n else\r\n this.commonFilter.SortByOrder = '';\r\n //const clearSortOrder = this.boolClearFilters;\r\n //this.boolClearFilters = false;\r\n let totalCountExact = 0;\r\n\r\n //this.commonFilter.TimestampRange = dates;\r\n //this.commonFilter.Operator = dateOperator;\r\n this.commonFilter.PageNumber = currentPage.toString();\r\n this.commonFilter.PerPage = perPage.toString();\r\n //this.commonFilter.SortByOrder = \"descending\";\r\n this.commonFilter.ResultOrFileType = ResultOrFileType;\r\n this.commonFilter.ResultTypeName = requestMeta.rsltType; //elumalai - required for pdf file naming\r\n\r\n //console.log(requestMeta.rsltType)\r\n if (this.dataFilter.globalFilterValue !== null || this.commonFilter.ResultOrFileType > 0) {\r\n if (this.dataFilter.globalFilterValue !== null) {\r\n this.generalFilterArray.push({ ColumnName: \"ALL\", Operator: 10, Value: this.dataFilter.globalFilterValue, ValueTo: null, LoggedInUserName:null });//All columns startwith globalFilterVal\r\n }\r\n this.commonFilter.respColumnsList = respColumnsList;\r\n }\r\n //console.log('pg count start');\r\n\r\n //////////////// To Set selected mainfilter name i.e usefule for pdf loadfitler labelling purpose\r\n let selectedMainFilterCrieriaName = '';\r\n this.commonFilterService.mainFilter_CriteriaName.subscribe(res => selectedMainFilterCrieriaName = res);// set mainfilter ID\r\n this.generalFilterArray.forEach(item => {\r\n item.MainFilterName = selectedMainFilterCrieriaName;\r\n });\r\n\r\n //////check if loggedIn user has any criteria for filtering data\r\n if (sessionStorage.getItem('SystemSettings') != null) {\r\n this.commonFilter.UserCriteria = JSON.parse(sessionStorage.getItem('SystemSettings')).Criteria;\r\n let UserName = JSON.parse(sessionStorage.getItem('SystemSettings')).UserName;\r\n this.generalFilterArray.forEach(item => {\r\n item.LoggedInUserName = UserName;\r\n });\r\n generalFilterArrayAll.forEach(item => {\r\n item.LoggedInUserName = UserName;\r\n });\r\n }\r\n\r\n if (requestMeta.rsltTypeActual == 'call-events') {\r\n this.commonFilterService.filterCallEventErrorEvent.subscribe(res => {\r\n //console.log(res);\r\n this.commonFilter.CallEventErrorEvent = res;\r\n });\r\n }\r\n else {\r\n if (requestMeta.rsltTypeActual == 'nettest' || requestMeta.rsltTypeActual == 'mobileinfo') {\r\n this.commonFilterService.filterConnDrop.subscribe(res => {\r\n //console.log(res);\r\n this.commonFilter.ConnDropEvent = res;\r\n });\r\n }\r\n }\r\n\r\n //console.log(generalFilterArrayAll)\r\n this.commonFilterService.setAllGeneralFilterData(generalFilterArrayAll);\r\n //debugger;\r\n // totalCountExact = 44; // this.Ten_min == true ? 44 : 52742; //below code commented by elumalai for test purpose\r\n await this.getTotalRecords(this.commonFilter, this.generalFilterArray, this.netTestOrMobileInfoTypesArray, requestMeta.rsltType).then(res => {\r\n totalCountExact = res;\r\n });\r\n\r\n //console.log('count' + new Date());\r\n //console.log('pg count end');\r\n //let params = new HttpParams()\r\n // .set('TSType', '1')\r\n // .set('PageNumber', currentPage.toString())\r\n // .set('PerPage', perPage.toString())\r\n // .set('TSBetween', dates)\r\n // .set('Operator', dateOperator)\r\n // .set('Sort', 'descending'); \r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers\r\n };\r\n\r\n this.url = environment.urlAddress + '/api/' + requestMeta.rsltType + '/Post' + requestMeta.rsltType;\r\n //console.log(this.url)\r\n //return this.http.get(this.url, { params })\r\n //https://www.techiediaries.com/angular-http-client/\r\n //https://stackoverflow.com/questions/50330342/how-to-send-post-in-angular5-with-multiple-params\r\n //https://weblog.west-wind.com/posts/2012/May/08/Passing-multiple-POST-parameters-to-Web-API-Controller-Methods\r\n //https://www.dotnetcurry.com/aspnet/1278/aspnet-webapi-pass-multiple-parameters-action-method\r\n let body = JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.generalFilterArray, netTestOrMobileInfoTypesArray: this.netTestOrMobileInfoTypesArray });\r\n //console.log(body)\r\n if (requestMeta.rsltType != \"NetTestData\" && requestMeta.rsltType != \"MobileInfoData\")\r\n body = JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.generalFilterArray });\r\n\r\n //https://stackoverflow.com/questions/49605090/how-to-return-value-inside-subscribe-angular-4\r\n //https://stackoverflow.com/questions/45223198/angular-4-how-to-use-await-async-within-subscribe\r\n return await this.http.post(this.url, body, options)\r\n .toPromise()\r\n .then(function (res) {\r\n\r\n //console.log('datasub' + new Date());\r\n //let res:any = this.Ten_min == true ? this.GetTestData_10min() : this.GetTestData_7day();\r\n let resFinal = res;\r\n\r\n //console.log(resFinal);\r\n // alert(\"response\");\r\n ///check if response is for export file or not\r\n //debugger\r\n if (this.commonFilter.ResultOrFileType > 0) {\r\n resFinal = (res.split('@@'))[1];\r\n let resFileName = (res.split('@@'))[0];\r\n if (resFileName != \"0\")\r\n this.DownloadPDF(resFileName, this.commonFilter.ResultOrFileType);\r\n this.commonFilter.ResultOrFileType = 0;//reset\r\n //return false;\r\n }\r\n\r\n //console.log(res);\r\n //resFinal = [{ \"a\": 1 }];\r\n //debugger;\r\n //const rows: any[] = resFinal;\r\n const rows: any[] = JSON.parse(resFinal) as any[] || [];\r\n //console.log('parsed data' + new Date());\r\n\r\n let filteredData = rows;\r\n //if (!boolDateFilterSelected)\r\n ///check condition if it is mainfilter is selcted or not\r\n\r\n //if (this.commonFilter.MainFilterID <= 0)\r\n // filteredData = this.dataFilter.filterRows(rows, requestMeta.rsltType);//Custom global filter - IMP\r\n\r\n const sortedData = filteredData; //this.dataSort.sortRows(filteredData);//the sort the filtered rows\r\n const pageData = sortedData;//sortedData;//arrayPaginate(sortedData, currentPage, perPage);//get current page set of records hen page no selected\r\n //console.log(pageData);\r\n const totalCount = totalCountExact;//sortedData.length\r\n const pageCount = pageData.length;\r\n const result = {\r\n items: requestMeta.groupRowsBy ? pageData : pageData.slice(0, 20),\r\n itemsRest: requestMeta.groupRowsBy ? [] : pageData.slice(20, sortedData.length),\r\n _meta: {\r\n totalCount,//number of records totally\r\n pageCount,//number of records in current page\r\n currentPage,//page number selected\r\n perPage,//selected option for number of records to be actually displayed\r\n perPageOrCurrPageChanged,\r\n //clearSortOrder//clear sort order by clear all filters\r\n }\r\n } as PagedResult;\r\n\r\n //console.log('final data' + new Date());\r\n //console.log(result);\r\n return result;\r\n }.bind(this))\r\n .catch(this.handleError.bind(this));\r\n \r\n }\r\n async getItemsExported(requestMeta: RequestMetadata): Promise {\r\n\r\n this.commonFilterService.GeneralEventIDFilter.subscribe(res => {\r\n const filtersWithEventID: FilterMetadata = res;\r\n for (const key in this.dataFilter.filters) {\r\n if (key == 'VQuad_CallID')\r\n delete this.dataFilter.filters[key];\r\n }\r\n this.dataFilter.filters = { ...this.dataFilter.filters, ...filtersWithEventID };\r\n });\r\n\r\n\r\n this.commonFilterService.ClearAllFilters.subscribe(res => { this.clearAllFilters() });\r\n\r\n const currentPage = requestMeta.pageMeta.currentPage;\r\n\r\n const perPage = requestMeta.pageMeta.perPage;\r\n\r\n const ResultOrFileType = requestMeta.ResultOrFileType;\r\n const respColumnsList = requestMeta.respColumnsList;\r\n /////// APPEND COLUMN ALIAS NAME ALONG WITH ACTUAL COLUMN NAME\r\n respColumnsList.forEach((item, index) => {\r\n if (item.indexOf('@') === -1)//IMP-for not getting repeatedly appended\r\n respColumnsList[index] = item + \"@\" + GetMapColumnAliia(item, \"\", \"\");\r\n });\r\n\r\n let dbTz = -500;\r\n this.commonFilterService.mainFilterID.subscribe(res => this.commonFilter.MainFilterID = res); /// set mainfilter selected ID - elumalai\r\n let dbAndBrHrs = -500;\r\n this.commonFilterService.DB_BRDiff.subscribe(res => {\r\n dbAndBrHrs = res;\r\n });\r\n if (dbAndBrHrs == -500) {//query var col table\r\n await this.getDBAndBrowserDiffHours('VquadData').then(res => {\r\n this.commonFilterService.setDBAndBrowserHrsDiff(res);\r\n dbAndBrHrs = res;\r\n });\r\n }\r\n let dates = formatDate(new Date(Date.now() + -1 * 600 * 1000), dbTz, dbAndBrHrs) + \"^\" + formatDate(new Date(), dbTz, dbAndBrHrs);//\"06/02/2019 11:00:00^06/02/2019 20:00:00\";\r\n this.commonFilterService.TSBetween.subscribe(res => dates = res);\r\n let perPageOrCurrPageChanged = requestMeta.pageMeta.perPageOrCurrPageChanged;\r\n\r\n let columnName = \"VQuad_Timestamp\";\r\n let columnTitle = \"VQuad Timestamp\";\r\n let rsltType = requestMeta.rsltTypeActual;\r\n\r\n let arrDates = this.dataFilter.filteringDatesArr(dates);//filteringDates();//make proper dates string to be passed to db\r\n const boolDateFilterSelected = ((arrDates.length == 2) || (arrDates.length == 0));\r\n this.commonFilterService.TSType.subscribe(res => this.commonFilter.TimestampType = res);\r\n if (boolDateFilterSelected) {\r\n if (arrDates.length == 0) {//Always goes here\r\n\r\n if ((requestMeta.rsltTypeActual == 'pesq' || requestMeta.rsltTypeActual == 'polqa') && this.commonFilter.TimestampType == 2) {\r\n columnName = \"VQT_Timestamp\";\r\n if (requestMeta.rsltTypeActual == 'pesq')\r\n columnName = \"VQT_TimeStamp\";\r\n columnTitle = \"VQT Timestamp\";\r\n }\r\n else if (this.commonFilter.TimestampType == 0) {\r\n columnName = \"Call_Timestamp\";\r\n columnTitle = \"Call Timestamp\";\r\n }\r\n\r\n let colName = columnName.toLowerCase();\r\n if (colName.indexOf('timestamp') != -1\r\n || colName.indexOf('gps') != -1)\r\n rsltType = \"\";\r\n\r\n if (colName == 'vqt_timestamp')\r\n rsltType = \"pesq|polqa\";\r\n else if (colName == 'start_timestamp')\r\n rsltType = \"nettest|mobileinfo|vac\";\r\n else if (colName == 'battery_level')\r\n rsltType = \"nettest|mobileinfo\";\r\n else if (colName == 'rssi' && rsltType != 'pesq' && rsltType != 'polqa')\r\n rsltType = \"nettest|mobileinfo\";\r\n\r\n\r\n //Added to set proper dates here based on range selection\r\n this.commonFilterService.TSRangeFilter.subscribe(res => { if (res.RangeType !== \"custom\" && ((perPageOrCurrPageChanged == false && ResultOrFileType == 0))) { dates = lastDateFunc(res.RangeType, dbTz, dbAndBrHrs) } });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n\r\n this.dataFilter.replOldTSFilterWithNew();//deletes old TS type selection here\r\n }\r\n else {//Never happens as instead of range filter, we are using common filter component\r\n dates = arrDates[0];//Custom date - else set dates to down\r\n this.commonFilterService.TSRangeFilter.subscribe(res => { if (res.RangeType !== \"custom\" && (perPageOrCurrPageChanged == false && ResultOrFileType == 0)) { dates = lastDateFunc(res.RangeType, dbTz, dbAndBrHrs) } });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n }\r\n }\r\n\r\n\r\n if ((requestMeta.rsltTypeActual != 'pesq' && requestMeta.rsltTypeActual != 'polqa') && this.commonFilter.TimestampType == 2) {\r\n this.commonFilter.TimestampType = 1;//Change VQT to VQuad Timestamp if screen doesn't belongs to VQT types nd send as TSTYpe in filtering - IMP\r\n }\r\n\r\n\r\n if (perPageOrCurrPageChanged == false && ResultOrFileType == 0)\r\n this.commonFilterService.setDatesProperties(dates);\r\n\r\n this.dataFilter.setFilter((dates.split('^'))[0], columnName, FilterOperator.IN_RANGE, (dates.split('^'))[1], DataType.Date, rsltType, columnTitle);//Adds new TSType here\r\n let reqFilters = requestMeta.filters;//{ VQuad_Timestamp: { \"value\": \"05/03/2023 22:26:13\", \"matchMode\": \"inRange\", \"valueTo\": \"05/03/2023 22:36:13\", \"type\": \"date\", \"rsltType\": \"\", \"title\": \"VQuad Timestamp\" } };\r\n if (reqFilters) {\r\n for (const key in reqFilters) {\r\n if (key) {\r\n if (key.toLowerCase().indexOf('_timestamp') != -1) {\r\n delete reqFilters[key];//for auto refresh dates selection\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.dataFilter.filters = { ...this.dataFilter.filters, ...requestMeta.filters };\r\n this.commonFilterService.DeleteFilter.subscribe(res => {\r\n if (res !== '') {\r\n if (res == 'VQuad_CallID') {\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n }\r\n delete this.dataFilter.filters[res];\r\n }\r\n });\r\n\r\n let generalFilterArrayAll = this.dataFilter.getProcessedFiltersArray(\"ALL\");\r\n\r\n //Save current filters to service - IMP\r\n const filterCurr = this.dataFilter.getProcessedFilters(requestMeta.rsltType);\r\n this.commonFilterService.setGeneralFilterDFData(this.dataFilter.filters);\r\n this.commonFilterService.setGeneralFilterData(filterCurr);//For synopsis component\r\n this.generalFilterArray = this.dataFilter.getProcessedFiltersArray(requestMeta.rsltType);\r\n\r\n if (requestMeta.rsltType == \"NetTestData\" || requestMeta.rsltType == \"MobileInfoData\") {\r\n this.netTestOrMobileInfoTypesArray = [];\r\n\r\n let currNetMobArray;\r\n this.resultsService.NetTestOrMobInfo.subscribe(res => currNetMobArray = res);\r\n\r\n if (currNetMobArray !== undefined) {\r\n if (requestMeta.rsltType == \"NetTestData\") {\r\n this.netTestOrMobileInfoTypesArray = [...currNetMobArray.selectedNetTestIndex];\r\n }\r\n else if (requestMeta.rsltType == \"MobileInfoData\") {\r\n this.netTestOrMobileInfoTypesArray = [...currNetMobArray.selectedMobInfoIndex];\r\n }\r\n }\r\n\r\n this.netTestOrMobileInfoTypesArray.forEach(function (value, index) {\r\n this[index] = value + 1;\r\n }, this.netTestOrMobileInfoTypesArray); // use arr as this\r\n }\r\n this.dataFilter.globalFilterValue = requestMeta.globalFilterValue;//Set Global Filte value - IMP\r\n\r\n this.dataSort.sortMeta = requestMeta.sortMeta;\r\n let SortCols = \"\";\r\n for (let key in this.dataSort.sortMeta) {\r\n if (this.dataSort.sortMeta[key]) {\r\n let order = this.dataSort.sortMeta[key].order;\r\n let orderText = (order === -1) ? '-' : '';\r\n SortCols += orderText + this.dataSort.sortMeta[key].field + ',';\r\n }\r\n }\r\n if (SortCols.length > 0)// && !this.boolClearFilters)\r\n this.commonFilter.SortByOrder = SortCols.substring(0, SortCols.length - 1);\r\n else\r\n this.commonFilter.SortByOrder = '';\r\n\r\n this.commonFilter.PageNumber = currentPage.toString();\r\n this.commonFilter.PerPage = perPage.toString();\r\n this.commonFilter.ResultOrFileType = ResultOrFileType;\r\n this.commonFilter.ResultTypeName = requestMeta.rsltType; //elumalai - required for pdf file naming\r\n\r\n if (this.dataFilter.globalFilterValue !== null || this.commonFilter.ResultOrFileType > 0) {\r\n if (this.dataFilter.globalFilterValue !== null) {\r\n this.generalFilterArray.push({ ColumnName: \"ALL\", Operator: 10, Value: this.dataFilter.globalFilterValue, ValueTo: null, LoggedInUserName: null });//All columns startwith globalFilterVal\r\n }\r\n this.commonFilter.respColumnsList = respColumnsList;\r\n }\r\n\r\n //////////////// To Set selected mainfilter name i.e usefule for pdf loadfitler labelling purpose\r\n let selectedMainFilterCrieriaName = '';\r\n this.commonFilterService.mainFilter_CriteriaName.subscribe(res => selectedMainFilterCrieriaName = res);// set mainfilter ID\r\n this.generalFilterArray.forEach(item => {\r\n item.MainFilterName = selectedMainFilterCrieriaName;\r\n });\r\n\r\n //////check if loggedIn user has any criteria for filtering data\r\n if (sessionStorage.getItem('SystemSettings') != null) {\r\n this.commonFilter.UserCriteria = JSON.parse(sessionStorage.getItem('SystemSettings')).Criteria;\r\n let UserName = JSON.parse(sessionStorage.getItem('SystemSettings')).UserName;\r\n this.generalFilterArray.forEach(item => {\r\n item.LoggedInUserName = UserName;\r\n });\r\n generalFilterArrayAll.forEach(item => {\r\n item.LoggedInUserName = UserName;\r\n });\r\n }\r\n\r\n if (requestMeta.rsltTypeActual == 'call-events') {\r\n this.commonFilterService.filterCallEventErrorEvent.subscribe(res => {\r\n this.commonFilter.CallEventErrorEvent = res;\r\n });\r\n }\r\n else {\r\n if (requestMeta.rsltTypeActual == 'nettest' || requestMeta.rsltTypeActual == 'mobileinfo') {\r\n this.commonFilterService.filterConnDrop.subscribe(res => {\r\n this.commonFilter.ConnDropEvent = res;\r\n });\r\n }\r\n }\r\n\r\n this.commonFilterService.setAllGeneralFilterData(generalFilterArrayAll);\r\n \r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers\r\n };\r\n\r\n this.url = environment.urlAddress + '/api/' + requestMeta.rsltType + '/Post' + requestMeta.rsltType;\r\n let body = JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.generalFilterArray, netTestOrMobileInfoTypesArray: this.netTestOrMobileInfoTypesArray });\r\n if (requestMeta.rsltType != \"NetTestData\" && requestMeta.rsltType != \"MobileInfoData\")\r\n body = JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.generalFilterArray });\r\n\r\n return await this.http.post(this.url, body, options)\r\n .toPromise()\r\n .then(function (res) {\r\n debugger\r\n let resFinal = res;\r\n if (this.commonFilter.ResultOrFileType > 0) {\r\n resFinal = (res.split('@@'))[1];\r\n let resFileName = (res.split('@@'))[0];\r\n if (resFileName != \"0\")\r\n this.DownloadPDF(resFileName, this.commonFilter.ResultOrFileType);\r\n this.commonFilter.ResultOrFileType = 0;//reset\r\n }\r\n return true;\r\n }.bind(this))\r\n .catch(this.handleError.bind(this));\r\n }\r\n\r\n async getItemsByID(requestMeta: RequestMetadata): Promise {\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let params = new HttpParams();\r\n params = params.append('ID', requestMeta.id.toString());\r\n if (requestMeta.rsltType == \"NetTestData\" || requestMeta.rsltType == \"MobileInfoData\") {\r\n\r\n let currNetMobIndex: number = -1;\r\n this.resultsService.NetTestOrMobInfoByID.subscribe(res => currNetMobIndex = res);\r\n //console.log(currNetMobIndex)\r\n if (currNetMobIndex !== -1)\r\n params = params.append('netOrMobIndex', currNetMobIndex.toString());\r\n }\r\n //https://www.techiediaries.com/angular-9-8-url-query-parameters-with-httpparams-and-fromstring/\r\n //https://www.tektutorialshub.com/angular/angular-pass-url-parameters-query-strings/\r\n let options = {\r\n headers: headers,\r\n params: params\r\n };\r\n this.url = environment.urlAddress + '/api/' + requestMeta.rsltType + '/Get' + requestMeta.rsltType + 'ByID';///' + requestMeta.id;\r\n\r\n return await this.http.get(this.url, options)\r\n .toPromise()\r\n .then(function (res) {\r\n const rows: any[] = JSON.parse(res) as any[] || [];\r\n let filteredData = rows;\r\n //if (!boolDateFilterSelected)\r\n //filteredData = this.dataFilter.filterRows(rows);//filter the rows per page\r\n const sortedData = this.dataSort.sortRows(filteredData);//the sort the filtered rows\r\n const pageData = sortedData;//arrayPaginate(sortedData, currentPage, perPage);//get current page set of records hen page no selected\r\n const totalCount = 1;//sortedData.length\r\n const pageCount = pageData.length;\r\n const result = {\r\n items: pageData,\r\n _meta: {\r\n totalCount,//number of records totally\r\n pageCount,//number of records in current page\r\n }\r\n } as PagedResult;\r\n //console.log(result);\r\n return result;\r\n }.bind(this))\r\n .catch(this.handleError.bind(this));\r\n }\r\n\r\n getItem(row: any): Promise {\r\n alert(\"getitem\");\r\n //debugger;\r\n const filters = {};\r\n for (const key of this.primaryKeys) {\r\n filters[key] = { value: row[key] };\r\n }\r\n const requestMeta = {\r\n pageMeta: { currentPage: 1 },\r\n filters,\r\n } as RequestMetadata;\r\n return this.getItems(requestMeta)\r\n .then(data => data.items[0]);\r\n }\r\n\r\n post(item: any, methodName: string): Promise {\r\n return new Promise((resolve) => {\r\n setTimeout(() => resolve(item), 250);\r\n });\r\n }\r\n\r\n put(item: any, methodName: string): Promise {\r\n return new Promise((resolve) => {\r\n setTimeout(() => resolve(item), 250);\r\n });\r\n }\r\n\r\n delete(item: any, methodName: string): Promise {\r\n return new Promise((resolve) => {\r\n setTimeout(() => resolve(item), 250);\r\n });\r\n }\r\n\r\n getOptions(url: string, parentId: any): Promise {\r\n return this.http.get(url)\r\n .toPromise()\r\n .then((response: any) => {\r\n const result = response.filter((value: any) => {\r\n return value.parentId === parentId;\r\n });\r\n return new Promise((resolve) => {\r\n setTimeout(() => resolve(result), 1000);\r\n });\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: any) {\r\n let errorMessage = '';\r\n if (error.error instanceof ErrorEvent) {\r\n // client-side error\r\n errorMessage = `Error: ${error.error.message}`;\r\n } else {\r\n // server-side error\r\n errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\r\n }\r\n this.notifyService.sendMessage({ title: 'HttpErrorResponse', text: errorMessage, severity: 'error' });\r\n return Promise.reject(errorMessage);\r\n }\r\n\r\n DownloadPDF(fileName, ResultOrFileTypeSet) {\r\n //alert(fileName);\r\n //debugger;\r\n //const myFileName = 'my-custom-file.pdf';\r\n //const fileUrl = '/assets/DownloadedReports/WebviewerDummy.pdf';\r\n //fileName = \"VquadData_202107011629.xlsx\";\r\n //const myFileName = fileName; //'1.pdf';\r\n //const fileUrl = '/assets/DownloadedReports/' + fileName;\r\n\r\n //const myFileName = fileName; //'1.pdf';\r\n //const fileUrl = '/assets/DownloadedReports/' + fileName;\r\n debugger;\r\n //let basedownloadURL = \"http://localhost:8090\";//local\r\n let basedownloadURL= document.getElementsByTagName('base')[0].href.replace('/Webviewer/', ''); ///test server\r\n // console.log('start url');\r\n //console.log(basedownloadURL);\r\n console.log('end url');\r\n let newFileName = fileName;\r\n let xmlDocument = \"\";\r\n if (fileName.indexOf('::') != -1) {\r\n newFileName = (fileName.split('::'))[0];\r\n xmlDocument = (fileName.split('::'))[1];\r\n }\r\n //const fileUrl = 'assets/DownloadedReports/' + newFileName; ///Webviewer\\Webview\\dist\\assets\\DownloadedReports\r\n\r\n // const fileUrl = basedownloadURL + '/Webview/dist/assets/DownloadedReports/' + newFileName; ///local server\r\n // const fileUrl = 'http://localhost/Webviewer/assets/DownloadedReports/' + newFileName; ///at remote pc test server\r\n const fileUrl = basedownloadURL+'/Webviewer/assets/DownloadedReports/' + newFileName; ///test server with ip address\r\n\r\n //https://stackoverflow.com/questions/56100555/angular-7-download-pdf-file-under-app-folder\r\n //window.open(fileUrl, '_blank');\r\n\r\n if (ResultOrFileTypeSet != 6)\r\n //https://www.freakyjolly.com/angular-7-8-9-download-pdf-files-in-browser-instead-of-opening-in-new-tab-quick-solution/\r\n FileSaver.saveAs(fileUrl, newFileName);\r\n else {\r\n //https://stackblitz.com/edit/coordinate-to-kml\r\n var element = document.createElement('a');\r\n element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(xmlDocument));\r\n element.setAttribute('download', newFileName);\r\n\r\n element.style.display = 'none';\r\n document.body.appendChild(element);\r\n\r\n element.click();\r\n\r\n document.body.removeChild(element);\r\n }\r\n }\r\n\r\n GetTestData_10min() {\r\n this.Ten_min = false;\r\n let data = [{ \"ID\": 12101804.00, \"VQuad_Timestamp\": \"2022-04-28T16:20:09\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428161928\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:19:28\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101801.00, \"VQuad_Timestamp\": \"2022-04-28T16:20:06\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428161921\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:19:21\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 25.90, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101798.00, \"VQuad_Timestamp\": \"2022-04-28T16:20:01\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428161928\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:19:28\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101797.00, \"VQuad_Timestamp\": \"2022-04-28T16:19:53\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428161928\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:19:28\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101796.00, \"VQuad_Timestamp\": \"2022-04-28T16:19:44\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428161928\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:19:28\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101793.00, \"VQuad_Timestamp\": \"2022-04-28T16:19:35\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428161928\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:19:28\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101792.00, \"VQuad_Timestamp\": \"2022-04-28T16:19:33\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428161921\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:19:21\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 30.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101783.00, \"VQuad_Timestamp\": \"2022-04-28T16:19:02\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428161818\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:18:18\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 23.50, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101778.00, \"VQuad_Timestamp\": \"2022-04-28T16:18:32\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428161818\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:18:18\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 29.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101769.00, \"VQuad_Timestamp\": \"2022-04-28T16:17:59\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428161714\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:17:14\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 26.70, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101764.00, \"VQuad_Timestamp\": \"2022-04-28T16:17:25\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428161714\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:17:14\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 30.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101757.00, \"VQuad_Timestamp\": \"2022-04-28T16:17:13\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"Double-Talk event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": \"Pass\", \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101756.00, \"VQuad_Timestamp\": \"2022-04-28T16:17:00\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"SigGain event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": -3.70, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101751.00, \"VQuad_Timestamp\": \"2022-04-28T16:16:55\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428161610\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:16:10\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 23.90, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101748.00, \"VQuad_Timestamp\": \"2022-04-28T16:16:42\", \"GPS_Position\": \"N12º55'35'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerBandwidth\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"3312 (NB)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": 3312.00, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101747.00, \"VQuad_Timestamp\": \"2022-04-28T16:16:42\", \"GPS_Position\": \"N12º55'35'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerPower\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"-31.6 (PowerFail)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": -31.60, \"PTT_Conn_Time\": null }, { \"ID\": 12101738.00, \"VQuad_Timestamp\": \"2022-04-28T16:16:24\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428161610\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:16:10\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 29.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101723.00, \"VQuad_Timestamp\": \"2022-04-28T16:16:11\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101722.00, \"VQuad_Timestamp\": \"2022-04-28T16:16:03\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101720.00, \"VQuad_Timestamp\": \"2022-04-28T16:15:53\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101717.00, \"VQuad_Timestamp\": \"2022-04-28T16:15:51\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428161506\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:15:06\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 26.00, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101714.00, \"VQuad_Timestamp\": \"2022-04-28T16:15:45\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101713.00, \"VQuad_Timestamp\": \"2022-04-28T16:15:37\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101712.00, \"VQuad_Timestamp\": \"2022-04-28T16:15:28\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101709.00, \"VQuad_Timestamp\": \"2022-04-28T16:15:17\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428161506\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:15:06\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 30.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101700.00, \"VQuad_Timestamp\": \"2022-04-28T16:14:47\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428161402\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:14:02\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 23.80, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101695.00, \"VQuad_Timestamp\": \"2022-04-28T16:14:16\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428161402\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:14:02\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 30.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101685.00, \"VQuad_Timestamp\": \"2022-04-28T16:13:44\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"Double-Talk event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": \"Pass\", \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101684.00, \"VQuad_Timestamp\": \"2022-04-28T16:13:43\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428161259\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:12:59\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 21.80, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101681.00, \"VQuad_Timestamp\": \"2022-04-28T16:13:31\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"SigGain event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": -3.70, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101677.00, \"VQuad_Timestamp\": \"2022-04-28T16:13:14\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428161259\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:12:59\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 30.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101676.00, \"VQuad_Timestamp\": \"2022-04-28T16:13:13\", \"GPS_Position\": \"N12º55'35'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerBandwidth\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"3312 (NB)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": 3312.00, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101675.00, \"VQuad_Timestamp\": \"2022-04-28T16:13:13\", \"GPS_Position\": \"N12º55'35'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerPower\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"-31.6 (PowerFail)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": -31.60, \"PTT_Conn_Time\": null }, { \"ID\": 12101651.00, \"VQuad_Timestamp\": \"2022-04-28T16:12:41\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101650.00, \"VQuad_Timestamp\": \"2022-04-28T16:12:40\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428161155\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:11:55\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 24.70, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101647.00, \"VQuad_Timestamp\": \"2022-04-28T16:12:32\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101646.00, \"VQuad_Timestamp\": \"2022-04-28T16:12:24\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101644.00, \"VQuad_Timestamp\": \"2022-04-28T16:12:15\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101642.00, \"VQuad_Timestamp\": \"2022-04-28T16:12:08\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428161155\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:11:55\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 29.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101641.00, \"VQuad_Timestamp\": \"2022-04-28T16:12:07\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101635.00, \"VQuad_Timestamp\": \"2022-04-28T16:11:59\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428161151\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:11:51\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101631.00, \"VQuad_Timestamp\": \"2022-04-28T16:11:36\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428161052\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:10:52\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 22.80, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101626.00, \"VQuad_Timestamp\": \"2022-04-28T16:11:07\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428161052\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:10:52\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 30.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101617.00, \"VQuad_Timestamp\": \"2022-04-28T16:10:33\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428160948\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:09:48\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 25.70, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }];\r\n return data;\r\n }\r\n GetTestData_7day() {\r\n this.Ten_min = true;\r\n let data = [{ \"ID\": 12102528.00, \"VQuad_Timestamp\": \"2022-04-28T16:58:51\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428165711\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:57:11\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": -6.00, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102527.00, \"VQuad_Timestamp\": \"2022-04-28T16:58:46\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineC event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428165711\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:57:11\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": 2.20, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102526.00, \"VQuad_Timestamp\": \"2022-04-28T16:58:41\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineV event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428165711;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:57:11\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": -7.00, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102525.00, \"VQuad_Timestamp\": \"2022-04-28T16:58:36\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineC event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428165711;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:57:11\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": 23.10, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102524.00, \"VQuad_Timestamp\": \"2022-04-28T16:58:30\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428165711\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:57:11\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102522.00, \"VQuad_Timestamp\": \"2022-04-28T16:58:23\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428165711;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:57:11\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102521.00, \"VQuad_Timestamp\": \"2022-04-28T16:58:22\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"Double-Talk event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428165631\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:56:31\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": \"Pass\", \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102520.00, \"VQuad_Timestamp\": \"2022-04-28T16:58:14\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428165711\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:57:11\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102519.00, \"VQuad_Timestamp\": \"2022-04-28T16:58:08\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"SigGain event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428165631\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:56:31\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": -3.70, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102517.00, \"VQuad_Timestamp\": \"2022-04-28T16:58:06\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428165711;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:57:11\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102516.00, \"VQuad_Timestamp\": \"2022-04-28T16:57:58\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428165711;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:57:11\", \"RTD_Rating\": \"Pass\", \"OWD\": 2.10, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102515.00, \"VQuad_Timestamp\": \"2022-04-28T16:57:51\", \"GPS_Position\": \"N12º55'34'' E077º36'05''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerBandwidth\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428165631\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:56:31\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"3312 (NB)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": 3312.00, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102514.00, \"VQuad_Timestamp\": \"2022-04-28T16:57:51\", \"GPS_Position\": \"N12º55'34'' E077º36'05''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerPower\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428165631\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:56:31\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"-31.6 (PowerFail)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": -31.60, \"PTT_Conn_Time\": null }, { \"ID\": 12102513.00, \"VQuad_Timestamp\": \"2022-04-28T16:57:50\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428165711\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:57:11\", \"RTD_Rating\": \"Pass\", \"OWD\": 2.10, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102505.00, \"VQuad_Timestamp\": \"2022-04-28T16:57:38\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CCT event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428165711;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:57:11\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": 18.70, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102492.00, \"VQuad_Timestamp\": \"2022-04-28T16:57:25\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428165711\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:57:11\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 29.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102489.00, \"VQuad_Timestamp\": \"2022-04-28T16:57:21\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428165631\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:56:31\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102484.00, \"VQuad_Timestamp\": \"2022-04-28T16:57:13\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428165631\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:56:31\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102483.00, \"VQuad_Timestamp\": \"2022-04-28T16:57:04\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428165631\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:56:31\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102481.00, \"VQuad_Timestamp\": \"2022-04-28T16:56:55\", \"GPS_Position\": \"N12º55'33'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428165631\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:56:31\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102479.00, \"VQuad_Timestamp\": \"2022-04-28T16:56:55\", \"GPS_Position\": \"N12º55'33'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428165224;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:52:24\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": 243.80, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102477.00, \"VQuad_Timestamp\": \"2022-04-28T16:56:52\", \"GPS_Position\": \"N12º55'33'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428165224\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:52:24\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 247.30, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102475.00, \"VQuad_Timestamp\": \"2022-04-28T16:56:46\", \"GPS_Position\": \"N12º55'33'' E077º36'06'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428165631\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:56:31\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102474.00, \"VQuad_Timestamp\": \"2022-04-28T16:56:37\", \"GPS_Position\": \"N12º55'33'' E077º36'06'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428165631\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:56:31\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102472.00, \"VQuad_Timestamp\": \"2022-04-28T16:54:51\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"SigGain event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428165224\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:52:24\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": -7.90, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102470.00, \"VQuad_Timestamp\": \"2022-04-28T16:54:34\", \"GPS_Position\": \"N12º55'35'' E077º36'05''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerBandwidth\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428165224;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:52:24\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"3312 (NB)\", \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": 3312.00, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102469.00, \"VQuad_Timestamp\": \"2022-04-28T16:54:34\", \"GPS_Position\": \"N12º55'35'' E077º36'05''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerPower\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428165224;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:52:24\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"-31.6 (PowerFail)\", \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": -31.60, \"PTT_Conn_Time\": null }, { \"ID\": 12102461.00, \"VQuad_Timestamp\": \"2022-04-28T16:54:23\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"Double-Talk event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": \"Pass\", \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102452.00, \"VQuad_Timestamp\": \"2022-04-28T16:54:11\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"SigGain event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": -3.70, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102449.00, \"VQuad_Timestamp\": \"2022-04-28T16:54:04\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428165224\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:52:24\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": -5.00, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102448.00, \"VQuad_Timestamp\": \"2022-04-28T16:53:59\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineC event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428165224\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:52:24\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": 23.10, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102447.00, \"VQuad_Timestamp\": \"2022-04-28T16:53:54\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineV event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428165224;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:52:24\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": -7.00, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102446.00, \"VQuad_Timestamp\": \"2022-04-28T16:53:54\", \"GPS_Position\": \"N12º55'35'' E077º36'05''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerBandwidth\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"3312 (NB)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": 3312.00, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102445.00, \"VQuad_Timestamp\": \"2022-04-28T16:53:54\", \"GPS_Position\": \"N12º55'35'' E077º36'05''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerPower\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"-31.6 (PowerFail)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": -31.60, \"PTT_Conn_Time\": null }, { \"ID\": 12102444.00, \"VQuad_Timestamp\": \"2022-04-28T16:53:49\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineC event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428165224;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:52:24\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": 23.10, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102437.00, \"VQuad_Timestamp\": \"2022-04-28T16:53:45\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428165224\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:52:24\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102436.00, \"VQuad_Timestamp\": \"2022-04-28T16:53:36\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428165224;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:52:24\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102426.00, \"VQuad_Timestamp\": \"2022-04-28T16:53:28\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428165224\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:52:24\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102425.00, \"VQuad_Timestamp\": \"2022-04-28T16:53:24\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102424.00, \"VQuad_Timestamp\": \"2022-04-28T16:53:20\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428165224;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:52:24\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102423.00, \"VQuad_Timestamp\": \"2022-04-28T16:53:16\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102422.00, \"VQuad_Timestamp\": \"2022-04-28T16:53:11\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428165224;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:52:24\", \"RTD_Rating\": \"Pass\", \"OWD\": 2.10, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102421.00, \"VQuad_Timestamp\": \"2022-04-28T16:53:08\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102420.00, \"VQuad_Timestamp\": \"2022-04-28T16:53:04\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428165224\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:52:24\", \"RTD_Rating\": \"Pass\", \"OWD\": 2.10, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102419.00, \"VQuad_Timestamp\": \"2022-04-28T16:53:00\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102418.00, \"VQuad_Timestamp\": \"2022-04-28T16:52:51\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102416.00, \"VQuad_Timestamp\": \"2022-04-28T16:52:51\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CCT event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428165224;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:52:24\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": 19.80, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102413.00, \"VQuad_Timestamp\": \"2022-04-28T16:52:41\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102411.00, \"VQuad_Timestamp\": \"2022-04-28T16:52:38\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428165224\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:52:24\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 29.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102401.00, \"VQuad_Timestamp\": \"2022-04-28T16:52:07\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428164739;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:47:39\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": 244.70, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102399.00, \"VQuad_Timestamp\": \"2022-04-28T16:52:05\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428164739\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:47:39\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 246.20, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102396.00, \"VQuad_Timestamp\": \"2022-04-28T16:51:01\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"Double-Talk event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": \"Pass\", \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102395.00, \"VQuad_Timestamp\": \"2022-04-28T16:50:47\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"SigGain event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": -3.70, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102392.00, \"VQuad_Timestamp\": \"2022-04-28T16:50:31\", \"GPS_Position\": \"N12º55'35'' E077º36'05''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerBandwidth\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"3312 (NB)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": 3312.00, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102391.00, \"VQuad_Timestamp\": \"2022-04-28T16:50:31\", \"GPS_Position\": \"N12º55'35'' E077º36'05''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerPower\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"-31.6 (PowerFail)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": -31.60, \"PTT_Conn_Time\": null }, { \"ID\": 12102375.00, \"VQuad_Timestamp\": \"2022-04-28T16:50:02\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"SigGain event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428164739\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:47:39\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": -7.90, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102373.00, \"VQuad_Timestamp\": \"2022-04-28T16:50:01\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102372.00, \"VQuad_Timestamp\": \"2022-04-28T16:49:53\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102371.00, \"VQuad_Timestamp\": \"2022-04-28T16:49:46\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102370.00, \"VQuad_Timestamp\": \"2022-04-28T16:49:46\", \"GPS_Position\": \"N12º55'35'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerBandwidth\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428164739;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:47:39\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"3312 (NB)\", \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": 3312.00, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102369.00, \"VQuad_Timestamp\": \"2022-04-28T16:49:46\", \"GPS_Position\": \"N12º55'35'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerPower\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428164739;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:47:39\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"-31.6 (PowerFail)\", \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": -31.60, \"PTT_Conn_Time\": null }, { \"ID\": 12102364.00, \"VQuad_Timestamp\": \"2022-04-28T16:49:37\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102361.00, \"VQuad_Timestamp\": \"2022-04-28T16:49:29\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102351.00, \"VQuad_Timestamp\": \"2022-04-28T16:49:21\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428164914\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:49:14\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102350.00, \"VQuad_Timestamp\": \"2022-04-28T16:49:16\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428164739\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:47:39\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": -6.00, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102349.00, \"VQuad_Timestamp\": \"2022-04-28T16:49:11\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineC event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428164739\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:47:39\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": 23.10, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102348.00, \"VQuad_Timestamp\": \"2022-04-28T16:49:06\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineV event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428164739;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:47:39\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": -7.00, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102347.00, \"VQuad_Timestamp\": \"2022-04-28T16:49:01\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineC event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428164739;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:47:39\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": 23.10, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102346.00, \"VQuad_Timestamp\": \"2022-04-28T16:48:55\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428164739\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:47:39\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102345.00, \"VQuad_Timestamp\": \"2022-04-28T16:48:47\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428164739;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:47:39\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102344.00, \"VQuad_Timestamp\": \"2022-04-28T16:48:39\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428164739\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:47:39\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102343.00, \"VQuad_Timestamp\": \"2022-04-28T16:48:31\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428164739;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:47:39\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102342.00, \"VQuad_Timestamp\": \"2022-04-28T16:48:24\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428164739;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:47:39\", \"RTD_Rating\": \"Pass\", \"OWD\": 2.00, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102341.00, \"VQuad_Timestamp\": \"2022-04-28T16:48:15\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428164739\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:47:39\", \"RTD_Rating\": \"Pass\", \"OWD\": 2.10, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102339.00, \"VQuad_Timestamp\": \"2022-04-28T16:48:03\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CCT event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428164739;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:47:39\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": 15.70, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102335.00, \"VQuad_Timestamp\": \"2022-04-28T16:47:51\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428164739\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:47:39\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 29.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102326.00, \"VQuad_Timestamp\": \"2022-04-28T16:47:23\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428164251;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:42:51\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": 244.60, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102324.00, \"VQuad_Timestamp\": \"2022-04-28T16:47:21\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428164251\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:42:51\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 248.20, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102321.00, \"VQuad_Timestamp\": \"2022-04-28T16:47:02\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"Double-Talk event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": \"Pass\", \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102320.00, \"VQuad_Timestamp\": \"2022-04-28T16:46:50\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"SigGain event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": -3.70, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102318.00, \"VQuad_Timestamp\": \"2022-04-28T16:46:33\", \"GPS_Position\": \"N12º55'35'' E077º36'05''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerBandwidth\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"3312 (NB)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": 3312.00, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102317.00, \"VQuad_Timestamp\": \"2022-04-28T16:46:33\", \"GPS_Position\": \"N12º55'35'' E077º36'05''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerPower\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"-31.6 (PowerFail)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": -31.60, \"PTT_Conn_Time\": null }, { \"ID\": 12102301.00, \"VQuad_Timestamp\": \"2022-04-28T16:46:03\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102300.00, \"VQuad_Timestamp\": \"2022-04-28T16:45:55\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102299.00, \"VQuad_Timestamp\": \"2022-04-28T16:45:48\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102297.00, \"VQuad_Timestamp\": \"2022-04-28T16:45:39\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102296.00, \"VQuad_Timestamp\": \"2022-04-28T16:45:31\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102295.00, \"VQuad_Timestamp\": \"2022-04-28T16:45:23\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102294.00, \"VQuad_Timestamp\": \"2022-04-28T16:45:17\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"SigGain event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428164251\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:42:51\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": -7.90, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102292.00, \"VQuad_Timestamp\": \"2022-04-28T16:45:01\", \"GPS_Position\": \"N12º55'35'' E077º36'05''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerBandwidth\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428164251;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:42:51\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"3312 (NB)\", \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": 3312.00, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102291.00, \"VQuad_Timestamp\": \"2022-04-28T16:45:01\", \"GPS_Position\": \"N12º55'35'' E077º36'05''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerPower\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428164251;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:42:51\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"-31.6 (PowerFail)\", \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": -31.60, \"PTT_Conn_Time\": null }, { \"ID\": 12102275.00, \"VQuad_Timestamp\": \"2022-04-28T16:44:31\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428164251\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:42:51\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": -5.00, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102274.00, \"VQuad_Timestamp\": \"2022-04-28T16:44:26\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineC event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428164251\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:42:51\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": 23.10, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102273.00, \"VQuad_Timestamp\": \"2022-04-28T16:44:21\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineV event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428164251;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:42:51\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": -7.00, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102272.00, \"VQuad_Timestamp\": \"2022-04-28T16:44:16\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineC event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428164251;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:42:51\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": 23.10, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102271.00, \"VQuad_Timestamp\": \"2022-04-28T16:44:11\", \"GPS_Position\": \"N12º55'35'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428164251\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:42:51\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102270.00, \"VQuad_Timestamp\": \"2022-04-28T16:44:04\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428164251;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:42:51\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102269.00, \"VQuad_Timestamp\": \"2022-04-28T16:43:55\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428164251\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:42:51\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102267.00, \"VQuad_Timestamp\": \"2022-04-28T16:43:47\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428164251;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:42:51\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102266.00, \"VQuad_Timestamp\": \"2022-04-28T16:43:44\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"Double-Talk event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": \"Pass\", \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102265.00, \"VQuad_Timestamp\": \"2022-04-28T16:43:39\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428164251;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:42:51\", \"RTD_Rating\": \"Pass\", \"OWD\": 2.00, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102264.00, \"VQuad_Timestamp\": \"2022-04-28T16:43:31\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"SigGain event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": -3.70, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102263.00, \"VQuad_Timestamp\": \"2022-04-28T16:43:31\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428164251\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:42:51\", \"RTD_Rating\": \"Pass\", \"OWD\": 2.10, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102260.00, \"VQuad_Timestamp\": \"2022-04-28T16:43:18\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CCT event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428164251;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:42:51\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": 20.00, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102258.00, \"VQuad_Timestamp\": \"2022-04-28T16:43:14\", \"GPS_Position\": \"N12º55'34'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerBandwidth\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"3312 (NB)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": 3312.00, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102257.00, \"VQuad_Timestamp\": \"2022-04-28T16:43:14\", \"GPS_Position\": \"N12º55'34'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerPower\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"-31.6 (PowerFail)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": -31.60, \"PTT_Conn_Time\": null }, { \"ID\": 12102251.00, \"VQuad_Timestamp\": \"2022-04-28T16:43:05\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428164251\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:42:51\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 29.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102232.00, \"VQuad_Timestamp\": \"2022-04-28T16:42:44\", \"GPS_Position\": \"N12º55'34'' E077º36'05'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102230.00, \"VQuad_Timestamp\": \"2022-04-28T16:42:34\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102228.00, \"VQuad_Timestamp\": \"2022-04-28T16:42:34\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428163803;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:38:03\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": 244.20, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102226.00, \"VQuad_Timestamp\": \"2022-04-28T16:42:32\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163803\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:38:03\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 246.30, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102224.00, \"VQuad_Timestamp\": \"2022-04-28T16:42:26\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102223.00, \"VQuad_Timestamp\": \"2022-04-28T16:42:18\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102222.00, \"VQuad_Timestamp\": \"2022-04-28T16:42:09\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102221.00, \"VQuad_Timestamp\": \"2022-04-28T16:42:01\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428164154\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:41:54\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102219.00, \"VQuad_Timestamp\": \"2022-04-28T16:40:30\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"SigGain event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163803\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:38:03\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": -7.90, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102217.00, \"VQuad_Timestamp\": \"2022-04-28T16:40:13\", \"GPS_Position\": \"N12º55'35'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerBandwidth\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428163803;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:38:03\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"3312 (NB)\", \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": 3312.00, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102216.00, \"VQuad_Timestamp\": \"2022-04-28T16:40:13\", \"GPS_Position\": \"N12º55'35'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerPower\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428163803;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:38:03\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"-31.6 (PowerFail)\", \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": -31.60, \"PTT_Conn_Time\": null }, { \"ID\": 12102199.00, \"VQuad_Timestamp\": \"2022-04-28T16:39:47\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"Double-Talk event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": \"Pass\", \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102198.00, \"VQuad_Timestamp\": \"2022-04-28T16:39:43\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163803\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:38:03\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": -5.00, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102197.00, \"VQuad_Timestamp\": \"2022-04-28T16:39:38\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineC event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163803\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:38:03\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": 23.10, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102196.00, \"VQuad_Timestamp\": \"2022-04-28T16:39:34\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"SigGain event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": -3.70, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102194.00, \"VQuad_Timestamp\": \"2022-04-28T16:39:33\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineV event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428163803;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:38:03\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": -7.00, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102193.00, \"VQuad_Timestamp\": \"2022-04-28T16:39:28\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineC event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428163803;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:38:03\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": 23.10, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102192.00, \"VQuad_Timestamp\": \"2022-04-28T16:39:23\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163803\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:38:03\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102191.00, \"VQuad_Timestamp\": \"2022-04-28T16:39:17\", \"GPS_Position\": \"N12º55'35'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerBandwidth\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"3312 (NB)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": 3312.00, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102190.00, \"VQuad_Timestamp\": \"2022-04-28T16:39:17\", \"GPS_Position\": \"N12º55'35'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerPower\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"-31.6 (PowerFail)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": -31.60, \"PTT_Conn_Time\": null }, { \"ID\": 12102189.00, \"VQuad_Timestamp\": \"2022-04-28T16:39:15\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428163803;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:38:03\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102182.00, \"VQuad_Timestamp\": \"2022-04-28T16:39:06\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 3.10, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163803\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:38:03\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102181.00, \"VQuad_Timestamp\": \"2022-04-28T16:38:58\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428163803;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:38:03\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102171.00, \"VQuad_Timestamp\": \"2022-04-28T16:38:51\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428163803;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:38:03\", \"RTD_Rating\": \"Pass\", \"OWD\": 2.00, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102170.00, \"VQuad_Timestamp\": \"2022-04-28T16:38:49\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102169.00, \"VQuad_Timestamp\": \"2022-04-28T16:38:42\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163803\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:38:03\", \"RTD_Rating\": \"Pass\", \"OWD\": 2.00, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102168.00, \"VQuad_Timestamp\": \"2022-04-28T16:38:40\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102167.00, \"VQuad_Timestamp\": \"2022-04-28T16:38:32\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102165.00, \"VQuad_Timestamp\": \"2022-04-28T16:38:30\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CCT event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428163803;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:38:03\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": 19.50, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102162.00, \"VQuad_Timestamp\": \"2022-04-28T16:38:22\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102160.00, \"VQuad_Timestamp\": \"2022-04-28T16:38:19\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163803\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:38:03\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 30.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102157.00, \"VQuad_Timestamp\": \"2022-04-28T16:38:15\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102152.00, \"VQuad_Timestamp\": \"2022-04-28T16:38:07\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102149.00, \"VQuad_Timestamp\": \"2022-04-28T16:37:46\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428163320;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:33:20\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": 243.30, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102147.00, \"VQuad_Timestamp\": \"2022-04-28T16:37:44\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163320\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:33:20\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 245.00, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102144.00, \"VQuad_Timestamp\": \"2022-04-28T16:36:26\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"Double-Talk event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": \"Pass\", \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102143.00, \"VQuad_Timestamp\": \"2022-04-28T16:36:13\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"SigGain event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": -3.70, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102140.00, \"VQuad_Timestamp\": \"2022-04-28T16:35:56\", \"GPS_Position\": \"N12º55'34'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerBandwidth\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"3312 (NB)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": 3312.00, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102139.00, \"VQuad_Timestamp\": \"2022-04-28T16:35:56\", \"GPS_Position\": \"N12º55'34'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerPower\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"-31.6 (PowerFail)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": -31.60, \"PTT_Conn_Time\": null }, { \"ID\": 12102132.00, \"VQuad_Timestamp\": \"2022-04-28T16:35:43\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"SigGain event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163320\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:33:20\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": -7.90, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102121.00, \"VQuad_Timestamp\": \"2022-04-28T16:35:27\", \"GPS_Position\": \"N12º55'36'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102120.00, \"VQuad_Timestamp\": \"2022-04-28T16:35:25\", \"GPS_Position\": \"N12º55'36'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerBandwidth\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428163320;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:33:20\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"3312 (NB)\", \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": 3312.00, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102119.00, \"VQuad_Timestamp\": \"2022-04-28T16:35:25\", \"GPS_Position\": \"N12º55'36'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerPower\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428163320;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:33:20\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"-31.6 (PowerFail)\", \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": -31.60, \"PTT_Conn_Time\": null }, { \"ID\": 12102118.00, \"VQuad_Timestamp\": \"2022-04-28T16:35:19\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102111.00, \"VQuad_Timestamp\": \"2022-04-28T16:35:11\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102103.00, \"VQuad_Timestamp\": \"2022-04-28T16:35:03\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102100.00, \"VQuad_Timestamp\": \"2022-04-28T16:34:56\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163320\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:33:20\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": -6.00, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102099.00, \"VQuad_Timestamp\": \"2022-04-28T16:34:54\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102098.00, \"VQuad_Timestamp\": \"2022-04-28T16:34:51\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineC event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163320\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:33:20\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": 24.20, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102097.00, \"VQuad_Timestamp\": \"2022-04-28T16:34:46\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428163439\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:34:39\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102096.00, \"VQuad_Timestamp\": \"2022-04-28T16:34:46\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineV event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428163320;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:33:20\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": -7.00, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102095.00, \"VQuad_Timestamp\": \"2022-04-28T16:34:41\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"LineC event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428163320;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:33:20\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": 24.20, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102094.00, \"VQuad_Timestamp\": \"2022-04-28T16:34:36\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163320\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:33:20\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102093.00, \"VQuad_Timestamp\": \"2022-04-28T16:34:28\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 3.10, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428163320;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:33:20\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102092.00, \"VQuad_Timestamp\": \"2022-04-28T16:34:20\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163320\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:33:20\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102091.00, \"VQuad_Timestamp\": \"2022-04-28T16:34:11\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 2.90, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428163320;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:33:20\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102090.00, \"VQuad_Timestamp\": \"2022-04-28T16:34:03\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428163320;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:33:20\", \"RTD_Rating\": \"Pass\", \"OWD\": 2.10, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102089.00, \"VQuad_Timestamp\": \"2022-04-28T16:33:56\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163320\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:33:20\", \"RTD_Rating\": \"Pass\", \"OWD\": 2.10, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102087.00, \"VQuad_Timestamp\": \"2022-04-28T16:33:43\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CCT event\", \"VQuad_CallID\": \"O_FXOPOLQATEST_FXO1_20220428163320;PSTN_PSTN\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO1\", \"Call_Timestamp\": \"2022-04-28T16:33:20\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": \"PSTN\", \"CallType_Term\": \"PSTN\", \"CT\": null, \"CCT\": 15.70, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102083.00, \"VQuad_Timestamp\": \"2022-04-28T16:33:32\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163320\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:33:20\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 30.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102073.00, \"VQuad_Timestamp\": \"2022-04-28T16:32:46\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163207\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:32:07\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 18.30, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102068.00, \"VQuad_Timestamp\": \"2022-04-28T16:32:27\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"Double-Talk event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": \"Pass\", \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102066.00, \"VQuad_Timestamp\": \"2022-04-28T16:32:20\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163207\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:32:07\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 29.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102063.00, \"VQuad_Timestamp\": \"2022-04-28T16:32:15\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"SigGain event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": -3.70, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102058.00, \"VQuad_Timestamp\": \"2022-04-28T16:31:57\", \"GPS_Position\": \"N12º55'35'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerBandwidth\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"3312 (NB)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": 3312.00, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102057.00, \"VQuad_Timestamp\": \"2022-04-28T16:31:57\", \"GPS_Position\": \"N12º55'35'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerPower\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"-31.6 (PowerFail)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": -31.60, \"PTT_Conn_Time\": null }, { \"ID\": 12102049.00, \"VQuad_Timestamp\": \"2022-04-28T16:31:48\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163104\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:31:04\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 21.90, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102034.00, \"VQuad_Timestamp\": \"2022-04-28T16:31:25\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102032.00, \"VQuad_Timestamp\": \"2022-04-28T16:31:19\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163104\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:31:04\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 30.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102029.00, \"VQuad_Timestamp\": \"2022-04-28T16:31:17\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102027.00, \"VQuad_Timestamp\": \"2022-04-28T16:31:08\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102024.00, \"VQuad_Timestamp\": \"2022-04-28T16:31:00\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102023.00, \"VQuad_Timestamp\": \"2022-04-28T16:30:51\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102019.00, \"VQuad_Timestamp\": \"2022-04-28T16:30:45\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163000\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:30:00\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 25.10, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102017.00, \"VQuad_Timestamp\": \"2022-04-28T16:30:42\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102013.00, \"VQuad_Timestamp\": \"2022-04-28T16:30:13\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428163000\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:30:00\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 29.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12102004.00, \"VQuad_Timestamp\": \"2022-04-28T16:29:41\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428162856\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:28:56\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 22.70, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101999.00, \"VQuad_Timestamp\": \"2022-04-28T16:29:11\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428162856\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:28:56\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 29.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101992.00, \"VQuad_Timestamp\": \"2022-04-28T16:28:58\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"Double-Talk event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": \"Pass\", \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101991.00, \"VQuad_Timestamp\": \"2022-04-28T16:28:45\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"SigGain event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": -3.70, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101986.00, \"VQuad_Timestamp\": \"2022-04-28T16:28:37\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428162752\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:27:52\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 25.00, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101983.00, \"VQuad_Timestamp\": \"2022-04-28T16:28:27\", \"GPS_Position\": \"N12º55'34'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerBandwidth\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"3312 (NB)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": 3312.00, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101982.00, \"VQuad_Timestamp\": \"2022-04-28T16:28:27\", \"GPS_Position\": \"N12º55'34'' E077º36'04''\", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"AudioAnalyzerPower\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": \"-31.6 (PowerFail)\", \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": -31.60, \"PTT_Conn_Time\": null }, { \"ID\": 12101971.00, \"VQuad_Timestamp\": \"2022-04-28T16:28:05\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428162752\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:27:52\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 29.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101960.00, \"VQuad_Timestamp\": \"2022-04-28T16:27:56\", \"GPS_Position\": \"N12º55'34'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101957.00, \"VQuad_Timestamp\": \"2022-04-28T16:27:48\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101956.00, \"VQuad_Timestamp\": \"2022-04-28T16:27:39\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101952.00, \"VQuad_Timestamp\": \"2022-04-28T16:27:33\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428162648\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:26:48\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 22.00, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101950.00, \"VQuad_Timestamp\": \"2022-04-28T16:27:29\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": 0.40, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RTD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": \"Pass\", \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101948.00, \"VQuad_Timestamp\": \"2022-04-28T16:27:22\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"O_BALANCEDPOLQATEST_My Phone1_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone1\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101947.00, \"VQuad_Timestamp\": \"2022-04-28T16:27:13\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"OWD event\", \"VQuad_CallID\": \"I_BALANCEDPOLQATEST_My Phone2_20220428162705\", \"VQuad_Location\": \"BALANCEDPOLQATEST\", \"VQuad_PhoneID\": \"My Phone2\", \"Call_Timestamp\": \"2022-04-28T16:27:05\", \"RTD_Rating\": \"Pass\", \"OWD\": 0.20, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101944.00, \"VQuad_Timestamp\": \"2022-04-28T16:27:03\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"RingV event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428162648\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:26:48\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": null, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": \"Peak\", \"Ring_Voltage\": 29.00, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }, { \"ID\": 12101935.00, \"VQuad_Timestamp\": \"2022-04-28T16:26:29\", \"GPS_Position\": \"N12º55'35'' E077º36'04'' \", \"GPS_Lat\": 12.93, \"GPS_Long\": 77.60, \"AFT\": null, \"RTD\": null, \"RTD_Error\": null, \"PDD\": null, \"PDD_Error\": null, \"Phone_ID\": null, \"Call_Control_Event\": \"CT event\", \"VQuad_CallID\": \"I_FXOPOLQATEST_FXO2_20220428162544\", \"VQuad_Location\": \"FXOPOLQATEST\", \"VQuad_PhoneID\": \"FXO2\", \"Call_Timestamp\": \"2022-04-28T16:25:44\", \"RTD_Rating\": null, \"OWD\": null, \"SWR\": null, \"CC_Condition\": null, \"CallType_Orig\": null, \"CallType_Term\": null, \"CT\": 24.90, \"CCT\": null, \"Signal_Level_Gain\": null, \"Line_Current\": null, \"Line_Voltage\": null, \"Ring_Type\": null, \"Ring_Voltage\": null, \"Speech_Activity\": null, \"Active_Speech_Level\": null, \"Noise_Level_TDM\": null, \"DC_Offset\": null, \"Total_RMS_Power\": null, \"Double_Talk\": null, \"Speech_Analysis\": null, \"STT_Percent\": null, \"Dropout\": null, \"VMWI\": null, \"SDT\": null, \"PTT_Setup_Time\": null, \"Audio_BW\": null, \"Audio_Power\": null, \"PTT_Conn_Time\": null }];\r\n return data;\r\n }\r\n\r\n\r\n}\r\n","//https://gist.github.com/ahmeti/5ca97ec41f6a48ef699ee6606560d1f7\r\n\r\nimport {\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Input\r\n} from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[numeric]\"\r\n})\r\nexport class NumericDirective {\r\n\r\n @Input('decimals') decimals: number = 0;\r\n\r\n private check(value: string, decimals: number) {\r\n if (decimals <= 0) {\r\n return String(value).match(new RegExp(/^\\d+$/));\r\n } else {\r\n var regExpString = \"^\\\\s*((\\\\d+(\\\\.\\\\d{0,\" + decimals + \"})?)|((\\\\d*(\\\\.\\\\d{1,\" + decimals + \"}))))\\\\s*$\";\r\n return String(value).match(new RegExp(regExpString));\r\n }\r\n }\r\n\r\n private specialKeys = [\r\n 'Backspace', 'Tab', 'End', 'Home', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete', 'Control'\r\n ];\r\n\r\n //private run(oldValue) {\r\n // setTimeout(() => {\r\n // let currentValue: string = this.el.nativeElement.value;\r\n // if (currentValue !== '' && !this.check(currentValue, this.decimals)) {\r\n // this.el.nativeElement.value = oldValue;\r\n // }\r\n // });\r\n //}\r\n\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent) {\r\n if (((event.key === \"v\" || event.key === \"a\") && event.ctrlKey) || this.specialKeys.indexOf(event.key) !== -1) {\r\n return;\r\n }\r\n // Do not use event.keycode this is deprecated.\r\n // See: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode\r\n let current: string = this.el.nativeElement.value;\r\n let next: string = current.concat(event.key);\r\n if (next && !this.check(next, this.decimals)) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n","//https://www.codegrepper.com/code-examples/javascript/accept+2+values+after+decimal+in+angular+forms\r\n//https://www.thetopsites.net/article/50722368.shtml\r\n//https://www.pluralsight.com/guides/generating-a-custom-directive-with-the-cli\r\n\r\n//https://upliftskills.us/blog/2018/11/08/how-to-add-directive-dynamically-in-angular-2-4-6/\r\nimport { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\n@Directive({\r\n selector: '[appTwoDigitDecimaNumber]'\r\n})\r\nexport class TwoDigitDecimaNumberDirective {\r\n @Input() dontApply: boolean = true;\r\n @Input() regex: RegExp = new RegExp(/^[-]?\\d*\\.?\\d{0,2}$/g);\r\n private specialKeys: Array = ['Backspace', 'Tab', 'End', 'Home', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete', 'Control'];//, '-'\r\n constructor(private el: ElementRef) {\r\n }\r\n @HostListener('paste', ['$event'])\r\n onPaste(event: ClipboardEvent) {\r\n let clipboardData = event.clipboardData;\r\n let pastedText = clipboardData.getData('text');\r\n\r\n //if (isNaN(+pastedText))\r\n // event.preventDefault();\r\n }\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent) {\r\n //console.log(this.el.nativeElement.value);\r\n // Allow Backspace, tab, end, and home keys and ctrl + v and ctrl + a\r\n if (((event.key === \"v\" || event.key === \"a\") && event.ctrlKey) || this.specialKeys.findIndex(x => x == event.key) !== -1) {\r\n return;\r\n }\r\n let current: string = this.el.nativeElement.value;\r\n const position = this.el.nativeElement.selectionStart;\r\n const next: string = [current.slice(0, position), event.key == 'Decimal' ? '.' : event.key, current.slice(position)].join('');\r\n if (next && !String(next).match(this.regex)) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n","export interface Title {\r\n title: string;\r\n startDate: string;\r\n endDate: string;\r\n}\r\n\r\nexport function rsltTypeInTitle(rsltType: string) {\r\n let title: string;\r\n switch (rsltType) {\r\n case \"pesq\":\r\n default:\r\n title = \"VQT-PESQ Results\";\r\n break;\r\n case \"polqa\":\r\n title = \"VQT-POLQA Results\";\r\n break;\r\n case \"call-events\":\r\n title = \"Call Events\";\r\n break;\r\n case \"vba\":\r\n title = \"VBA-EModel Results\";\r\n break;\r\n case \"fax\":\r\n title = \"FAX Results\";\r\n break;\r\n case \"audio-delay\":\r\n title = \"Audio-Delay Measurements\";\r\n break;\r\n case \"emu\":\r\n title = \"EMU Results\";\r\n break;\r\n case \"nettest\":\r\n title = \"NetTest Results\";\r\n break;\r\n case \"mobileinfo\":\r\n title = \"MobileInfo Results\";\r\n break;\r\n case \"vac\":\r\n title = \"VAC Results\";\r\n break;\r\n\r\n case \"AudioDelayStatsPieChart\":\r\n title = \"Audio-Delay Statistics\";\r\n break;\r\n case \"VoiceQualityStatsPieChart\":\r\n title = \"Voice Quality Statistics\";\r\n break;\r\n\r\n case \"call-process\":\r\n title = \"Call Process Graphics\";\r\n break;\r\n case \"analysis\":\r\n title = \"Analysis Graphics\";\r\n break;\r\n case \"nettest-graphs\":\r\n title = \"NetTest Graphics\";\r\n break;\r\n\r\n case \"CustomReport\":\r\n title = \"Custom Reports\";\r\n break;\r\n\r\n case \"GoogleMap\":\r\n title = \"Google Maps\";\r\n break;\r\n }\r\n\r\n return title;\r\n}\r\n\r\nexport function rsltTypeInAPICall(rsltType: string) {\r\n let title: string;\r\n switch (rsltType) {\r\n case \"pesq\":\r\n default:\r\n title = \"VqtData\";\r\n break;\r\n case \"polqa\":\r\n title = \"VqtPolqa\";\r\n break;\r\n case \"call-events\":\r\n title = \"VquadData\";\r\n break;\r\n case \"vba\":\r\n title = \"VbaData\";\r\n break;\r\n case \"fax\":\r\n title = \"FaxData\";\r\n break;\r\n case \"audio-delay\":\r\n title = \"AudioDelayData\";\r\n break;\r\n case \"emu\":\r\n title = \"EmuData\";\r\n break;\r\n case \"nettest\":\r\n title = \"NetTestData\";\r\n break;\r\n case \"mobileinfo\":\r\n title = \"MobileInfoData\";\r\n break;\r\n case \"vac\":\r\n title = \"VacData\";\r\n break;\r\n }\r\n\r\n return title;\r\n}\r\n\r\nexport function startAndEndDates(dates:any[]) {\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n//import { HttpClient } from '@angular/common/http';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { HeaderDataSource, PagedResult } from '../../../lib/ng-crud-table';\r\nimport { DataSort, DataFilter } from '../../../lib/ng-data-table/base';\r\nimport { arrayPaginate, formatDate, lastDateFunc } from '../../../lib/common/utils';\r\nimport { NotifyService } from '../../../lib/notify/notify.service';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { Key } from 'protractor';\r\nimport { CommonFilterService } from './services/common-filter/common-filter.service';\r\nimport { CommonFilter, GeneralFilter } from './models/Common/common-filter';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n//https://hassantariqblog.wordpress.com/2016/12/03/angular2-http-simple-get-using-promises-in-angular-2-application/\r\n//https://medium.com/@gparlakov/rxjs-operator-topromise-waits-for-your-observable-to-complete-e7a002f5dccb\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HeaderDemoService implements HeaderDataSource {\r\n url: string = 'assets/ng-crud-table/players.json';\r\n\r\n primaryKeys: string[] = ['id'];\r\n\r\n private dataFilter: DataFilter;\r\n private dataSort: DataSort;\r\n\r\n private commonFilter: CommonFilter;\r\n private generalFilterArray: Array;\r\n\r\n constructor(private http: HttpClient, private notifyService: NotifyService, private commonFilterService: CommonFilterService) {\r\n this.dataFilter = new DataFilter();\r\n this.dataSort = new DataSort();\r\n\r\n this.commonFilter = new CommonFilter();\r\n this.generalFilterArray = [];\r\n }\r\n\r\n //https://stackoverflow.com/questions/46903190/how-to-wait-for-return-of-a-function-in-typescript\r\n //https://dev.to/viniciuskneves/yet-another-post-about-asyncawait-and-promises-49gg\r\n //https://stackoverflow.com/questions/45057278/angular-4-settimeout-does-not-wait\r\n //http://www.learn-it-with-examples.com/development/html-css-javascript/angular/settimeout-angular-example.html\r\n //https://medium.com/@balramchavan/using-async-await-feature-in-angular-587dd56fdc77\r\n //https://www.techiediaries.com/javascript-async-await-tutorial/\r\n //https://stackoverflow.com/questions/43304316/rxjs-observable-interval-and-angular2-http-wait-for-response\r\n //https://stackoverflow.com/questions/45057278/angular-4-settimeout-does-not-wait\r\n //https://www.reddit.com/r/Angular2/comments/94fyme/problem_using_observableinterval_with_angular6/\r\n //async getTotalRecords(dates, dateOperator, rsltType): Promise {\r\n getTotalRecords(rsltType): Observable {\r\n //let dates = formatDate(new Date(Date.now() + -1 * 600 * 1000)) + \"^\" + formatDate(new Date());//\"06/02/2019 11:00:00^06/02/2019 20:00:00\"; \r\n //this.commonFilterService.TSBetween.subscribe(res => dates = res);\r\n\r\n //let dateOperator = \"6\";\r\n //let arrDates = this.dataFilter.filteringDates();//make proper dates string to be passed to db\r\n //const boolDateFilterSelected = ((arrDates.length == 2) || (arrDates.length == 0));\r\n //if (boolDateFilterSelected) {\r\n // if (arrDates.length == 0)\r\n // this.commonFilterService.TSRangeSelected.subscribe(res => dates = lastDateFunc(res));\r\n // else {\r\n // dates = arrDates[0];\r\n // dateOperator = arrDates[1];\r\n // }\r\n //}\r\n //this.commonFilterService.setDatesProperties(dates);\r\n\r\n //this.commonFilter.TimestampType = \"1\";\r\n //this.commonFilter.TimestampRange = dates;\r\n //this.commonFilter.Operator = dateOperator;\r\n //this.commonFilter.SortByOrder = \"descending\";\r\n ////let params = new HttpParams()\r\n //// .set('TSType', '1')\r\n //// .set('TSBetween', dates)\r\n //// .set('Operator', dateOperator);\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers\r\n };\r\n this.url = environment.urlAddress + '/api/' + rsltType + '/Post' + rsltType + 'Count';\r\n //return await this.http.get(this.url, { params })\r\n return this.http.post(this.url, JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.generalFilterArray }), options);\r\n }\r\n\r\n getItems(PerPage, CurrentPage, rsltType): Observable {\r\n const currentPage = CurrentPage; \r\n const perPage = PerPage;\r\n //let dateOperator = \"6\";\r\n\r\n //this.commonFilter.TimestampType = \"1\";\r\n //this.commonFilterService.TSBetween.subscribe(res => this.commonFilter.TimestampRange = res);\r\n //this.commonFilter.Operator = dateOperator;\r\n //this.commonFilter.PageNumber = currentPage.toString();\r\n //this.commonFilter.PerPage = perPage.toString();\r\n //this.commonFilter.SortByOrder = \"descending\";\r\n\r\n ////let params = new HttpParams()\r\n //// .set('TSType', '1')\r\n //// .set('PageNumber', currentPage.toString())\r\n //// .set('PerPage', perPage.toString())\r\n //// .set('TSBetween', dates)\r\n //// .set('Operator', dateOperator)\r\n //// .set('Sort', 'descending'); \r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers\r\n };\r\n\r\n this.url = environment.urlAddress + '/api/' + rsltType + '/Post' + rsltType;\r\n //return this.http.get(this.url, { params })\r\n //https://www.techiediaries.com/angular-http-client/\r\n //https://stackoverflow.com/questions/50330342/how-to-send-post-in-angular5-with-multiple-params\r\n //https://weblog.west-wind.com/posts/2012/May/08/Passing-multiple-POST-parameters-to-Web-API-Controller-Methods\r\n //https://www.dotnetcurry.com/aspnet/1278/aspnet-webapi-pass-multiple-parameters-action-method\r\n return this.http.post(this.url, JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.generalFilterArray }), options);\r\n }\r\n\r\n post(item: any): Promise {\r\n return new Promise((resolve) => {\r\n setTimeout(() => resolve(item), 250);\r\n });\r\n }\r\n\r\n put(item: any): Promise {\r\n return new Promise((resolve) => {\r\n setTimeout(() => resolve(item), 250);\r\n });\r\n }\r\n\r\n delete(item: any): Promise {\r\n return new Promise((resolve) => {\r\n setTimeout(() => resolve(item), 250);\r\n });\r\n }\r\n\r\n getOptions(url: string, parentId: any): Promise {\r\n return this.http.get(url)\r\n .toPromise()\r\n .then((response: any) => {\r\n const result = response.filter((value: any) => {\r\n return value.parentId === parentId;\r\n });\r\n return new Promise((resolve) => {\r\n setTimeout(() => resolve(result), 1000);\r\n });\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: any) {\r\n let errorMessage = '';\r\n if (error.error instanceof ErrorEvent) {\r\n // client-side error\r\n errorMessage = `Error: ${error.error.message}`;\r\n } else {\r\n // server-side error\r\n errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\r\n }\r\n this.notifyService.sendMessage({ title: 'HttpErrorResponse', text: errorMessage, severity: 'error' });\r\n return Promise.reject(errorMessage);\r\n }\r\n\r\n}\r\n","module.exports = \".datatable-header-cell {\\n -ms-flex-pack: center;\\n justify-content: center;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2hlYWRlci1kZW1vL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9zcmNcXGFwcFxcc2hhcmVkXFxoZWFkZXItZGVtb1xcaGVhZGVyLWRlbW8uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9oZWFkZXItZGVtby9oZWFkZXItZGVtby5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHFCQUFBO01BQUEsdUJBQUE7QUNDRiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9oZWFkZXItZGVtby9oZWFkZXItZGVtby5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG59XHJcbiIsIi5kYXRhdGFibGUtaGVhZGVyLWNlbGwge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn0iXX0= */\"","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Column, Settings, DataTable } from '../../../../lib/ng-data-table';\r\nimport { getColumnsHeaders, mainAndSubHeaders, getColumnsPlayers } from '../columns';\r\nimport { HeaderDemoService } from '../header-demo.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { rsltTypeInTitle, rsltTypeInAPICall } from '../functions/title';\r\nimport { PagedResult } from 'lib/ng-crud-table';\r\nimport { DtMessages, DtMessagesEn } from '../../../../lib/dt-translate';\r\n\r\n\r\n@Component({\r\n selector: 'app-header-demo',\r\n templateUrl: './header-demo.component.html',\r\n styleUrls: ['./header-demo.component.scss']\r\n})\r\nexport class HeaderDemoComponent implements OnInit {\r\n @Input() rsltType: string;\r\n\r\n table: DataTable;\r\n columns: Column[];\r\n settings: Settings = new Settings({});\r\n\r\n title: string;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n constructor(private _Activatedroute: ActivatedRoute, private _router: Router, private headerDemoService: HeaderDemoService) {\r\n //_Activatedroute.params.subscribe(val => {\r\n // this.rsltType = _Activatedroute.snapshot.url[1].path;\r\n\r\n //this.setRsltType();\r\n //});\r\n\r\n }\r\n\r\n messages: DtMessages = new DtMessagesEn({\r\n titleDetailView: 'Player details',\r\n titleCreate: 'Create a new player'\r\n });\r\n\r\n ngOnInit() {\r\n this.setRsltType();\r\n }\r\n\r\n items: any[];\r\n LeftStartIndex: number;\r\n LeftEndIndex: number;\r\n RightStartIndex: number;\r\n RightEndIndex: number;\r\n \r\n getWidth(from: number, to: number) {\r\n let width = 0;\r\n for (let index = from; index < to; index++) {\r\n width += this.table.columns[index].width;\r\n }\r\n return width;\r\n }\r\n\r\n translate3d() {\r\n return `translate3d(${this.table.dimensions.offsetX * -1}px, 0, 0)`;\r\n }\r\n\r\n translate3dCell() {\r\n return `translate3d(${this.table.dimensions.offsetX}px, 0, 0)`;\r\n }\r\n\r\n setRsltType() {\r\n this.columns = getColumnsHeaders(this.rsltType, null);\r\n\r\n this.items = mainAndSubHeaders(this.rsltType, null).internal;\r\n this.LeftStartIndex = mainAndSubHeaders(this.rsltType, null).LeftStartIndex;\r\n this.LeftEndIndex = mainAndSubHeaders(this.rsltType, null).LeftEndIndex;\r\n this.RightStartIndex = mainAndSubHeaders(this.rsltType, null).RightStartIndex;\r\n this.RightEndIndex = mainAndSubHeaders(this.rsltType, null).RightEndIndex;\r\n\r\n this.title = rsltTypeInTitle(this.rsltType);\r\n this.childTitleEvent.emit(this.title);\r\n this.columns.splice(this.columns.length);\r\n this.table = new DataTable(this.columns, this.settings, this.messages, 0, 0, 0, [], this.rsltType, null, this.headerDemoService);\r\n this.table.events.onLoading(true);\r\n this.headerDemoService.getTotalRecords(rsltTypeInAPICall(this.rsltType)).subscribe(res => this.table.pager.total = res);\r\n this.headerDemoService.getItems(this.table.pager.perPage, this.table.pager.current, rsltTypeInAPICall(this.rsltType)).subscribe((res) => {\r\n const data = JSON.parse(res) as any[];\r\n this.table.rows = data;\r\n this.table.events.onLoading(false);\r\n });\r\n }\r\n\r\n}\r\n","module.exports = \"/*https: //github.com/angular/components/issues/9874#issuecomment-432903643*/\\n.mat-table__wrapper .mat-table {\\n min-width: auto !important;\\n width: 100% !important;\\n}\\n.mat-header-row {\\n width: 100%;\\n}\\n.mat-row {\\n width: 100%;\\n}\\n.mat-header-cell {\\n -ms-flex: 0 0 14% !important;\\n flex: 0 0 14% !important;\\n min-width: 104px !important;\\n}\\n.mat-cell {\\n -ms-flex: 0 0 14% !important;\\n flex: 0 0 14% !important;\\n min-width: 104px !important;\\n}\\n/*.mat-column-VQuad_Timestamp\\n{\\n flex: 0 0 14% !important;\\n min-width: 104px !important;\\n}\\n\\n .mat-column-Call_Timestamp\\n{\\n flex: 0 0 14% !important;\\n min-width: 104px !important;\\n}\\n*/\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL21hdC10YWJsZS9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvc3JjXFxhcHBcXHNoYXJlZFxcbWF0LXRhYmxlXFxtYXQtdGFibGUuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9tYXQtdGFibGUvbWF0LXRhYmxlLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRFQUFBO0FBQ0E7RUFDRSwwQkFBQTtFQUNBLHNCQUFBO0FDQ0Y7QURFQTtFQUNFLFdBQUE7QUNDRjtBREVBO0VBQ0UsV0FBQTtBQ0NGO0FERUE7RUFDRSw0QkFBQTtNQUFBLHdCQUFBO0VBQ0EsMkJBQUE7QUNDRjtBREVBO0VBQ0UsNEJBQUE7TUFBQSx3QkFBQTtFQUNBLDJCQUFBO0FDQ0Y7QURFQTs7Ozs7Ozs7Ozs7Q0FBQSIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9tYXQtdGFibGUvbWF0LXRhYmxlLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLypodHRwczogLy9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9pc3N1ZXMvOTg3NCNpc3N1ZWNvbW1lbnQtNDMyOTAzNjQzKi9cclxuLm1hdC10YWJsZV9fd3JhcHBlciAubWF0LXRhYmxlIHtcclxuICBtaW4td2lkdGg6IGF1dG8gIWltcG9ydGFudDtcclxuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubWF0LWhlYWRlci1yb3cge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ubWF0LXJvdyB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5tYXQtaGVhZGVyLWNlbGwge1xyXG4gIGZsZXg6IDAgMCAxNCUgIWltcG9ydGFudDtcclxuICBtaW4td2lkdGg6IDEwNHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tYXQtY2VsbCB7XHJcbiAgZmxleDogMCAwIDE0JSAhaW1wb3J0YW50O1xyXG4gIG1pbi13aWR0aDogMTA0cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLyoubWF0LWNvbHVtbi1WUXVhZF9UaW1lc3RhbXBcclxue1xyXG4gIGZsZXg6IDAgMCAxNCUgIWltcG9ydGFudDtcclxuICBtaW4td2lkdGg6IDEwNHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbiAgLm1hdC1jb2x1bW4tQ2FsbF9UaW1lc3RhbXBcclxue1xyXG4gIGZsZXg6IDAgMCAxNCUgIWltcG9ydGFudDtcclxuICBtaW4td2lkdGg6IDEwNHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuKi9cclxuIiwiLypodHRwczogLy9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9pc3N1ZXMvOTg3NCNpc3N1ZWNvbW1lbnQtNDMyOTAzNjQzKi9cbi5tYXQtdGFibGVfX3dyYXBwZXIgLm1hdC10YWJsZSB7XG4gIG1pbi13aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4ubWF0LWhlYWRlci1yb3cge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm1hdC1yb3cge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm1hdC1oZWFkZXItY2VsbCB7XG4gIGZsZXg6IDAgMCAxNCUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAxMDRweCAhaW1wb3J0YW50O1xufVxuXG4ubWF0LWNlbGwge1xuICBmbGV4OiAwIDAgMTQlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogMTA0cHggIWltcG9ydGFudDtcbn1cblxuLyoubWF0LWNvbHVtbi1WUXVhZF9UaW1lc3RhbXBcbntcbiAgZmxleDogMCAwIDE0JSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDEwNHB4ICFpbXBvcnRhbnQ7XG59XG5cbiAgLm1hdC1jb2x1bW4tQ2FsbF9UaW1lc3RhbXBcbntcbiAgZmxleDogMCAwIDE0JSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDEwNHB4ICFpbXBvcnRhbnQ7XG59XG4qLyJdfQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material';\r\nimport { FormControl } from '@angular/forms';\r\n//http://nataliesmith.ca/blog/angular-material-filter-table\r\n\r\n//import { RepositoryService } from './services/repository.service';\r\n//import { Owner } from './models/owner';\r\n//https://code-maze.com/angular-material-table/\r\n//https://code-maze.com/net-core-series/\r\n\r\n\r\n//export interface PeriodicElement {\r\n// name: string;\r\n// position: number;\r\n// weight: number;\r\n// symbol: string;\r\n//}\r\n//const ELEMENT_DATA: PeriodicElement[] = [\r\n// { position: 1, name: 'Hydrogen', weight: 1.0079, symbol: 'H' },\r\n// { position: 2, name: 'Helium', weight: 4.0026, symbol: 'He' },\r\n// { position: 3, name: 'Lithium', weight: 6.941, symbol: 'Li' },\r\n// { position: 4, name: 'Beryllium', weight: 9.0122, symbol: 'Be' },\r\n// { position: 5, name: 'Boron', weight: 10.811, symbol: 'B' },\r\n// { position: 6, name: 'Carbon', weight: 12.0107, symbol: 'C' },\r\n// { position: 7, name: 'Nitrogen', weight: 14.0067, symbol: 'N' },\r\n// { position: 8, name: 'Oxygen', weight: 15.9994, symbol: 'O' },\r\n// { position: 9, name: 'Fluorine', weight: 18.9984, symbol: 'F' },\r\n// { position: 10, name: 'Neon', weight: 20.1797, symbol: 'Ne' },\r\n//];\r\n//https://material.angular.io/components/table/overview\r\n\r\nimport { CallEventsService } from './services/call-events.service';\r\n\r\n@Component({\r\n selector: 'app-mat-table',\r\n templateUrl: './mat-table.component.html',\r\n styleUrls: ['./mat-table.component.scss'],\r\n //providers: [colSpecialCharsPipe]\r\n})\r\nexport class MatTableComponent implements OnInit {\r\n screenTitle: string = \"Call Events\";\r\n isLoading: boolean = true;\r\n\r\n nameFilter = new FormControl('');\r\n idFilter = new FormControl('');\r\n colourFilter = new FormControl('');\r\n petFilter = new FormControl('');\r\n\r\n //people = [\r\n // {\r\n // name: 'John',\r\n // id: 1,\r\n // colour: 'Green',\r\n // pet: 'Dog'\r\n // },\r\n // {\r\n // name: 'Sarah',\r\n // id: 2,\r\n // colour: 'Purple',\r\n // pet: 'Cat'\r\n // },\r\n // {\r\n // name: 'Lindsay',\r\n // id: 3,\r\n // colour: 'Blue',\r\n // pet: 'Lizard'\r\n // },\r\n // {\r\n // name: 'Megan',\r\n // id: 4,\r\n // colour: 'Orange',\r\n // pet: 'Dog'\r\n // }\r\n //];\r\n\r\n dataSource = new MatTableDataSource();\r\n columnsToDisplay = []; //['name', 'id', 'favouriteColour', 'pet'];\r\n\r\n constructor(private callEventsService: CallEventsService) {\r\n this.callEventsService.getItems().subscribe((res: any[]) => {\r\n this.dataSource.data = res;\r\n this.isLoading = false;\r\n this.dataSource.filterPredicate = this.tableFilter();\r\n this.columnsToDisplay = Object.keys(res[0]);\r\n }); //this.dataSource.data = this.people;\r\n //https://stackoverflow.com/questions/48470046/angular-material-table-filterpredicate\r\n //https://stackoverflow.com/questions/49939979/filtering-specific-column-in-angular-material-table-with-filtering-in-angular/49940108\r\n //https://hashnode.com/post/complex-filtering-on-nested-objects-angular-6-cjo73sgq1009vr9s2iwupt51c\r\n //https://blog.angular-university.io/angular-material-data-table/\r\n //https://stackblitz.com/angular/dnbermjydavk?file=app%2Ftable-overview-example.ts\r\n }\r\n tableFilter(): (data: any, filter: string) => boolean {\r\n let filterFunction = function (data, filter): boolean {\r\n let searchTerms = JSON.parse(filter);\r\n return data.VQuad_Timestamp.toLowerCase().indexOf(searchTerms.VQuad_Timestamp) !== -1;\r\n //&& data.id.toString().toLowerCase().indexOf(searchTerms.id) !== -1\r\n //&& data.colour.toLowerCase().indexOf(searchTerms.colour) !== -1\r\n //&& data.pet.toLowerCase().indexOf(searchTerms.pet) !== -1;\r\n }\r\n return filterFunction;\r\n }\r\n\r\n filterValues = {\r\n VQuad_Timestamp: '',\r\n id: '',\r\n colour: '',\r\n pet: ''\r\n };\r\n\r\n ngOnInit() {\r\n\r\n this.nameFilter.valueChanges\r\n .subscribe(\r\n VQuad_Timestamp => {\r\n this.filterValues.VQuad_Timestamp = VQuad_Timestamp;\r\n this.dataSource.filter = JSON.stringify(this.filterValues);\r\n }\r\n )\r\n this.idFilter.valueChanges\r\n .subscribe(\r\n id => {\r\n this.filterValues.id = id;\r\n this.dataSource.filter = JSON.stringify(this.filterValues);\r\n }\r\n )\r\n this.colourFilter.valueChanges\r\n .subscribe(\r\n colour => {\r\n this.filterValues.colour = colour;\r\n this.dataSource.filter = JSON.stringify(this.filterValues);\r\n }\r\n )\r\n this.petFilter.valueChanges\r\n .subscribe(\r\n pet => {\r\n this.filterValues.pet = pet;\r\n this.dataSource.filter = JSON.stringify(this.filterValues);\r\n }\r\n )\r\n }\r\n\r\n\r\n\r\n //public displayedColumns = ['name', 'dateOfBirth', 'address', 'details', 'update', 'delete'\r\n //];\r\n //public dataSource = new MatTableDataSource();\r\n\r\n //constructor(private repoService: RepositoryService) { }\r\n\r\n //ngOnInit() {\r\n // this.getAllOwners();\r\n //}\r\n\r\n //public getAllOwners = () => {\r\n // this.repoService.getData('api/owner')\r\n // .subscribe(res => {\r\n // this.dataSource.data = res as Owner[];\r\n // })\r\n //}\r\n\r\n //public redirectToDetails = (id: string) => {\r\n\r\n //}\r\n\r\n //public redirectToUpdate = (id: string) => {\r\n\r\n //}\r\n\r\n //public redirectToDelete = (id: string) => {\r\n\r\n //}\r\n\r\n\r\n\r\n\r\n\r\n //ngOnInit() {\r\n //}\r\n\r\n //displayedColumns: string[] = ['position', 'name', 'weight', 'symbol'];\r\n //dataSource = ELEMENT_DATA;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CallEventsService {\r\n url: string;\r\n constructor(private http: HttpClient,) { }\r\n\r\n getItems() {\r\n let params = new HttpParams()\r\n .set('TSType', '1')\r\n .set('PageNumber', '1')\r\n .set('TSBetween', '06/02/2019 18:00:00^06/02/2019 19:00:00')\r\n .set('Sort', 'descending');\r\n var headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n this.url = environment.urlAddress + '/api/VquadData/GetVquadData'\r\n return this.http.get(this.url, { params });\r\n }\r\n}\r\n","export class AUDIODELAYDATA {\r\n\r\n ID: number;\r\n VQuad_Timestamp: Date;\r\n Call_Timestamp: Date;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n GPS_Position: string;\r\n GPS_Lat: number;\r\n GPS_Long: number;\r\n\r\n RTD_Rating: string;\r\n PDD: number;\r\n SWR: number;\r\n CT: number;\r\n CCT: number;\r\n OWD: number;\r\n RTD: number;\r\n\r\n Signal_Level_Gain: number;\r\n Speech_Activity: number;\r\n Active_Speech_Level: number;\r\n Noise_Level_TDM: number;\r\n DC_Offset: number;\r\n Total_RMS_Power: number;\r\n Audio_BW: number;\r\n Audio_Power: number;\r\n Dropout: string;\r\n Line_Current: number;\r\n Line_Voltage: number;\r\n Ring_Type: string;\r\n Ring_Voltage: number;\r\n PTT_Setup_Time: number;\r\n PTT_Conn_Time: number;\r\n Double_Talk: string;\r\n Speech_Analysis: string;\r\n VMWI: string;\r\n SDT: number;\r\n\r\n RTD_Error: string;\r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n \r\n //AFT: string;\r\n //PDD_Error: string;\r\n //STT_Percent: string;\r\n constructor() {\r\n this.VQuad_Timestamp = new Date();\r\n this.Call_Timestamp = new Date();\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n\r\n this.GPS_Position = \"\";\r\n this.GPS_Lat = 0;\r\n this.GPS_Long = 0;\r\n\r\n this.RTD_Rating = \"\";\r\n this.PDD = 0;\r\n this.SWR = 0;\r\n this.CT = 0;\r\n this.CCT = 0;\r\n this.OWD = 0;\r\n this.RTD = 0;\r\n this.Signal_Level_Gain = 0;\r\n this.Speech_Activity = 0;\r\n this.Active_Speech_Level = 0;\r\n this.Noise_Level_TDM = 0;\r\n this.DC_Offset = 0;\r\n this.Total_RMS_Power = 0;\r\n this.Audio_BW = 0;\r\n this.Audio_Power = 0;\r\n this.Dropout = \"\";\r\n this.Line_Current = 0;\r\n this.Line_Voltage = 0;\r\n this.Ring_Type = \"\";\r\n this.Ring_Voltage = 0;\r\n this.PTT_Setup_Time = 0;\r\n this.PTT_Conn_Time = 0;\r\n this.Double_Talk = \"\";\r\n this.Speech_Analysis = \"\";\r\n this.VMWI = \"\";\r\n this.SDT = 0;\r\n this.RTD_Error = \"\";\r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\";\r\n\r\n //this.AFT = \"\";\r\n //this.PDD_Error = \"\";\r\n //this.STT_Percent = \"\";\r\n }\r\n} \r\n\r\n","export class CONNDROPDATA {\r\n\r\n //MobPhoneID: number;\r\n ID: number;\r\n VQuad_Timestamp: Date;\r\n GPS_Position: string;\r\n GPS_Lat: number;\r\n GPS_Long: number;\r\n Net_Speed_Test: string;\r\n VQuad_CallID: string;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n Target_Server: string;\r\n Start_GPS_Position: string;\r\n Start_GPS_Lat: number;\r\n Start_GPS_Long: number;\r\n Start_Timestamp: Date;\r\n TestStatus: string;\r\n Battery_Level: number;\r\n RSSI: number;\r\n Network_Type: string;\r\n TN_Number: string;\r\n Call_Timestamp: Date;\r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n\r\n constructor() {\r\n //this.MobPhoneID= 0;\r\n this.ID= 0;\r\n this.VQuad_Timestamp= new Date();\r\n this.GPS_Position = \"\";\r\n this.GPS_Lat= 0;\r\n this.GPS_Long= 0;\r\n this.Net_Speed_Test = \"\";\r\n this.VQuad_CallID = \"\";\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n this.Target_Server = \"\";\r\n this.Start_GPS_Position = \"\";\r\n this.Start_GPS_Lat= 0;\r\n this.Start_GPS_Long= 0;\r\n this.Start_Timestamp= new Date();\r\n this.TestStatus = \"\";\r\n this.Battery_Level = 0;\r\n this.RSSI = 0;\r\n this.Network_Type = \"\";\r\n this.TN_Number = \"\";\r\n this.Call_Timestamp= new Date();\r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n \r\n }\r\n}\r\n","export class CUSTOMREPORTS_GROUP {\r\n\r\n ReportID: number;\r\n ReportName: string;\r\n CriteriaID: number;\r\n CriteriaName: string;\r\n EachCriteria: string;\r\n GraphApply: string;\r\n HideCol: string;\r\n GroupByColName: string;\r\n DefaultOrNot: number;\r\n CriteriaList: any[];\r\n\r\n constructor() {\r\n this.ReportID = 0;\r\n this.ReportName = \"\";\r\n this.CriteriaID= 0;\r\n this.CriteriaName = \"\";\r\n this.EachCriteria = \"\";\r\n this.GraphApply = \"False\";\r\n this.HideCol = \"\";\r\n this.GroupByColName = \"\";\r\n }\r\n}\r\n","export class CommonFilter {\r\n TimestampType: number;\r\n //TimestampRange: string;\r\n PageNumber: string;\r\n PerPage: string;\r\n //Operator: string;\r\n SortByOrder: string;\r\n ResultOrFileType: number;\r\n ResultTypeName: string;\r\n respColumnsList: string[];\r\n MainFilterID: number;\r\n UserCriteria: string;\r\n TZHid: string;\r\n BrowserDate: string;\r\n CallEventErrorEvent: boolean;\r\n ConnDropEvent: boolean;\r\n ShowNodeConnected: boolean;\r\n ResulTypeLatestID_CRPagination: string;\r\n\r\n constructor() {\r\n //this.TimestampType = 1;\r\n ////this.TimestampRange = \"\";\r\n //this.PageNumber = \"1\";\r\n //this.PerPage = \"200\";\r\n //this.Operator = \"\";\r\n this.SortByOrder = \"\";\r\n //this.MainFilterID = -1;\r\n this.UserCriteria = \"\";\r\n this.TZHid = \"\";\r\n this.BrowserDate = 'none';\r\n this.CallEventErrorEvent = false;\r\n this.ConnDropEvent = false;\r\n this.ShowNodeConnected = false;\r\n this.ResulTypeLatestID_CRPagination = \"\";\r\n }\r\n}\r\n\r\nexport class GeneralFilter {\r\n ColumnName: string;\r\n Operator: number;\r\n Value: string;\r\n ValueTo: string;\r\n LoggedInUserName: string;\r\n RsltType?: string;\r\n MainFilterName?: string;\r\n constructor() {\r\n LoggedInUserName: \"\";\r\n RsltType: \"\";\r\n }\r\n //constructor() {\r\n // this.ColumnName = \"\";\r\n // this.Operator = \"\";\r\n // this.Value = \"\";\r\n // this.ValueTo = \"\";\r\n //}\r\n}\r\n\r\nexport enum NETTESTTYPES {\r\n TCPDATA = 1,\r\n UDPDATA = 2,\r\n VOIPDATA = 3,\r\n ROUTEDATA = 4,\r\n HTTPDATA = 5,\r\n FTPDATA = 6,\r\n DNSDATA = 7,\r\n SMSDATA = 8,\r\n EMAILDATA = 9\r\n}\r\n\r\nexport enum MOBILEINFOTYPES {\r\n GENERALINFO = 1,\r\n SIMINFO = 2,\r\n UEINFO = 3\r\n}\r\n","export class CustomStatsConfig {\r\n ChartName: string;\r\n Excellent: string;\r\n ExcelToGood: string;\r\n GoodToFair: string\r\n FairToPoor: string;\r\n Poor: string;\r\n\r\n constructor() {\r\n this.ChartName = \"\";\r\n this.Excellent = \"\";\r\n this.ExcelToGood = \"\";\r\n this.GoodToFair = \"\";\r\n this.FairToPoor = \"\";\r\n this.Poor = \"\";\r\n }\r\n}\r\n","export class GMaps {\r\n Device_ID: string;\r\n Column_Name: string;\r\n Operator: string;\r\n Value: string;\r\n AndOr: string;\r\n\r\n constructor() {\r\n this.Device_ID = \"\";\r\n this.Column_Name = \"\";\r\n this.Operator = \"\";\r\n this.Value = \"\";\r\n this.AndOr = \"\";\r\n }\r\n\r\n}\r\n","import { MapThresholdResults } from './MapThresholdResults';\r\nimport { MapThresholdParams } from './MapThresholdParams';\r\nimport { MapThresholdColors } from './MapThresholdColors';\r\n\r\nexport class MapConfig {\r\n ID: number;\r\n MapConfigName: string;\r\n\r\n //MapTypeThreshold = [];\r\n //MapTypeCallID = [];\r\n //MapTypeDeviceID = [];\r\n //MapTypeCallEvent = [];\r\n MapConfigTypeList = [];\r\n\r\n\r\n constructor() {\r\n this.MapConfigName = \"\";\r\n this.ID = 0;\r\n }\r\n}\r\n\r\nexport class MapConfigTypes {\r\n ID: number;\r\n MapConfigID: number;\r\n MapTypeID: number;\r\n\r\n ResultID: number;\r\n ColumnID: number;\r\n AndORID: number;\r\n OperatorID: number;\r\n ThresholdValue: string;\r\n LegendName: string;\r\n VQuadDeviceID: string;\r\n Criteria: string;\r\n CECriteria: string;\r\n SearchOperatorID: number;\r\n\r\n ThresholdResult= [];\r\n ThresholdParams=[];\r\n ThresholdColors = [];\r\n CallIDResult = [];\r\n CallIDCriteria = [];\r\n CallIDColors = [];\r\n DeviceIDResult = [];\r\n DeviceIDCriteria = [];\r\n DeviceIDColors = [];\r\n CallEventDevices = [];\r\n CallEventCriteria = [];\r\n CallEventColors = [];\r\n\r\n constructor() {\r\n this.MapTypeID = 1;\r\n this.AndORID = 1;\r\n this.OperatorID = 1;\r\n this.ThresholdValue = \"\";\r\n this.LegendName = \"\";\r\n this.VQuadDeviceID = \"\";\r\n this.Criteria = \"\";\r\n this.CECriteria = \"\";\r\n this.SearchOperatorID = 6;\r\n this.ResultID = 1;\r\n }\r\n}\r\n\r\nexport class AbsMapDisplayOptions {\r\n mapConfigID: number = 0;\r\n usePredefinedConfig: number=0;\r\n analysisEnabled: string = \"ON\";\r\n netTestEnabled: string = \"ON\";\r\n mobileInfoEnabled: string = \"ON\";\r\n errorEventsEnabled: string = \"ON\";\r\n displayOptionApplied: boolean = false;\r\n DisplayResultList = [];\r\n AnalysisList = [];\r\n NetTestList = [];\r\n MobileInfoList = [];\r\n ErrorEventList = [];\r\n TypeList = [];\r\n ResultList = [];\r\n PredefinedConfig :any;\r\n}\r\n","export class DNSDATA {\r\n\r\n ID: number;\r\n VQuad_Timestamp: Date;\r\n Start_Timestamp: Date;\r\n Call_Timestamp: Date;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n GPS_Position: string;\r\n GPS_Lat: number;\r\n GPS_Long: number;\r\n Start_GPS_Position: string;\r\n Start_GPS_Lat: number;\r\n Start_GPS_Long: number;\r\n \r\n Net_Speed_Test: string;\r\n Battery_Level: number;\r\n RSSI: number;\r\n Network_Type: string;\r\n TN_Number: string;\r\n Target_Server: string;\r\n TestStatus: string;\r\n \r\n Query_Name: string;\r\n Min_Latency: number;\r\n Avg_Latency: number;\r\n Max_Latency: number;\r\n Failure_DNS: number;\r\n Number_of_Tests_DNS: number;\r\n \r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n \r\n constructor() {\r\n this.ID = 0;\r\n this.VQuad_Timestamp = new Date();\r\n this.Start_Timestamp = new Date();\r\n this.Call_Timestamp = new Date();\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n this.GPS_Position = \"\";\r\n this.GPS_Lat = 0;\r\n this.GPS_Long = 0;\r\n this.Start_GPS_Position = \"\";\r\n this.Start_GPS_Lat = 0;\r\n this.Start_GPS_Long = 0;\r\n\r\n this.Net_Speed_Test = \"\";\r\n this.Battery_Level = 0;\r\n this.RSSI = 0;\r\n this.Network_Type = \"\";\r\n this.TN_Number = \"\";\r\n this.Target_Server = \"\";\r\n this.TestStatus = \"\";\r\n\r\n this.Query_Name = \"\";\r\n this.Min_Latency = 0;\r\n this.Avg_Latency = 0;\r\n this.Max_Latency = 0;\r\n this.Failure_DNS = 0;\r\n this.Number_of_Tests_DNS = 0;\r\n \r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\";\r\n }\r\n\r\n}\r\n","export class EMAILDATA {\r\n\r\n ID: number;\r\n VQuad_Timestamp: Date;\r\n Start_Timestamp: Date;\r\n Call_Timestamp: Date;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n GPS_Position: string;\r\n GPS_Lat: number;\r\n GPS_Long: number;\r\n Start_GPS_Position: string;\r\n Start_GPS_Lat: number;\r\n Start_GPS_Long: number;\r\n\r\n Net_Speed_Test: string;\r\n Battery_Level: number;\r\n RSSI: number;\r\n\r\n Network_Type: string;\r\n TN_Number: string;\r\n\r\n Target_Server: string;\r\n TestStatus: string;\r\n\r\n Total_Emails_Send: number;\r\n Total_Emails_Failed: number;\r\n Min_Time_SendEmail: number;\r\n Avg_Time_SendEmail: number;\r\n Max_Time_SendEmail: number;\r\n Total_Emails_Recieved: number;\r\n Total_RecieveEmails_Expected: number;\r\n Time_of_FirstEmail: string;\r\n Time_of_LastEmail: string;\r\n \r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n\r\n constructor() {\r\n this.ID = 0;\r\n this.VQuad_Timestamp = new Date();\r\n this.Start_Timestamp = new Date();\r\n\r\n this.Call_Timestamp = new Date();\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n\r\n this.GPS_Position = \"\";\r\n this.GPS_Lat = 0;\r\n this.GPS_Long = 0;\r\n this.Start_GPS_Position = \"\";\r\n this.Start_GPS_Lat = 0;\r\n this.Start_GPS_Long = 0;\r\n \r\n this.Net_Speed_Test = \"\";\r\n this.Battery_Level = 0;\r\n this.RSSI = 0;\r\n\r\n this.Network_Type = \"\";\r\n this.TN_Number = \"\";\r\n\r\n this.Target_Server = \"\";\r\n this.TestStatus = \"\";\r\n\r\n this.Total_Emails_Send = 0;\r\n this.Total_Emails_Failed = 0;\r\n this.Min_Time_SendEmail = 0;\r\n this.Avg_Time_SendEmail = 0;\r\n this.Max_Time_SendEmail = 0;\r\n this.Total_Emails_Recieved = 0;\r\n this.Total_RecieveEmails_Expected = 0;\r\n this.Time_of_FirstEmail = \"\";\r\n this.Time_of_LastEmail = \"\";\r\n\r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\";\r\n }\r\n}\r\n","export class EMUDATA {\r\n\r\n VQuad_Timestamp: Date;\r\n Call_Timestamp: Date;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n\r\n GPS_Position: string;\r\n GPS_Lat: number;\r\n GPS_Long: number;\r\n\r\n StartPoint1: number;\r\n EndPoint1: number;\r\n Block1_ERL1: number;\r\n Block1_Delay1: number;\r\n Block1_ERL2: number;\r\n Block1_Delay2: number;\r\n Block1_ERL3: number;\r\n Block1_Delay3: number;\r\n Block1_ERL4: number;\r\n Block1_Delay4: number;\r\n\r\n StartPoint2: number;\r\n EndPoint2: number;\r\n Block2_ERL1: number;\r\n Block2_Delay1: number;\r\n Block2_ERL2: number;\r\n Block2_Delay2: number;\r\n Block2_ERL3: number;\r\n Block2_Delay3: number;\r\n Block2_ERL4: number;\r\n Block2_Delay4: number;\r\n\r\n StartPoint3: number;\r\n EndPoint3: number;\r\n Block3_ERL1: number;\r\n Block3_Delay1: number;\r\n Block3_ERL2: number;\r\n Block3_Delay2: number;\r\n Block3_ERL3: number;\r\n Block3_Delay3: number;\r\n Block3_ERL4: number;\r\n Block3_Delay4: number;\r\n\r\n StartPoint4: number;\r\n EndPoint4: number;\r\n Block4_ERL1: number;\r\n Block4_Delay1: number;\r\n Block4_ERL2: number;\r\n Block4_Delay2: number;\r\n Block4_ERL3: number;\r\n Block4_Delay3: number;\r\n Block4_ERL4: number;\r\n Block4_Delay4: number;\r\n \r\n Call_Control_Event: string;\r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n \r\n ID: number;\r\n \r\n constructor() {\r\n\r\n this.VQuad_Timestamp = new Date();\r\n this.Call_Timestamp = new Date();\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n\r\n this.GPS_Position = \"\";\r\n this.GPS_Lat = 0;\r\n this.GPS_Long = 0;\r\n\r\n this.StartPoint1 = 0;\r\n this.EndPoint1 = 0;\r\n this.Block1_ERL1 = 0;\r\n this.Block1_Delay1 = 0;\r\n this.Block1_ERL2 = 0;\r\n this.Block1_Delay2 = 0;\r\n this.Block1_ERL3 = 0;\r\n this.Block1_Delay3 = 0;\r\n this.Block1_ERL4 = 0;\r\n this.Block1_Delay4 = 0;\r\n\r\n this.StartPoint2 = 0;\r\n this.EndPoint2 = 0;\r\n this.Block2_ERL1 = 0;\r\n this.Block2_Delay1 = 0;\r\n this.Block2_ERL2 = 0;\r\n this.Block2_Delay2 = 0;\r\n this.Block2_ERL3 = 0;\r\n this.Block2_Delay3 = 0;\r\n this.Block2_ERL4 = 0;\r\n this.Block2_Delay4 = 0;\r\n\r\n this.StartPoint3 = 0;\r\n this.EndPoint3 = 0;\r\n this.Block3_ERL1 = 0;\r\n this.Block3_Delay1 = 0;\r\n this.Block3_ERL2 = 0;\r\n this.Block3_Delay2 = 0;\r\n this.Block3_ERL3 = 0;\r\n this.Block3_Delay3 = 0;\r\n this.Block3_ERL4 = 0;\r\n this.Block3_Delay4 = 0;\r\n\r\n this.StartPoint4 = 0;\r\n this.EndPoint4 = 0;\r\n this.Block4_ERL1 = 0;\r\n this.Block4_Delay1 = 0;\r\n this.Block4_ERL2 = 0;\r\n this.Block4_Delay2 = 0;\r\n this.Block4_ERL3 = 0;\r\n this.Block4_Delay3 = 0;\r\n this.Block4_ERL4 = 0;\r\n this.Block4_Delay4 = 0;\r\n\r\n this.Call_Control_Event = \"\";\r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\";\r\n }\r\n}\r\n","export class EModule {\r\n\r\n ID: number;\r\n VQuad_Timestamp: Date;\r\n Call_Timestamp: Date;\r\n Location: string;\r\n Phone_ID: string;\r\n //VQuad_Location: string;\r\n //VQuad_PhoneID: string;\r\n GPS_Position: string;\r\n GPS_Lat: number;\r\n GPS_Long: number;\r\n MOS_CQ: number;\r\n RFactor: number;\r\n RTD: number;\r\n VBA_Rating: string;\r\n EM_ELAPSED: number;\r\n EM_ASL: number;\r\n EM_AF: number;\r\n EM_RMS: number;\r\n EM_NOISE: number;\r\n Psophometric_Noise: number;\r\n CMessage_Noise: number;\r\n EM_CLIP: number;\r\n EM_MAXP: number;\r\n EM_MAXN: number;\r\n EM_DC: number;\r\n\r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n\r\n // MOS_LQ: number;\r\n\r\n //MOS_PQ: number;\r\n //MOS_MON: number;\r\n //UserID: string;\r\n\r\nconstructor() {\r\n this.ID = 0;\r\n this.VQuad_Timestamp = new Date();\r\n this.Call_Timestamp = new Date();\r\n this.Location = \"\";\r\n this.Phone_ID = \"\";\r\n //this.VQuad_Location = \"\";\r\n //this.VQuad_PhoneID = \"\";\r\n this.GPS_Position = \"\";\r\n this.GPS_Lat = 0;\r\n this.GPS_Long = 0;\r\n this.MOS_CQ = 0;\r\n this.RFactor = 0;\r\n this.RTD = 0;\r\n this.VBA_Rating = \"\";\r\n this.EM_ELAPSED = 0;\r\n this.EM_ASL = 0;\r\n this.EM_AF = 0;\r\n this.EM_RMS = 0;\r\n this.EM_NOISE = 0;\r\n this.Psophometric_Noise = 0;\r\n this.CMessage_Noise = 0;\r\n this.EM_CLIP = 0;\r\n this.EM_MAXP = 0;\r\n this.EM_MAXN = 0;\r\n this.EM_DC = 0;\r\n\r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\";\r\n\r\n // this.MOS_LQ = 0;\r\n\r\n //this.MOS_PQ = 0;\r\n //this.MOS_MON = 0;\r\n //this.UserID = \"\";\r\n }\r\n \r\n \r\n}\r\n","export class FAXDATA {\r\n\r\n ID: string;\r\n VQuad_Timestamp: Date;\r\n Call_Timestamp: Date;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n GPS_Position: string;\r\n GPS_Lat: number;\r\n GPS_Long: number;\r\n Fax_Duration: number;\r\n Fax_Event: string;\r\n Fax_Error: string;\r\n Modem: string;\r\n Starting_Speed: number;\r\n Final_Speed: number;\r\n Completed_Pages: number;\r\n Sent_Lines: number;\r\n Bad_Lines: number;\r\n Encoding: string;\r\n Resolution: string;\r\n ECM: string;\r\n\r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n \r\n //Call_Control_Event: string;\r\n constructor() {\r\n this.ID = \"\";\r\n this.VQuad_Timestamp = new Date();\r\n this.Call_Timestamp = new Date();\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n this.GPS_Position = \"\";\r\n this.GPS_Lat = 0;\r\n this.GPS_Long = 0;\r\n this.Fax_Duration = 0;\r\n this.Fax_Event = \"\";\r\n this.Fax_Error = \"\";\r\n this.Modem = \"\";\r\n this.Starting_Speed = 0;\r\n this.Final_Speed = 0;\r\n this.Completed_Pages = 0;\r\n this.Sent_Lines = 0;\r\n this.Bad_Lines = 0;\r\n this.Encoding = \"\";\r\n this.Resolution = \"\";\r\n this.ECM = \"\";\r\n \r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\";\r\n \r\n //this.Call_Control_Event = \"\";\r\n\r\n }\r\n}\r\n","export class FTPDATA {\r\n\r\n ID: number;\r\n VQuad_Timestamp: Date;\r\n Start_Timestamp: Date;\r\n Call_Timestamp: Date;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n GPS_Position: string;\r\n GPS_Lat: number;\r\n GPS_Long: number;\r\n Start_GPS_Position: string;\r\n Start_GPS_Lat: number;\r\n Start_GPS_Long: number;\r\n\r\n Net_Speed_Test: string;\r\n Battery_Level: number;\r\n RSSI: number;\r\n Network_Type: string;\r\n TN_Number: string;\r\n\r\n Target_Server: string;\r\n TestStatus: string;\r\n\r\n Latency: number;\r\n Failure: number;\r\n Method: string;\r\n Data_Read_kB: number;\r\n Data_Write_kB: number;\r\n Data_Read_kBps: number;\r\n Data_Write_kBps: number;\r\n RTT_Min_FTP: number;\r\n RTT_Avg_FTP: number;\r\n RTT_Max_FTP: number;\r\n \r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n\r\n constructor() {\r\n this.ID = 0;\r\n this.VQuad_Timestamp = new Date();\r\n this.Start_Timestamp = new Date();\r\n this.Call_Timestamp = new Date();\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n this.GPS_Position = \"\";\r\n this.GPS_Lat = 0;\r\n this.GPS_Long = 0;\r\n this.Start_GPS_Position = \"\";\r\n this.Start_GPS_Lat = 0;\r\n this.Start_GPS_Long = 0;\r\n \r\n this.Net_Speed_Test = \"\";\r\n this.Battery_Level = 0;\r\n this.RSSI = 0;\r\n this.Network_Type = \"\";\r\n this.TN_Number = \"\";\r\n \r\n this.Target_Server = \"\";\r\n this.TestStatus = \"\";\r\n \r\n this.Latency = 0;\r\n this.Failure = 0;\r\n this.Method = \"\";\r\n this.Data_Read_kB = 0;\r\n this.Data_Write_kB = 0;\r\n this.Data_Read_kBps = 0;\r\n this.Data_Write_kBps = 0;\r\n this.RTT_Min_FTP = 0;\r\n this.RTT_Avg_FTP = 0;\r\n this.RTT_Max_FTP = 0;\r\n \r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\";\r\n\r\n }\r\n \r\n}\r\n","export class Filters {\r\n Column_OrigName: string;\r\n NumOrRatingOrStr: number;\r\n Column_Index: number\r\n Result_Type: string;\r\n Column_Name: string;\r\n Operator: string;\r\n OperatorNum: number;\r\n Value: string;\r\n Value_To: string;\r\n AndOr: string;\r\n\r\n constructor() {\r\n this.Column_OrigName = \"\";\r\n this.NumOrRatingOrStr = 0;\r\n this.Column_Index = 0;\r\n this.Result_Type = \"\";\r\n this.Column_Name = \"\";\r\n this.Operator = \"\";\r\n this.OperatorNum = 0;\r\n this.Value = \"\";\r\n this.Value_To = \"\";\r\n this.AndOr = \"\";\r\n }\r\n\r\n}\r\n","export class GENERALINFO {\r\n\r\n ID: number;\r\n VQuad_Timestamp: Date;\r\n Start_Timestamp: Date;\r\n Call_Timestamp: Date;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n GPS_Position: string;\r\n GPS_Lat: number;\r\n GPS_Long: number;\r\n Start_GPS_Position: string;\r\n Start_GPS_Lat: number;\r\n Start_GPS_Long: number;\r\n\r\n Net_Speed_Test: string;\r\n Battery_Level: number;\r\n RSSI: number;\r\n Network_Type: string;\r\n TN_Number: string;\r\n\r\n Target_Server: string;\r\n TestStatus: string;\r\n\r\n Phone_Model: string;\r\n Phone_IOS_Version: string;\r\n App_Version: string;\r\n IMEI: string;\r\n \r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n\r\n constructor() {\r\n this.ID = 0;\r\n this.VQuad_Timestamp = new Date();\r\n this.Start_Timestamp = new Date();\r\n this.Call_Timestamp = new Date();\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n this.GPS_Position = \"\";\r\n this.GPS_Lat = 0;\r\n this.GPS_Long = 0;\r\n this.Start_GPS_Position = \"\";\r\n this.Start_GPS_Lat = 0;\r\n this.Start_GPS_Long = 0;\r\n \r\n this.Net_Speed_Test = \"\";\r\n this.Battery_Level = 0;\r\n this.RSSI = 0;\r\n this.Network_Type = \"\";\r\n this.TN_Number = \"\";\r\n \r\n this.Target_Server = \"\";\r\n this.TestStatus = \"\";\r\n \r\n this.Phone_Model = \"\";\r\n this.Phone_IOS_Version = \"\";\r\n this.App_Version = \"\";\r\n this.IMEI = \"\";\r\n \r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\";\r\n\r\n }\r\n}\r\n","export class GRAPHRSLTVIEW_GROUP {\r\n\r\n ID_Abs: number;\r\n CriteriaName_Abs: string;\r\n LineGraphName_Abs: string;\r\n ResultType_Abs: string;\r\n ParamsSet_Abs: string;\r\n OrderID_Abs: number;\r\n GraphDisplayOrNot_Abs: number;\r\n GroupByColName_Abs: string;\r\n DefaultOrNot_Abs: number;\r\n Title: string;\r\n selectedGraphButton: boolean;\r\n GraphDeleted_Abs: boolean;\r\n\r\n constructor() {\r\n this.ParamsSet_Abs = \"\";\r\n this.ID_Abs = 0;\r\n let title = \"Select from below Result Type\";\r\n this.Title = \"\";\r\n this.selectedGraphButton = false;\r\n this.GraphDeleted_Abs = false;\r\n this.GraphDisplayOrNot_Abs = 1;\r\n }\r\n\r\n}\r\n","export class HTTPDATA {\r\n\r\n ID: number;\r\n VQuad_Timestamp: Date;\r\n Start_Timestamp: Date;\r\n Call_Timestamp: Date;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n GPS_Position: string;\r\n GPS_Lat: number;\r\n GPS_Long: number;\r\n Start_GPS_Position: string;\r\n Start_GPS_Lat: number;\r\n Start_GPS_Long: number;\r\n\r\n Net_Speed_Test: string;\r\n Battery_Level: number;\r\n RSSI: number;\r\n Network_Type: string;\r\n TN_Number: string;\r\n \r\n Target_Server: string;\r\n TestStatus: string;\r\n\r\n Avg_Failed_Rate: number;\r\n Min_Total_Latency: number;\r\n Min_Connect_Latency: number;\r\n Min_Find_Latency: number;\r\n Min_Read_Latency: number;\r\n Avg_Total_Latency: number;\r\n Avg_Connect_Latency: number;\r\n Avg_Find_Latency: number;\r\n Avg_Read_Latency: number;\r\n Max_Total_Latency: number;\r\n Max_Connect_Latency: number;\r\n Max_Find_Latency: number;\r\n Max_Read_Latency: number;\r\n Avg_Bytes_Read: number;\r\n Avg_Read_Rate: number;\r\n Min_Read_Rate: number;\r\n Max_Read_Rate: number;\r\n Number_of_Tests_HTTP: number;\r\n \r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n\r\n constructor() {\r\n this.ID = 0;\r\n this.VQuad_Timestamp = new Date();\r\n this.Start_Timestamp = new Date();\r\n this.Call_Timestamp = new Date();\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n this.GPS_Position = \"\";\r\n this.GPS_Lat = 0;\r\n this.GPS_Long = 0;\r\n this.Start_GPS_Position = \"\";\r\n this.Start_GPS_Lat = 0;\r\n this.Start_GPS_Long = 0;\r\n \r\n this.Net_Speed_Test = \"\";\r\n this.Battery_Level = 0;\r\n this.RSSI = 0;\r\n this.Network_Type = \"\";\r\n this.TN_Number = \"\";\r\n \r\n this.Target_Server = \"\";\r\n this.TestStatus = \"\";\r\n \r\n this.Avg_Failed_Rate = 0;\r\n this.Min_Total_Latency = 0;\r\n this.Min_Connect_Latency = 0;\r\n this.Min_Find_Latency = 0;\r\n this.Min_Read_Latency = 0;\r\n this.Avg_Total_Latency = 0;\r\n this.Avg_Connect_Latency = 0;\r\n this.Avg_Find_Latency = 0;\r\n this.Avg_Read_Latency = 0;\r\n this.Max_Total_Latency = 0;\r\n this.Max_Connect_Latency = 0;\r\n this.Max_Find_Latency = 0;\r\n this.Max_Read_Latency = 0;\r\n this.Avg_Bytes_Read = 0;\r\n this.Avg_Read_Rate = 0;\r\n this.Min_Read_Rate = 0;\r\n this.Max_Read_Rate = 0;\r\n this.Number_of_Tests_HTTP = 0;\r\n \r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\";\r\n\r\n }\r\n }\r\n","export enum RatingOperator {\r\n NOTUSE = 'Not Use',\r\n LESS_THAN_OR_EQUAL = 'lessThanOrEqual', // <=\r\n EQUALS = 'equals', // ==\r\n GREATER_THAN_OR_EQUAL = 'greaterThanOrEqual', // >=\r\n}\r\n\r\nexport class MAINFILTER {\r\n\r\n ID: number;\r\n CriteriaName: string;\r\n\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n VQuad_CallID: string;\r\n Called_Number: string;\r\n\r\n PESQ_LQ_Rating: string;\r\n POLQA_Score_Rating: string;\r\n RTD_Rating: string;\r\n MOSCQ_Rating: string;\r\n\r\n Timezone: string;\r\n Failed_Calls: string;\r\n\r\n PESQ_LQ_Range: string;\r\n POLQA_Score_Range: string;\r\n MOSCQ_Range: string;\r\n RTD_Range: string;\r\n OWD_Range: string;\r\n SNR_Range: string;\r\n PDD_Range: string;\r\n\r\n Call_Control_Event: string;\r\n CC_Condition: string;\r\n\r\n //PESQ/POLQA Advanced criteria\r\n CriteriaCondition: string;\r\n POLQACriteriaCondition: string;\r\n\r\n ////PESQ/POLQA type - NOT IN USE\r\n //TableType: number;\r\n ////Updates as new or copy name - NOT IN USE\r\n //UpdateStatus: number;\r\n\r\n ////ColumSetup-NOT IN USE\r\n //SelectedColumn: string;\r\n //POLQASelectedColumn: string;\r\n\r\n CustomDateTime: string;\r\n\r\n NetTest: string;\r\n Mobile: string;\r\n\r\n MapRegion: string;\r\n\r\n constructor() {\r\n this.ID = 0;\r\n this.CriteriaName = \"\";\r\n\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n this.VQuad_CallID = \"\";\r\n this.Called_Number = \"\";\r\n\r\n this.PESQ_LQ_Rating = \"0|0\";\r\n this.POLQA_Score_Rating = \"0|0\";\r\n this.RTD_Rating = \"0|0\";\r\n this.MOSCQ_Rating = \"0\";\r\n\r\n this.Timezone = \"False\";\r\n this.Failed_Calls = \"False\";\r\n\r\n this.PESQ_LQ_Range = \"|\";\r\n this.POLQA_Score_Range = \"|\";\r\n this.MOSCQ_Range = \"|\";\r\n this.RTD_Range = \"|\";\r\n this.OWD_Range = \"|\";\r\n this.SNR_Range = \"|\";\r\n this.PDD_Range = \"|\";\r\n\r\n this.Call_Control_Event = \"\";\r\n this.CC_Condition = \"\";\r\n\r\n this.CriteriaCondition = \"\";\r\n this.POLQACriteriaCondition = \"\";\r\n\r\n this.CustomDateTime = \"\";\r\n\r\n this.NetTest = \";;;;;;;;\";\r\n this.Mobile = \";;\";\r\n\r\n this.MapRegion = \"\";\r\n }\r\n\r\n}\r\n","export class ROUTEDATA {\r\n ID = 0;\r\n VQuad_Timestamp: Date;\r\n Start_Timestamp: Date;\r\n Call_Timestamp: Date;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n GPS_Position: string;\r\n GPS_Lat = 0;\r\n GPS_Long = 0;\r\n Start_GPS_Position: string;\r\n Start_GPS_Lat = 0;\r\n Start_GPS_Long = 0;\r\n Net_Speed_Test: string;\r\n Battery_Level: number;\r\n RSSI: number;\r\n Network_Type: string;\r\n TN_Number: string;\r\n\r\n Target_Server: string;\r\n TestStatus: string;\r\n Hops = 0;\r\n Response_to_End = 0;\r\n Max_Response = 0;\r\n Loss_to_End = 0;\r\n Max_Loss = 0;\r\n DNS_Time = 0;\r\n Trace_to_IP: string;\r\n Trace_from_IP: string;\r\n\r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n\r\n constructor() {\r\n this.ID = 0;\r\n this.VQuad_Timestamp = new Date();\r\n this.Start_Timestamp = new Date();\r\n this.Call_Timestamp = new Date();\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n this.GPS_Position = \"\";\r\n this.GPS_Lat = 0;\r\n this.GPS_Long = 0;\r\n this.Start_GPS_Position = \"\";\r\n this.Start_GPS_Lat = 0;\r\n this.Start_GPS_Long = 0;\r\n this.Net_Speed_Test = \"\";\r\n this.Battery_Level = 0;\r\n this.RSSI = 0;\r\n this.Network_Type = \"\";\r\n this.TN_Number = \"\";\r\n \r\n this.Target_Server = \"\";\r\n this.TestStatus = \"\";\r\n this.Hops = 0;\r\n this.Response_to_End = 0;\r\n this.Max_Response = 0;\r\n this.Loss_to_End = 0;\r\n this.Max_Loss = 0;\r\n this.DNS_Time = 0;\r\n this.Trace_to_IP = \"\";\r\n this.Trace_from_IP = \"\";\r\n \r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\";\r\n \r\n } \r\n \r\n}\r\n","// Mobile Actual status and 0-disconnected, 2-suspended and others -idle\r\nexport enum MOBILE_TEXT_STATUS {\r\n NetTest_None = 0,\r\n NetTest_PhoneIdle,\r\n NetTest_PhoneSuspended,\r\n NetTest_Starting,\r\n NetTest_TestStarted,\r\n NetTest_TestInProgress,//5\r\n NetTest_TestCompleted,\r\n NetTest_TestResults,\r\n NetTest_TestStopped,\r\n NetTest_TestFailed,\r\n NetTest_TestStopping,\r\n NetTest_PhoneIdleEmailAuto,\r\n NetTest_PhoneIdleSMSAuto,\r\n NetTest_PhoneSuspendedEmailAuto,\r\n NetTest_PhoneSuspendedSMSAuto,\r\n NetTest_AirPlaneMode,\r\n NetTest_PhoneAcceptingRequest, //Old\r\n NetTest_Started,\r\n NetTest_Running//18\r\n}\r\n\r\n//https://stackoverflow.com/questions/43100718/typescript-enum-to-object-array\r\nexport enum DEVICE_CALL_STATUS {\r\n Idle = 0, // Gray with text as Idle Over it\r\n\r\n Placing, // Orange with text as Placing.. Over it\r\n Placing_RecvDialTone, //DuFxo after received dial tone\r\n Placing_DigitsSent, //DuFxo after Send digits\r\n\r\n RingBack, // Orange with text as RingBack Over it\r\n Incoming, // Violet with text as Incoming Over it\r\n Answering, // Violet with text as Answering Over it\r\n Connected, // Yellow with text as Connected Over it\r\n Disconnecting, //DuFxo after disconnect call // Gray with text as Disconnecting.. Over it\r\n Max_Call_Status\r\n}\r\n","export enum RemoteCommandType {\r\n LOAD_SCRIPT = 1,\r\n START_SCRIPT = 2,\r\n STOP_SCRIPT = 3,\r\n START_APP = 4,\r\n STOP_APP = 5,\r\n VQUAD_AUTOTRAFFIC_START_CONTINUE = 100,\r\n VQUAD_AUTOTRAFFIC_START_ONCE = 101,\r\n VQUAD_AUTOTRAFFIC_STOP = 102,\r\n VQUAD_AUTOTRAFFIC_LOAD = 103,\r\n VQUAD_UPLOAD_SCRIPT = 104,\r\n VQUAD_DOWNLOAD_SCRIPT = 105,\r\n VQUAD_LOAD_MASTER_CONFIGURATION = 106,\r\n CC_UPLOADSUPERSCRIPT = 300,\r\n CC_DOWNLOADSUPERSCRIPT = 301,\r\n CC_DOWNLOADSITESCRIPT = 302,\r\n PLACE_CALL = 6,\r\n ANSWER_CALL = 7,\r\n DISCONNECT_CALL = 8,\r\n DELETE_CONFIG = 9,\r\n SAVE_CONFIG = 10,\r\n LOAD_CCSCRIPT = 11,\r\n VQUAD_NEW_SCHEDULE = 12,\r\n CUSTOM_REPORT_INI = 13,\r\n PAIRED_BT = 18\r\n}\r\n\r\nexport enum PipeCmd {\r\n None = 0,\r\n SetNetworkInfo,\r\n ExitAFT,\r\n\r\n // Call Control\r\n PlaceCallByDeviceID, // DeviceID or CalledNumber\r\n AnswerCallByDeviceID, // DeviceID\r\n DisconnectCallByDeviceID, // DeviceID\r\n\r\n // Configuration\r\n LoadConfigurationByID, // DeviceID or Config_Type or Config_Name\r\n DeleteConfigurationByID, // DeviceID or Config_Type or Config_Name\r\n SaveConfigurationByID, // DeviceID or Config_Type or Config_Name\r\n\r\n LoadCCScriptByDeviceID, // DeviceID or Script_Name\r\n StartStopCCScriptByDeviceID, // DeviceID or Start_Stop\r\n\r\n // Start/Stop Traffic\r\n StartStopTrafficByDeviceID, // DeviceID or Start_Stop or Traffic_type or traffic_parms\r\n\r\n // Schedule\r\n NewScheduleReady, // Path (Schedule File Path)\r\n\r\n // Trigger GrabFileRequest\r\n SendFile, // LocalFile(CentralDB PC) or RemoteFile(VQuad PC)\r\n\r\n // Load and Start FIle monitor\r\n StartFileMonitor, // Primary^Sec1^Sec2^Sec3 IPs, C:\\VQT_Degraded, not Delete, *.pcm/ *.wav/ *.*\r\n StopFileMonitor,\r\n\r\n //Send Webview Custom reports and Main FIlters list to VQuad Custom reports screen for Scheduelr\r\n CustomReportIni,\r\n //DeviceID|CallTypeOpt(Orig/Term)|strCallType\r\n QueryCallType,\r\n //Get Bluetooth paired list\r\n PairedBT\r\n}\r\n\r\nexport enum AppInfoType {\r\n VQUAD_SCRIPT = 100,\r\n VQUAD_TRAFFIC = 101,\r\n VQUAD_LOADMASTERCONFIGURATION = 102,\r\n VQT_SCRIPT = 200,\r\n CC_SCRIPT_SUPER = 300,\r\n CC_SCRIPT_SITE = 301\r\n}\r\n\r\nexport enum CCScriptType {\r\n Site = 6,\r\n Super = 7,\r\n Scheduler = 8\r\n}\r\n\r\nexport enum CommandType {\r\n VQUAD = 10100,\r\n VQT = 10200,\r\n CC = 10300,\r\n FILEMONITOR = 10400\r\n}\r\n","export class SIMINFO {\r\n\r\n ID: number;\r\n VQuad_Timestamp: Date;\r\n Call_Timestamp: Date;\r\n Start_Timestamp: Date;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n GPS_Position: string;\r\n GPS_Lat: number;\r\n GPS_Long: number;\r\n Start_GPS_Position: string;\r\n Start_GPS_Lat: number;\r\n Start_GPS_Long: number;\r\n Net_Speed_Test: string;\r\n Battery_Level: number;\r\n RSSI: number;\r\n Network_Type: string;\r\n TN_Number: string;\r\n\r\n Target_Server: string;\r\n TestStatus: string;\r\n\r\n Phone_Model: string;\r\n SimMNC: string;\r\n SimMCC: string;\r\n IMSI: string;\r\n\r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n\r\n constructor() {\r\n this.ID = 0;\r\n this.VQuad_Timestamp = new Date();\r\n this.Call_Timestamp = new Date();\r\n this.Start_Timestamp = new Date();\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n this.GPS_Position = \"\";\r\n this.GPS_Lat = 0;\r\n this.GPS_Long = 0;\r\n this.Start_GPS_Position = \"\";\r\n this.Start_GPS_Lat = 0;\r\n this.Start_GPS_Long = 0;\r\n this.Net_Speed_Test = \"\";\r\n this.Battery_Level = 0;\r\n this.RSSI = 0;\r\n this.Network_Type = \"\";\r\n this.TN_Number = \"\";\r\n \r\n this.Target_Server = \"\";\r\n this.TestStatus = \"\";\r\n \r\n this.Phone_Model = \"\";\r\n this.SimMNC = \"\";\r\n this.SimMCC = \"\";\r\n this.IMSI = \"\";\r\n \r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\";\r\n }\r\n \r\n \r\n}\r\n","export class SMSDATA {\r\n\r\n ID: number;\r\n VQuad_Timestamp: Date;\r\n Start_Timestamp: Date;\r\n Call_Timestamp: Date;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n GPS_Position: string;\r\n GPS_Lat: number;\r\n GPS_Long: number;\r\n Start_GPS_Position: string;\r\n Start_GPS_Lat: number;\r\n Start_GPS_Long: number;\r\n Net_Speed_Test: string;\r\n Battery_Level: number;\r\n RSSI: number;\r\n Network_Type: string;\r\n TN_Number: string;\r\n Target_Server: string;\r\n TestStatus: string;\r\n\r\n Total_Msg_Send: number;\r\n Total_Msg_Failed: number;\r\n Min_Time_SMS: number;\r\n Avg_Time_SMS: number;\r\n Max_Time_SMS: number;\r\n Total_Msg_Recieved: number;\r\n Total_RecieveSMS_Expected: number;\r\n Time_of_FirstSMS: string;\r\n Time_of_LastSMS: string;\r\n\r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n\r\n constructor() {\r\n this.ID = 0;\r\n this.VQuad_Timestamp = new Date();\r\n this.Start_Timestamp = new Date();\r\n this.Call_Timestamp = new Date();\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n this.GPS_Position = \"\";\r\n this.GPS_Lat = 0;\r\n this.GPS_Long = 0;\r\n this.Start_GPS_Position = \"\";\r\n this.Start_GPS_Lat = 0;\r\n this.Start_GPS_Long = 0;\r\n this.Net_Speed_Test = \"\";\r\n this.Battery_Level = 0;\r\n this.RSSI = 0;\r\n this.Network_Type = \"\";\r\n this.TN_Number = \"\";\r\n this.Target_Server = \"\";\r\n this.TestStatus = \"\";\r\n \r\n this.Total_Msg_Send = 0;\r\n this.Total_Msg_Failed = 0;\r\n this.Min_Time_SMS = 0;\r\n this.Avg_Time_SMS = 0;\r\n this.Max_Time_SMS = 0;\r\n this.Total_Msg_Recieved = 0;\r\n this.Total_RecieveSMS_Expected = 0;\r\n this.Time_of_FirstSMS = \"\";\r\n this.Time_of_LastSMS = \"\";\r\n \r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\";\r\n\r\n }\r\n}\r\n","import { GeneralFilter } from '../Common/common-filter';\r\n\r\nexport class Job {\r\n\r\n Title: string; //UD\r\n Status: number;//0 (just in)/1 (started/restarted)/2 (ended)/-1 (paused) //SC\r\n CRName: string; //UD\r\n CRGroupOrNot: string; //UD\r\n Description: string; //UD\r\n FilterFromDB: string; //UD\r\n CallIDValue: string; //UD\r\n DeviceIDValue: string; //UD\r\n TotalNoofTimes: number;//1/multi/0/-1(infinite) = Once/Multi/End by/Indefinite //UD\r\n EndBy: string;//Date = Above once or Report gen ends on specified date //UD\r\n ifToBeRecurred: number;//0-5, None, Hourly, etc //UD\r\n Months: Array; //Yearly //UD\r\n Days: Array; //Weekly //UD\r\n DaysOnEvery: number; //nth week for each weekday //UD\r\n Dates: Array; //Monthly Or Yearly(only one date in common) //UD\r\n Hours: number; //UD\r\n Minutes: number; //UD\r\n DurationTypeFilter: number; //UD-Based on Duration Or TS Filter dates inputs BLANK or NOT BLANK\r\n TimeDiffFilter: string;//Days+hrs+Mins from now //UD\r\n startTimestampFilter: string;//Query Filter start date //UD\r\n endTimestampFilter: string;//Query Filter end date //UD\r\n TimestampTypeFilter: string; //UD\r\n\r\n ExportTypes: Array; //UD\r\n\r\n SaveToDirOrSend: Array; //UD\r\n WebviewerDirPath: string; //UD\r\n EmailSubject: string; //UD\r\n SMSSubject: string; //UD\r\n AllContactsUnderRep: Array; //UD\r\n\r\n ClientTimeStamp: string;//Current datetime sent by VQuad or Webview //UD\r\n\r\n InsertOrUpdateJob: number;\r\n\r\n DataImportOrWebview: number;\r\n\r\n WebviewConfigUpdated: number;\r\n DBType: string;\r\n OracleHost: string;\r\n OracleUN: string;\r\n OraclePWD: string;\r\n OraclePort: string;\r\n OracleIP: string;\r\n MDBPath: string;\r\n OutputGPS: string;\r\n DB_BRDiff: string;\r\n generalFilterArray: Array;\r\n constructor() {\r\n this.generalFilterArray = [];\r\n }\r\n}\r\n","//Yearly\r\nexport enum Months {\r\n None,\r\n Jan,\r\n Feb,\r\n Mar,\r\n Apr,\r\n May,\r\n Jun,\r\n Jul,\r\n Aug,\r\n Sep,\r\n Oct,\r\n Nov,\r\n Dec\r\n}\r\n\r\n//Weekly\r\nexport enum Weekdays {\r\n Sun,\r\n Mon,\r\n Tue,\r\n Wed,\r\n Thu,\r\n Fri,\r\n Sat\r\n}\r\n\r\n//Monthly\r\nexport enum DaysOfMonth {\r\n st,\r\n nd,\r\n rd,\r\n th\r\n}\r\n\r\n//Schedule status\r\nexport enum Status {\r\n Yet_to_start = 0,\r\n In_Progress = 1,\r\n Completed = 2,\r\n Paused = -1,\r\n Error = 3\r\n}\r\n","import { stream } from 'exceljs';\r\n\r\nexport class SystemSettingConfig {\r\n\r\n AdminName: string;\r\n DBType: string;\r\n DB_Name: string;\r\n UserName: string;\r\n Pin: string;\r\n Port: string;\r\n //DBPath: string;\r\n //ByPassPin: string;\r\n LinkKeyword: string;\r\n FailureCalls: string;\r\n GoogleMapsAPIKey: string;\r\n GoogleMapID_AdvancedMarker: string;\r\n GPSReplace: string;\r\n EmailID: string;\r\n HostServerIP: string;\r\n //SortEvents: string;\r\n //CallTypeTerminating: string;\r\n //OutPutGPSFormat: string;\r\n //OutPutTimestampFormat: string;\r\n //SendConfigToScheduler: string;\r\n DB_IP: string;\r\n LoginType: string;\r\n ForgotPasswodKey: string;\r\n OldPin: string;\r\n}\r\n","export class TCPDATA {\r\n ID: number;\r\n VQuad_Timestamp: Date;\r\n Start_Timestamp: Date;\r\n Call_Timestamp: Date;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n GPS_Position: string;\r\n GPS_Lat: number;\r\n GPS_Long: number;\r\n Start_GPS_Position: string;\r\n Start_GPS_Lat: number;\r\n Start_GPS_Long: number;\r\n\r\n Net_Speed_Test: string;\r\n Battery_Level: number;\r\n RSSI: number;\r\n Network_Type: string;\r\n TN_Number: string;\r\n\r\n Target_Server: string;\r\n TestStatus: string;\r\n \r\n Equilibrium_Efficiency: string;\r\n Capacity_Efficiency: string;\r\n RTT_Consistency: string;\r\n Buffer_Delay: string;\r\n Error_Delay: string;\r\n Quality: string;\r\n Dwn_Speed: number;\r\n Dwn_Effective_Speed: number;\r\n Dwn_Max_Delay: number;\r\n Dwn_QOS_TCP: number;\r\n Dwn_MTU: number;\r\n Dwn_Retransmit_Timeouts: number;\r\n Dwn_Fast_Retransmits: number;\r\n Dwn_Packets_Retransmitted: number;\r\n Dwn_Bytes_Retransmitted: number;\r\n Dwn_Send_Window_Closed: number;\r\n Dwn_Window_Only_Updates_Rcvd: number;\r\n Dwn_Acks_for_Unsent: number;\r\n Dwn_Duplicate_Acks: number;\r\n Dwn_Window_Probes_Sent: number;\r\n Dwn_Persist_Timeouts: number;\r\n Dwn_Avg_Delay: number;\r\n Up_Speed: number;\r\n Up_Effective_Speed: number;\r\n Up_Max_Delay: number;\r\n Up_QOS_TCP: number;\r\n Up_MTU: number;\r\n Up_Out_of_Order_Pkt: number;\r\n Up_Out_of_Order_Byt: number;\r\n Up_Outside_Window_Pkt: number;\r\n Up_Outside_Window_Byt: number;\r\n Up_Pure_Duplicate_Pkt: number;\r\n Up_Pure_Duplicate_Byt: number;\r\n Up_Partial_Duplicate_Pkt: number;\r\n Up_Partial_Duplicate_Byt: number;\r\n Up_Packets_with_CRC_Error: number;\r\n Up_Packets_with_Bad_Offset: number;\r\n Up_Truncated_Packets: number;\r\n Up_Window_Probes_Received: number;\r\n Up_Zero_Window_Updates_Sent: number;\r\n Up_Bytes_Lost: number;\r\n Up_Avg_Delay: number;\r\n Max_Route_Speed: number;\r\n Round_Trip_Time: number;\r\n No_Of_Sessions: number;\r\n \r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n\r\n constructor() {\r\n this.ID = 0;\r\n this.VQuad_Timestamp = new Date();\r\n this.Start_Timestamp = new Date();\r\n this.Call_Timestamp = new Date();\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n this.GPS_Position = \"\";\r\n this.GPS_Lat = 0;\r\n this.GPS_Long = 0;\r\n this.Start_GPS_Position = \"\";\r\n this.Start_GPS_Lat = 0;\r\n this.Start_GPS_Long = 0;\r\n \r\n this.Net_Speed_Test = \"\";\r\n this.Battery_Level = 0;\r\n this.RSSI = 0;\r\n this.Network_Type = \"\";\r\n this.TN_Number = \"\";\r\n \r\n this.Target_Server = \"\";\r\n this.TestStatus = \"\";\r\n \r\n this.Equilibrium_Efficiency = \"\";\r\n this.Capacity_Efficiency = \"\";\r\n this.RTT_Consistency = \"\";\r\n this.Buffer_Delay = \"\";\r\n this.Error_Delay = \"\";\r\n this.Quality = \"\";\r\n this.Dwn_Speed = 0;\r\n this.Dwn_Effective_Speed = 0;\r\n this.Dwn_Max_Delay = 0;\r\n this.Dwn_QOS_TCP = 0;\r\n this.Dwn_MTU = 0;\r\n this.Dwn_Retransmit_Timeouts = 0;\r\n this.Dwn_Fast_Retransmits = 0;\r\n this.Dwn_Packets_Retransmitted = 0;\r\n this.Dwn_Bytes_Retransmitted = 0;\r\n this.Dwn_Send_Window_Closed = 0;\r\n this.Dwn_Window_Only_Updates_Rcvd = 0;\r\n this.Dwn_Acks_for_Unsent = 0;\r\n this.Dwn_Duplicate_Acks = 0;\r\n this.Dwn_Window_Probes_Sent = 0;\r\n this.Dwn_Persist_Timeouts = 0;\r\n this.Dwn_Avg_Delay = 0;\r\n this.Up_Speed = 0;\r\n this.Up_Effective_Speed = 0;\r\n this.Up_Max_Delay = 0;\r\n this.Up_QOS_TCP = 0;\r\n this.Up_MTU = 0;\r\n this.Up_Out_of_Order_Pkt = 0;\r\n this.Up_Out_of_Order_Byt = 0;\r\n this.Up_Outside_Window_Pkt = 0;\r\n this.Up_Outside_Window_Byt = 0;\r\n this.Up_Pure_Duplicate_Pkt = 0;\r\n this.Up_Pure_Duplicate_Byt = 0;\r\n this.Up_Partial_Duplicate_Pkt = 0;\r\n this.Up_Partial_Duplicate_Byt = 0;\r\n this.Up_Packets_with_CRC_Error = 0;\r\n this.Up_Packets_with_Bad_Offset = 0;\r\n this.Up_Truncated_Packets = 0;\r\n this.Up_Window_Probes_Received = 0;\r\n this.Up_Zero_Window_Updates_Sent = 0;\r\n this.Up_Bytes_Lost = 0;\r\n this.Up_Avg_Delay = 0;\r\n this.Max_Route_Speed = 0;\r\n this.Round_Trip_Time = 0;\r\n this.No_Of_Sessions = 0;\r\n \r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\";\r\n }\r\n}\r\n","export class UDPDATA {\r\n\r\n ID: number;\r\n VQuad_Timestamp: Date;\r\n Start_Timestamp: Date;\r\n Call_Timestamp: Date;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n GPS_Position: string;\r\n GPS_Lat: number;\r\n GPS_Long: number;\r\n Start_GPS_Position: string;\r\n Start_GPS_Lat: number;\r\n Start_GPS_Long: number;\r\n\r\n Net_Speed_Test: string;\r\n Battery_Level: number;\r\n RSSI: number;\r\n Network_Type: string;\r\n TN_Number: string;\r\n \r\n Target_Server: string;\r\n TestStatus: string;\r\n \r\n Dwn_Capacity: number;\r\n Dwn_QOS_UDP: number;\r\n Dwn_Packet_size: number;\r\n Dwn_Packet_per_second: number;\r\n Up_Capacity: number;\r\n Up_QOS_UDP: number;\r\n Up_Packet_size: number;\r\n Up_Packet_per_second: number;\r\n \r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n\r\n constructor() {\r\n this.ID = 0;\r\n this.VQuad_Timestamp = new Date();\r\n this.Start_Timestamp = new Date();\r\n this.Call_Timestamp = new Date();\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n this.GPS_Position = \"\";\r\n this.GPS_Lat = 0;\r\n this.GPS_Long = 0;\r\n this.Start_GPS_Position = \"\";\r\n this.Start_GPS_Lat = 0;\r\n this.Start_GPS_Long = 0;\r\n\r\n this.Net_Speed_Test = \"\";\r\n this.Battery_Level = 0;\r\n this.RSSI = 0;\r\n this.Network_Type = \"\";\r\n this.TN_Number = \"\";\r\n \r\n this.Target_Server = \"\";\r\n this.TestStatus = \"\";\r\n\r\n this.Dwn_Capacity = 0;\r\n this.Dwn_QOS_UDP = 0;\r\n this.Dwn_Packet_size = 0;\r\n this.Dwn_Packet_per_second = 0;\r\n this.Up_Capacity = 0;\r\n this.Up_QOS_UDP = 0;\r\n this.Up_Packet_size = 0;\r\n this.Up_Packet_per_second = 0;\r\n \r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\";\r\n }\r\n}\r\n","export class UEINFO {\r\n\r\n ID : number;\r\n VQuad_Timestamp: Date;\r\n Start_Timestamp: Date;\r\n Call_Timestamp: Date;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n\r\n GPS_Position: string;\r\n GPS_Lat: number;\r\n GPS_Long: number;\r\n Start_GPS_Position: string;\r\n Start_GPS_Lat: number;\r\n Start_GPS_Long: number;\r\n \r\n Net_Speed_Test: string;\r\n Battery_Level: number;\r\n RSSI: number;\r\n Network_Type: string;\r\n TN_Number: string;\r\n \r\n Target_Server: string;\r\n TestStatus: string;\r\n\r\n Phone_Model: string;\r\n EGCI: string;\r\n PLMN_ID: string;\r\n Cell_ID: string;\r\n Neighbouring_Cell_ID: string;\r\n LAI: string;\r\n IpAddress: string;\r\n Gateway: string;\r\n DNS_UE: string;\r\n\r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n\r\n constructor() {\r\n this.ID = 0;\r\n this.VQuad_Timestamp = new Date();\r\n this.Start_Timestamp = new Date();\r\n this.Call_Timestamp = new Date();\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n \r\n this.GPS_Position = \"\";\r\n this.GPS_Lat = 0;\r\n this.GPS_Long = 0;\r\n this.Start_GPS_Position = \"\";\r\n this.Start_GPS_Lat = 0;\r\n this.Start_GPS_Long = 0;\r\n \r\n this.Net_Speed_Test = \"\";\r\n this.Battery_Level = 0;\r\n this.RSSI = 0;\r\n this.Network_Type = \"\";\r\n this.TN_Number = \"\";\r\n \r\n this.Target_Server = \"\";\r\n this.TestStatus = \"\";\r\n \r\n this.Phone_Model = \"\";\r\n this.EGCI = \"\";\r\n this.PLMN_ID = \"\";\r\n this.Cell_ID = \"\";\r\n this.Neighbouring_Cell_ID = \"\";\r\n this.LAI = \"\";\r\n this.IpAddress = \"\";\r\n this.Gateway = \"\";\r\n this.DNS_UE = \"\";\r\n \r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\";\r\n\r\n }\r\n}\r\n","export class VACDATA {\r\n\r\n ID: number;\r\n Start_Timestamp: Date;\r\n VQuad_Timestamp: Date;\r\n\r\n Call_Timestamp: Date;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n\r\n Start_GPS_Position: string;\r\n Start_GPS_Lat: number;\r\n Start_GPS_Long: number;\r\n GPS_Position: string;\r\n GPS_Lat: number;\r\n GPS_Long: number; \r\n\r\n TestStatus: string;\r\n Direction: string;\r\n\r\n //Service: string;\r\n //Group: string;\r\n Endpoint_URI: string;\r\n IP_Address: string;\r\n //VLAN_Encap: string;\r\n //Endpoint_UA: string;\r\n //Call_ID: string;\r\n Test_Plan_Name: string;\r\n\r\n\r\n Absolute_MOS_V\t: number;\r\n Relative_MOS_V: number;\r\n //Image_Size: string;\r\n //Video_Packet_Loss_Rate: number;\r\n //Video_Discard_Rate: number;\r\n //Video_Bandwidth: number;\r\n Video_Frame_Rate: number;\r\n Impaired_I_Frames: number;\r\n Impaired_BP_Frames: number;\r\n //Loss_Rate_within_I_Frames: number;\r\n Loss_Rate_within_BP_Frames: number;\r\n //Error_extension_through_GoP: number;\r\n EPSNR: number;\r\n //G1070_Video_MOS: number;\r\n //I_Frames_Received: number;\r\n //BP_Frames_Received: number;\r\n\r\n Relative_MOS_A: number;\r\n ////Audio_Packet_Loss_Rate: number;\r\n ////Audio_Discard_Rate: number;\r\n //Audio_Bitrate: number;\r\n Audio_Bandwidth: number;\r\n Signal_Level: number;\r\n Noise_Level: number;\r\n //G1070_Audio_MOS: number;\r\n\r\n Relative_MOS_AV: number;\r\n ////Total_Round_Trip_Delay: number;\r\n //End_System_Delay: number;\r\n ////Network_Round_Trip_Delay_AV\t: \tnumber\t;\r\n ////IP_Network_Health: number;\r\n\r\n Network_Packet_Loss_Rate: number;\r\n Network_Packet_Discard_Rate: number;\r\n //Network_Packet_Duplicate_Rate: number;\r\n //Network_Packet_Reorder_Rate: number;\r\n Mean_Burst_Loss_Rate: number;\r\n Mean_Burst_Length: number;\r\n Mean_Gap_Loss_Rate: number;\r\n Mean_Gap_Length: number;\r\n Jitter__PPDV_: number;\r\n //MAPDV_Avg: number;\r\n //Network_Round_Trip_Delay: number;\r\n\r\n //Service_Access_Result: string;\r\n //Service_Access_Delay: number;\r\n //Service_Access_Fail_Count: number;\r\n //Session_Disconnect_Cause: string;\r\n //Session_Disconnect_Delay: number;\r\n //Session_Disconnect_Direction: string;\r\n\r\n //Video_Codec_Type: string;\r\n Image_Resolution: string;\r\n //GoP_Type: string;\r\n GoP_Length: number;\r\n Audio_Codec_Type: string;\r\n Audio_Sample_Rate: string;\r\n //Audio_Packet_Duration: number;\r\n //Transport_Protocol: string;\r\n //Signaling_Type: string;\r\n Video_Codec_PLC_Type: string;\r\n Audio_Codec_PLC_Type: string;\r\n\r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n\r\n constructor() {\r\n this.ID = 0;\r\n\r\n this.Start_Timestamp = new Date();\r\n this.VQuad_Timestamp = new Date();\r\n\r\n this.Call_Timestamp = new Date();\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n\r\n\r\n this.Start_GPS_Position = \"\";\r\n this.Start_GPS_Lat = 0;\r\n this.Start_GPS_Long = 0;\r\n this.GPS_Position = \"\";\r\n this.GPS_Lat = 0;\r\n this.GPS_Long = 0;\r\n\r\n this.TestStatus = \"\";\r\n this.Direction = \"\";\r\n\r\n //this.Service = \"\";\r\n //this.Group = \"\";\r\n this.Endpoint_URI = \"\";\r\n this.IP_Address = \"\";\r\n //this.VLAN_Encap = \"\";\r\n //this.Endpoint_UA = \"\";\r\n //this.Call_ID = \"\";\r\n this.Test_Plan_Name = \"\";\r\n\r\n this.Absolute_MOS_V\t= 0\t;\r\n this.Relative_MOS_V\t= 0;\r\n //this.Image_Size = \"\";\r\n //this.Video_Packet_Loss_Rate = 0;\r\n //this.Video_Discard_Rate = 0;\r\n //this.Video_Bandwidth = 0;\r\n this.Video_Frame_Rate = 0;\r\n this.Impaired_I_Frames = 0;\r\n this.Impaired_BP_Frames = 0;\r\n //this.Loss_Rate_within_I_Frames = 0;\r\n this.Loss_Rate_within_BP_Frames = 0;\r\n //this.Error_extension_through_GoP = 0;\r\n this.EPSNR = 0;\r\n //this.G1070_Video_MOS = 0;\r\n //this.I_Frames_Received = 0;\r\n //this.BP_Frames_Received = 0;\r\n\r\n this.Relative_MOS_A\t= 0\t;\r\n ////this.Audio_Packet_Loss_Rate = 0;\r\n ////this.Audio_Discard_Rate = 0;\r\n //this.Audio_Bitrate = 0;\r\n this.Audio_Bandwidth = 0;\r\n this.Signal_Level = 0;\r\n this.Noise_Level = 0;\r\n\r\n //this.G1070_Audio_MOS = 0;\r\n this.Relative_MOS_AV\t= 0\t;\r\n ////this.Total_Round_Trip_Delay = 0;\r\n //this.End_System_Delay = 0;\r\n ////this.Network_Round_Trip_Delay_AV\t=0;\r\n ////this.IP_Network_Health = 0;\r\n\r\n this.Network_Packet_Loss_Rate = 0;\r\n this.Network_Packet_Discard_Rate = 0;\r\n //this.Network_Packet_Duplicate_Rate = 0;\r\n //this.Network_Packet_Reorder_Rate = 0;\r\n this.Mean_Burst_Loss_Rate = 0;\r\n this.Mean_Burst_Length = 0;\r\n this.Mean_Gap_Loss_Rate = 0;\r\n this.Mean_Gap_Length = 0;\r\n this.Jitter__PPDV_\t= 0;\r\n //this.MAPDV_Avg = 0;\r\n //this.Network_Round_Trip_Delay = 0;\r\n\r\n //this.Service_Access_Result = \"\";\r\n //this.Service_Access_Delay = 0;\r\n //this.Service_Access_Fail_Count = 0;\r\n //this.Session_Disconnect_Cause = \"\";\r\n //this.Session_Disconnect_Delay = 0;\r\n //this.Session_Disconnect_Direction = \"\";\r\n\r\n //this.Video_Codec_Type = \"\";\r\n this.Image_Resolution = \"\";\r\n //this.GoP_Type = \"\";\r\n\r\n this.GoP_Length = 0;\r\n this.Audio_Codec_Type = \"\";\r\n this.Audio_Sample_Rate = \"\";\r\n\r\n //this.Audio_Packet_Duration = 0;\r\n //this.Transport_Protocol = \"\";\r\n //this.Signaling_Type = \"\";\r\n this.Video_Codec_PLC_Type = \"\";\r\n this.Audio_Codec_PLC_Type = \"\";\r\n\r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\"; \r\n }\r\n}\r\n","export class VOIPDATA {\r\n\r\n ID: number;\r\n VQuad_Timestamp: Date;\r\n Start_Timestamp: Date;\r\n\r\n Call_Timestamp: Date;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n\r\n GPS_Position: string;\r\n GPS_Lat: number;\r\n GPS_Long: number;\r\n Start_GPS_Position: string;\r\n Start_GPS_Lat: number;\r\n Start_GPS_Long: number;\r\n\r\n Net_Speed_Test: string;\r\n Battery_Level: number;\r\n RSSI: number;\r\n Network_Type: string;\r\n TN_Number: string;\r\n \r\n Target_Server: string;\r\n TestStatus: string;\r\n\r\n Up_Avg_Jitter: number;\r\n Up_Max_Jitter: number;\r\n Up_Packets_Out_of_Order: number;\r\n Up_Packet_Loss: number;\r\n Up_Packet_Discard: number;\r\n Dwn_Avg_Jitter: number;\r\n Dwn_Max_Jitter: number;\r\n Dwn_Packets_Out_of_Order: number;\r\n Dwn_Packet_Loss: number;\r\n Dwn_Packet_Discard: number;\r\n SIP_Register: number;\r\n SIP_Invite: number;\r\n SIP_Bye: number;\r\n \r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n \r\n constructor() {\r\n this.ID = 0;\r\n this.VQuad_Timestamp = new Date();\r\n this.Start_Timestamp = new Date();\r\n \r\n this.Call_Timestamp = new Date();\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n \r\n this.GPS_Position = \"\";\r\n this.GPS_Lat = 0;\r\n this.GPS_Long = 0;\r\n this.Start_GPS_Position = \"\";\r\n this.Start_GPS_Lat = 0;\r\n this.Start_GPS_Long = 0;\r\n \r\n this.Net_Speed_Test = \"\";\r\n this.Battery_Level = 0;\r\n this.RSSI = 0;\r\n this.Network_Type = \"\";\r\n this.TN_Number = \"\";\r\n\r\n this.Target_Server = \"\";\r\n this.TestStatus = \"\";\r\n \r\n this.Up_Avg_Jitter = 0;\r\n this.Up_Max_Jitter = 0;\r\n this.Up_Packets_Out_of_Order = 0;\r\n this.Up_Packet_Loss = 0;\r\n this.Up_Packet_Discard = 0;\r\n this.Dwn_Avg_Jitter = 0;\r\n this.Dwn_Max_Jitter = 0;\r\n this.Dwn_Packets_Out_of_Order = 0;\r\n this.Dwn_Packet_Loss = 0;\r\n this.Dwn_Packet_Discard = 0;\r\n this.SIP_Register = 0;\r\n this.SIP_Invite = 0;\r\n this.SIP_Bye = 0;\r\n \r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\";\r\n \r\n }\r\n}\r\n","export class VQTPESQDATA {\r\n\r\n ID: number;\r\n VQT_TimeStamp: Date;\r\n VQuad_Timestamp: Date;\r\n\r\n DCOSS_TimeStamp: Date;\r\n DCOSS_TrunkTS: string;\r\n DCOSS_CallID: string;\r\n DCOSS_DID: string;\r\n DCOSS_ANI: string;\r\n Call_Timestamp: Date;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n\r\n VQuad_Lat_Long: string;//VQuad_Lat_Long: string; /// uncommented coz VQuad_Lat_Long exists in vqtdata table\r\n //GPS_Position: string; /// commented coz GPS_Position doesnt exist in vqtdata table\r\n GPS_Lat: number;\r\n GPS_Long: number;\r\n\r\n Deg_File_Name: string;\r\n Rating: string;\r\n PESQ_Score: number;\r\n DAQ: number;\r\n PESQ_LQ: number;\r\n PESQ_MOS: number;\r\n PESQ_WB: number;\r\n PSQMPLUS: number;\r\n PESQ_Average_offset: number;\r\n PESQ_Max_Offset: number;\r\n PESQ_Min_Offset: number;\r\n Number_All_clipping: number;\r\n Duration_ALL_Clipping: number;\r\n Mean_Duration_ALL_Clipping: number;\r\n duration_hangover: number;\r\n Number_of_hangover: number;\r\n Average_Jitter: number;\r\n RSSI: number;\r\n\r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n\r\n VQTTimestamp: Date;\r\n\r\n\r\n PAMS_LQ: number;\r\n PAMS_LE: number;\r\n PSQM: number;\r\n\r\n\r\n Degraded: string;\r\n\r\n Reference: string;\r\n Inventory: string;\r\n User_ID: string;\r\n\r\n PAMS_Avg_Offset: number;\r\n PAMS_Offset_Confidence: number;\r\n Reference_Active_Level: number;\r\n Reference_Activity: number;\r\n Reference_Noise: number;\r\n Reference_Peak: number;\r\n Degraded_Active_Level: number;\r\n Degraded_Activity: number;\r\n Degraded_Noise: number;\r\n Degraded_Peak: number;\r\n PAMS_Max_Offset: number;\r\n PAMS_Min_Offset: number;\r\n PAMS_Std_Deviation_Offsets: number;\r\n PAMS_utterances: number;\r\n PAMS_Proportion_degraded_muted: number;\r\n PAMS_Max_mute: number;\r\n PAMS_Median_Offset: number;\r\n PSQM_Slt_Interval_WeightFactor: number;\r\n\r\n PESQ_Offset_Confidence: number;\r\n\r\n PESQ_Std_Deviation_Offset: number;\r\n PESQ_utterances: number;\r\n PESQ_Proportion_degraded_muted: number;\r\n PESQ_Max_Mute: number;\r\n PESQ_Median_Offset: number;\r\n PESQ_Min_Offset_: number;\r\n PESQ_Max_Offset_: number;\r\n PESQ_Std_Deviation_Offset_: number;\r\n Num_samples_reference: number;\r\n Speech_activity_reference: number;\r\n Number_of_samples_degraded: number;\r\n Speech_activity_degraded: number;\r\n Model_selected: number;\r\n Sample_rate: number;\r\n Symmetric_disturbance: number;\r\n Asymmetric_disturbance: number;\r\n Proportion_muted: number;\r\n longest_muted: number;\r\n Mean_DC_reference: number;\r\n ASL_reference: number;\r\n Mean_noise_reference: number;\r\n RMS_reference: number;\r\n Mean_DC_degraded: number;\r\n ASL_degraded: number;\r\n Mean_noise_degraded: number;\r\n RMS_degraded: number;\r\n Speech_Level_Gain: number;\r\n Noise_Level_Gain: number;\r\n Ie: number;\r\n Mean_delay: number;\r\n PESQ_Version_number: number;\r\n Minimum_delay: number;\r\n Maximum_delay: number;\r\n Standard_deviation_of_delay: number;\r\n PESQ_Average_offset_: number;\r\n PESQ_Offset_Confidence_: number;\r\n PESQ_Median_Offset_: number;\r\n Duration_of_speech: number;\r\n Proportion_All_clipping: number; 0\r\n\r\n Proportion_Without_Front: number;\r\n Number_Without_Front: number;\r\n Duration_Without_Front: number;\r\n Mean_Duration_Without_Front: number;\r\n Proportion_Front: number;\r\n Number_Front_clipping: number;\r\n Duration_Front_Clipping: number;\r\n Mean_Duration_Front_Clipping: number;\r\n Proportion_Back: number;\r\n Number_Back_clipping: number;\r\n Duration_Back_Clipping: number;\r\n Mean_Duration_Back_Clipping: number;\r\n\r\n PESQ_Per_Utterance: string;\r\n PESQLQ_Per_Utterance: string;\r\n PESQLQO_Per_Utterance: string;\r\n PESQ_WB_Utterance: string;\r\n PESQDelay_Per_Utterance: string;\r\n PAMSDelay_Per_Utterance: string;\r\n Rating_Reason: string;\r\n AVGofRTD: number;\r\n\r\n NA6: string;\r\n NA7: string;\r\n NA8: string;\r\n NA9: string;\r\n\r\n constructor() {\r\n this.ID = 0;\r\n this.VQT_TimeStamp = new Date();\r\n this.VQuad_Timestamp = new Date();\r\n\r\n //this.DCOSS_TimeStamp=new Date();\r\n //this.DCOSS_TrunkTS = \"\";\r\n //this.DCOSS_CallID = \"\";\r\n //this.DCOSS_DID = \"\";\r\n //this.DCOSS_ANI = \"\";\r\n this.Call_Timestamp = new Date();\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n\r\n this.VQuad_Lat_Long = \"\";//VQuad_Lat_Long= \"\";; /// uncommented coz VQuad_Lat_Long exists in vqtdata table\r\n //this.GPS_Position = \"\"; /// commented coz GPS_Position doesnt exist in vqtdata table\r\n this.GPS_Lat = 0;\r\n this.GPS_Long = 0;\r\n\r\n this.Deg_File_Name = \"\";\r\n this.Rating = \"\";\r\n this.PESQ_Score = 0;\r\n this.DAQ = 0;\r\n this.PESQ_LQ = 0;\r\n this.PESQ_MOS = 0;\r\n this.PESQ_WB = 0;\r\n this.PSQMPLUS = 0;\r\n this.PESQ_Average_offset = 0;\r\n this.PESQ_Max_Offset = 0;\r\n this.PESQ_Min_Offset = 0;\r\n this.Number_All_clipping = 0;\r\n this.Duration_ALL_Clipping = 0;\r\n this.Mean_Duration_ALL_Clipping = 0;\r\n this.duration_hangover = 0;\r\n this.Number_of_hangover = 0;\r\n this.Average_Jitter = 0;\r\n this.RSSI = 0;\r\n\r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\";\r\n\r\n //this.VQTTimestamp = new Date();\r\n\r\n //Start of main events screen hidden\r\n this.PAMS_LQ = 0;\r\n this.PAMS_LE = 0;\r\n this.PSQM = 0;\r\n\r\n this.Degraded = \"\";\r\n\r\n this.Reference = \"\";\r\n this.Inventory = \"\";\r\n this.User_ID = \"\";\r\n\r\n this.PAMS_Avg_Offset = 0;\r\n this.PAMS_Offset_Confidence = 0;\r\n this.Reference_Active_Level = 0;\r\n this.Reference_Activity = 0;\r\n this.Reference_Noise = 0;\r\n this.Reference_Peak = 0;\r\n this.Degraded_Active_Level = 0;\r\n this.Degraded_Activity = 0;\r\n this.Degraded_Noise = 0;\r\n this.Degraded_Peak = 0;\r\n this.PAMS_Max_Offset = 0;\r\n this.PAMS_Min_Offset = 0;\r\n this.PAMS_Std_Deviation_Offsets = 0;\r\n this.PAMS_utterances = 0;\r\n this.PAMS_Proportion_degraded_muted = 0;\r\n this.PAMS_Max_mute = 0;\r\n this.PAMS_Median_Offset = 0;\r\n this.PSQM_Slt_Interval_WeightFactor = 0;\r\n\r\n this.PESQ_Offset_Confidence = 0;\r\n\r\n this.PESQ_Std_Deviation_Offset = 0;\r\n this.PESQ_utterances = 0;\r\n this.PESQ_Proportion_degraded_muted = 0;\r\n this.PESQ_Max_Mute = 0;\r\n this.PESQ_Median_Offset = 0;\r\n this.PESQ_Min_Offset_ = 0;\r\n this.PESQ_Max_Offset_ = 0;\r\n this.PESQ_Std_Deviation_Offset_ = 0;\r\n this.Num_samples_reference = 0;\r\n this.Speech_activity_reference = 0;\r\n this.Number_of_samples_degraded = 0;\r\n this.Speech_activity_degraded = 0;\r\n this.Model_selected = 0;\r\n this.Sample_rate = 0;\r\n this.Symmetric_disturbance = 0;\r\n this.Asymmetric_disturbance = 0;\r\n this.Proportion_muted = 0;\r\n this.longest_muted = 0;\r\n this.Mean_DC_reference = 0;\r\n this.ASL_reference = 0;\r\n this.Mean_noise_reference = 0;\r\n this.RMS_reference = 0;\r\n this.Mean_DC_degraded = 0;\r\n this.ASL_degraded = 0;\r\n this.Mean_noise_degraded = 0;\r\n this.RMS_degraded = 0;\r\n this.Speech_Level_Gain = 0;\r\n this.Noise_Level_Gain = 0;\r\n this.Ie = 0;\r\n this.Mean_delay = 0;\r\n this.PESQ_Version_number = 0;\r\n this.Minimum_delay = 0;\r\n this.Maximum_delay = 0;\r\n this.Standard_deviation_of_delay = 0;\r\n this.PESQ_Average_offset_ = 0;\r\n this.PESQ_Offset_Confidence_ = 0;\r\n this.PESQ_Median_Offset_ = 0;\r\n this.Duration_of_speech = 0;\r\n this.Proportion_All_clipping = 0;\r\n\r\n this.Proportion_Without_Front = 0;\r\n this.Number_Without_Front = 0;\r\n this.Duration_Without_Front = 0;\r\n this.Mean_Duration_Without_Front = 0;\r\n this.Proportion_Front = 0;\r\n this.Number_Front_clipping = 0;\r\n this.Duration_Front_Clipping = 0;\r\n this.Mean_Duration_Front_Clipping = 0;\r\n this.Proportion_Back = 0;\r\n this.Number_Back_clipping = 0;\r\n this.Duration_Back_Clipping = 0;\r\n this.Mean_Duration_Back_Clipping = 0;\r\n\r\n this.PESQ_Per_Utterance = \"\";\r\n this.PESQLQ_Per_Utterance = \"\";\r\n this.PESQLQO_Per_Utterance = \"\";\r\n this.PESQ_WB_Utterance = \"\";\r\n this.PESQDelay_Per_Utterance = \"\";\r\n this.PAMSDelay_Per_Utterance = \"\";\r\n this.Rating_Reason = \"\";\r\n this.AVGofRTD = 0;\r\n //End of main events screen hidden\r\n\r\n //this.NA6 = \"\";\r\n //this.NA7 = \"\";\r\n //this.NA8 = \"\";\r\n //this.NA9 = \"\";\r\n\r\n }\r\n\r\n}\r\n","export class VQTPOLQADATA {\r\n\r\n ID: number;\r\n VQT_Timestamp: Date;\r\n VQuad_Timestamp: Date;\r\n\r\n Call_Timestamp: Date;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n\r\n GPS_Position: string;\r\n GPS_Lat: number;\r\n GPS_Long: number;\r\n\r\n Deg_File_Name: string;\r\n Pass_Or_Fail: string;\r\n POLQA_v3: number;\r\n POLQA_Score: number;\r\n EModel_Polqa: number;\r\n Speech_Level_Diff: number;\r\n SNR_Diff: number;\r\n POLQA_ASL_Ref: number;\r\n POLQA_ASL_Deg: number;\r\n POLQA_MNL_Ref: number;\r\n POLQA_MNL_Deg: number;\r\n POLQA_SNR_Ref: number;\r\n POLQA_SNR_Deg: number;\r\n\r\n ASR_Ref: number;\r\n ASR_Deg: number;\r\n POLQA_OWD: number;\r\n Delay_Ave: number;\r\n Delay_Min: number;\r\n Delay_Max: number;\r\n \r\n Number_of_Utterance: number;\r\n Jitter_Ave: number;\r\n Jitter_Min: number;\r\n Jitter_Max: number;\r\n\r\n RSSI: number;\r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n \r\n Degraded: string;\r\n POLQA_SA_Ref: number;\r\n POLQA_SA_Deg: number;\r\n\r\n constructor() {\r\n this.ID = 0;\r\n this.VQT_Timestamp = new Date();\r\n this.VQuad_Timestamp = new Date();\r\n \r\n this.Call_Timestamp = new Date();\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n \r\n this.GPS_Position = \"\";\r\n this.GPS_Lat = 0;\r\n this.GPS_Long = 0;\r\n \r\n this.Deg_File_Name = \"\";\r\n this.Pass_Or_Fail = \"\";\r\n this.POLQA_v3 = 0;\r\n this.POLQA_Score = 0;\r\n this.EModel_Polqa = 0;\r\n this.Speech_Level_Diff = 0;\r\n this.SNR_Diff = 0;\r\n this.POLQA_ASL_Ref = 0;\r\n this.POLQA_ASL_Deg = 0;\r\n this.POLQA_MNL_Ref = 0;\r\n this.POLQA_MNL_Deg = 0;\r\n this.POLQA_SNR_Ref = 0;\r\n this.POLQA_SNR_Deg = 0;\r\n \r\n this.ASR_Ref = 0;\r\n this.ASR_Deg = 0;\r\n this.POLQA_OWD = 0;\r\n this.Delay_Ave = 0;\r\n this.Delay_Min = 0;\r\n this.Delay_Max = 0;\r\n this.Number_of_Utterance = 0;\r\n this.Jitter_Ave = 0;\r\n this.Jitter_Min = 0;\r\n this.Jitter_Max = 0;\r\n \r\n this.RSSI = 0;\r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\";\r\n \r\n //this.Degraded = \"\";\r\n //this.POLQA_SA_Ref = 0;\r\n //this.POLQA_SA_Deg = 0;\r\n }\r\n}\r\n","export class VQUADDATA {\r\n\r\n ID: number;\r\n VQuad_Timestamp: Date;\r\n Call_Timestamp: Date;\r\n VQuad_Location: string;\r\n VQuad_PhoneID: string;\r\n GPS_Position: string;\r\n GPS_Lat: number;\r\n GPS_Long: number;\r\n Call_Control_Event: string;\r\n CallType_Orig: string;\r\n CallType_Term: string;\r\n VQuad_CallID: string;\r\n CC_Condition: string;\r\n Called_Number: string;\r\n\r\n constructor() {\r\n this.VQuad_Timestamp = new Date();\r\n this.Call_Timestamp = new Date();\r\n this.VQuad_Location = \"\";\r\n this.VQuad_PhoneID = \"\";\r\n this.GPS_Position = \"\";\r\n this.GPS_Lat=0;\r\n this.GPS_Long = 0;\r\n this.Call_Control_Event = \"\";\r\n this.CallType_Orig = \"\";\r\n this.CallType_Term = \"\";\r\n this.VQuad_CallID = \"\";\r\n this.Call_Control_Event = \"\";\r\n this.CC_Condition = \"\";\r\n this.Called_Number = \"\";\r\n } \r\n}\r\n\r\n\r\n\r\n\r\n","import { ColumnType } from 'lib/ng-data-table';\r\nimport { Column } from 'lib/ng-crud-table';\r\nimport { colSpecialCharsPipe } from '../pipes/data-cols.pipe';\r\n\r\n\r\nexport function changeAlias(value: string): string {\r\n let repVal = value.replace(/DTD/g, \".\");//7 underscores\r\n repVal = repVal.replace(/MNS/g, \"-\");//6 underscores\r\n repVal = repVal.replace(/PCG/g, \"%\");//5 underscores\r\n repVal = repVal.replace(/SLH/g, \"/\");//4 underscores\r\n repVal = repVal.replace(/ZYX/g, \")\").replace(/XYZ/g, \"(\");//3, 2 underscores\r\n repVal = repVal.replace(/\\_/g, \" \");\r\n repVal = repVal.replace(/Point1/g, \"Point(secs)\");\r\n repVal = repVal.replace(/Point2/g, \"Point(secs)\");\r\n repVal = repVal.replace(/Point3/g, \"Point(secs)\");\r\n repVal = repVal.replace(/Point4/g, \"Point(secs)\");\r\n repVal = repVal.replace(/ERL1/g, \"ERL(dB)\");\r\n repVal = repVal.replace(/ERL2/g, \"ERL(dB)\");\r\n repVal = repVal.replace(/ERL3/g, \"ERL(dB)\");\r\n repVal = repVal.replace(/ERL4/g, \"ERL(dB)\");\r\n repVal = repVal.replace(/Delay1/g, \"Delay(ms)\");\r\n repVal = repVal.replace(/Delay2/g, \"Delay(ms)\");\r\n repVal = repVal.replace(/Delay3/g, \"Delay(ms)\");\r\n repVal = repVal.replace(/Delay4/g, \"Delay(ms)\");\r\n return repVal;\r\n}\r\nexport function GetMapColumnAliia(strColumnName, rsltTypeChk, DDLorGrid) {\r\n var strColumnAlia;\r\n var chkVACOrNetTestOrPhoneInfo = 0;\r\n if (rsltTypeChk.indexOf('nettest') != -1 || rsltTypeChk.indexOf('conndrop') != -1 ||\r\n rsltTypeChk.indexOf('mobileinfo') != -1 || rsltTypeChk.indexOf('vac') != -1)\r\n chkVACOrNetTestOrPhoneInfo = 1;\r\n switch (strColumnName.toLowerCase()) {\r\n //case \"user_id\": \r\n // strColumnAlia = \"File ID\"; \r\n // break; \r\n case \"vquad_timestamp\":\r\n strColumnAlia = \"Timestamp\"; //\"VQuad Timestamp\"; /////Renaming all VQuad included columns to generic for both VQuad and vMobile\r\n if (chkVACOrNetTestOrPhoneInfo == 1)\r\n strColumnAlia = \"Device Timestamp (End)\";\r\n break;\r\n case \"call_timestamp\":\r\n strColumnAlia = \"Call Timestamp\";\r\n break;\r\n case \"vqt_timestamp\":\r\n strColumnAlia = \"VQT Timestamp\";\r\n break;\r\n case \"calltype_orig\":\r\n strColumnAlia = \"Call Type Originating\";\r\n break;\r\n case \"calltype_term\":\r\n strColumnAlia = \"Call Type Terminating\";\r\n break;\r\n case \"vquad_callid\":\r\n strColumnAlia = \"Event ID\";// \"VQuad Event ID\"; /////Renaming all VQuad included columns to generic for both VQuad and vMobile\r\n break;\r\n case \"location\":\r\n case \"vquad_location\":\r\n strColumnAlia = \"Call ID\"; ///\"VQuad Call ID\"; /////Renaming all VQuad included columns to generic for both VQuad and vMobile\r\n break;\r\n case \"gps_lat\":\r\n strColumnAlia = \"Latitude\";\r\n if (chkVACOrNetTestOrPhoneInfo == 1)\r\n strColumnAlia = \"Device Latitude (End)\";\r\n break;\r\n case \"gps_long\":\r\n strColumnAlia = \"Longitude\";\r\n if (chkVACOrNetTestOrPhoneInfo == 1)\r\n strColumnAlia = \"Device Longitude (End)\";\r\n break;\r\n case \"vquad_lat_long\":\r\n case \"gps_position\":\r\n case \"vquad_gps\":\r\n strColumnAlia = \"GPS\"; /// \"VQuad GPS\"; /////Renaming all VQuad included columns to generic for both VQuad and vMobile\r\n if (chkVACOrNetTestOrPhoneInfo == 1)\r\n strColumnAlia = \"Device GPS (End)\";\r\n break;\r\n case \"phone_id\":\r\n case \"vquad_phoneid\":\r\n strColumnAlia = \"Device ID\"; ///\"VQuad Device ID\"; /////Renaming all VQuad included columns to generic for both VQuad and vMobile\r\n break;\r\n\r\n //PESQ\r\n case \"pesq\":\r\n case \"pesq_score\":\r\n strColumnAlia = \"PESQ\";\r\n break;\r\n case \"speech_level_gain\":\r\n strColumnAlia = \"Speech Level Gain (dB)\";\r\n break;\r\n case \"noise_level_gain\":\r\n strColumnAlia = \"Noise Level Gain (dB)\";\r\n break;\r\n case \"pesq_mos\":\r\n strColumnAlia = \"PESQ LQO\";\r\n break;\r\n case \"clipping\":\r\n case \"number_all_clipping\":\r\n strColumnAlia = \"Number All Clipping\";\r\n break;\r\n case \"pesq_avg_offset\":\r\n case \"pesq_average_offset\":\r\n strColumnAlia = \"PESQ Average Offset (ms)\";\r\n break;\r\n case \"pesq_offset_confidence\":\r\n strColumnAlia = \"PESQ Offset Confidence (%)\";\r\n break;\r\n case \"pesq_max_offset\":\r\n strColumnAlia = \"PESQ Max Offset (ms)\";\r\n break;\r\n case \"pesq_min_offset\":\r\n strColumnAlia = \"PESQ Min Offset (ms)\";\r\n break;\r\n case \"pesq_std_deviation_offset\":\r\n strColumnAlia = \"PESQ Standard Deviation Offsets (ms)\";\r\n break;\r\n case \"pesq_std_deviation_offset_\":\r\n strColumnAlia = \"PESQ Standard Deviation Offsets - Other (ms)\";\r\n break;\r\n case \"pesq_proportion_degraded_muted\":\r\n strColumnAlia = \"PESQ Proportion degraded muted (%)\";\r\n break;\r\n case \"pesq_max_mute\":\r\n strColumnAlia = \"PESQ Max Mute (ms)\";\r\n break;\r\n case \"pesq_median_offset\":\r\n strColumnAlia = \"PESQ Median Offset (ms)\";\r\n break;\r\n case \"pesq_max_offset_\":\r\n strColumnAlia = \"PESQ Max Offset - Other (ms)\";\r\n break;\r\n case \"pesq_min_offset_\":\r\n strColumnAlia = \"PESQ Min Offset - Other (ms)\";\r\n break;\r\n case \"pesq_median_offset_\":\r\n strColumnAlia = \"PESQ Median Offset - Other (ms)\";\r\n break;\r\n case \"pesq_average_offset_\":\r\n strColumnAlia = \"PESQ Average Offset - Other (ms)\";\r\n break;\r\n case \"pesq_offset_confidence_\":\r\n strColumnAlia = \"PESQ Offset Confidence - Other (%)\";\r\n break;\r\n case \"proportion_muted\":\r\n strColumnAlia = \"Proportion muted (%)\";\r\n break;\r\n case \"longest_muted\":\r\n strColumnAlia = \"Longest muted (ms)\";\r\n break;\r\n case \"proportion_all_clipping\":\r\n strColumnAlia = \"Proportion All clipping (%)\";\r\n break;\r\n case \"duration_all_clipping\":\r\n strColumnAlia = \"Duration ALL Clipping (s)\";\r\n break;\r\n case \"mean_duration_all_clipping\":\r\n strColumnAlia = \"Mean Duration ALL Clipping (s)\";\r\n break;\r\n case \"offset\":\r\n case \"avg_jitter\":\r\n case \"average_jitter\":\r\n strColumnAlia = \"Average Jitter (ms)\";\r\n break;\r\n case \"mean_dc_reference\":\r\n strColumnAlia = \"Mean DC reference (dBov)\";\r\n break;\r\n case \"asl_reference\":\r\n strColumnAlia = \"ASL reference (dBov)\";\r\n break;\r\n case \"mean_noise_reference \":\r\n strColumnAlia = \"Mean noise reference (dBov)\";\r\n break;\r\n case \"rms_reference\":\r\n strColumnAlia = \"RMS reference (dBov)\";\r\n break;\r\n case \"mean_dc_degraded\":\r\n strColumnAlia = \"Mean DC degraded (dBov)\";\r\n break;\r\n case \"asl_degraded\":\r\n strColumnAlia = \"ASL degraded (dBov)\";\r\n break;\r\n case \"mean_noise_degraded\":\r\n strColumnAlia = \"Mean noise degraded (dBov)\";\r\n break;\r\n case \"rms_degraded\":\r\n strColumnAlia = \"RMS degraded (dBov)\";\r\n break;\r\n case \"duration_of_speech\":\r\n strColumnAlia = \"Duration of speech (s)\";\r\n break;\r\n case \"proportion_without_front\":\r\n strColumnAlia = \"Proportion Without Front (%)\";\r\n break;\r\n case \"duration_without_front\":\r\n strColumnAlia = \"Duration Without Front (s)\";\r\n break;\r\n case \"mean_duration_without_front\":\r\n strColumnAlia = \"Mean Duration Without Front (s)\";\r\n break;\r\n case \"proportion_front\":\r\n strColumnAlia = \"Proportion Front (%)\";\r\n break;\r\n case \"duration_front_clipping\":\r\n strColumnAlia = \"Duration Front Clipping (s)\";\r\n break;\r\n case \"mean_duration_front_clipping\":\r\n strColumnAlia = \"Mean Duration Front Clipping (s)\";\r\n break;\r\n case \"proportion_back\":\r\n strColumnAlia = \"Proportion Back (%)\";\r\n break;\r\n case \"duration_back_clipping\":\r\n strColumnAlia = \"Duration Back Clipping (s)\";\r\n break;\r\n case \"mean_duration_back_clipping\":\r\n strColumnAlia = \"Mean Duration Back Clipping (s)\";\r\n break;\r\n case \"duration_hangover\":\r\n strColumnAlia = \"Duration Hangover (s)\";\r\n break;\r\n case \"pams_avg_offset\":\r\n strColumnAlia = \"PAMS Max Offset (ms)\";\r\n break;\r\n case \"pams_max_offset\":\r\n strColumnAlia = \"PAMS Max Offset (ms)\";\r\n break;\r\n case \"pams_min_offset\":\r\n strColumnAlia = \"PAMS Min Offset (ms)\";\r\n break;\r\n case \"pams_std_deviation_offsets\":\r\n strColumnAlia = \"PAMS Standard Deviation Offsets (ms)\";\r\n break;\r\n case \"pams_proportion_degraded_muted\":\r\n strColumnAlia = \"PAMS Proportion degraded muted (%)\";\r\n break;\r\n case \"pams_max_mute\":\r\n strColumnAlia = \"PAMS Max Mute (ms)\";\r\n break;\r\n case \"pams_median_offset\":\r\n strColumnAlia = \"PAMS Median Offset (ms)\";\r\n break;\r\n case \"psqm_slt_interval_weightfactor\":\r\n strColumnAlia = \"PSQM (Silent Interval Weighting) Factor\";\r\n break;\r\n case \"pesqdelay_per_utterance\":\r\n strColumnAlia = \"PESQ Delay Per Utterance\";\r\n break;\r\n case \"psqmplus\":\r\n strColumnAlia = \"PSQM PLUS\";\r\n break;\r\n case \"dcoss_trunkts\":\r\n strColumnAlia = \"DCOSS Trunk/TS\";\r\n break;\r\n case \"rtd_rating\":\r\n strColumnAlia = \"Rating\";\r\n break;\r\n\r\n //VQuad\r\n case \"vba_rtd\":\r\n case \"rtd\":\r\n strColumnAlia = \"RTD (ms)\";\r\n break;\r\n case \"pdd\":\r\n strColumnAlia = \"PDD (ms)\";\r\n break;\r\n case \"owd\":\r\n strColumnAlia = \"OWD (ms)\";\r\n break;\r\n case \"ct\":\r\n strColumnAlia = \"CT (sec)\";\r\n break;\r\n case \"cct\":\r\n strColumnAlia = \"CCT (sec)\";\r\n break;\r\n case \"signal_level_gain\":\r\n strColumnAlia = \"Signal Gain (dB)\";\r\n break;\r\n case \"line_current\":\r\n strColumnAlia = \"Line Current (mA)\";\r\n break;\r\n case \"line_voltage\":\r\n strColumnAlia = \"Line Voltage (V)\";\r\n break;\r\n case \"ring_type\":\r\n strColumnAlia = \"Ring Type\";\r\n break;\r\n case \"ring_voltage\":\r\n strColumnAlia = \"Ring Voltage (V)\";\r\n break;\r\n case \"speech_activity\":\r\n strColumnAlia = \"Speech Activity (%)\";\r\n break;\r\n case \"active_speech_level\":\r\n strColumnAlia = \"Active Speech level (dB)\";\r\n break;\r\n case \"noise_level_tdm\":\r\n strColumnAlia = \"Noise Level (dB)\";\r\n break;\r\n case \"dc_offset\":\r\n strColumnAlia = \"DC Offset (dB)\";\r\n break;\r\n case \"total_rms_power\":\r\n strColumnAlia = \"Total RMS Power (dB)\";\r\n break;\r\n case \"double_talk\":\r\n strColumnAlia = \"Double-Talk\";\r\n break;\r\n case \"ptt_setup_time\":\r\n strColumnAlia = \"PTT Setup Time (ms)\";\r\n break;\r\n case \"audio_bw\":\r\n strColumnAlia = \"Frequency Analysis (Hz)\";//\"Audio Analyzer Bandwidth (Hz)\";\r\n break;\r\n case \"audio_power\":\r\n strColumnAlia = \"Power Analysis (dB)\";//\"Audio Analyzer Power (dB)\";\r\n break;\r\n case \"dropout\":\r\n strColumnAlia = \"Audio Dropout\";\r\n break;\r\n case \"vmwi\":\r\n strColumnAlia = \"Voice Mail Waiting Indicator\";\r\n break;\r\n case \"sdt\":\r\n strColumnAlia = \"Stutter DialTone\";\r\n break;\r\n case \"ptt_conn_time\":\r\n strColumnAlia = \"PTT Connection Time (ms)\";\r\n break;\r\n case \"stt_percent\":\r\n strColumnAlia = \"Speech Analysis Percent (%)\";\r\n break;\r\n //VBA\r\n case \"em_elapsed\":\r\n strColumnAlia = \"Elapsed (sec)\";\r\n break;\r\n case \"em_asl\":\r\n strColumnAlia = \"Active Speech Level (dBm)\";\r\n break;\r\n case \"em_af\":\r\n strColumnAlia = \"Activity Factor (%)\";\r\n break;\r\n case \"em_rms\":\r\n strColumnAlia = \"RMS Power (dBm)\";\r\n break;\r\n case \"em_noise\":\r\n strColumnAlia = \"Noise Level (dBm)\";\r\n break;\r\n case \"psophometric_noise\":\r\n strColumnAlia = \"Psophometric Noise (dBm)\";\r\n break;\r\n case \"cmessage_noise\":\r\n strColumnAlia = \"C-Message Noise (dBm)\";\r\n break;\r\n case \"em_clip\":\r\n strColumnAlia = \"Possibly Clipped Samples\";\r\n break;\r\n case \"em_maxp\":\r\n strColumnAlia = \"MaxP (Counts)\";\r\n break;\r\n case \"em_maxn\":\r\n strColumnAlia = \"MaxN (Counts)\";\r\n break;\r\n case \"em_dc\":\r\n strColumnAlia = \"DC Level (Counts)\";\r\n break;\r\n case \"call_control_event\":\r\n strColumnAlia = \"Call Control Event\";\r\n break;\r\n case \"rfactor\":\r\n strColumnAlia = \"ITU-T G.107\" + \"\" + \" R-Factor\";\r\n break;\r\n case \"rtd_error\":\r\n strColumnAlia = \"Condition\";\r\n break;\r\n case \"swr\":\r\n strColumnAlia = \"SNR (dB)\";\r\n break;\r\n case \"cc_condition\":\r\n strColumnAlia = \"Call Event Condition\";\r\n break;\r\n case \"completedcall\":\r\n strColumnAlia = \"Completed Call\";\r\n break;\r\n case \"numbercall\":\r\n strColumnAlia = \"Total Call\";\r\n break;\r\n case \"ccallrate\":\r\n strColumnAlia = \"Completed Call Rate\";\r\n break;\r\n case \"placecall\":\r\n strColumnAlia = \"Placing Call\";\r\n break;\r\n case \"busycall\":\r\n strColumnAlia = \"Busy Call\";\r\n break;\r\n case \"totalrecord\":\r\n strColumnAlia = \"Total Record\";\r\n break;\r\n case \"nodeip\":\r\n strColumnAlia = \"Computer Name\";\r\n break;\r\n case \"nodeversion\":\r\n strColumnAlia = \"VQuad Version\";\r\n break;\r\n case \"nodestatus\":\r\n strColumnAlia = \"Computer Status\";\r\n break;\r\n case \"appstatus\":\r\n strColumnAlia = \"VQuad Status\";\r\n break;\r\n case \"custom_nodeip\":\r\n strColumnAlia = \"Computer Name\";\r\n break;\r\n case \"custom_appstatus\":\r\n strColumnAlia = \"Application Status\";\r\n break;\r\n case \"apptype\":\r\n strColumnAlia = \"Application Name\";\r\n break;\r\n case \"devicename\":\r\n strColumnAlia = \"Device Name\";\r\n break;\r\n case \"scriptname\":\r\n strColumnAlia = \"Script Name\";\r\n break;\r\n case \"scriptstatus\":\r\n strColumnAlia = \"Script Status\";\r\n break;\r\n case \"operationstatus\":\r\n strColumnAlia = \"Operation Status\";\r\n break;\r\n case \"nodetimestamp\":\r\n case \"apptimestamp\":\r\n case \"scripttimestamp\":\r\n strColumnAlia = \"Timestamp\";\r\n break;\r\n case \"vba_rating\":\r\n strColumnAlia = \"Rating\";\r\n break;\r\n case \"dcoss_timestamp\":\r\n strColumnAlia = \"DCOSS Timestamp\";\r\n break;\r\n //EMUDATA \r\n case \"startpoint1\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block1 \";\r\n strColumnAlia = blockAppend + \"Startpoint (secs)\";\r\n break;\r\n case \"endpoint1\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block1 \";\r\n strColumnAlia = blockAppend + \"Endpoint (secs)\";\r\n break;\r\n case \"block1_erl1\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block1 \";\r\n strColumnAlia = blockAppend + \"Echo1 ERL (dB)\";\r\n break;\r\n case \"block1_erl2\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block1 \";\r\n strColumnAlia = blockAppend + \"Echo2 ERL (dB)\";\r\n break;\r\n case \"block1_erl3\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block1 \";\r\n strColumnAlia = blockAppend + \"Echo3 ERL (dB)\";\r\n break;\r\n case \"block1_erl4\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block1 \";\r\n strColumnAlia = blockAppend + \"Echo4 ERL (dB)\";\r\n break;\r\n case \"block1_delay1\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block1 \";\r\n strColumnAlia = blockAppend + \"Echo1 Delay (ms)\";\r\n break;\r\n case \"block1_delay2\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block1 \";\r\n strColumnAlia = blockAppend + \"Echo2 Delay (ms)\";\r\n break;\r\n case \"block1_delay3\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block1 \";\r\n strColumnAlia = blockAppend + \"Echo3 Delay (ms)\";\r\n break;\r\n case \"block1_delay4\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block1 \";\r\n strColumnAlia = blockAppend + \"Echo4 Delay (ms)\";\r\n break;\r\n\r\n case \"startpoint2\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block2 \";\r\n strColumnAlia = blockAppend + \"Startpoint (secs)\";\r\n break;\r\n case \"endpoint2\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block2 \";\r\n strColumnAlia = blockAppend + \"Endpoint (secs)\";\r\n break;\r\n case \"block2_erl1\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block2 \";\r\n strColumnAlia = blockAppend + \"Echo1 ERL (dB)\";\r\n break;\r\n case \"block2_erl2\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block2 \";\r\n strColumnAlia = blockAppend + \"Echo2 ERL (dB)\";\r\n break;\r\n case \"block2_erl3\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block2 \";\r\n strColumnAlia = blockAppend + \"Echo3 ERL (dB)\";\r\n break;\r\n case \"block2_erl4\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block2 \";\r\n strColumnAlia = blockAppend + \"Echo4 ERL (dB)\";\r\n break;\r\n case \"block2_delay1\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block2 \";\r\n strColumnAlia = blockAppend + \"Echo1 Delay (ms)\";\r\n break;\r\n case \"block2_delay2\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block2 \";\r\n strColumnAlia = blockAppend + \"Echo2 Delay (ms)\";\r\n break;\r\n case \"block2_delay3\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block2 \";\r\n strColumnAlia = blockAppend + \"Echo3 Delay (ms)\";\r\n break;\r\n case \"block2_delay4\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block2 \";\r\n strColumnAlia = blockAppend + \"Echo4 Delay (ms)\";\r\n break;\r\n\r\n case \"startpoint3\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block3 \";\r\n strColumnAlia = blockAppend + \"Startpoint (secs)\";\r\n break;\r\n case \"endpoint3\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block3 \";\r\n strColumnAlia = blockAppend + \"Endpoint (secs)\";\r\n break;\r\n case \"block3_erl1\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block3 \";\r\n strColumnAlia = blockAppend + \"Echo1 ERL (dB)\";\r\n break;\r\n case \"block3_erl2\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block3 \";\r\n strColumnAlia = blockAppend + \"Echo2 ERL (dB)\";\r\n break;\r\n case \"block3_erl3\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block3 \";\r\n strColumnAlia = blockAppend + \"Echo3 ERL (dB)\";\r\n break;\r\n case \"block3_erl4\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block3 \";\r\n strColumnAlia = blockAppend + \"Echo4 ERL (dB)\";\r\n break;\r\n case \"block3_delay1\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block3 \";\r\n strColumnAlia = blockAppend + \"Echo1 Delay (ms)\";\r\n break;\r\n case \"block3_delay2\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block3 \";\r\n strColumnAlia = blockAppend + \"Echo2 Delay (ms)\";\r\n break;\r\n case \"block3_delay3\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block3 \";\r\n strColumnAlia = blockAppend + \"Echo3 Delay (ms)\";\r\n break;\r\n case \"block3_delay4\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block3 \";\r\n strColumnAlia = blockAppend + \"Echo4 Delay (ms)\";\r\n break;\r\n\r\n case \"startpoint4\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block4 \";\r\n strColumnAlia = blockAppend + \"Startpoint (secs)\";\r\n break;\r\n case \"endpoint4\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block4 \";\r\n strColumnAlia = blockAppend + \"Endpoint (secs)\";\r\n break;\r\n case \"block4_erl1\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block4 \";\r\n strColumnAlia = blockAppend + \"Echo1 ERL (dB)\";\r\n break;\r\n case \"block4_erl2\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block4 \";\r\n strColumnAlia = blockAppend + \"Echo2 ERL (dB)\";\r\n break;\r\n case \"block4_erl3\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block4 \";\r\n strColumnAlia = blockAppend + \"Echo3 ERL (dB)\";\r\n break;\r\n case \"block4_erl4\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block4 \";\r\n strColumnAlia = blockAppend + \"Echo4 ERL (dB)\";\r\n break;\r\n case \"block4_delay1\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block4 \";\r\n strColumnAlia = blockAppend + \"Echo1 Delay (ms)\";\r\n break;\r\n case \"block4_delay2\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block4 \";\r\n strColumnAlia = blockAppend + \"Echo2 Delay (ms)\";\r\n break;\r\n case \"block4_delay3\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block4 \";\r\n strColumnAlia = blockAppend + \"Echo3 Delay (ms)\";\r\n break;\r\n case \"block4_delay4\":\r\n var blockAppend = \"\";\r\n if (DDLorGrid == \"DDL\")\r\n blockAppend = \"Block4 \";\r\n strColumnAlia = blockAppend + \"Echo4 Delay (ms)\";\r\n break;\r\n\r\n //TCPDATA \r\n case \"teststatus\":\r\n strColumnAlia = \"Test Failed\";\r\n break;\r\n case \"start_timestamp\":\r\n strColumnAlia = \"Device Timestamp (Start)\";\r\n break;\r\n case \"start_gps_lat\":\r\n strColumnAlia = \"Device Latitude (Start)\";\r\n break;\r\n case \"start_gps_long\":\r\n strColumnAlia = \"Device Longitude (Start)\";\r\n break;\r\n case \"start_gps_position\":\r\n strColumnAlia = \"Device GPS (Start)\";\r\n break;\r\n case \"net_speed_test\": // common column\r\n strColumnAlia = \"Net Speed Test\";\r\n break;\r\n case \"target_server\": // common column\r\n strColumnAlia = \"Target Server/IP\";\r\n break;\r\n case \"battery_level\": // common column\r\n strColumnAlia = \"Battery Level (%)\";\r\n break;\r\n case \"rssi\": // common column\r\n strColumnAlia = \"RSSI (dBm)\";\r\n break;\r\n case \"network_type\": // common column\r\n strColumnAlia = \"Network Type\";\r\n break;\r\n case \"tn_number\": // common column\r\n strColumnAlia = \"TN Number\";\r\n break;\r\n case \"dwn_speed\":\r\n strColumnAlia = \"TCP Download Speed (Mbps)\";\r\n break;\r\n case \"dwn_effective_speed\":\r\n strColumnAlia = \"TCP Download Effective Speed (Mbps)\";\r\n break;\r\n case \"dwn_max_delay\":\r\n strColumnAlia = \"TCP Download Max Delay (ms)\";\r\n break;\r\n case \"dwn_avg_delay\":\r\n strColumnAlia = \"TCP Download Average Delay (ms)\";\r\n break;\r\n case \"dwn_qos_tcp\":\r\n strColumnAlia = \"TCP Download QOS (%)\";\r\n break;\r\n case \"dwn_mtu\":\r\n strColumnAlia = \"TCP Download MTU (Bytes)\";\r\n break;\r\n case \"dwn_retransmit_timeouts\":\r\n strColumnAlia = \"TCP Download Retransmit Timeouts\";\r\n break;\r\n case \"dwn_fast_retransmits\":\r\n strColumnAlia = \"TCP Download Fast Retransmits\";\r\n break;\r\n case \"dwn_packets_retransmitted\":\r\n strColumnAlia = \"TCP Download Packets Retransmitted\";\r\n break;\r\n case \"dwn_bytes_retransmitted\":\r\n strColumnAlia = \"TCP Download Bytes Retransmitted\";\r\n break;\r\n case \"dwn_send_window_closed\":\r\n strColumnAlia = \"TCP Download Send Window Closed\";\r\n break;\r\n case \"dwn_window_only_updates_rcvd\":\r\n strColumnAlia = \"TCP Download Window Only Updates Rcvd\";\r\n break;\r\n case \"dwn_acks_for_unsent\":\r\n strColumnAlia = \"TCP Download Acks for Unsent\";\r\n break;\r\n case \"dwn_duplicate_acks\":\r\n strColumnAlia = \"TCP Download Duplicate Acks\";\r\n break;\r\n case \"dwn_window_probes_sent\":\r\n strColumnAlia = \"TCP Download Window Probes Sent\";\r\n break;\r\n case \"dwn_persist_timeouts\":\r\n strColumnAlia = \"TCP Download Persist Timeouts\";\r\n break;\r\n case \"up_speed\":\r\n strColumnAlia = \"TCP Upload Speed (Mbps)\";\r\n break;\r\n case \"up_effective_speed\":\r\n strColumnAlia = \"TCP Upload Effective Speed (Mbps)\";\r\n break;\r\n case \"up_max_delay\":\r\n strColumnAlia = \"TCP Upload Max Delay (ms)\";\r\n break;\r\n case \"up_avg_delay\":\r\n strColumnAlia = \"TCP Upload Average Delay (ms)\";\r\n break;\r\n case \"up_qos_tcp\":\r\n strColumnAlia = \"TCP Upload QOS (%)\";\r\n break;\r\n case \"up_mtu\":\r\n strColumnAlia = \"TCP Upload MTU (Bytes)\";\r\n break;\r\n case \"up_out_of_order_pkt\":\r\n strColumnAlia = \"TCP Upload Out of Order (Packets)\";\r\n break;\r\n case \"up_out_of_order_byt\":\r\n strColumnAlia = \"TCP Upload Out of Order (Bytes)\";\r\n break;\r\n case \"up_outside_window_pkt\":\r\n strColumnAlia = \"TCP Upload Outside Window (Packets)\";\r\n break;\r\n case \"up_outside_window_byt\":\r\n strColumnAlia = \"TCP Upload Outside Window (Bytes)\";\r\n break;\r\n case \"up_pure_duplicate_pkt\":\r\n strColumnAlia = \"TCP Upload Pure Duplicate (Packets)\";\r\n break;\r\n case \"up_pure_duplicate_byt\":\r\n strColumnAlia = \"TCP Upload Pure Duplicate (Bytes)\";\r\n break;\r\n case \"up_partial_duplicate_pkt\":\r\n strColumnAlia = \"TCP Upload Partial Duplicate (Packets)\";\r\n break;\r\n case \"up_partial_duplicate_byt\":\r\n strColumnAlia = \"TCP Upload Partial Duplicate (Bytes)\";\r\n break;\r\n case \"up_packets_with_crc_error\":\r\n strColumnAlia = \"TCP Upload Packets with CRC Error\";\r\n break;\r\n case \"up_packets_with_bad_offset\":\r\n strColumnAlia = \"TCP Upload Packets with Bad Offset\";\r\n break;\r\n case \"up_truncated_packets\":\r\n strColumnAlia = \"TCP Upload Truncated Packets\";\r\n break;\r\n case \"up_window_probes_received\":\r\n strColumnAlia = \"TCP Upload Window Probes Received\";\r\n break;\r\n case \"up_zero_window_updates_sent\":\r\n strColumnAlia = \"TCP Upload Zero Window Updates Sent\";\r\n break;\r\n case \"up_bytes_lost\":\r\n strColumnAlia = \"TCP Upload Bytes Lost\";\r\n break;\r\n case \"max_route_speed\":\r\n strColumnAlia = \"TCP Max Route Speed (Mbps)\";\r\n break;\r\n case \"round_trip_time\":\r\n strColumnAlia = \"TCP Round Trip Time (ms)\";\r\n break;\r\n case \"no_of_sessions\":\r\n strColumnAlia = \"TCP No of Sessions\";\r\n break;\r\n case \"equilibrium_efficiency\":\r\n strColumnAlia = \"TCP Equilibrium Efficiency\";\r\n break;\r\n case \"capacity_efficiency\":\r\n strColumnAlia = \"TCP Capacity Efficiency\";\r\n break;\r\n case \"rtt_consistency\":\r\n strColumnAlia = \"TCP RTT Consistency\";\r\n break;\r\n case \"buffer_delay\":\r\n strColumnAlia = \"TCP Buffer Delay\";\r\n break;\r\n case \"error_delay\":\r\n strColumnAlia = \"TCP Error Delay\";\r\n break;\r\n case \"quality\":\r\n strColumnAlia = \"TCP Quality\";\r\n break;\r\n\r\n //UDPDATA - repeated values(TCP) \r\n case \"dwn_capacity\":\r\n strColumnAlia = \"UDP Download Capacity (Mbps)\";\r\n break;\r\n case \"dwn_qos_udp\":\r\n strColumnAlia = \"UDP Download QOS (%)\";\r\n break;\r\n case \"dwn_packet_size\":\r\n strColumnAlia = \"UDP Download Packet size (Bytes)\";\r\n break;\r\n case \"dwn_packet_per_second\":\r\n strColumnAlia = \"UDP Download KiloPackets per sec\";\r\n break;\r\n case \"up_capacity\":\r\n strColumnAlia = \"UDP Upload Capacity (Mbps)\";\r\n break;\r\n case \"up_qos_udp\":\r\n strColumnAlia = \"UDP Upload QOS (%)\";\r\n break;\r\n case \"up_packet_size\":\r\n strColumnAlia = \"UDP Upload Packet size (Bytes)\";\r\n break;\r\n case \"up_packet_per_second\":\r\n strColumnAlia = \"UDP Upload KiloPackets per sec\";\r\n break;\r\n\r\n //VOIPDATA \r\n case \"up_avg_jitter\":\r\n strColumnAlia = \"VoIP Upstream Avg Jitter (ms)\";\r\n break;\r\n case \"up_max_jitter\":\r\n strColumnAlia = \"VoIP Upstream Max Jitter (ms)\";\r\n break;\r\n case \"up_packets_out_of_order\":\r\n strColumnAlia = \"VoIP Upstream Packets Out of Order (%)\";\r\n break;\r\n case \"up_packet_loss\":\r\n strColumnAlia = \"VoIP Upstream Packet Loss (%)\";\r\n break;\r\n case \"up_packet_discard\":\r\n strColumnAlia = \"VoIP Upstream Packet Discard (%)\";\r\n break;\r\n case \"dwn_avg_jitter\":\r\n strColumnAlia = \"VoIP Downstream Avg Jitter (ms)\";\r\n break;\r\n case \"dwn_max_jitter\":\r\n strColumnAlia = \"VoIP Downstream Max Jitter (ms)\";\r\n break;\r\n case \"dwn_packets_out_of_order\":\r\n strColumnAlia = \"VoIP Downstream Packets Out of Order (%)\";\r\n break;\r\n case \"dwn_packet_loss\":\r\n strColumnAlia = \"VoIP Downstream Packet Loss (%)\";\r\n break;\r\n case \"dwn_packet_discard\":\r\n strColumnAlia = \"VoIP Downstream Packet Discard (%)\";\r\n break;\r\n case \"sip_register\":\r\n strColumnAlia = \"VoIP SIP Register (ms)\";\r\n break;\r\n case \"sip_invite\":\r\n strColumnAlia = \"VoIP SIP Invite (ms)\";\r\n break;\r\n case \"sip_bye\":\r\n strColumnAlia = \"VoIP SIP Bye (ms)\";\r\n break;\r\n\r\n //ROUTEDATA \r\n case \"hops\":\r\n strColumnAlia = \"Route Hops\";\r\n break;\r\n case \"response_to_end\":\r\n strColumnAlia = \"Route Response to End (ms)\";\r\n break;\r\n case \"max_response\":\r\n strColumnAlia = \"Route Max Response (ms)\";\r\n break;\r\n case \"loss_to_end\":\r\n strColumnAlia = \"Route Loss to End %\";\r\n break;\r\n case \"max_loss\":\r\n strColumnAlia = \"Route Max Loss %\";\r\n break;\r\n case \"dns_time\":\r\n strColumnAlia = \"Route DNS Time (ms)\";\r\n break;\r\n case \"trace_to_ip\":\r\n strColumnAlia = \"Route Trace to IP\";\r\n break;\r\n case \"trace_from_ip\":\r\n strColumnAlia = \"Route Trace from IP\";\r\n break;\r\n\r\n //HTTPDATA \r\n case \"avg_failed_rate\":\r\n strColumnAlia = \"HTTP Avg Failed Rate (%)\";\r\n break;\r\n case \"min_total_latency\":\r\n strColumnAlia = \"HTTP Min Total Latency (ms)\";\r\n break;\r\n case \"min_connect_latency\":\r\n strColumnAlia = \"HTTP Min Connect Latency (ms)\";\r\n break;\r\n case \"min_find_latency\":\r\n strColumnAlia = \"HTTP Min Find Latency (ms)\";\r\n break;\r\n case \"min_read_latency\":\r\n strColumnAlia = \"HTTP Min Read Latency (ms)\";\r\n break;\r\n case \"avg_total_latency\":\r\n strColumnAlia = \"HTTP Avg Total Latency (ms)\";\r\n break;\r\n case \"avg_connect_latency\":\r\n strColumnAlia = \"HTTP Avg Connect Latency (ms)\";\r\n break;\r\n case \"avg_find_latency\":\r\n strColumnAlia = \"HTTP Avg Find Latency (ms)\";\r\n break;\r\n case \"avg_read_latency\":\r\n strColumnAlia = \"HTTP Avg Read Latency (ms)\";\r\n break;\r\n case \"max_total_latency\":\r\n strColumnAlia = \"HTTP Max Total Latency (ms)\";\r\n break;\r\n case \"max_connect_latency\":\r\n strColumnAlia = \"HTTP Max Connect Latency (ms)\";\r\n break;\r\n case \"max_find_latency\":\r\n strColumnAlia = \"HTTP Max Find Latency (ms)\";\r\n break;\r\n case \"max_read_latency\":\r\n strColumnAlia = \"HTTP Max Read Latency (ms)\";\r\n break;\r\n case \"avg_bytes_read\":\r\n strColumnAlia = \"HTTP Avg Bytes Read\";\r\n break;\r\n case \"avg_read_rate\":\r\n strColumnAlia = \"HTTP Avg Read Rate (kBps)\";\r\n break;\r\n case \"min_read_rate\":\r\n strColumnAlia = \"HTTP Min Read Rate (kBps)\";\r\n break;\r\n case \"max_read_rate\":\r\n strColumnAlia = \"HTTP Max Read Rate (kBps)\";\r\n break;\r\n case \"number_of_tests_http\":\r\n strColumnAlia = \"HTTP Number of Tests\";\r\n break;\r\n\r\n //FTPDATA \r\n case \"latency\":\r\n strColumnAlia = \"FTP Latency (ms)\";\r\n break;\r\n case \"failure\":\r\n strColumnAlia = \"FTP Failure (%)\";\r\n break;\r\n case \"method\":\r\n strColumnAlia = \"FTP Mode\";\r\n break;\r\n case \"data_read_kb\":\r\n strColumnAlia = \"FTP Data Read (kB)\";\r\n break;\r\n case \"data_write_kb\":\r\n strColumnAlia = \"FTP Data Write (kB)\";\r\n break;\r\n case \"data_read_kbps\":\r\n strColumnAlia = \"FTP Data Read (kBps)\";\r\n break;\r\n case \"data_write_kbps\":\r\n strColumnAlia = \"FTP Data Write (kBps)\";\r\n break;\r\n case \"rtt_min_ftp\":\r\n strColumnAlia = \"FTP RTT Min (ms)\";\r\n break;\r\n case \"rtt_avg_ftp\":\r\n strColumnAlia = \"FTP RTT Avg (ms)\";\r\n break;\r\n case \"rtt_max_ftp\":\r\n strColumnAlia = \"FTP RTT Max (ms)\";\r\n break;\r\n\r\n //DNSDATA \r\n case \"query_name\":\r\n strColumnAlia = \"DNS Query Name\";\r\n break;\r\n case \"min_latency\":\r\n strColumnAlia = \"DNS Min Latency (ms)\";\r\n break;\r\n case \"avg_latency\":\r\n strColumnAlia = \"DNS Avg Latency (ms)\";\r\n break;\r\n case \"max_latency\":\r\n strColumnAlia = \"DNS Max Latency (ms)\";\r\n break;\r\n case \"failure_dns\":\r\n strColumnAlia = \"DNS Failure (%)\";\r\n break;\r\n case \"number_of_tests_dns\":\r\n strColumnAlia = \"DNS Number of Tests\";\r\n break;\r\n\r\n //SMSDATA \r\n case \"total_msg_send\":\r\n strColumnAlia = \"SMS Total Messages Send\";\r\n break;\r\n case \"total_msg_failed\":\r\n strColumnAlia = \"SMS Total Messages Failed\";\r\n break;\r\n case \"min_time_sms\":\r\n strColumnAlia = \"SMS Minimum Time (Secs)\";\r\n break;\r\n case \"avg_time_sms\":\r\n strColumnAlia = \"SMS Average Time (Secs)\";\r\n break;\r\n case \"max_time_sms\":\r\n strColumnAlia = \"SMS Maximum Time (Secs)\";\r\n break;\r\n case \"total_msg_recieved\":\r\n strColumnAlia = \"SMS Total Messages Received\";\r\n break;\r\n case \"total_recievesms_expected\":\r\n strColumnAlia = \"SMS Total Messages Expected to Recieve\";\r\n break;\r\n case \"time_of_firstsms\":\r\n strColumnAlia = \"SMS Time of First Message\";\r\n break;\r\n case \"time_of_lastsms\":\r\n strColumnAlia = \"SMS Time of Last Message\";\r\n break;\r\n\r\n //EMAILDATA \r\n case \"total_emails_send\":\r\n strColumnAlia = \"EMAIL Total Emails Send\";\r\n break;\r\n case \"total_emails_failed\":\r\n strColumnAlia = \"EMAIL Total Emails Failed\";\r\n break;\r\n case \"min_time_sendemail\":\r\n strColumnAlia = \"EMAIL Minimum Sent Time (Secs)\";\r\n break;\r\n case \"avg_time_sendemail\":\r\n strColumnAlia = \"EMAIL Average Sent Time (Secs)\";\r\n break;\r\n case \"max_time_sendemail\":\r\n strColumnAlia = \"EMAIL Maximum Sent Time (Secs)\";\r\n break;\r\n case \"total_emails_recieved\":\r\n strColumnAlia = \"EMAIL Total Emails Received\";\r\n break;\r\n case \"total_recieveemails_expected\":\r\n strColumnAlia = \"EMAIL Total Emails Expected to Recieve\";\r\n break;\r\n case \"time_of_firstemail\":\r\n strColumnAlia = \"EMAIL Time of First Email\";\r\n break;\r\n case \"time_of_lastemail\":\r\n strColumnAlia = \"EMAIL Time of Last Email\";\r\n break;\r\n\r\n //PHONEINFO \r\n case \"mobile_results\": //common column in infos\r\n strColumnAlia = \"Mobile Results\";\r\n break;\r\n case \"phone_model\": //common column in infos\r\n strColumnAlia = \"Phone Model\";\r\n break;\r\n case \"phone_ios_version\":\r\n strColumnAlia = \"PHONEINFO Phone S/W Version\";\r\n break;\r\n case \"app_version\":\r\n strColumnAlia = \"PHONEINFO App Version\";\r\n break;\r\n case \"imei\":\r\n strColumnAlia = \"PHONEINFO IMEI\";\r\n break;\r\n\r\n //SIMINFO \r\n case \"simmnc\":\r\n strColumnAlia = \"SIM MNC\";\r\n break;\r\n case \"simmcc\":\r\n strColumnAlia = \"SIM MCC\";\r\n break;\r\n case \"imsi\":\r\n strColumnAlia = \"SIM IMSI\";\r\n break;\r\n\r\n //UEINFO \r\n case \"egci\":\r\n strColumnAlia = \"UE EGCI\";\r\n break;\r\n case \"plmn_id\":\r\n strColumnAlia = \"UE PLMN ID\";\r\n break;\r\n case \"cell_id\":\r\n strColumnAlia = \"UE Cell/Base Station ID\";\r\n break;\r\n case \"neighbouring_cell_id\":\r\n strColumnAlia = \"UE Neighbouring Cell ID\";\r\n break;\r\n case \"lai\":\r\n strColumnAlia = \"UE LAI\";\r\n break;\r\n case \"ipaddress\":\r\n strColumnAlia = \"UE IP Address\";\r\n break;\r\n case \"gateway\":\r\n strColumnAlia = \"UE Gateway\";\r\n break;\r\n case \"dns_ue\":\r\n strColumnAlia = \"UE DNS\";\r\n break;\r\n\r\n //FAXDATA \r\n case \"fax_event\":\r\n strColumnAlia = \"Event\";\r\n break;\r\n case \"fax_duration\":\r\n strColumnAlia = \"Duration (sec)\";\r\n break;\r\n case \"fax_error\":\r\n strColumnAlia = \"Error\";\r\n break;\r\n case \"ecm\":\r\n strColumnAlia = \"ECM\";\r\n break;\r\n case \"modem\":\r\n strColumnAlia = \"Modem\";\r\n break;\r\n case \"starting_speed\":\r\n strColumnAlia = \"Starting Speed\";\r\n break;\r\n case \"final_speed\":\r\n strColumnAlia = \"Final Speed\";\r\n break;\r\n case \"completed_pages\":\r\n strColumnAlia = \"Completed Pages\";\r\n break;\r\n case \"sent_lines\":\r\n strColumnAlia = \"Tx/Rx Lines\";\r\n break;\r\n case \"bad_lines\":\r\n strColumnAlia = \"Bad Lines\";\r\n break;\r\n case \"encoding\":\r\n strColumnAlia = \"Encoding\";\r\n break;\r\n case \"resolution\":\r\n strColumnAlia = \"Resolution\";\r\n break;\r\n\r\n //VQTPOLQA \r\n case \"deg_file_name\":\r\n strColumnAlia = \"Degraded Filename\";\r\n break;\r\n case \"polqa_score\":\r\n strColumnAlia = \"POLQA MOS\";//POLQA Score\r\n break;\r\n case \"polqa_v3\":\r\n strColumnAlia = \"POLQA v3 MOS\";//POLQA v3\r\n break;\r\n case \"pass_or_fail\":\r\n strColumnAlia = \"Rating\";\r\n break;\r\n case \"jitter_min\":\r\n strColumnAlia = \"Max Neg Jitter (ms)\";\r\n break;\r\n case \"jitter_max\":\r\n strColumnAlia = \"Max Pos Jitter (ms)\";\r\n break;\r\n case \"jitter_ave\":\r\n strColumnAlia = \"Jitter Ave (ms)\";\r\n break;\r\n case \"emodel_polqa\":\r\n strColumnAlia = \"EModel (R-factor)\";\r\n break;\r\n case \"speech_level_diff\":\r\n strColumnAlia = \"Speech Level Gain (dB)\";\r\n break;\r\n case \"snr_diff\":\r\n strColumnAlia = \"Noise Level Gain (dB)\";\r\n break;\r\n case \"asr_ref\":\r\n strColumnAlia = \"Active Speech Ratio - Ref (%)\";\r\n break;\r\n case \"asr_deg\":\r\n strColumnAlia = \"Active Speech Ratio - Deg (%)\";\r\n break;\r\n case \"number_of_utterance\":\r\n strColumnAlia = \"Number of Utterance\";\r\n break;\r\n case \"delay_min\":\r\n strColumnAlia = \"Per Utterance Delay Min (ms)\";\r\n break;\r\n case \"delay_max\":\r\n strColumnAlia = \"Per Utterance Delay Max (ms)\";\r\n break;\r\n case \"delay_ave\":\r\n strColumnAlia = \"Per Utterance Delay Ave (ms)\";\r\n break;\r\n case \"polqa_owd\":\r\n strColumnAlia = \"POLQA OWD (ms)\";\r\n break;\r\n //case \"polqa_sa_ref\":\r\n // strColumnAlia = \"Speech Activity - Ref (%)\";\r\n // break;\r\n //case \"polqa_sa_deg\":\r\n // strColumnAlia = \"Speech Activity - Deg (%)\";\r\n // break;\r\n case \"polqa_asl_ref\":\r\n strColumnAlia = \"Active Speech Level - Ref (dBm)\";\r\n break;\r\n case \"polqa_asl_deg\":\r\n strColumnAlia = \"Active Speech Level - Deg (dBm)\";\r\n break;\r\n case \"polqa_mnl_ref\":\r\n strColumnAlia = \"Mean Noise Level - Ref (dBm)\";\r\n break;\r\n case \"polqa_mnl_deg\":\r\n strColumnAlia = \"Mean Noise Level - Deg (dBm)\";\r\n break;\r\n case \"polqa_snr_ref\":\r\n strColumnAlia = \"SNR - Ref (dB)\";\r\n break;\r\n case \"polqa_snr_deg\":\r\n strColumnAlia = \"SNR - Deg (dB)\";\r\n break;\r\n\r\n //VAC\r\n case \"relative_mos_v\":\r\n strColumnAlia = \"Relative MOS-V\";\r\n break;\r\n case \"absolute_mos_v\":\r\n strColumnAlia = \"Absolute MOS-V\";\r\n break;\r\n case \"relative_mos_a\":\r\n strColumnAlia = \"Relative MOS-A\";\r\n break;\r\n case \"relative_mos_av\":\r\n strColumnAlia = \"Relative MOS-AV\";\r\n break;\r\n case \"endpoint_uri\":\r\n strColumnAlia = \"Endpoint Name\";\r\n break;\r\n case \"ip_address\":\r\n strColumnAlia = \"IP Address (Port)\";\r\n break;\r\n case \"vlan_encap\":\r\n strColumnAlia = \"VLAN Encap/ID/CoS\";\r\n break;\r\n case \"endpoint_ua\":\r\n strColumnAlia = \"Endpoint/UA Type\";\r\n break;\r\n case \"image_size\":\r\n strColumnAlia = \"Image Size (Width X Height)\";\r\n break;\r\n case \"video_packet_loss_rate\":\r\n strColumnAlia = \"Video Packet Loss Rate (%)\";\r\n break;\r\n case \"video_discard_rate\":\r\n strColumnAlia = \"Video Discard Rate (%)\";\r\n break;\r\n case \"video_bandwidth\":\r\n strColumnAlia = \"Video Bandwidth (kbps)\";\r\n break;\r\n case \"video_frame_rate\":\r\n strColumnAlia = \"Video Frame Rate (Frames per Second)\";\r\n break;\r\n case \"impaired_i_frames\":\r\n strColumnAlia = \"Impaired I Frames (%)\";\r\n break;\r\n case \"impaired_bp_frames\":\r\n strColumnAlia = \"Impaired B/P Frames (%)\";\r\n break;\r\n case \"loss_rate_within_i_frames\":\r\n strColumnAlia = \"Loss Rate within I Frames (%)\";\r\n break;\r\n case \"loss_rate_within_bp_frames\":\r\n strColumnAlia = \"Loss Rate within B/P Frames (%)\";\r\n break;\r\n case \"g1070_video_mos\":\r\n strColumnAlia = \"G.1070 Video MOS\";\r\n break;\r\n case \"bp_frames_received\":\r\n strColumnAlia = \"B/P Frames Received\";\r\n break;\r\n case \"audio_packet_loss_rate\":\r\n strColumnAlia = \"Audio Packet Loss Rate (%)\";\r\n break;\r\n case \"audio_discard_rate\":\r\n strColumnAlia = \"Audio Discard Rate (%)\";\r\n break;\r\n case \"audio_bitrate\":\r\n strColumnAlia = \"Audio Bitrate (kbps)\";\r\n break;\r\n case \"audio_bandwidth\":\r\n strColumnAlia = \"Audio Bandwidth (kHz)\";\r\n break;\r\n case \"signal_level\":\r\n strColumnAlia = \"Signal Level (dBm0)\";\r\n break;\r\n case \"noise_level\":\r\n strColumnAlia = \"Noise Level (dBm0)\";\r\n break;\r\n case \"g1070_audio_mos\":\r\n strColumnAlia = \"G.1070 Audio MOS\";\r\n break;\r\n case \"total_round_trip_delay\":\r\n strColumnAlia = \"Total Round Trip Delay (ms)\";\r\n break;\r\n case \"end_system_delay\":\r\n strColumnAlia = \"End System Delay (ms)\";\r\n break;\r\n case \"network_round_trip_delay\":\r\n case \"network_round_trip_delay_av\":\r\n strColumnAlia = \"Network Round Trip Delay (ms)\";\r\n break;\r\n case \"network_packet_loss_rate\":\r\n strColumnAlia = \"Network Packet Loss Rate (%)\";\r\n break;\r\n case \"network_packet_discard_rate\":\r\n strColumnAlia = \"Network Packet Discard Rate (%)\";\r\n break;\r\n case \"network_packet_duplicate_rate\":\r\n strColumnAlia = \"Network Packet Duplicate Rate (%)\";\r\n break;\r\n case \"network_packet_reorder_rate\":\r\n strColumnAlia = \"Network Packet Reorder Rate (%)\";\r\n break;\r\n case \"mean_burst_loss_rate\":\r\n strColumnAlia = \"Mean Burst Loss Rate (%)\";\r\n break;\r\n case \"mean_burst_length\":\r\n strColumnAlia = \"Mean Burst Length (Packets)\";\r\n break;\r\n case \"mean_gap_loss_rate\":\r\n strColumnAlia = \"Mean Gap Loss Rate (%)\";\r\n break;\r\n case \"mean_gap_length\":\r\n strColumnAlia = \"Mean Gap Length (Packets)\";\r\n break;\r\n case \"jitter__ppdv_\":\r\n strColumnAlia = \"Jitter (PPDV) (ms)\";\r\n break;\r\n case \"mapdv_avg\":\r\n strColumnAlia = \"MAPDV Avg (ms)\";\r\n break;\r\n case \"service_access_delay\":\r\n strColumnAlia = \"Service Access Delay (ms)\";\r\n break;\r\n case \"session_disconnect_delay\":\r\n strColumnAlia = \"Session Disconnect Delay (ms)\";\r\n break;\r\n case \"image_resolution\":\r\n strColumnAlia = \"Image Resolution (Pixels)\";\r\n break;\r\n case \"audio_packet_duration\":\r\n strColumnAlia = \"Audio Packet Duration (ms)\";\r\n break;\r\n default:\r\n strColumnAlia = strColumnName.replace(/\\_/g, ' ');\r\n strColumnAlia = strColumnAlia.replace(/BSH/gi, '/');\r\n break;\r\n }\r\n return strColumnAlia;\r\n}\r\nfunction GetTitleBgColorOrColor(colIndex, rsltTypeChk, type) {\r\n if ((rsltTypeChk === 'emu' && ((colIndex >= 17 && colIndex <= 26)\r\n || (colIndex >= 37 && colIndex <= 46)))\r\n || (rsltTypeChk === 'vac' && ((colIndex >= 17 && colIndex <= 23)\r\n //|| (colIndex >= 29 && colIndex <= 30)\r\n //|| (colIndex >= 38 && colIndex <= 43)\r\n || (colIndex == 28)\r\n || (colIndex >= 36 && colIndex <= 41)\r\n ))) {\r\n if (type === 0)\r\n return '#E9EBEC';\r\n else\r\n return 'black';\r\n }\r\n else {\r\n if (type === 0)\r\n return '#6D96D6';//5b9bd5\r\n else\r\n return 'white';\r\n }\r\n}\r\n\r\nexport function headersNTypes(cols, rsltType, DAQOrNot?: boolean): Column[] {\r\n let daqParam = \"\";\r\n if (DAQOrNot)\r\n daqParam = \"DAQ;\";\r\n let pesqDisplaySet = \";Deg_File_Name;Rating;PESQ_Score;\" + daqParam + \"PESQ_LQ;PESQ_MOS;PESQ_WB;PSQMPLUS;PESQ_Average_offset;PESQ_Max_Offset;PESQ_Min_Offset;Number_All_clipping;\" +\r\n \"Duration_ALL_Clipping;Mean_Duration_ALL_Clipping;duration_hangover;Number_of_hangover;Average_Jitter;RSSI;\";//To be displayed on main screen PESQ\r\n\r\n let columnsHeaders: Column[] = [];\r\n //console.log(Object.getOwnPropertyNames(cols));\r\n //colSpecialCharsPipe;\r\n let colIndex = -1;\r\n Object.keys(cols).forEach(key => {\r\n\r\n colIndex++;\r\n\r\n let tableHid = false;//display\r\n\r\n let colType = typeOfObject(cols[key]);\r\n\r\n let lowerKey = key.toLowerCase();\r\n if (rsltType.indexOf('_advFilter') != -1) {//adding most of pesq, polqa column under Filters -> Advanced Filter section\r\n if (lowerKey.indexOf('_timestamp') != -1 || lowerKey.indexOf('vquad_') != -1 || lowerKey.indexOf('gps_') != -1 || lowerKey.indexOf('calltype_') != -1\r\n || lowerKey.indexOf('deg_file_name') != -1)\r\n tableHid = true;\r\n }\r\n else {\r\n if (rsltType == 'pesq') {//only few columns to be displayed an rest of columns comes under dyn column adding\r\n if (pesqDisplaySet.indexOf(';' + key + ';') != -1\r\n || lowerKey.indexOf('_timestamp') != -1 || lowerKey.indexOf('vquad_') != -1 || lowerKey.indexOf('gps_') != -1 || lowerKey.indexOf('calltype_') != -1\r\n || lowerKey.indexOf('deg_file_name') != -1)\r\n tableHid = false;\r\n else\r\n tableHid = true;\r\n }\r\n else//other than pesq result\r\n tableHid = false;\r\n }\r\n\r\n if (key !== \"ID\") {\r\n\r\n let c: Column = {\r\n title: GetMapColumnAliia(key, rsltType, \"Grid\"),\r\n titleBgColor: GetTitleBgColorOrColor(colIndex, rsltType, 0),\r\n titleColor: GetTitleBgColorOrColor(colIndex, rsltType, 1),\r\n name: key,\r\n type: colType,\r\n sortable: true,\r\n //frozen: key.indexOf('VQuad_Timestamp') !== -1 ? true : false, - IMP //https://sreyaj.dev/implement-sticky-columns-using-directives-angular\r\n tableHidden: tableHid,\r\n filter: (key.indexOf('GPS_Position') !== -1 || key.indexOf('VQuad_Lat_Long') !== -1 || key.indexOf('GPS_Long') !== -1 || key.indexOf('GPS_Lat') !== -1 || key.indexOf('Time_of_') !== -1) ? false : isFilterableCol(cols[key])//Disable Filter Icon - IMP\r\n };\r\n if (rsltType == 'pesq' && key == 'Rating' || rsltType == 'polqa' && key == 'Pass_Or_Fail') {\r\n c.type = 'select';\r\n c.options = [\r\n { id: 'Poor', name: 'Poor' },\r\n { id: 'Fair', name: 'Fair' },\r\n { id: 'Good', name: 'Good' },\r\n { id: 'Excellent', name: 'Excellent' },\r\n ];\r\n }\r\n else if (rsltType == 'audio-delay' && key == 'Ring_Type') {\r\n c.type = 'select';\r\n c.options = [\r\n { id: 'RMS', name: 'RMS' },\r\n { id: 'Peak', name: 'Peak' },\r\n ];\r\n }\r\n else if (rsltType == 'vba' && key == 'VBA_Rating'\r\n || rsltType == 'audio-delay' && (key == 'RTD_Rating' || key == 'Speech_Analysis' || key == 'Double_Talk')) {// || key == 'Dropout'\r\n c.type = 'select';\r\n c.options = [\r\n { id: 'Pass', name: 'Pass' },\r\n { id: 'Fail', name: 'Fail' },\r\n ];\r\n if (rsltType == 'audio-delay')\r\n c.options.push({ id: 'Error', name: 'Error' });\r\n }\r\n else if (rsltType == 'nettest' && (key == 'Equilibrium_Efficiency' || key == 'Capacity_Efficiency' || key == 'RTT_Consistency' || key == 'Buffer_Delay' || key == 'Error_Delay' || key == 'Quality')) {\r\n c.type = 'select';\r\n c.options = [\r\n { id: 'Good', name: 'Good' },\r\n { id: 'Warning', name: 'Warning' },\r\n { id: 'Fail', name: 'Fail' },\r\n { id: 'Critical', name: 'Critical' },\r\n ];\r\n }\r\n columnsHeaders.push(c);\r\n }\r\n });\r\n //console.log(columnsHeaders[0]);\r\n return columnsHeaders;\r\n}\r\n\r\n//https://aliolicode.com/2016/04/23/type-checking-typescript/\r\nfunction typeOfObject(value: string | number | Date | boolean): ColumnType {\r\n if (typeof value === \"string\") {\r\n return \"text\";\r\n } else if (typeof value === \"number\") {\r\n return \"number\";\r\n } else if (value instanceof Date) {\r\n return \"datetime-local\";\r\n } else\r\n return \"radio\";\r\n}\r\nfunction isFilterableCol(value: string | number | Date | boolean): boolean {\r\n if (value instanceof Date) {\r\n return false;\r\n } else\r\n return true;\r\n}\r\n\r\n//https://stackoverflow.com/questions/643782/how-to-check-whether-an-object-is-a-date\r\nfunction isValidDate(date) {\r\n return date && Object.prototype.toString.call(date) === \"[object Date]\" && !isNaN(date);\r\n}\r\n\r\n\r\n\r\n\r\n////https://stackoverflow.com/questions/53128744/typescript-automatically-get-interface-properties-in-a-class\r\n//function autoImplement(defaults?: Partial) {\r\n// return class {\r\n// constructor() {\r\n// Object.assign(this, defaults || {});\r\n// }\r\n// } as new () => T\r\n//}\r\n//export class VQUADDATA extends autoImplement() {\r\n// constructor(vquaddata: any) {\r\n// super();\r\n// // other init here\r\n// }\r\n//}\r\n\r\n////https://stackoverflow.com/questions/45670705/typescript-iterate-interface-properties\r\n//const Activity = {\r\n// id: \"\",\r\n// title: \"\",\r\n// body: \"\",\r\n//}\r\n\r\n//type Activity = typeof Activity;\r\n//export const headers: Array = Object.keys(Activity).map(key => {\r\n// return { text: key, value: key }\r\n//});\r\n\r\n\r\n//https://mariusschulz.com/blog/keyof-and-lookup-types-in-typescript\r\nfunction typesOfHeaders() {\r\n //https://dmitripavlutin.com/how-to-iterate-easily-over-object-properties-in-javascript/\r\n let meals = {\r\n mealA: 'Breakfast',\r\n mealB: 'Lunch',\r\n mealC: 'Dinner',\r\n mealD: 'Supper'\r\n };\r\n\r\n for (let [key, value] of Object.entries(meals)) {\r\n console.log(key + ':' + value);\r\n }\r\n\r\n //type TodoKeys = keyof VQUADDATA;\r\n\r\n const vquaddata = {\r\n VQuad_Timestamp: new Date(),\r\n GPS_Position: \"dkfhhf\",\r\n GPS_Lat: 12,\r\n GPS_Long: -72,\r\n };\r\n\r\n const id = prop(vquaddata, \"VQuad_Timestamp\"); // number\r\n const text = prop(vquaddata, \"GPS_Position\"); // string\r\n const due = prop(vquaddata, \"GPS_Lat\"); // Date\r\n\r\n}\r\nfunction prop(obj: T, key: K) {\r\n console.log(obj[key]);\r\n return obj[key];\r\n}\r\n"," export * from './AUDIODELAYDATA';\r\n export * from './CONNDROPDATA';\r\n export * from './CUSTOMREPORTS_GROUP';\r\n export * from './CUSTOMREPORTS_NOTGROUP';\r\n export * from './DNSDATA';\r\n export * from './EMAILDATA';\r\n export * from './EMAILSERVER';\r\n export * from './EModule';\r\n export * from './EMUDATA';\r\n export * from './FAXDATA';\r\n export * from './WvFilter';\r\n export * from './WvFiltersCommonCol';\r\n export * from './WvFiltersMainCol';\r\n export * from './WvFiltersExtraCol';\r\n export * from './FTPDATA';\r\n//https://benjii.me/2016/07/why-angular-cli-creates-a-shared-index-ts-barrel-modules/\r\n export * from './GENERALINFO';\r\n export * from './GRAPHRSLTVIEW_GROUP';\r\n export * from './GRAPHRSLTVIEW_NOTGROUP';\r\n export * from './GROUPS_CUSTOMREPORTS';\r\n export * from './HTTPDATA';\r\n export * from './NWSTAT_EMU';\r\n export * from './NWSTAT_FILEMONITOR';\r\n export * from './NWSTAT_FM_CENTRALIPS';\r\n export * from './NWSTAT_MOBILE';\r\n export * from './NWSTAT_VAC';\r\n export * from './NWSTAT_VQT';\r\n export * from './NWSTAT_VQT_CENTRALIPS';\r\n export * from './NWSTAT_VQUAD';\r\n export * from './NWSTAT_VQUAD_BT_FXO';\r\n export * from './NWSTAT_VQUAD_CENTRALIPS';\r\n export * from './NWSTAT_VQUAD_SCRIPTS';\r\n export * from './NWSTAT_VQUAD_SCRPARAMS';\r\n export * from './PAIREDBT';\r\n export * from './PRIVILEGES';\r\n export * from './PRIVILEGES_CRITERIA';\r\n export * from './PRIVILEGES_FILTERS';\r\n export * from './PRIVILEGES_RESTRICTED';\r\n export * from './PRIVILEGES_VQUAD_AR';\r\n export * from './ROUTEDATA';\r\n export * from './SCHEDULER';\r\n export * from './SCHEDULER_EMAILANDSMS';\r\n export * from './SCHEDULER_RECURRENCE';\r\n export * from './SIMINFO';\r\n export * from './SMSDATA';\r\n export * from './TCPDATA';\r\n export * from './UDPDATA';\r\n export * from './UEINFO';\r\n export * from './VACDATA';\r\n export * from './VOIPDATA';\r\n export * from './VQTPESQDATA';\r\n export * from './VQTPOLQADATA';\r\nexport * from './VQUADDATA';\r\nexport * from './common';\r\n\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9uZ3gtZHQvbmd4LWR0LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-ngx-dt',\n templateUrl: './ngx-dt.component.html',\n styleUrls: ['./ngx-dt.component.scss']\n})\nexport class NgxDtComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dataCols'\r\n})\r\nexport class DataColsPipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: any[]): any {\r\n return null;\r\n }\r\n\r\n}\r\n\r\n\r\n@Pipe({ name: 'colSpecialChars' })\r\nexport class colSpecialCharsPipe implements PipeTransform {\r\n transform(value: string, args?: any): string {\r\n let repVal = value.replace(/DTD/g, \".\");//7 underscores\r\n repVal = repVal.replace(/MNS/g, \"-\");//6 underscores\r\n repVal = repVal.replace(/PCG/g, \"%\");//5 underscores\r\n repVal = repVal.replace(/SLH/g, \"/\");//4 underscores\r\n repVal = repVal.replace(/ZYX/g, \")\").replace(/XYZ/g, \"(\");//3, 2 underscores\r\n repVal = repVal.replace(/\\_/g, \" \");\r\n repVal = repVal.replace(/Point1/g, \"Point(secs)\");\r\n repVal = repVal.replace(/Point2/g, \"Point(secs)\");\r\n repVal = repVal.replace(/Point3/g, \"Point(secs)\");\r\n repVal = repVal.replace(/Point4/g, \"Point(secs)\");\r\n repVal = repVal.replace(/ERL1/g, \"ERL(dB)\");\r\n repVal = repVal.replace(/ERL2/g, \"ERL(dB)\");\r\n repVal = repVal.replace(/ERL3/g, \"ERL(dB)\");\r\n repVal = repVal.replace(/ERL4/g, \"ERL(dB)\");\r\n repVal = repVal.replace(/Delay1/g, \"Delay(ms)\");\r\n repVal = repVal.replace(/Delay2/g, \"Delay(ms)\");\r\n repVal = repVal.replace(/Delay3/g, \"Delay(ms)\");\r\n repVal = repVal.replace(/Delay4/g, \"Delay(ms)\");\r\n return repVal;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\n\n@Pipe({\n name: 'dateFormatPipe'\n})\nexport class DateFormatPipe extends DatePipe implements PipeTransform {\n\n transform(value: any, args?: any): any {\n return super.transform(value, 'dd.MM.yyyy hh:mm:ss');//super.transform(value, 'dd.MM.yyyy hh:mm:ss');\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'highlight' })\r\nexport class HighlightPipe implements PipeTransform {\r\n transform(text: string, search): string {\r\n const pattern = search\r\n .replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\")\r\n .split(' ')\r\n .filter(t => t.length > 0)\r\n .join('|');\r\n const regex = new RegExp(pattern, 'gi');\r\n const match = text.match(regex);\r\n if (!match) {\r\n return text;\r\n }\r\n return search ? text.replace(regex, match => `${match}`) : text;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DEVICE_CALL_STATUS } from 'src/app/shared/models/Remote Operations/network-status';\r\n\r\n//https://stackoverflow.com/questions/17380845/how-do-i-convert-a-string-to-enum-in-typescript\r\n@Pipe({\r\n name: 'convertEnumToString'\r\n})\r\nexport class NetworkStatusPipe implements PipeTransform {\r\n\r\n transform(enumNum: string, ...args: any[]): any {\r\n if (enumNum == null)\r\n return '';\r\n if (enumNum.length <= 0)\r\n return '';\r\n\r\n // To Enum / number\r\n var enumKey: DEVICE_CALL_STATUS = DEVICE_CALL_STATUS[enumNum];\r\n // To String\r\n //https://stackoverflow.com/questions/4775206/var-replace-is-not-a-function\r\n var newEnumVal = enumKey.toString(); //DEVICE_CALL_STATUS[DEVICE_CALL_STATUS.CALL_STATUS_IDLE];\r\n newEnumVal = newEnumVal.replace('Placing_', '');\r\n if (newEnumVal == 'Placing' || newEnumVal == 'Disconnecting')\r\n newEnumVal += \"..\";\r\n return newEnumVal;\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n@Pipe({ name: 'dualUTA' })\r\nexport class DualUTAPipe implements PipeTransform {\r\n transform(value: string, args?: any): string {\r\n let repVal = \"\";\r\n if (value != null) {\r\n repVal = \"Firmware version: \" + (value.split('^'))[0].replace(\"DualUTA \", \"\") + \" Serial number: \" + (value.split('^'))[1];\r\n if (value.trim() == '^')\r\n repVal = \"\";\r\n } \r\n return repVal;\r\n }\r\n}\r\n\r\n\r\n@Pipe({\r\n name: 'dateAndTimeRange'\r\n})\r\nexport class DateAndTimeRangePipe implements PipeTransform {\r\n\r\n transform(value: any, ...args: any[]): any {\r\n let repVal = value.replace(/Last /g, \"\");\r\n repVal = repVal.replace(/Hours/g, \"Mins\");\r\n repVal = repVal.replace(/Hour/g, \"1 Hour\");\r\n repVal = repVal.replace(/Mins/g, \"Hours\");\r\n repVal = repVal.replace(/Month/g, \"1 Month\");\r\n repVal = repVal.replace(/1 Months/g, \"Months\");//above month replace more replaced for 6 months\r\n repVal = repVal.replace(/Year/g, \"1 Year\");\r\n return repVal;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\r\nimport { Subject } from 'rxjs';\r\nimport { FilterMetadata } from 'lib/ng-data-table';\r\nimport { formatLocalToDBTZDate, SelectItem } from 'lib/common';\r\nimport { FILE } from 'dns';\r\n//https://medium.com/@MatheusCAS/injecting-a-service-into-another-service-in-angular-3b253df5c21\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonFilterService {\r\n\r\n private TSTypeSource = new BehaviorSubject(1);\r\n TSType = this.TSTypeSource.asObservable();\r\n\r\n private TSBetweenSource = new BehaviorSubject('');\r\n TSBetween = this.TSBetweenSource.asObservable();//Used in headers by setting in respective service of a comp and passing to other components as recent date selection from the same respective service\r\n startDate: Date;\r\n endDate: Date;\r\n\r\n //Refresh\r\n //https://medium.com/beingcoders/angular-basics-refresh-an-angular-component-without-reloading-the-same-component-b6c513f06fb2\r\n private componentMethodCallSource = new Subject();\r\n componentMethodCalled$ = this.componentMethodCallSource.asObservable();\r\n //Auto-refresh\r\n private componentMethodWithArgCallSource: BehaviorSubject = new BehaviorSubject({ AutoRefSelected: 5 * 1000, AutoRefStop: true });\r\n componentMethodWithArgCalled$ = this.componentMethodWithArgCallSource.asObservable();\r\n\r\n private componentFilterMethodCallSource = new Subject();\r\n componentFilterMethodCalled$ = this.componentFilterMethodCallSource.asObservable();\r\n private componentFilterMethodSavedCallSource = new Subject();\r\n componentFilterMethodSavedCalled$ = this.componentFilterMethodSavedCallSource.asObservable();\r\n\r\n private componentCRMethodCallSource = new Subject();\r\n componentCRMethodCalled$ = this.componentCRMethodCallSource.asObservable();\r\n private componentCRMethodSavedCallSource = new BehaviorSubject('');\r\n componentCRMethodSavedCalled$ = this.componentCRMethodSavedCallSource.asObservable();\r\n\r\n private componentRegionMethodCallSource = new Subject();\r\n componentRegionMethodCalled$ = this.componentRegionMethodCallSource.asObservable();\r\n private componentRegionMethodSavedCallSource = new BehaviorSubject('');\r\n componentRegionMethodSavedCalled$ = this.componentRegionMethodSavedCallSource.asObservable();\r\n\r\n private componentAudioStatsMethodCallSource = new Subject();\r\n componentAudioStatsMethodCalled$ = this.componentAudioStatsMethodCallSource.asObservable();\r\n private componentAudioMethodSavedCallSource = new BehaviorSubject(0);\r\n componentAudioMethodSavedCalled$ = this.componentAudioMethodSavedCallSource.asObservable();\r\n private componentVoiceStatsMethodCallSource = new Subject();\r\n componentVoiceStatsMethodCalled$ = this.componentVoiceStatsMethodCallSource.asObservable();\r\n private componentVoiceMethodSavedCallSource = new BehaviorSubject(0);\r\n componentVoiceMethodSavedCalled$ = this.componentVoiceMethodSavedCallSource.asObservable();\r\n\r\n private componentGMapsMethodCallSource = new Subject();\r\n componentGMapsMethodCalled$ = this.componentGMapsMethodCallSource.asObservable();\r\n private componentGMapsMethodSavedCallSource = new BehaviorSubject(0);\r\n componentGMapsMethodSavedCalled$ = this.componentGMapsMethodSavedCallSource.asObservable();\r\n\r\n private isFilters = new BehaviorSubject(false);\r\n isFilters$ = this.isFilters.asObservable();\r\n private nonFilterScreen = new BehaviorSubject(false);\r\n nonFilterScreen$ = this.nonFilterScreen.asObservable();\r\n //private isOpenPanel = new Subject();\r\n //isOpenPanel$ = this.isOpenPanel.asObservable();\r\n\r\n private DB_TZSource = new BehaviorSubject(-500);\r\n DB_TZ = this.DB_TZSource.asObservable();\r\n private DB_BRDiffSource = new BehaviorSubject(-500);\r\n DB_BRDiff = this.DB_BRDiffSource.asObservable();\r\n\r\n //private TSRangeSelectedSource = new BehaviorSubject('10min');\r\n //TSRangeSelected = this.TSRangeSelectedSource.asObservable();\r\n \r\n private TSRangeFilterSource: BehaviorSubject = new BehaviorSubject({ RangeType: '10min', RangeSelected: 'Last 10 Minutes'});\r\n TSRangeFilter = this.TSRangeFilterSource.asObservable();\r\n\r\n //https://stackoverflow.com/questions/49525637/add-data-to-the-end-of-a-behavior-object-array-angular-5/49525730\r\n private GeneralFilterSource: BehaviorSubject = new BehaviorSubject({} as FilterMetadata);\r\n //private GeneralFilterSource: Subject = new Subject();\r\n GeneralFilter = this.GeneralFilterSource.asObservable();\r\n\r\n private GeneralFilterDFSource: BehaviorSubject = new BehaviorSubject({} as FilterMetadata);\r\n //private GeneralFilterDFSource: Subject = new Subject();\r\n GeneralFilterDF = this.GeneralFilterDFSource.asObservable();\r\n\r\n private GeneralEventIDFilterSource: BehaviorSubject = new BehaviorSubject({} as FilterMetadata);\r\n //private GeneralEventIDFilterSource: Subject = new Subject();\r\n GeneralEventIDFilter = this.GeneralEventIDFilterSource.asObservable();\r\n\r\n private AllGeneralFilterSource: BehaviorSubject> = new BehaviorSubject([]);\r\n //private AllGeneralFilterSource = new Subject>();\r\n AllGeneralFilter = this.AllGeneralFilterSource.asObservable();\r\n\r\n //private DeleteFilterSource: BehaviorSubject = new BehaviorSubject('');\r\n private DeleteFilterSource = new Subject();\r\n DeleteFilter = this.DeleteFilterSource.asObservable();\r\n\r\n private ClearAllFiltersSource = new Subject();\r\n ClearAllFilters = this.ClearAllFiltersSource.asObservable();\r\n\r\n //// MainFilter value --elumalai\r\n private MainFilterID = new BehaviorSubject(0);\r\n mainFilterID = this.MainFilterID.asObservable();\r\n\r\n SetMainFilter(ID) {\r\n this.MainFilterID.next(ID);\r\n }\r\n\r\n ////SET SELECTED CUSTOM REPORTID IN CONFIGURATION SCREEN ON LOAD --ELUMALAI\r\n private CustomReportID = new BehaviorSubject(0);\r\n customReportID_Config = this.CustomReportID.asObservable();\r\n\r\n SetCustomReportID(ID) {\r\n this.CustomReportID.next(ID);\r\n }\r\n\r\n ////SET SELECTED CUSTOM REPORTID IN CONFIGURATION SCREEN ON LOAD --ELUMALAI\r\n private GMapConfigID = new BehaviorSubject(0);\r\n gmapID_Config = this.GMapConfigID.asObservable();\r\n\r\n SetGmapConfigID(ID) {\r\n this.GMapConfigID.next(ID);\r\n }\r\n\r\n ////SET SELECTED REGION IN CONFIGURATION SCREEN ON LOAD --ELUMALAI\r\n private GMapRegion = new BehaviorSubject(\"0\");\r\n gmapRegion_Config = this.GMapRegion.asObservable();\r\n\r\n SetGmapRegion(name) {\r\n this.GMapRegion.next(name);\r\n }\r\n\r\n ////Set/Get MainFilter CriteriaName --elumalai\r\n private MainFilterCriteriaName = new BehaviorSubject('');\r\n mainFilter_CriteriaName = this.MainFilterCriteriaName.asObservable();\r\n\r\n SetMainFilterCriteriaName(crName) {\r\n this.MainFilterCriteriaName.next(crName);\r\n }\r\n\r\n ////////////////////////Set/Get MainFilter MapRegionName --elumalai\r\n private MainFilterRegionName = new BehaviorSubject('');\r\n mainFilter_MapRegionName = this.MainFilterRegionName.asObservable();\r\n\r\n SetMainFilterMapRegion(mapregionName) {\r\n this.MainFilterRegionName.next(mapregionName);\r\n }\r\n\r\n //// MainFilter CustomDate value --elumalai\r\n private MainFilter_ContainsCustDate = new BehaviorSubject(false);\r\n mainFilter_ContainsCustDate = this.MainFilter_ContainsCustDate.asObservable();\r\n\r\n SetMainFilterCustomDate(value) {\r\n this.MainFilter_ContainsCustDate.next(value);\r\n }\r\n\r\n ////ITs file value --elumalai\r\n private ITS_fileValue = new BehaviorSubject(null); //private ITS_fileValue = new BehaviorSubject(null);\r\n ITSValue = this.ITS_fileValue.asObservable();\r\n\r\n SetITSFile(value) {\r\n this.ITS_fileValue.next(value);\r\n }\r\n\r\n ////GMap Restore Previous selected DispalyOption onPageLoad --elumalai\r\n private GmapDisplayOptionRestore = new BehaviorSubject(null);\r\n displayOptionValues = this.GmapDisplayOptionRestore.asObservable();\r\n\r\n SetGMapDisplayOption(value) {\r\n this.GmapDisplayOptionRestore.next(value);\r\n }\r\n\r\n //PageNumber: number;\r\n //RecordsPerPage: number;\r\n //Sort: string;\r\n private PaginationFilterSource: BehaviorSubject = new BehaviorSubject({ PageNumber: 1, RecordsPerPage: 200, Sort: '' });\r\n PaginationFilter = this.PaginationFilterSource.asObservable();\r\n //Using Subject wont be called mutiple times like BehaviourSubject. But at the same time subject cannot hold value more than once (constantly) like BehaviourSubject - IMP\r\n //https://upmostly.com/angular/subject-vs-replaysubject-vs-behaviorsubject\r\n //https://codehandbook.org/subscribe-callback-called-multiple-times/\r\n //https://stackoverflow.com/questions/43348463/what-is-the-difference-between-subject-and-behaviorsubject\r\n //https://satyapriyamishra111.medium.com/all-you-need-to-know-about-async-subject-2cd72ea646ea\r\n private _PaginationListners = new Subject();\r\n PaginationListners = this._PaginationListners.asObservable();\r\n ListenPaging() {\r\n this._PaginationListners.next();\r\n }\r\n\r\n private _listners = new Subject();\r\n listen = this._listners.asObservable();\r\n filter(listenNext) {\r\n this._listners.next(listenNext);\r\n }\r\n\r\n private _columnToggleListners = new BehaviorSubject([]);\r\n columnToggleListen = this._columnToggleListners.asObservable();\r\n columnToggleIndices(listenNext) {\r\n this._columnToggleListners.next(listenNext);\r\n }\r\n\r\n //GMaps predefned config ON/OFF\r\n private usePredefinedConfigSource = new BehaviorSubject('OFF');\r\n usePredefinedConfig = this.usePredefinedConfigSource.asObservable(); \r\n\r\n ////////////\r\n private filterCEErrorEvent = new BehaviorSubject(false);\r\n filterCallEventErrorEvent = this.filterCEErrorEvent.asObservable();\r\n private filterConnDropEvent = new BehaviorSubject(false);\r\n filterConnDrop = this.filterConnDropEvent.asObservable();\r\n\r\n //Default values set here\r\n constructor() {\r\n this.setDates(\"10|m\");\r\n this.TSTypeSource.next(1);\r\n }\r\n\r\n //Latest TS and date range selected\r\n setProperties(TSSelected: number, TimeSelected: string) {\r\n //setProperties(TimeSelected: string) {\r\n this.TSTypeSource.next(TSSelected);\r\n if (TimeSelected !== \"\")\r\n this.setDates(TimeSelected);\r\n }\r\n\r\n //Refresh\r\n basicRefresh() {\r\n this.componentMethodCallSource.next();\r\n }\r\n //Auto-Refresh\r\n basicAutoRefresh(AutoRefreshInfo: any) {\r\n this.componentMethodWithArgCallSource.next(AutoRefreshInfo);\r\n }\r\n\r\n basicFilterRefresh(type: number) {\r\n this.componentFilterMethodCallSource.next(type);\r\n }\r\n basicFilterSavedRefresh() {\r\n this.componentFilterMethodSavedCallSource.next();\r\n }\r\n\r\n basicCRRefresh(type: string) {\r\n this.componentCRMethodCallSource.next(type);\r\n }\r\n\r\n basicRegionRefresh(type: string) {\r\n this.componentRegionMethodCallSource.next(type);\r\n }\r\n\r\n basicCRSavedRefresh(type: string) {\r\n this.componentCRMethodSavedCallSource.next(type);\r\n }\r\n\r\n basicRegionSavedRefresh(type: string) {\r\n this.componentRegionMethodSavedCallSource.next(type);\r\n }\r\n\r\n basicAudioStatsConfigRefresh() {\r\n this.componentAudioStatsMethodCallSource.next();\r\n }\r\n basicAudioSavedRefresh(type: number) {\r\n this.componentAudioMethodSavedCallSource.next(1);\r\n }\r\n basicVoiceStatsConfigRefresh() {\r\n this.componentVoiceStatsMethodCallSource.next();\r\n }\r\n basicVoiceSavedRefresh(type: number) {\r\n this.componentVoiceMethodSavedCallSource.next(1);\r\n }\r\n\r\n basicGMapsRefresh(type: number) {\r\n this.componentGMapsMethodCallSource.next(type);\r\n }\r\n basicGMapsSavedRefresh(type: number) {\r\n this.componentGMapsMethodSavedCallSource.next(type);\r\n }\r\n\r\n setIsFilters(boolValue: boolean) {\r\n this.isFilters.next(boolValue);\r\n }\r\n setNonFiltersScreen(boolValue: boolean) {\r\n this.nonFilterScreen.next(boolValue);\r\n }\r\n //setIsOpenPanel(boolValue: boolean) {\r\n // this.isOpenPanel.next(boolValue);\r\n //}\r\n\r\n //Latest start and end Dates for Title component\r\n setDatesProperties(TimeSelected: string) {\r\n this.TSBetweenSource.next(TimeSelected);\r\n }\r\n ////Type of Date range selected for internal calculation in service\r\n //setDatesRangeProperties(RangeSelected: string) {\r\n // this.TSRangeSelectedSource.next(RangeSelected);\r\n //}\r\n setDBTZFromVarCol(Timezone_GMT: number) {\r\n this.DB_TZSource.next(Timezone_GMT);\r\n }\r\n setDBAndBrowserHrsDiff(hoursDiff: number) {\r\n this.DB_BRDiffSource.next(hoursDiff);\r\n }\r\n\r\n private MainFilterCustDT = new BehaviorSubject('');\r\n mfDateTime = this.MainFilterCustDT.asObservable();\r\n setMFCustDT(TimeSelected: string) {\r\n this.MainFilterCustDT.next(TimeSelected);\r\n }\r\n\r\n private MainFilterTZON = new BehaviorSubject(0);\r\n mfTZ = this.MainFilterTZON.asObservable();\r\n setMFTZON(TZSelected: number) {\r\n this.MainFilterTZON.next(TZSelected);\r\n }\r\n\r\n //Type of Dates range used in demo service curretn date filter setting and Title - IMP\r\n setRangeFilterData(data) {\r\n this.TSRangeFilterSource.next(data);\r\n }\r\n //Filtered columns details used in Synopsis\r\n setGeneralFilterData(data) {\r\n this.GeneralFilterSource.next(data);\r\n }\r\n setGeneralFilterDFData(data) {\r\n this.GeneralFilterDFSource.next(data);\r\n }\r\n setGeneralEventIDFilterData(data) {\r\n this.GeneralEventIDFilterSource.next(data);\r\n }\r\n setAllGeneralFilterData(data) {\r\n this.AllGeneralFilterSource.next(data);\r\n }\r\n setDeleteFilterData(data) {\r\n this.DeleteFilterSource.next(data);\r\n }\r\n setClearAllFiltersData() {\r\n this.ClearAllFiltersSource.next();\r\n }\r\n setPaginationFilterData(data) {\r\n this.PaginationFilterSource.next(data);\r\n }\r\n\r\n setUsePredefinedConfigData(data) {\r\n this.usePredefinedConfigSource.next(data);\r\n }\r\n\r\n setCallEventErrorEvent(data) {\r\n this.filterCEErrorEvent.next(data);\r\n }\r\n setConnDropEvent(data) {\r\n this.filterConnDropEvent.next(data);\r\n }\r\n\r\n setDates(periodDiff) {\r\n //console.log(periodDiff)\r\n if (periodDiff == \"10|m\") {\r\n let dt = new Date();\r\n let dbTz = -500;\r\n this.DB_TZ.toPromise().then(res => {\r\n dbTz = res;\r\n });\r\n let dbAndBrHrs = -500;\r\n this.DB_BRDiff.toPromise().then(res => {\r\n dbAndBrHrs = res;\r\n });\r\n if (dbAndBrHrs != -500)\r\n dt = formatLocalToDBTZDate(new Date(), dbTz, dbAndBrHrs);\r\n //console.log(dt)\r\n\r\n this.endDate = new Date();\r\n this.startDate = new Date();\r\n\r\n this.calcPeriod(periodDiff);\r\n\r\n this.endDate.setMinutes(this.endDate.getMinutes() + 3);//Grace time\r\n\r\n let starthours = this.startDate.getHours().toString();\r\n starthours = (\"0\" + starthours).slice(-2);\r\n let endhours = this.endDate.getHours().toString();\r\n endhours = (\"0\" + endhours).slice(-2);\r\n let startmins = this.startDate.getMinutes().toString();\r\n startmins = (\"0\" + startmins).slice(-2);\r\n let endmins = this.endDate.getMinutes().toString();\r\n endmins = (\"0\" + endmins).slice(-2);\r\n\r\n let startmon = (this.startDate.getMonth() + 1).toString();\r\n startmon = (\"0\" + startmon).slice(-2);\r\n let endmon = (this.endDate.getMonth() + 1).toString();\r\n endmon = (\"0\" + endmon).slice(-2);\r\n let startdate = this.startDate.getDate().toString();\r\n startdate = (\"0\" + startdate).slice(-2);\r\n let enddate = this.endDate.getDate().toString();\r\n enddate = (\"0\" + enddate).slice(-2);\r\n let startDateFinal = startmon + \"/\" + startdate + \"/\" + this.startDate.getFullYear() + \" \" + starthours + \":\" + startmins + \":00\";\r\n let endDateFinal = endmon + \"/\" + enddate + \"/\" + this.endDate.getFullYear() + \" \" + endhours + \":\" + endmins + \":00\";\r\n\r\n this.TSBetweenSource.next(startDateFinal + '^' + endDateFinal);\r\n }\r\n else {\r\n //this.TSBetweenSource.next(periodDiff.replace(' - ', ':00^') + \":00\");//replace seperator with adding 00secs to both start and end dates by default\r\n this.TSBetweenSource.next(periodDiff.replace(' - ', '^'));//replace seperator with ^\r\n }\r\n }\r\n\r\n //Only 10|m\r\n calcPeriod(periodDiff) {\r\n if (periodDiff == \"today\") {\r\n this.startDate.setHours(0);\r\n this.startDate.setMinutes(0);\r\n }\r\n else if (periodDiff == \"yesterday\") {\r\n this.startDate.setDate(this.startDate.getDate() - 1);\r\n this.startDate.setHours(0);\r\n this.startDate.setMinutes(0);\r\n\r\n this.endDate.setDate(this.startDate.getDate());\r\n this.endDate.setHours(23);\r\n this.endDate.setMinutes(56);\r\n }\r\n else {\r\n let periodVal = (periodDiff.split(\"|\"))[0];\r\n let periodType = (periodDiff.split(\"|\"))[1];\r\n switch (periodType) {\r\n case \"m\":\r\n this.startDate.setMinutes(this.startDate.getMinutes() - periodVal);\r\n break;\r\n case \"h\":\r\n this.startDate.setHours(this.startDate.getHours() - periodVal);\r\n break;\r\n case \"d\":\r\n this.startDate.setDate(this.startDate.getDate() - periodVal);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { DataSource, RequestMetadata, PagedResult, DataType } from 'lib/ng-crud-table';\r\nimport { NotifyService } from 'lib/notify/notify.service';\r\nimport { environment } from 'src/environments/environment';\r\n//import { environment } from '../../environments/environment.prod';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FiltersService implements DataSource {\r\n url: string = 'assets/ng-crud-table/players.json';\r\n\r\n primaryKeys: string[] = ['id'];\r\n\r\n constructor(private http: HttpClient, private notifyService: NotifyService) {\r\n\r\n }\r\n\r\n //Clear All Filters - IMP\r\n clearAllFilters() {\r\n\r\n }\r\n\r\n getConfigsList(type: number, FilterID: string) {\r\n let params = new HttpParams()\r\n .set('type', type.toString())\r\n .set('FilterID', FilterID);\r\n\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers,\r\n params: params\r\n };\r\n\r\n this.url = environment.urlAddress + '/api/MainFilters/GetFiltersData';\r\n return this.http.get(this.url, options);\r\n }\r\n\r\n GetTimeZoneDatePeriod_Service(mainFilterID: number, custDates:string) {\r\n \r\n let params = new HttpParams()\r\n .set('mainFilterID', mainFilterID.toString())\r\n .set('CustDT', custDates);\r\n\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers,\r\n params: params\r\n };\r\n\r\n this.url = environment.urlAddress + '/api/MainFilters/GetTimeZoneDatePeriod';\r\n return this.http.get(this.url, options);\r\n }\r\n\r\n Rows: string = \"\";\r\n //RowsCommon: string = \"\";\r\n //Latest filters rows set here\r\n setRows(data) {//, commonOrMain) {\r\n //if (commonOrMain == 0)\r\n // this.RowsCommon = data;\r\n //else\r\n this.Rows = data;\r\n }\r\n\r\n async getItems(requestMeta: RequestMetadata): Promise {\r\n //console.log(requestMeta.pageMeta)\r\n const currentPage = requestMeta.pageMeta.currentPage;\r\n const perPage = requestMeta.pageMeta.perPage;\r\n const pageCount = requestMeta.pageMeta.pageCount;\r\n //console.log(requestMeta.rsltType)\r\n const data = this.Rows; //requestMeta.rsltType == \"0\" ? this.RowsCommon : this.Rows;\r\n const rows: any[] = JSON.parse(data) as any[] || [];\r\n //console.log(rows)\r\n if (requestMeta.rsltType == \"0\") {\r\n //https://www.codegrepper.com/code-examples/typescript/typescript+sort+json+array+by+property\r\n rows.sort((a, b) => (a.Column_Name > b.Column_Name) ? 1 : -1)\r\n }\r\n else {\r\n rows.sort((a, b) => (a.Result_Type > b.Result_Type) ? 1 : -1);\r\n }\r\n\r\n const totalCount = rows.length;\r\n const result = {\r\n items: rows,\r\n _meta: {\r\n totalCount,//number of records totally\r\n pageCount,//number of records in current page\r\n currentPage,//page number selected\r\n perPage//selected option for number of records to be actually displayed\r\n }\r\n } as PagedResult;\r\n //console.log('filters done')\r\n return result;\r\n }\r\n\r\n getItemsByID(requestMeta: RequestMetadata): Promise {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n getItem(row: any): Promise {\r\n const filters = {};\r\n for (const key of this.primaryKeys) {\r\n filters[key] = { value: row[key] };\r\n }\r\n const requestMeta = {\r\n pageMeta: { currentPage: 1 },\r\n filters,\r\n } as RequestMetadata;\r\n return this.getItems(requestMeta)\r\n .then(data => data.items[0]);\r\n }\r\n\r\n post(item: any, methodName): Promise {\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers\r\n };\r\n //console.log(item)\r\n this.url = environment.urlAddress + '/api/MainFilters/' + methodName;\r\n //https://www.positronx.io/angular-promises-example-manage-http-requests/\r\n return this.http\r\n .post(this.url, item)\r\n .toPromise()\r\n .then(function (res) {\r\n return res;\r\n }.bind(this))\r\n .catch(this.handleError.bind(this));\r\n }\r\n\r\n put(item: any, methodName): Promise {\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers\r\n };\r\n this.url = environment.urlAddress + '/api/MainFilters/' + methodName;\r\n\r\n return this.http\r\n .put(this.url, item)\r\n .toPromise()\r\n .then(function (res) {\r\n return res;\r\n }.bind(this))\r\n .catch(this.handleError.bind(this));\r\n }\r\n\r\n GetData_Service(controllerPlusMethod) {\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n this.url = environment.urlAddress + controllerPlusMethod;\r\n\r\n return this.http.post(this.url, options);\r\n }\r\n\r\n delete(row: any, methodName): Promise {\r\n let IDOrName = (row.split(','))[0];\r\n let LoggedinUserName = (row.split(','))[1];\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers\r\n };\r\n //// /api/SchedulerReport/CheckSchNameByFilterName?filterName=' + delCriteriaName\r\n //this.url = environment.urlAddress + '/api/MainFilters/' + methodName + '/' + IDOrName + '/' + LoggedinUserName;\r\n this.url = environment.urlAddress + '/api/MainFilters/' + methodName + '?id=' + IDOrName + '&LoggedinUserName=' + LoggedinUserName;\r\n\r\n return this.http\r\n .delete(this.url, options)\r\n .toPromise()\r\n .then(function (res) {\r\n return res;\r\n }.bind(this))\r\n .catch(this.handleError.bind(this));\r\n }\r\n\r\n getOptions(url: string, parentId: any): Promise {\r\n return this.http.get(url)\r\n .toPromise()\r\n .then((response: any) => {\r\n const result = response.filter((value: any) => {\r\n return value.parentId === parentId;\r\n });\r\n return new Promise((resolve) => {\r\n setTimeout(() => resolve(result), 1000);\r\n });\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: any) {\r\n let errorMessage = '';\r\n if (error.error instanceof ErrorEvent) {\r\n // client-side error\r\n errorMessage = `Error: ${error.error.message}`;\r\n } else {\r\n // server-side error\r\n errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\r\n }\r\n this.notifyService.sendMessage({ title: 'HttpErrorResponse', text: errorMessage, severity: 'error' });\r\n return Promise.reject(errorMessage);\r\n }\r\n\r\n getItemTest(requestMeta: RequestMetadata) {\r\n return null;\r\n }\r\n getItem_AsyncTest(requestMeta: RequestMetadata): Promise {\r\n return null;\r\n }\r\n ////set curr config from DB and load on table\r\n //setConfigFromDB(row: MAINFILTER) {\r\n\r\n // this.mainFilter = row;\r\n\r\n // //Call ID, Device, ID and Event ID\r\n // this.Rows = '';\r\n\r\n // let commonValObj = { \"VQuad_Location\": this.mainFilter.VQuad_Location, \"VQuad_DeviceID\": this.mainFilter.VQuad_PhoneID, \"VQuad_EventID\": this.mainFilter.VQuad_CallID };\r\n // for (const key in commonValObj) {\r\n // if (commonValObj[key] != null) {\r\n // if (commonValObj[key].length > 0) {\r\n // let commonValList = commonValObj[key].split(';');\r\n\r\n // commonValList.forEach((eachCommonVal) => {\r\n // this.ReloadSelMultiCriteria(eachCommonVal);\r\n // this.operAndCritList.forEach((eachOperAndCrit, i) => {\r\n // let row = '{\"Column_Name\":\"' + GetMapColumnAliia(key, \"\", \"\") + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(eachOperAndCrit.oper))[1] + '\",\"Value\":\"' + eachOperAndCrit.critVal + '\",\"AndOr\":\"OR\"}';\r\n // this.Rows += row + ',';\r\n // });\r\n // });\r\n // }\r\n // }\r\n // }\r\n\r\n\r\n // //Main results and params\r\n // let rangeListObj = {\r\n // \"0|PESQ_LQ\": this.mainFilter.PESQ_LQ_Range, \"1|POLQA_Score\": this.mainFilter.POLQA_Score_Range,\r\n // \"2|RTD\": this.mainFilter.RTD_Range, \"2|OWD\": this.mainFilter.OWD_Range, \"2|SWR\": this.mainFilter.SNR_Range, \"2|PDD\": this.mainFilter.PDD_Range,\r\n // \"17|MOS_CQ\": this.mainFilter.MOSCQ_Range\r\n // };\r\n // for (const key in rangeListObj) {\r\n // if (rangeListObj[key] != null) {\r\n // if (rangeListObj[key].length > 0) {\r\n // let rsltAndParamList = key.split('|');\r\n // let rsltDetails = this.results.find(x => x.id === parseInt(rsltAndParamList[0]));\r\n\r\n // let currRangeList = rangeListObj[key].split('|');\r\n // let andOrVal = \"AND\";\r\n // if (currRangeList.length == 3)\r\n // andOrVal = currRangeList[2];\r\n // let row = '{\"Column_OrigName\":\"' + rsltAndParamList[1] + '\",\"NumOrRatingOrStr\":\"1\",\"Result_Type\":\"' + rsltDetails.name + '\",\"Column_Name\":\"' + GetMapColumnAliia(rsltAndParamList[1], \"\", \"\") + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(FilterOperator.IN_RANGE))[1] + '\",\"Value\":\"' + currRangeList[0] + '\",\"Value_To\":\"' + currRangeList[1] + '\",\"AndOr\":\"' + andOrVal + '\"}';\r\n // this.Rows += row + ',';\r\n // }\r\n // }\r\n // };\r\n\r\n // let ratingListObj = { \"0|Rating\": this.mainFilter.PESQ_LQ_Rating, \"2|RTD_Rating\": this.mainFilter.RTD_Rating, \"17|VBA_Rating\": this.mainFilter.MOSCQ_Rating };\r\n // for (const key in ratingListObj) {\r\n // if (rangeListObj[key] != null) {\r\n // if (ratingListObj[key].length > 0) {\r\n // let rsltAndParamList = key.split('|');\r\n // let rsltDetails = this.results.find(x => x.id === parseInt(rsltAndParamList[0]));\r\n\r\n // let currRatingList = ratingListObj[key].split('|');\r\n // let ratingOper = \"\";\r\n // let ratingVal = \"\";\r\n // let andOrRange = 3;\r\n // if (rsltAndParamList[0] == \"0\") {\r\n // ratingOper = this.selRatingParamOperators[parseInt(currRatingList[0])].value;//Rating operator\r\n // ratingVal = this.PESQRating.find(x => x.id == parseInt(currRatingList[1])).name;//value dropdown\r\n // }\r\n // else if (rsltAndParamList[0] == \"2\") {\r\n // ratingOper = this.selRatingParamOperators[parseInt(currRatingList[0])].value;//Rating operator\r\n // ratingVal = this.RTDRating.find(x => x.id == parseInt(currRatingList[1])).name;//value dropdown\r\n // }\r\n // if (rsltAndParamList[0] == \"17\") {\r\n // ratingOper = this.selRatingParamOperators[2].value;\r\n // ratingVal = this.MOSRating.find(x => x.id == parseInt(currRatingList[0])).name;//value dropdown\r\n // andOrRange = 2;\r\n // }\r\n // let andOrVal = \"AND\";\r\n // if (currRatingList.length == andOrRange)\r\n // andOrVal = currRatingList[2];\r\n // let row = '{\"Column_OrigName\":\"' + rsltAndParamList[1] + '\",\"NumOrRatingOrStr\":\"2\",\"Result_Type\":\"' + rsltDetails.name + '\",\"Column_Name\":\"' + GetMapColumnAliia(rsltAndParamList[1], \"\", \"\") + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(ratingOper))[1] + '\",\"Value\":\"' + ratingVal + '\",\"Value_To\":\"--\",\"AndOr\":\"' + andOrVal + '\"}';\r\n // this.Rows += row + ',';\r\n // }\r\n // }\r\n // };\r\n\r\n // //0, 1\r\n // //VQT@|VQTData|Asymmetric_disturbance|=|1|Asymmetric disturbance$Or|VQTData|duration_hangover|LIKE|2|Duration Hangover(s)$ - params after @ and delimited $\r\n // //|VQTData|Asymmetric_disturbance|=|1|Asymmetric disturbance$ - AND/OR | Table name | Parameter name | operator(=/>/ {\r\n // if (eachRsltCrit != null) {\r\n // if (eachRsltCrit.length > 0) {\r\n // let allParamsCrit = (eachRsltCrit.split('@'))[1];\r\n // let colsList = allParamsCrit.substring(0, allParamsCrit.length - 1).split('$');// remove last $\r\n // colsList.forEach(eachCol => {\r\n // let colDetailsList = eachCol.split('|');\r\n // let rsltDetails = this.results.find(x => x.id === i);//0, 1\r\n // let oper = FilterOperator.EQUALS;\r\n // let operType = 1;\r\n // if (isNaN(Number(colDetailsList[3]))) {\r\n // if (colDetailsList[3] == \">\")\r\n // oper = FilterOperator.GREATER_THAN;\r\n // else if (colDetailsList[3] == \"<\")\r\n // oper = FilterOperator.LESS_THAN;\r\n // else if (colDetailsList[3] == \"LIKE\")\r\n // oper = FilterOperator.CONTAINS;\r\n // }\r\n // else {\r\n // let numericOrNot = this.getCurrColType(rsltDetails.alias, rsltDetails.parentId, colDetailsList[2]);\r\n // operType = numericOrNot == true ? 1 : 3;\r\n // oper = numericOrNot == true ? this.rangeOperators.find(x => x.value == parseInt(colDetailsList[3])) : this.stringOperators.find(x => x.value == parseInt(colDetailsList[3]));\r\n // }\r\n\r\n // let row = '{\"Column_OrigName\":\"' + colDetailsList[5] + '\",\"NumOrRatingOrStr\":\"' + operType + '\",\"Result_Type\":\"' + rsltDetails.name + '\",\"Column_Name\":\"' + colDetailsList[5] + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(oper))[1] + '\",\"Value\":\"' + colDetailsList[4] + '\",\"Value_To\":\"--\",\"AndOr\":\"' + colDetailsList[0] + '\"}';\r\n // this.Rows += row + ',';\r\n // });\r\n // }\r\n // }\r\n // });\r\n\r\n // //3-11\r\n // //;;;;;;;; - nettest\r\n // //AND$1:333@9^OR$9:999@1;AND$2:777@2;AND$3:444@2;;;;;;AND$6:766@2 - delimited by ; for each nettest rslt type\r\n\r\n // //AND$1:333@9^OR$9:999@1 - delimited by ^ for each param under curr rslt\r\n // //AND$1:333@9 - AND/OR $ 1(Low) : 333(High) @ 9(param index)\r\n // //; as delimiter between rslt types\r\n\r\n // let netAndMobList = [this.mainFilter.NetTest, this.mainFilter.Mobile];\r\n // netAndMobList.forEach((eachRsltCrit, i) => {\r\n // if (eachRsltCrit != null) {\r\n // if (eachRsltCrit.length > 0) {\r\n // let currRsltList = eachRsltCrit.split(';');\r\n // currRsltList.forEach((eachsubrslt, i) => {\r\n // if (eachsubrslt.length > 0) {\r\n // let rsltDetails = this.results.find(x => x.id === i);\r\n // let colsList = eachsubrslt.replace(/^OR/g, '&OR').replace(/^AND/g, '&AND').split('&');//To avoid confict of param split with doesnot contain operator\r\n\r\n // colsList.forEach(eachCol => {\r\n // let andOrCritList = (eachCol.split('@'))[0].split('$');\r\n // let colIndx = ',\"Column_Index\":\"' + (eachCol.split('@'))[1] + '\"';\r\n\r\n // let numericOrNot = this.getCurrColType(rsltDetails.alias, rsltDetails.parentId, (eachCol.split('@'))[1]);\r\n // if (numericOrNot == false) {\r\n\r\n // this.ReloadSelMultiCriteria(andOrCritList[1], '~');\r\n // this.operAndCritList.forEach((eachOperAndCrit, i) => {\r\n // let row = '{\"Column_OrigName\":\"' + this.colNameTbl + '\",\"NumOrRatingOrStr\":\"3\"' + colIndx + ',\"Result_Type\":\"' + rsltDetails.name + '\",\"Column_Name\":\"' + this.colNameTbl + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(eachOperAndCrit.oper))[1] + '\",\"Value\":\"' + eachOperAndCrit.critVal + '\",\"AndOr\":\"OR\"}';\r\n // this.Rows += row + ',';\r\n // });\r\n // }\r\n // else {\r\n // let row = '{\"Column_OrigName\":\"' + this.colNameTbl + '\",\"NumOrRatingOrStr\":\"1\"' + colIndx + ',\"Result_Type\":\"' + rsltDetails.name + '\",\"Column_Name\":\"' + this.colNameTbl + '\",\"Operator\":\"' + (this.dataFilter.getOperatorType(FilterOperator.IN_RANGE))[1] + '\",\"Value\":\"' + (andOrCritList[1].split(':'))[0] + '\",\"Value_To\":\"' + (andOrCritList[1].split(':'))[1] + '\",\"AndOr\":\"' + andOrCritList[0] + '\"}';\r\n // this.Rows += row + ',';\r\n // }\r\n // });\r\n // }\r\n // });\r\n // }\r\n // }\r\n // });\r\n // this.colNameTbl = \"\";\r\n\r\n // //if (this.Rows.length > 0)\r\n // // this.Rows = '[' + this.Rows.substring(0, this.Rows.length - 1) + ']';\r\n\r\n // //this.setRsltType(this.Rows);//, 1);\r\n //}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { DataSource, RequestMetadata, PagedResult, DataType } from 'lib/ng-crud-table';\r\nimport { environment } from 'src/environments/environment';\r\nimport { NotifyService } from 'lib/notify';\r\nimport { request } from 'http';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GoogleMapsService implements DataSource {\r\n url: string = 'assets/ng-crud-table/players.json';\r\n\r\n primaryKeys: string[] = ['id'];\r\n\r\n\r\n constructor(private http: HttpClient, private notifyService: NotifyService) { }\r\n\r\n //Clear All Filters - IMP\r\n clearAllFilters() {\r\n\r\n }\r\n\r\n getConfigsList(type: number, MapID: string) {\r\n let params = new HttpParams()\r\n .set('type', type.toString())\r\n .set('MapID', MapID);\r\n\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers,\r\n params: params\r\n };\r\n\r\n this.url = environment.urlAddress + '/api/GoogleMaps/GetGMapsData';\r\n return this.http.get(this.url, options);\r\n }\r\n getRegConfigsList(type: number, CriteriaName: string, RegNames: string) {\r\n debugger;\r\n let params = new HttpParams()\r\n .set('type', type.toString())\r\n .set('criteriaName', CriteriaName)\r\n .set('RegNames', RegNames);\r\n\r\n \r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers,\r\n params: params\r\n };\r\n\r\n this.url = environment.urlAddress + '/api/GoogleMaps/GetMapRegion';//GetGMapsRegionData';\r\n return this.http.post(this.url, {}, options);\r\n }\r\n\r\n //https://stackoverflow.com/questions/45480311/make-a-service-variable-global-in-angular-2\r\n Rows:string =\"\";\r\n //Latest maps config rows set here\r\n setRows(data) {\r\n this.Rows = data;\r\n }\r\n\r\n async getItems(requestMeta: RequestMetadata): Promise {\r\n //console.log(requestMeta.pageMeta)\r\n const currentPage = requestMeta.pageMeta.currentPage;\r\n const perPage = requestMeta.pageMeta.perPage;\r\n const pageCount = requestMeta.pageMeta.pageCount;\r\n const data = this.Rows;\r\n const rows: any[] = JSON.parse(data) as any[] || [];\r\n const totalCount = rows.length;\r\n const result = {\r\n items: rows,\r\n _meta: {\r\n totalCount,//number of records totally\r\n pageCount,//number of records in current page\r\n currentPage,//page number selected\r\n perPage//selected option for number of records to be actually displayed\r\n }\r\n } as PagedResult;\r\n return result;\r\n }\r\n\r\n getItemsByID(requestMeta: RequestMetadata): Promise {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n getItem(row: any): Promise {\r\n const filters = {};\r\n for (const key of this.primaryKeys) {\r\n filters[key] = { value: row[key] };\r\n }\r\n const requestMeta = {\r\n pageMeta: { currentPage: 1 },\r\n filters,\r\n } as RequestMetadata;\r\n return this.getItems(requestMeta)\r\n .then(data => data.items[0]);\r\n }\r\n\r\n post(item: any, methodName): Promise {\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers\r\n }; \r\n //console.log(item)\r\n this.url = environment.urlAddress + '/api/GoogleMaps/' + methodName;\r\n //https://www.positronx.io/angular-promises-example-manage-http-requests/\r\n return this.http\r\n .post(this.url, item)\r\n .toPromise()\r\n .then(function (res) {\r\n return res;\r\n }.bind(this))\r\n .catch(this.handleError.bind(this));\r\n }\r\n\r\n put(item: any, methodName): Promise {\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers\r\n };\r\n this.url = environment.urlAddress + '/api/GoogleMaps/' + methodName;\r\n\r\n return this.http\r\n .put(this.url, item)\r\n .toPromise()\r\n .then(function (res) {\r\n return res;\r\n }.bind(this))\r\n .catch(this.handleError.bind(this));\r\n }\r\n\r\n delete(IDOrName: any, methodName): Promise {\r\n debugger;\r\n let params = new HttpParams()\r\n .set('IDOrName', IDOrName);\r\n\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers,\r\n params: params\r\n }; \r\n this.url = environment.urlAddress + '/api/GoogleMaps/' + methodName; //+ '/' + IDOrName;\r\n\r\n return this.http\r\n .delete(this.url, options)\r\n .toPromise()\r\n .then(function (res) {\r\n return res;\r\n }.bind(this))\r\n .catch(this.handleError.bind(this));\r\n }\r\n\r\n getOptions(url: string, parentId: any): Promise {\r\n return this.http.get(url)\r\n .toPromise()\r\n .then((response: any) => {\r\n const result = response.filter((value: any) => {\r\n return value.parentId === parentId;\r\n });\r\n return new Promise((resolve) => {\r\n setTimeout(() => resolve(result), 1000);\r\n });\r\n })\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError(error: any) {\r\n let errorMessage = '';\r\n if (error.error instanceof ErrorEvent) {\r\n // client-side error\r\n errorMessage = `Error: ${error.error.message}`;\r\n } else {\r\n // server-side error\r\n errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\r\n }\r\n this.notifyService.sendMessage({ title: 'HttpErrorResponse', text: errorMessage, severity: 'error' });\r\n return Promise.reject(errorMessage);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { VqtPoint, AudioDelayPoint, FaxBar } from '../../models/graphics/analysis';\r\nimport { Observable } from 'rxjs';\r\nimport 'rxjs/add/observable/forkJoin';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CommonFilter, GeneralFilter, NETTESTTYPES, MOBILEINFOTYPES } from 'src/app/shared/models/Common/common-filter';\r\nimport { CommonFilterService } from '../common-filter/common-filter.service';\r\nimport { formatDate, lastDateFunc, formatDBTZDateToLocalDate } from 'lib/common/utils';\r\nimport { DemoService } from '../../demo.service';\r\nimport { DatePipe } from '@angular/common'\r\nimport { DataFilter } from 'lib/ng-data-table/base';\r\nimport { debug } from 'util';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AnalysisService {\r\n apiUrl = environment.urlAddress;\r\n private commonFilter: CommonFilter;\r\n private generalFilterArray: Array;\r\n private dataFilter: DataFilter;\r\n\r\n constructor(private http: HttpClient, private service: DemoService, private commonFilterService: CommonFilterService, public datepipe: DatePipe) {\r\n this.commonFilter = new CommonFilter();\r\n this.generalFilterArray = [];\r\n this.dataFilter = new DataFilter();\r\n }\r\n\r\n //https://stackoverflow.com/questions/49596641/is-it-a-good-practice-using-observable-with-async-await\r\n //: Observable\r\n async getAnalysisList(delFilterColName, AllGeneralFilter, filtersWithEventID, filters, TimestampType, columnName) {\r\n //let params = new HttpParams()\r\n // .set('TSType', TSType)\r\n // .set('TSBetween', TSBetween);\r\n this.generalFilterArray = [];\r\n this.commonFilter.TimestampType = TimestampType;\r\n\r\n let dbTz = -500;\r\n //this.commonFilterService.DB_TZ.subscribe(res => {\r\n // dbTz = res;\r\n //});\r\n //if (dbTz == -500) {//query var col table\r\n // await this.service.getDBTimezoneDiff('VquadData').then(res => {\r\n // this.commonFilterService.setDBTZFromVarCol(res);\r\n // dbTz = res;\r\n // });\r\n //}\r\n ////console.log(dbTz)\r\n\r\n let MainFilterTZ = 0;\r\n this.commonFilterService.mainFilterID.subscribe(res => this.commonFilter.MainFilterID = res);// set mainfilter ID\r\n this.commonFilterService.mfTZ.subscribe(res => MainFilterTZ = res);\r\n let dbAndBrHrs = -500;\r\n //if (this.commonFilter.MainFilterID != 0) {\r\n this.commonFilterService.DB_BRDiff.subscribe(res => {\r\n dbAndBrHrs = res;\r\n });\r\n if (dbAndBrHrs == -500) {//query var col table\r\n await this.service.getDBAndBrowserDiffHours('VquadData').then(res => {\r\n this.commonFilterService.setDBAndBrowserHrsDiff(res);\r\n dbAndBrHrs = res;\r\n });\r\n }\r\n //}\r\n\r\n let dates = formatDate(new Date(Date.now() + -1 * 600 * 1000), dbTz, dbAndBrHrs) + \"^\" + formatDate(new Date(), dbTz, dbAndBrHrs);//\"06/02/2019 11:00:00^06/02/2019 20:00:00\"; \r\n this.commonFilterService.TSBetween.subscribe(res => dates = res);//latest dates selected is set here from service\r\n //Added to set proper dates here based on range selection\r\n this.commonFilterService.TSRangeFilter.subscribe(res => { if (res.RangeType !== \"custom\") { dates = lastDateFunc(res.RangeType, dbTz, dbAndBrHrs) } });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n //Save current date selection in service to affected when switched to other screens from here - IMP\r\n this.commonFilterService.setDatesProperties(dates);\r\n\r\n this.generalFilterArray.push({ ColumnName: columnName, Operator: 6, Value: (dates.split('^'))[0], ValueTo: (dates.split('^'))[1],LoggedInUserName:null });\r\n this.generalFilterArray.push({ ColumnName: columnName, Operator: 13, Value: null, ValueTo: null, LoggedInUserName: null });\r\n //console.log(this.generalFilterArray)\r\n let genArr = [];\r\n let genArrCnt = 0;\r\n\r\n if (delFilterColName != 'clearAllFilters') {\r\n genArr = AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"].toUpperCase() != columnName.toUpperCase() && (el[\"RsltType\"] == 'pesq' || el[\"RsltType\"] == 'polqa' || el[\"RsltType\"] == 'audio-delay' || el[\"RsltType\"] == 'fax' || el[\"RsltType\"] == '');\r\n });\r\n\r\n this.commonFilterService.GeneralFilterDF.subscribe(res => {\r\n //console.log(res)\r\n filters = res;\r\n });\r\n }\r\n\r\n if (typeof filtersWithEventID == 'object' && Object.keys(filtersWithEventID).length > 0) {\r\n this.dataFilter.filters = filtersWithEventID;\r\n //console.log(filtersWithEventID)\r\n genArr = genArr.filter(el => {\r\n return el[\"ColumnName\"] != 'VQuad_CallID';\r\n });\r\n let generalFilterArrayAll = this.dataFilter.getProcessedFiltersArray(\"ALL\");\r\n genArr = [...genArr, ...generalFilterArrayAll];\r\n\r\n for (const key in filters) {\r\n if (key == 'VQuad_CallID')\r\n delete filters[key];\r\n }\r\n let generalFilterArrayNew = this.dataFilter.getProcessedFilters(\"\");\r\n filters = { ...filters, ...generalFilterArrayNew };\r\n }\r\n //console.log(genArr)\r\n //console.log(filters)\r\n\r\n if (delFilterColName != '' && delFilterColName != 'clearAllFilters') {\r\n //cleared = 1;\r\n genArr = genArr.filter(el => {\r\n return el[\"ColumnName\"] != delFilterColName;\r\n });\r\n\r\n for (const key in filters) {\r\n if (key == delFilterColName)\r\n delete filters[key];\r\n }\r\n }\r\n\r\n this.generalFilterArray.push(...genArr);\r\n genArrCnt = genArr.length;\r\n\r\n if (delFilterColName != 'clearAllFilters') {\r\n let newFilters = {};\r\n for (const key in filters) {\r\n if (filters[key].rsltType == 'pesq' || filters[key].rsltType == 'polqa' || filters[key].rsltType == 'audio-delay' || filters[key].rsltType == 'fax' || filters[key].rsltType == '') {\r\n let value = filters[key].value;\r\n let matchMode = filters[key].matchMode;\r\n let valueTo = filters[key].valueTo;\r\n let type = filters[key].type;\r\n let rsltType = filters[key].rsltType;\r\n let title = filters[key].title;\r\n newFilters[key] = { value, matchMode, valueTo, type, rsltType, title };\r\n }\r\n }\r\n //console.log(newFilters)\r\n this.commonFilterService.setGeneralFilterData(newFilters);\r\n }\r\n\r\n let body = JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.generalFilterArray });\r\n\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers\r\n };\r\n\r\n const response0 = await this.http.post(this.apiUrl + '/api/AnalysisGraphs/GetDateFormatData', body, options).toPromise();\r\n //console.log(response0)\r\n\r\n const response1 = await this.http.post(this.apiUrl + '/api/AnalysisGraphs/GetVQTLineData', body, options).toPromise();\r\n //.then(function (res) { const totalCount: number = res || 0; return totalCount; }.bind(this))\r\n //.catch(this.handleError.bind(this));\r\n //console.log(response1)\r\n this.generalFilterArray = [];\r\n if (this.commonFilter.TimestampType == 2) {\r\n columnName = \"VQuad_Timestamp\";\r\n }\r\n\r\n this.generalFilterArray.push({ ColumnName: columnName, Operator: 6, Value: (dates.split('^'))[0], ValueTo: (dates.split('^'))[1],LoggedInUserName:null });\r\n this.generalFilterArray.push({ ColumnName: columnName, Operator: 13, Value: null, ValueTo: null, LoggedInUserName: null });\r\n //console.log(this.generalFilterArray)\r\n\r\n genArr = [];\r\n genArrCnt = 0;\r\n\r\n if (delFilterColName != 'clearAllFilters') {\r\n genArr = AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"].toUpperCase() != columnName.toUpperCase() && (el[\"RsltType\"] == 'pesq' || el[\"RsltType\"] == 'polqa' || el[\"RsltType\"] == 'audio-delay' || el[\"RsltType\"] == 'fax' || el[\"RsltType\"] == '');\r\n });\r\n\r\n this.commonFilterService.GeneralFilterDF.subscribe(res => {\r\n filters = res;\r\n });\r\n }\r\n\r\n if (typeof filtersWithEventID == 'object' && Object.keys(filtersWithEventID).length > 0) {\r\n this.dataFilter.filters = filtersWithEventID;\r\n //console.log(filtersWithEventID)\r\n genArr = genArr.filter(el => {\r\n return el[\"ColumnName\"] != 'VQuad_CallID';\r\n });\r\n let generalFilterArrayAll = this.dataFilter.getProcessedFiltersArray(\"ALL\");\r\n genArr = [...genArr, ...generalFilterArrayAll];\r\n\r\n for (const key in filters) {\r\n if (key == 'VQuad_CallID')\r\n delete filters[key];\r\n }\r\n let generalFilterArrayNew = this.dataFilter.getProcessedFilters(\"\");\r\n filters = { ...filters, ...generalFilterArrayNew };\r\n }\r\n //console.log(genArr)\r\n //console.log(filters)\r\n\r\n if (delFilterColName != '' && delFilterColName != 'clearAllFilters') {\r\n //cleared = 1;\r\n genArr = genArr.filter(el => {\r\n return el[\"ColumnName\"] != delFilterColName;\r\n });\r\n\r\n for (const key in filters) {\r\n if (key == delFilterColName)\r\n delete filters[key];\r\n }\r\n }\r\n\r\n this.generalFilterArray.push(...genArr);\r\n genArrCnt = genArr.length;\r\n\r\n if (delFilterColName != 'clearAllFilters') {\r\n let newFilters = {};\r\n for (const key in filters) {\r\n if (filters[key].rsltType == 'pesq' || filters[key].rsltType == 'polqa' || filters[key].rsltType == 'audio-delay' || filters[key].rsltType == 'fax' || filters[key].rsltType == '') {\r\n let value = filters[key].value;\r\n let matchMode = filters[key].matchMode;\r\n let valueTo = filters[key].valueTo;\r\n let type = filters[key].type;\r\n let rsltType = filters[key].rsltType;\r\n let title = filters[key].title;\r\n newFilters[key] = { value, matchMode, valueTo, type, rsltType, title };\r\n }\r\n }\r\n //console.log(newFilters)\r\n this.commonFilterService.setGeneralFilterData(newFilters);\r\n }\r\n\r\n body = JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.generalFilterArray });\r\n //console.log(this.generalFilterArray);\r\n const response2 = await this.http.post(this.apiUrl + '/api/AnalysisGraphs/GetAudioDelayLineData', body, options).toPromise();\r\n //console.log(response2)\r\n const response3 = await this.http.post(this.apiUrl + '/api/AnalysisGraphs/GetFAXBarData', body, options).toPromise();\r\n //console.log(response3)\r\n //return Observable.forkJoin([response1, response2, response3]);\r\n\r\n let timeFormat = 'HH:mm:ss';\r\n let colonCnt = response1[0].VQuadNewTS.split(\":\").length - 1;\r\n if (colonCnt == 1)\r\n timeFormat = 'HH:mm';\r\n else if (colonCnt == 0)\r\n timeFormat = 'HH:mm';//'HH'\r\n\r\n let eiphenCnt = response1[0].VQuadNewTS.split(\"-\").length - 1;\r\n\r\n //console.log(this.datepipe.transform(new Date(formatDBTZDateToLocalDate('11-25-2022 13:14:15', dbTz, dbAndBrHrs, MainFilterTZ)), 'MM/dd/yyyy ' + timeFormat))\r\n let newResponse1 = response1.map(x => ({\r\n VQuadNewTS: ((x.VQuadNewTS.indexOf('-') == -1 && x.VQuadNewTS.indexOf(':') == -1) || eiphenCnt == 1) ? x.VQuadNewTS.replace(/\\-/g, '/') : this.datepipe.transform(new Date(formatDBTZDateToLocalDate(x.VQuadNewTS.replace(/\\-/g, '/'), dbTz, dbAndBrHrs, MainFilterTZ)), 'MM/dd/yyyy ' + timeFormat), VQuadNewTSOrig: x.VQuadNewTSOrig, ID: x.ID, PESQ_Score: x.PESQ_Score,\r\n PESQ_LQ: x.PESQ_LQ, PESQ_MOS: x.PESQ_MOS,\r\n PESQ_WB: x.PESQ_WB, POLQA_Score: x.POLQA_Score, POLQA_v3: x.POLQA_v3\r\n }));\r\n //console.log(newResponse1)\r\n\r\n timeFormat = 'HH:mm:ss';\r\n //https://stackoverflow.com/questions/881085/count-the-number-of-occurrences-of-a-character-in-a-string-in-javascript\r\n colonCnt = response2[0].VQuadNewTS.split(\":\").length - 1;\r\n if (colonCnt == 1)\r\n timeFormat = 'HH:mm';\r\n else if (colonCnt == 0)\r\n timeFormat = 'HH:mm';//'HH'\r\n\r\n eiphenCnt = response2[0].VQuadNewTS.split(\"-\").length - 1;\r\n let newResponse2 = response2.map(x => ({\r\n VQuadNewTS: ((x.VQuadNewTS.indexOf('-') == -1 && x.VQuadNewTS.indexOf(':') == -1) || eiphenCnt == 1) ? x.VQuadNewTS.replace(/\\-/g, '/') : this.datepipe.transform(new Date(formatDBTZDateToLocalDate(x.VQuadNewTS.replace(/\\-/g, '/'), dbTz, dbAndBrHrs, MainFilterTZ)), 'MM/dd/yyyy ' + timeFormat), VQuadNewTSOrig: x.VQuadNewTSOrig, ID: x.ID, RTD: x.RTD,\r\n OWD: x.OWD, PDD: x.PDD, SNR: x.SNR\r\n }));\r\n //console.log(newResponse2)\r\n\r\n timeFormat = 'HH:mm:ss';\r\n colonCnt = response3[0].VQuadNewTS.split(\":\").length - 1;\r\n if (colonCnt == 1)\r\n timeFormat = 'HH:mm';\r\n else if (colonCnt == 0)\r\n timeFormat = 'HH:mm';//'HH'\r\n\r\n eiphenCnt = response3[0].VQuadNewTS.split(\"-\").length - 1;\r\n let newResponse3 = response3.map(x => ({\r\n VQuadNewTS: ((x.VQuadNewTS.indexOf('-') == -1 && x.VQuadNewTS.indexOf(':') == -1) || eiphenCnt == 1) ? x.VQuadNewTS.replace(/\\-/g, '/') : this.datepipe.transform(new Date(formatDBTZDateToLocalDate(x.VQuadNewTS.replace(/\\-/g, '/'), dbTz, dbAndBrHrs, MainFilterTZ)), 'MM/dd/yyyy ' + timeFormat), ID: x.ID, SENDFAXPASSED: x.SENDFAXPASSED,\r\n SENDFAXFAILED: x.SENDFAXFAILED, RECEFAXPASSED: x.RECEFAXPASSED, RECEFAXFAILED: x.RECEFAXFAILED\r\n }));\r\n //console.log(newResponse3)\r\n return await Promise.all([response0, newResponse1, newResponse2, newResponse3, genArrCnt]);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { CallProcess } from '../../models/graphics/call-process';\r\nimport { Observable } from 'rxjs';\r\nimport 'rxjs/add/observable/forkJoin';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CommonFilter, GeneralFilter, NETTESTTYPES, MOBILEINFOTYPES } from 'src/app/shared/models/Common/common-filter';\r\nimport { CommonFilterService } from '../common-filter/common-filter.service';\r\nimport { formatDate, lastDateFunc, formatDBTZDateToLocalDate } from 'lib/common/utils';\r\nimport { DemoService } from '../../demo.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DataFilter } from 'lib/ng-data-table/base';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CallProcessService {\r\n\r\n apiUrl = environment.urlAddress;\r\n private commonFilter: CommonFilter;\r\n private generalFilterArray: Array;\r\n private dataFilter: DataFilter;\r\n\r\n constructor(private http: HttpClient, private service: DemoService, private commonFilterService: CommonFilterService, public datepipe: DatePipe) {\r\n this.commonFilter = new CommonFilter();\r\n this.generalFilterArray = [];\r\n this.dataFilter = new DataFilter();\r\n }\r\n\r\n async getCallProcessesList(delFilterColName, AllGeneralFilter, filtersWithEventID, filters, TimestampType, columnName) {\r\n \r\n //let params = new HttpParams()\r\n // .set('TSType', TSType)\r\n // .set('TSBetween', TSBetween);\r\n this.generalFilterArray = [];\r\n this.commonFilter.TimestampType = TimestampType;\r\n\r\n let dbTz = -500;\r\n //this.commonFilterService.DB_TZ.subscribe(res => {\r\n // dbTz = res;\r\n //});\r\n //if (dbTz == -500) {//query var col table\r\n // await this.service.getDBTimezoneDiff('VquadData').then(res => {\r\n // this.commonFilterService.setDBTZFromVarCol(res);\r\n // dbTz = res;\r\n // });\r\n //}\r\n ////console.log(dbTz)\r\n\r\n let MainFilterTZ = 0;\r\n this.commonFilterService.mainFilterID.subscribe(res => this.commonFilter.MainFilterID = res);// set mainfilter ID\r\n this.commonFilterService.mfTZ.subscribe(res => MainFilterTZ = res);\r\n //console.log(this.commonFilter.MainFilterID)\r\n\r\n let dbAndBrHrs = -500;\r\n //if (this.commonFilter.MainFilterID != 0) {\r\n this.commonFilterService.DB_BRDiff.subscribe(res => {\r\n dbAndBrHrs = res;\r\n });\r\n if (dbAndBrHrs == -500) {//query var col table\r\n await this.service.getDBAndBrowserDiffHours('VquadData').then(res => {\r\n this.commonFilterService.setDBAndBrowserHrsDiff(res);\r\n dbAndBrHrs = res;\r\n });\r\n }\r\n //}\r\n let dates = formatDate(new Date(Date.now() + -1 * 600 * 1000), dbTz, dbAndBrHrs) + \"^\" + formatDate(new Date(), dbTz, dbAndBrHrs);//\"06/02/2019 11:00:00^06/02/2019 20:00:00\"; \r\n\r\n this.commonFilterService.TSBetween.subscribe(res => dates = res);//latest dates selected is set here from service\r\n //Added to set proper dates here based on range selection\r\n this.commonFilterService.TSRangeFilter.subscribe(res => { if (res.RangeType !== \"custom\") { dates = lastDateFunc(res.RangeType, dbTz, dbAndBrHrs) } });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n //Save current date selection in service to affected when switched to other screens from here - IMP\r\n this.commonFilterService.setDatesProperties(dates);\r\n\r\n //(dates.split('^'))[0], columnName, FilterOperator.IN_RANGE, (dates.split('^'))[1], DataType.Date, rsltType, columnTitle\r\n this.generalFilterArray.push({ ColumnName: columnName, Operator: 6, Value: (dates.split('^'))[0], ValueTo: (dates.split('^'))[1],LoggedInUserName:null });\r\n this.generalFilterArray.push({ ColumnName: columnName, Operator: 13, Value: null, ValueTo: null,LoggedInUserName:null });\r\n //console.log(this.generalFilterArray)\r\n let genArr = [];\r\n let genArrCnt = 0;\r\n\r\n\r\n //https://debugmode.net/2019/10/24/when-to-use-the-subscribe-method-or-async-pipe-in-angular/ - IMP\r\n //[{\r\n // \"ColumnName\": \"VQuad_CallID\",\r\n // \"Operator\": 10,\r\n // \"Value\": \"fx\",\r\n // \"ValueTo\": null,\r\n // \"LoggedInUserName\": \"admin\",\r\n // \"RsltType\": \"\",\r\n // \"MainFilterName\": \"\"\r\n //}]\r\n if (delFilterColName != 'clearAllFilters') {\r\n genArr = AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"].toUpperCase() != columnName.toUpperCase() && (el[\"RsltType\"] == 'call-events' || el[\"RsltType\"] == '');\r\n });\r\n\r\n this.commonFilterService.GeneralFilterDF.subscribe(res => {\r\n //console.log(res)\r\n filters = res;\r\n });\r\n }\r\n\r\n //{\r\n //\"value\": \"fx\",\r\n // \"matchMode\": \"startsWith\",\r\n // \"valueTo\": null,\r\n // \"type\": \"string\",\r\n // \"rsltType\": \"\",\r\n // \"title\": \"VQuad Event ID\"\r\n //}\r\n if (typeof filtersWithEventID == 'object' && Object.keys(filtersWithEventID).length > 0) {//https://www.becomebetterprogrammer.com/how-to-check-for-an-empty-object-in-typescript-and-javascript/\r\n this.dataFilter.filters = filtersWithEventID;\r\n //console.log(filtersWithEventID)\r\n genArr = genArr.filter(el => {\r\n return el[\"ColumnName\"] != 'VQuad_CallID';\r\n });\r\n let generalFilterArrayAll = this.dataFilter.getProcessedFiltersArray(\"ALL\");\r\n genArr = [...genArr, ...generalFilterArrayAll];\r\n\r\n for (const key in filters) {\r\n if (key == 'VQuad_CallID')\r\n delete filters[key];\r\n }\r\n let generalFilterArrayNew = this.dataFilter.getProcessedFilters(\"\");\r\n filters = { ...filters, ...generalFilterArrayNew };\r\n }\r\n //console.log(genArr)\r\n //console.log(filters)\r\n\r\n if (delFilterColName != '' && delFilterColName != 'clearAllFilters') {\r\n //cleared = 1;\r\n genArr = genArr.filter(el => {\r\n return el[\"ColumnName\"] != delFilterColName;\r\n });\r\n\r\n for (const key in filters) {\r\n if (key == delFilterColName)\r\n delete filters[key];\r\n }\r\n }\r\n\r\n //https://stackoverflow.com/questions/38092458/merge-two-object-arrays-with-angular-2-and-typescript\r\n this.generalFilterArray.push(...genArr);\r\n genArrCnt = genArr.length;\r\n\r\n if (delFilterColName != 'clearAllFilters') {\r\n let newFilters = {};\r\n for (const key in filters) {\r\n if (filters[key].rsltType == 'call-events' || filters[key].rsltType == '') {\r\n let value = filters[key].value;\r\n let matchMode = filters[key].matchMode;\r\n let valueTo = filters[key].valueTo;\r\n let type = filters[key].type;\r\n let rsltType = filters[key].rsltType;\r\n let title = filters[key].title;\r\n newFilters[key] = { value, matchMode, valueTo, type, rsltType, title };\r\n }\r\n }\r\n //console.log(newFilters)\r\n this.commonFilterService.setGeneralFilterData(newFilters);\r\n }\r\n\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers\r\n };\r\n\r\n this.generalFilterArray.push({ ColumnName: \"VQuad_CallID\", Operator: 10, Value: 'O', ValueTo: null, LoggedInUserName: null });\r\n \r\n //console.log(this.generalFilterArray)\r\n let body = JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.generalFilterArray });\r\n const response1 = await this.http.post(this.apiUrl + '/api/CallProcessGraphs/GetPlacingCallsData', body, options).toPromise();\r\n\r\n let timeFormat = 'HH:mm:ss';\r\n let colonCnt = response1[0].VQuadNewTS.split(\":\").length - 1;\r\n if (colonCnt == 1)\r\n timeFormat = 'HH:mm';\r\n else if (colonCnt == 0)\r\n timeFormat = 'HH:mm';//'HH'\r\n\r\n let eiphenCnt = response1[0].VQuadNewTS.split(\"-\").length - 1;\r\n let newResponse1 = response1.map(x => ({\r\n VQuadNewTS: ((x.VQuadNewTS.indexOf('-') == -1 && x.VQuadNewTS.indexOf(':') == -1) || eiphenCnt == 1) ? x.VQuadNewTS : this.datepipe.transform(new Date(formatDBTZDateToLocalDate(x.VQuadNewTS.replace(/\\-/g, '/'), dbTz, dbAndBrHrs, MainFilterTZ)), 'MM/dd/yyyy ' + timeFormat), ID: x.ID, SUCCESS: x.SUCCESS,\r\n FAILED: x.FAILED\r\n }));\r\n //console.log(newResponse1)\r\n\r\n this.generalFilterArray.pop();\r\n this.generalFilterArray.push({ ColumnName: \"VQuad_CallID\", Operator: 10, Value: 'I', ValueTo: null, LoggedInUserName: null });\r\n body = JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.generalFilterArray });\r\n const response2 = await this.http.post(this.apiUrl + '/api/CallProcessGraphs/GetIncomingCallsData', body, options).toPromise();\r\n timeFormat = 'HH:mm:ss';\r\n colonCnt = response2[0].VQuadNewTS.split(\":\").length - 1;\r\n if (colonCnt == 1)\r\n timeFormat = 'HH:mm';\r\n else if (colonCnt == 0)\r\n timeFormat = 'HH:mm';//'HH'\r\n eiphenCnt = response2[0].VQuadNewTS.split(\"-\").length - 1;\r\n let newResponse2 = response2.map(x => ({\r\n VQuadNewTS: ((x.VQuadNewTS.indexOf('-') == -1 && x.VQuadNewTS.indexOf(':') == -1) || eiphenCnt == 1) ? x.VQuadNewTS : this.datepipe.transform(new Date(formatDBTZDateToLocalDate(x.VQuadNewTS.replace(/\\-/g, '/'), dbTz, dbAndBrHrs, MainFilterTZ)), 'MM/dd/yyyy ' + timeFormat), ID: x.ID, SUCCESS: x.SUCCESS,\r\n FAILED: x.FAILED\r\n }));\r\n\r\n this.generalFilterArray.pop();\r\n this.generalFilterArray.push({ ColumnName: \"VQuad_CallID\", Operator: 10, Value: 'O', ValueTo: null, LoggedInUserName: null });\r\n body = JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.generalFilterArray });\r\n const response3 = await this.http.post(this.apiUrl + '/api/CallProcessGraphs/GetPlacingCallsDurationData', body, options).toPromise();\r\n //console.log(response3)\r\n timeFormat = 'HH:mm:ss';\r\n colonCnt = response3[0].VQuadNewTS.split(\":\").length - 1;\r\n if (colonCnt == 1)\r\n timeFormat = 'HH:mm';\r\n else if (colonCnt == 0)\r\n timeFormat = 'HH:mm';//'HH'\r\n eiphenCnt = response3[0].VQuadNewTS.split(\"-\").length - 1;\r\n let newResponse3 = response3.map(x => ({\r\n VQuadNewTS: ((x.VQuadNewTS.indexOf('-') == -1 && x.VQuadNewTS.indexOf(':') == -1) || eiphenCnt == 1) ? x.VQuadNewTS : this.datepipe.transform(new Date(formatDBTZDateToLocalDate(x.VQuadNewTS.replace(/\\-/g, '/'), dbTz, dbAndBrHrs, MainFilterTZ)), 'MM/dd/yyyy ' + timeFormat), ID: x.ID, ThirtySec: x.ThirtySec,\r\n TwoMin: x.TwoMin, TenMin: x.TenMin, ThirtyMin: x.ThirtyMin, MoreThirtyMin: x.MoreThirtyMin\r\n }));\r\n\r\n this.generalFilterArray.pop();\r\n this.generalFilterArray.push({ ColumnName: \"VQuad_CallID\", Operator: 10, Value: 'I', ValueTo: null, LoggedInUserName: null });\r\n body = JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.generalFilterArray });\r\n const response4 = await this.http.post(this.apiUrl + '/api/CallProcessGraphs/GetIncomingCallsDurationData', body, options).toPromise();\r\n timeFormat = 'HH:mm:ss';\r\n colonCnt = response4[0].VQuadNewTS.split(\":\").length - 1;\r\n if (colonCnt == 1)\r\n timeFormat = 'HH:mm';\r\n else if (colonCnt == 0)\r\n timeFormat = 'HH:mm';//'HH'\r\n eiphenCnt = response4[0].VQuadNewTS.split(\"-\").length - 1;\r\n let newResponse4 = response4.map(x => ({\r\n VQuadNewTS: ((x.VQuadNewTS.indexOf('-') == -1 && x.VQuadNewTS.indexOf(':') == -1) || eiphenCnt == 1) ? x.VQuadNewTS : this.datepipe.transform(new Date(formatDBTZDateToLocalDate(x.VQuadNewTS.replace(/\\-/g, '/'), dbTz, dbAndBrHrs, MainFilterTZ)), 'MM/dd/yyyy ' + timeFormat), ID: x.ID, ThirtySec: x.ThirtySec,\r\n TwoMin: x.TwoMin, TenMin: x.TenMin, ThirtyMin: x.ThirtyMin, MoreThirtyMin: x.MoreThirtyMin\r\n }));\r\n\r\n this.generalFilterArray.pop();\r\n body = JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.generalFilterArray });\r\n const response5 = await this.http.post(this.apiUrl + '/api/CallProcessGraphs/GetErrorEventsData', body, options).toPromise();\r\n //console.log(response5)\r\n timeFormat = 'HH:mm:ss';\r\n colonCnt = response5[0].VQuadNewTS.split(\":\").length - 1;\r\n if (colonCnt == 1)\r\n timeFormat = 'HH:mm';\r\n else if (colonCnt == 0)\r\n timeFormat = 'HH:mm';//'HH'\r\n eiphenCnt = response5[0].VQuadNewTS.split(\"-\").length - 1;\r\n let newResponse5 = response5.map(x => ({\r\n VQuadNewTS: ((x.VQuadNewTS.indexOf('-') == -1 && x.VQuadNewTS.indexOf(':') == -1) || eiphenCnt == 1) ? x.VQuadNewTS : this.datepipe.transform(new Date(formatDBTZDateToLocalDate(x.VQuadNewTS.replace(/\\-/g, '/'), dbTz, dbAndBrHrs, MainFilterTZ)), 'MM/dd/yyyy ' + timeFormat), ID: x.ID, ERRORSCOUNT: x.ERRORSCOUNT\r\n }));\r\n\r\n //return Observable.forkJoin([response1, response2, response3, response4, response5]);\r\n return await Promise.all([newResponse1, newResponse2, newResponse3, newResponse4, newResponse5, genArrCnt]);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { NetTest } from '../../models/graphics/nettest';\r\nimport { Observable } from 'rxjs';\r\nimport 'rxjs/add/observable/forkJoin';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CommonFilter, GeneralFilter, NETTESTTYPES, MOBILEINFOTYPES } from 'src/app/shared/models/Common/common-filter';\r\nimport { CommonFilterService } from '../common-filter/common-filter.service';\r\nimport { formatDate, lastDateFunc, formatDBTZDateToLocalDate } from 'lib/common/utils';\r\nimport { DemoService } from '../../demo.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { DataFilter } from 'lib/ng-data-table/base';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NettestService {\r\n\r\n apiUrl = environment.urlAddress;\r\n private commonFilter: CommonFilter;\r\n private generalFilterArray: Array;\r\n private dataFilter: DataFilter;\r\n\r\n constructor(private http: HttpClient, private service: DemoService, private commonFilterService: CommonFilterService, public datepipe: DatePipe) {\r\n this.commonFilter = new CommonFilter();\r\n this.generalFilterArray = [];\r\n this.dataFilter = new DataFilter();\r\n }\r\n\r\n async getNetTestList(delFilterColName, AllGeneralFilter, filtersWithEventID, filters, TimestampType, columnName) {\r\n //let params = new HttpParams()\r\n // .set('TSType', TSType)\r\n // .set('TSBetween', TSBetween);\r\n this.generalFilterArray = [];\r\n this.commonFilter.TimestampType = TimestampType;\r\n\r\n let dbTz = -500;\r\n //this.commonFilterService.DB_TZ.subscribe(res => {\r\n // dbTz = res;\r\n //});\r\n //if (dbTz == -500) {//query var col table\r\n // await this.service.getDBTimezoneDiff('VquadData').then(res => {\r\n // this.commonFilterService.setDBTZFromVarCol(res);\r\n // dbTz = res;\r\n // });\r\n //}\r\n ////console.log(dbTz)\r\n\r\n let MainFilterTZ = 0;\r\n this.commonFilterService.mainFilterID.subscribe(res => this.commonFilter.MainFilterID = res);// set mainfilter ID\r\n this.commonFilterService.mfTZ.subscribe(res => MainFilterTZ = res);\r\n\r\n let dbAndBrHrs = -500;\r\n //if (this.commonFilter.MainFilterID != 0) {\r\n this.commonFilterService.DB_BRDiff.subscribe(res => {\r\n dbAndBrHrs = res;\r\n });\r\n if (dbAndBrHrs == -500) {//query var col table\r\n await this.service.getDBAndBrowserDiffHours('VquadData').then(res => {\r\n this.commonFilterService.setDBAndBrowserHrsDiff(res);\r\n dbAndBrHrs = res;\r\n });\r\n }\r\n //}\r\n\r\n let dates = formatDate(new Date(Date.now() + -1 * 600 * 1000), dbTz, dbAndBrHrs) + \"^\" + formatDate(new Date(), dbTz, dbAndBrHrs);//\"06/02/2019 11:00:00^06/02/2019 20:00:00\"; \r\n this.commonFilterService.TSBetween.subscribe(res => dates = res);//latest dates selected is set here from service\r\n //Added to set proper dates here based on range selection\r\n this.commonFilterService.TSRangeFilter.subscribe(res => { if (res.RangeType !== \"custom\") { dates = lastDateFunc(res.RangeType, dbTz, dbAndBrHrs) } });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n //Save current date selection in service to affected when switched to other screens from here - IMP\r\n this.commonFilterService.setDatesProperties(dates);\r\n\r\n this.generalFilterArray.push({ ColumnName: columnName, Operator: 6, Value: (dates.split('^'))[0], ValueTo: (dates.split('^'))[1],LoggedInUserName:null });\r\n this.generalFilterArray.push({ ColumnName: columnName, Operator: 13, Value: null, ValueTo: null, LoggedInUserName: null });\r\n //console.log(this.generalFilterArray)\r\n let genArr = [];\r\n let genArrCnt = 0;\r\n\r\n if (delFilterColName != 'clearAllFilters') {\r\n genArr = AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"].toUpperCase() != columnName.toUpperCase() &&\r\n ((el[\"RsltType\"] == 'nettest' && (el[\"ColumnName\"].indexOf('Msg') !== -1 || el[\"ColumnName\"].indexOf('SMS') !== -1 || el[\"ColumnName\"].indexOf('Email') !== -1))\r\n || el[\"RsltType\"] == 'nettest|mobileinfo'\r\n || el[\"RsltType\"] == '');\r\n });\r\n\r\n this.commonFilterService.GeneralFilterDF.subscribe(res => {\r\n filters = res;\r\n });\r\n }\r\n\r\n if (typeof filtersWithEventID == 'object' && Object.keys(filtersWithEventID).length > 0) {\r\n this.dataFilter.filters = filtersWithEventID;\r\n //console.log(filtersWithEventID)\r\n genArr = genArr.filter(el => {\r\n return el[\"ColumnName\"] != 'VQuad_CallID';\r\n });\r\n let generalFilterArrayAll = this.dataFilter.getProcessedFiltersArray(\"ALL\");\r\n genArr = [...genArr, ...generalFilterArrayAll];\r\n\r\n for (const key in filters) {\r\n if (key == 'VQuad_CallID')\r\n delete filters[key];\r\n }\r\n let generalFilterArrayNew = this.dataFilter.getProcessedFilters(\"\");\r\n filters = { ...filters, ...generalFilterArrayNew };\r\n }\r\n //console.log(genArr)\r\n //console.log(filters)\r\n\r\n if (delFilterColName != '' && delFilterColName != 'clearAllFilters') {\r\n //cleared = 1;\r\n genArr = genArr.filter(el => {\r\n return el[\"ColumnName\"] != delFilterColName;\r\n });\r\n\r\n for (const key in filters) {\r\n if (key == delFilterColName)\r\n delete filters[key];\r\n }\r\n }\r\n\r\n this.generalFilterArray.push(...genArr);\r\n genArrCnt = genArr.length;\r\n\r\n if (delFilterColName != 'clearAllFilters') {\r\n let newFilters = {};\r\n for (const key in filters) {\r\n if ((filters[key].rsltType == 'nettest' && (filters[key].title.indexOf('EMAIL') !== -1 || filters[key].title.indexOf('SMS') !== -1))\r\n || filters[key].rsltType == 'nettest|mobileinfo'\r\n || filters[key].rsltType == '') {\r\n let value = filters[key].value;\r\n let matchMode = filters[key].matchMode;\r\n let valueTo = filters[key].valueTo;\r\n let type = filters[key].type;\r\n let rsltType = filters[key].rsltType;\r\n let title = filters[key].title;\r\n newFilters[key] = { value, matchMode, valueTo, type, rsltType, title };\r\n }\r\n }\r\n //console.log(newFilters)\r\n this.commonFilterService.setGeneralFilterData(newFilters);\r\n }\r\n\r\n let body = JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.generalFilterArray });\r\n\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers\r\n };\r\n const response1 = await this.http.post(this.apiUrl + '/api/NetTestGraphs/GetSMSData', body, options).toPromise();\r\n let timeFormat = 'HH:mm:ss';\r\n let colonCnt = response1[0].VQuadNewTS.split(\":\").length - 1;\r\n if (colonCnt == 1)\r\n timeFormat = 'HH:mm';\r\n else if (colonCnt == 0)\r\n timeFormat = 'HH:mm';//'HH'\r\n let eiphenCnt = response1[0].VQuadNewTS.split(\"-\").length - 1;\r\n let newResponse1 = response1.map(x => ({\r\n VQuadNewTS: ((x.VQuadNewTS.indexOf('-') == -1 && x.VQuadNewTS.indexOf(':') == -1) || eiphenCnt == 1) ? x.VQuadNewTS : this.datepipe.transform(new Date(formatDBTZDateToLocalDate(x.VQuadNewTS.replace(/\\-/g, '/'), dbTz, dbAndBrHrs, MainFilterTZ)), 'MM/dd/yyyy ' + timeFormat), ID: x.ID, SENDPASSED: x.SENDPASSED,\r\n SENDFAILED: x.SENDFAILED, RECEPASSED: x.RECEPASSED, RECEFAILED: x.RECEFAILED\r\n }));\r\n\r\n const response2 = await this.http.post(this.apiUrl + '/api/NetTestGraphs/GetEmailData', body, options).toPromise();\r\n timeFormat = 'HH:mm:ss';\r\n colonCnt = response2[0].VQuadNewTS.split(\":\").length - 1;\r\n if (colonCnt == 1)\r\n timeFormat = 'HH:mm';\r\n else if (colonCnt == 0)\r\n timeFormat = 'HH:mm';//'HH'\r\n eiphenCnt = response2[0].VQuadNewTS.split(\"-\").length - 1;\r\n let newResponse2 = response2.map(x => ({\r\n VQuadNewTS: ((x.VQuadNewTS.indexOf('-') == -1 && x.VQuadNewTS.indexOf(':') == -1) || eiphenCnt == 1) ? x.VQuadNewTS : this.datepipe.transform(new Date(formatDBTZDateToLocalDate(x.VQuadNewTS.replace(/\\-/g, '/'), dbTz, dbAndBrHrs, MainFilterTZ)), 'MM/dd/yyyy ' + timeFormat), ID: x.ID, SENDPASSED: x.SENDPASSED,\r\n SENDFAILED: x.SENDFAILED, RECEPASSED: x.RECEPASSED, RECEFAILED: x.RECEFAILED\r\n }));\r\n //return Observable.forkJoin([response1, response2]);\r\n return await Promise.all([newResponse1, newResponse2, genArrCnt]);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResultsService {\r\n\r\n private NetTestOrMobInfoSource: BehaviorSubject = new BehaviorSubject({ RsltTypeSwitch: true, selectedNetTestIndex: [0,1,2,3,4,5,6,7,8], selectedMobInfoIndex: [0,1,2] });\r\n NetTestOrMobInfo = this.NetTestOrMobInfoSource.asObservable();\r\n\r\n private NetTestOrMobInfoSourceByID: BehaviorSubject = new BehaviorSubject(-1);\r\n NetTestOrMobInfoByID = this.NetTestOrMobInfoSourceByID.asObservable();\r\n\r\n constructor() { }\r\n\r\n //Filtered columns details used in Synopsis\r\n setNetTestOrMobInfo(data) {\r\n this.NetTestOrMobInfoSource.next(data);\r\n }\r\n\r\n //Passing single index of selected rslt type of nettest or mobile info\r\n setNetTestOrMobInfoByID(data: number) {\r\n this.NetTestOrMobInfoSourceByID.next(data);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n//import { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SystemSettingsService {\r\n logDetail: any;\r\n LogType: string;\r\n CompanyLogo: string;\r\n CompanyRebrand: string;\r\n UserName: string;//IMP IMP\r\n isLoggedIn: boolean;\r\n isCommonLogo: boolean;\r\n startupScreen: string;\r\n Criteria: string;\r\n restrictScreens: string;\r\n authorizeFilters: string;\r\n authorizeFilters1: string;\r\n mainFilterIDs: string;\r\n ismainFilterEnabled: boolean= true;\r\n\r\n //private appSource = new BehaviorSubject('');\r\n //appPageRef = this.appSource.asObservable();\r\n\r\n constructor() {\r\n this.logDetail = \"\";\r\n this.LogType = \"\";\r\n this.CompanyLogo = \"\";\r\n this.UserName = \"\";//IMP IMP\r\n this.isLoggedIn = false;\r\n this.isCommonLogo = true;\r\n this.startupScreen = \"\";\r\n this.restrictScreens = \"\";\r\n this.Criteria = \"\";\r\n this.authorizeFilters = \"\";\r\n this.authorizeFilters1 = \"\";\r\n this.mainFilterIDs = \"\";\r\n this.ismainFilterEnabled = true;\r\n }\r\n\r\n //pageRefMessage(restrictScreens: any) {\r\n // this.appSource.next(restrictScreens);\r\n //}\r\n}\r\n","module.exports = \".dash-point-graph-holder {\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n -ms-user-select: none;\\n max-width: 620px;\\n max-height: 420px;\\n margin: 10px 5px;\\n background-color: white;\\n}\\n\\n.dash-bar-graph-holder {\\n margin: 10px 5px;\\n background-color: white;\\n}\\n\\n.spinner_overlay {\\n position: fixed;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #fff;\\n opacity: 0.5;\\n z-index: 1000;\\n}\\n\\n.spinner {\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n height: 60px;\\n width: 60px;\\n margin: 0px auto;\\n -webkit-animation: rotation 0.6s infinite linear;\\n animation: rotation 0.6s infinite linear;\\n border-left: 6px solid rgba(0, 174, 239, 0.15);\\n border-right: 6px solid rgba(0, 174, 239, 0.15);\\n border-bottom: 6px solid rgba(0, 174, 239, 0.15);\\n border-top: 6px solid rgba(0, 174, 239, 0.8);\\n border-radius: 100%;\\n}\\n\\n.divheight {\\n height: 20px;\\n}\\n\\ntable {\\n width: 100%;\\n overflow: auto;\\n /*table-layout:auto;*/\\n}\\n\\n/*th, td {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}*/\\n\\ntr.example-detail-row {\\n height: 0;\\n}\\n\\ntr.example-element-row:not(.example-expanded-row):hover {\\n background: whitesmoke;\\n}\\n\\ntr.example-element-row:not(.example-expanded-row):active {\\n background: #efefef;\\n}\\n\\n.example-element-row td {\\n border-bottom-width: 0;\\n}\\n\\n.example-element-detail {\\n overflow: hidden;\\n /*display: flex;*/\\n}\\n\\n.example-element-diagram {\\n min-width: 80px;\\n border: 2px solid black;\\n padding: 8px;\\n font-weight: lighter;\\n margin: 8px 0;\\n height: 104px;\\n}\\n\\n.example-element-symbol {\\n font-weight: bold;\\n font-size: 40px;\\n line-height: normal;\\n}\\n\\n.example-element-description {\\n padding: 16px;\\n}\\n\\n.example-element-description-attribution {\\n opacity: 0.5;\\n}\\n\\nth {\\n background-color: #5B9BD5;\\n}\\n\\n.th_expanded {\\n background-color: #C9DFF4;\\n padding: 4px 3px;\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n}\\n\\n.theader {\\n color: white;\\n padding: 4px 3px;\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n /*border-top: 1px solid #c6c6c6;*/\\n}\\n\\n.td_expanded {\\n padding: 4px 3px;\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n border-top: 1px solid #c6c6c6;\\n border-left: 1px solid #c6c6c6;\\n}\\n\\n.divHearder {\\n margin-left: 200px;\\n font-size: large;\\n}\\n\\n.td_Main {\\n padding: 4px 3px;\\n border-bottom: 1px solid #c6c6c6;\\n border-top: 1px solid #c6c6c6;\\n}\\n\\n.highlight {\\n color: blueviolet;\\n}\\n\\n.footer {\\n position: fixed;\\n left: 0;\\n bottom: 0;\\n width: 100%;\\n background-color: red;\\n color: white;\\n text-align: center;\\n}\\n\\n/*start Radio Button*/\\n\\n/*.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}*/\\n\\n/*END Radio Button*/\\n\\n/*start checkbox*/\\n\\n/*.checkboxsize .defaultMat .mat-checkbox-inner-container {\\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n::ng-deep .mat-checkbox .mat-checkbox-frame {\\n border-color: violet;\\n top: 10px;\\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n\\n::ng-deep .mat-checkbox-checked .mat-checkbox-background,\\n::ng-deep .mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: blue !important;\\n top: 10px;\\n width: 20px;\\n height: 20px;\\n}*/\\n\\n/*::ng-deep .mat-checkbox-checked .mat-checkbox-background {\\n background-color: blue !important;\\n top: 10px;\\n width: 20px;\\n height: 20px;\\n}*/\\n\\n/*end checkbox*/\\n\\n/*::ng-deep .mat-checkbox-checked .mat-checkbox-background {\\n background-color: blue !important;\\n top: 10px;\\n width: 20px;\\n height: 20px;\\n}*/\\n\\n/*end checkbox*/\\n\\n.dt-toolbar-row-AG {\\n display: -ms-flexbox;\\n display: flex;\\n /*margin-right: -5px;\\n margin-left: -5px;\\n margin-bottom: 1rem;*/\\n}\\n\\n.dt-toolbar-col-AG {\\n padding-right: 5px;\\n padding-left: 5px;\\n position: relative;\\n}\\n\\n.dt-toolbar-col-AG .dt-context-menu {\\n width: 170px;\\n display: none;\\n}\\n\\n.dt-toolbar-col-AG.open .dt-context-menu {\\n display: block;\\n}\\n\\n.dt-toolbar-col-AG .dt-list-menu-item.disabled,\\n.dt-toolbar-col-AG .dt-list-menu-item.disabled:hover {\\n color: silver;\\n background-color: transparent;\\n border: 0;\\n box-shadow: 0 0 0;\\n cursor: default;\\n}\\n\\n.click {\\n cursor: pointer;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc3RhdGlzdGljcy9hdWRpby1hbmQtZGVsYXktc3RhdGlzdGljcy1waWUtY2hhcnQvRDpcXFNyY3dlYlxcVlMyMDE3IFByb2plY3RzXFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3L3NyY1xcYXBwXFxzdGF0aXN0aWNzXFxhdWRpby1hbmQtZGVsYXktc3RhdGlzdGljcy1waWUtY2hhcnRcXGF1ZGlvLWFuZC1kZWxheS1zdGF0aXN0aWNzLXBpZS1jaGFydC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvc3RhdGlzdGljcy9hdWRpby1hbmQtZGVsYXktc3RhdGlzdGljcy1waWUtY2hhcnQvYXVkaW8tYW5kLWRlbGF5LXN0YXRpc3RpY3MtcGllLWNoYXJ0LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usc0JBQUE7RUFDQSx5QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsdUJBQUE7QUNDRjs7QURFQTtFQUNFLGdCQUFBO0VBQ0EsdUJBQUE7QUNDRjs7QURFQTtFQUNFLGVBQUE7RUFDQSxPQUFBO0VBQ0EsTUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0Esc0JBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtBQ0NGOztBREVBO0VBQ0Usa0JBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnREFBQTtFQUdBLHdDQUFBO0VBQ0EsOENBQUE7RUFDQSwrQ0FBQTtFQUNBLGdEQUFBO0VBQ0EsNENBQUE7RUFDQSxtQkFBQTtBQ0NGOztBREVBO0VBQ0UsWUFBQTtBQ0NGOztBREVBO0VBQ0UsV0FBQTtFQUNBLGNBQUE7RUFDQSxxQkFBQTtBQ0NGOztBRENBOzs7O0VBQUE7O0FBS0E7RUFDRSxTQUFBO0FDRUY7O0FEQ0E7RUFDRSxzQkFBQTtBQ0VGOztBRENBO0VBQ0UsbUJBQUE7QUNFRjs7QURDQTtFQUNFLHNCQUFBO0FDRUY7O0FEQ0E7RUFDRSxnQkFBQTtFQUNBLGlCQUFBO0FDRUY7O0FEQ0E7RUFDRSxlQUFBO0VBQ0EsdUJBQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7RUFDQSxhQUFBO0VBQ0EsYUFBQTtBQ0VGOztBRENBO0VBQ0UsaUJBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7QUNFRjs7QURDQTtFQUNFLGFBQUE7QUNFRjs7QURDQTtFQUNFLFlBQUE7QUNFRjs7QURDQTtFQUNFLHlCQUFBO0FDRUY7O0FEQ0E7RUFDRSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0EsK0JBQUE7RUFDQSxnQ0FBQTtBQ0VGOztBRENBO0VBQ0UsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsK0JBQUE7RUFDQSxnQ0FBQTtFQUNBLGlDQUFBO0FDRUY7O0FER0E7RUFDRSxnQkFBQTtFQUNBLCtCQUFBO0VBQ0EsZ0NBQUE7RUFDQSw2QkFBQTtFQUNBLDhCQUFBO0FDQUY7O0FER0E7RUFDRSxrQkFBQTtFQUNBLGdCQUFBO0FDQUY7O0FER0E7RUFDRSxnQkFBQTtFQUNBLGdDQUFBO0VBQ0EsNkJBQUE7QUNBRjs7QURHQTtFQUNFLGlCQUFBO0FDQUY7O0FER0E7RUFDRSxlQUFBO0VBQ0EsT0FBQTtFQUNBLFNBQUE7RUFDQSxXQUFBO0VBQ0EscUJBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7QUNBRjs7QURJQSxxQkFBQTs7QUFDQTs7RUFBQTs7QUFHQSxtQkFBQTs7QUFFQSxpQkFBQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBQUE7O0FBMEJBOzs7OztFQUFBOztBQU1BLGVBQUE7O0FBS0E7Ozs7O0VBQUE7O0FBTUEsZUFBQTs7QUFLQTtFQUNFLG9CQUFBO0VBQUEsYUFBQTtFQUNBOzt5QkFBQTtBQ1pGOztBRGlCQTtFQUNFLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtBQ2RGOztBRGlCQTtFQUNFLFlBQUE7RUFDQSxhQUFBO0FDZEY7O0FEaUJBO0VBQ0UsY0FBQTtBQ2RGOztBRGlCQTs7RUFFRSxhQUFBO0VBQ0EsNkJBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBO0FDZEY7O0FEa0JBO0VBQ0UsZUFBQTtBQ2ZGIiwiZmlsZSI6InNyYy9hcHAvc3RhdGlzdGljcy9hdWRpby1hbmQtZGVsYXktc3RhdGlzdGljcy1waWUtY2hhcnQvYXVkaW8tYW5kLWRlbGF5LXN0YXRpc3RpY3MtcGllLWNoYXJ0LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmRhc2gtcG9pbnQtZ3JhcGgtaG9sZGVyIHtcclxuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xyXG4gIG1heC13aWR0aDogNjIwcHg7XHJcbiAgbWF4LWhlaWdodDogNDIwcHg7XHJcbiAgbWFyZ2luOiAxMHB4IDVweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLmRhc2gtYmFyLWdyYXBoLWhvbGRlciB7XHJcbiAgbWFyZ2luOiAxMHB4IDVweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLnNwaW5uZXJfb3ZlcmxheSB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIGxlZnQ6IDA7XHJcbiAgdG9wOiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gIG9wYWNpdHk6IDAuNTtcclxuICB6LWluZGV4OiAxMDAwO1xyXG59XHJcblxyXG4uc3Bpbm5lciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0b3A6IDUwJTtcclxuICBoZWlnaHQ6IDYwcHg7XHJcbiAgd2lkdGg6IDYwcHg7XHJcbiAgbWFyZ2luOiAwcHggYXV0bztcclxuICAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRpb24gLjZzIGluZmluaXRlIGxpbmVhcjtcclxuICAtbW96LWFuaW1hdGlvbjogcm90YXRpb24gLjZzIGluZmluaXRlIGxpbmVhcjtcclxuICAtby1hbmltYXRpb246IHJvdGF0aW9uIC42cyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgYW5pbWF0aW9uOiByb3RhdGlvbiAuNnMgaW5maW5pdGUgbGluZWFyO1xyXG4gIGJvcmRlci1sZWZ0OiA2cHggc29saWQgcmdiYSgwLDE3NCwyMzksLjE1KTtcclxuICBib3JkZXItcmlnaHQ6IDZweCBzb2xpZCByZ2JhKDAsMTc0LDIzOSwuMTUpO1xyXG4gIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCByZ2JhKDAsMTc0LDIzOSwuMTUpO1xyXG4gIGJvcmRlci10b3A6IDZweCBzb2xpZCByZ2JhKDAsMTc0LDIzOSwuOCk7XHJcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxufVxyXG5cclxuLmRpdmhlaWdodHtcclxuICBoZWlnaHQ6MjBweDtcclxufVxyXG5cclxudGFibGUge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG4gIC8qdGFibGUtbGF5b3V0OmF1dG87Ki9cclxufVxyXG4vKnRoLCB0ZCB7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59Ki9cclxudHIuZXhhbXBsZS1kZXRhaWwtcm93IHtcclxuICBoZWlnaHQ6IDA7XHJcbn1cclxuXHJcbnRyLmV4YW1wbGUtZWxlbWVudC1yb3c6bm90KC5leGFtcGxlLWV4cGFuZGVkLXJvdyk6aG92ZXIge1xyXG4gIGJhY2tncm91bmQ6IHdoaXRlc21va2U7XHJcbn1cclxuXHJcbnRyLmV4YW1wbGUtZWxlbWVudC1yb3c6bm90KC5leGFtcGxlLWV4cGFuZGVkLXJvdyk6YWN0aXZlIHtcclxuICBiYWNrZ3JvdW5kOiAjZWZlZmVmO1xyXG59XHJcblxyXG4uZXhhbXBsZS1lbGVtZW50LXJvdyB0ZCB7XHJcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcclxufVxyXG5cclxuLmV4YW1wbGUtZWxlbWVudC1kZXRhaWwge1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgLypkaXNwbGF5OiBmbGV4OyovXHJcbn1cclxuXHJcbi5leGFtcGxlLWVsZW1lbnQtZGlhZ3JhbSB7XHJcbiAgbWluLXdpZHRoOiA4MHB4O1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrO1xyXG4gIHBhZGRpbmc6IDhweDtcclxuICBmb250LXdlaWdodDogbGlnaHRlcjtcclxuICBtYXJnaW46IDhweCAwO1xyXG4gIGhlaWdodDogMTA0cHg7XHJcbn1cclxuXHJcbi5leGFtcGxlLWVsZW1lbnQtc3ltYm9sIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXNpemU6IDQwcHg7XHJcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxufVxyXG5cclxuLmV4YW1wbGUtZWxlbWVudC1kZXNjcmlwdGlvbiB7XHJcbiAgcGFkZGluZzogMTZweDtcclxufVxyXG5cclxuLmV4YW1wbGUtZWxlbWVudC1kZXNjcmlwdGlvbi1hdHRyaWJ1dGlvbiB7XHJcbiAgb3BhY2l0eTogMC41O1xyXG59XHJcblxyXG50aCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVCOUJENTtcclxufVxyXG5cclxuLnRoX2V4cGFuZGVkIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzlERkY0O1xyXG4gIHBhZGRpbmc6IDRweCAzcHg7XHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2M2YzZjNjtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M2YzZjNjtcclxufVxyXG5cclxuLnRoZWFkZXIge1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBwYWRkaW5nOiA0cHggM3B4O1xyXG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjNmM2YzY7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNmM2YzY7XHJcbiAgLypib3JkZXItdG9wOiAxcHggc29saWQgI2M2YzZjNjsqL1xyXG59XHJcblxyXG5cclxuXHJcbi50ZF9leHBhbmRlZCB7XHJcbiAgcGFkZGluZzogNHB4IDNweDtcclxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYzZjNmM2O1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzZjNmM2O1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYzZjNmM2O1xyXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2M2YzZjNjtcclxufVxyXG5cclxuLmRpdkhlYXJkZXIge1xyXG4gIG1hcmdpbi1sZWZ0OiAyMDBweDtcclxuICBmb250LXNpemU6IGxhcmdlO1xyXG59XHJcblxyXG4udGRfTWFpbiB7XHJcbiAgcGFkZGluZzogNHB4IDNweDtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M2YzZjNjtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2M2YzZjNjtcclxufVxyXG5cclxuLmhpZ2hsaWdodCB7XHJcbiAgY29sb3I6IGJsdWV2aW9sZXQ7XHJcbn1cclxuXHJcbi5mb290ZXIge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBsZWZ0OiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuXHJcbi8qc3RhcnQgUmFkaW8gQnV0dG9uKi9cclxuLyoubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICBtYXJnaW4tbGVmdDogMTZweDtcclxufSovXHJcbi8qRU5EIFJhZGlvIEJ1dHRvbiovXHJcblxyXG4vKnN0YXJ0IGNoZWNrYm94Ki9cclxuLyouY2hlY2tib3hzaXplIC5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyIHtcclxuICB3aWR0aDogMjBweDtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbn1cclxuXHJcblxyXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LWZyYW1lIHtcclxuICBib3JkZXItY29sb3I6IHZpb2xldDtcclxuICB0b3A6IDEwcHg7XHJcbiAgd2lkdGg6IDIwcHg7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG59XHJcblxyXG5cclxuXHJcbjo6bmctZGVlcCAubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLFxyXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZSAhaW1wb3J0YW50O1xyXG4gIHRvcDogMTBweDtcclxuICB3aWR0aDogMjBweDtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbn0qL1xyXG5cclxuXHJcblxyXG5cclxuLyo6Om5nLWRlZXAgLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZSAhaW1wb3J0YW50O1xyXG4gIHRvcDogMTBweDtcclxuICB3aWR0aDogMjBweDtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbn0qL1xyXG4vKmVuZCBjaGVja2JveCovXHJcblxyXG5cclxuXHJcblxyXG4vKjo6bmctZGVlcCAubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlICFpbXBvcnRhbnQ7XHJcbiAgdG9wOiAxMHB4O1xyXG4gIHdpZHRoOiAyMHB4O1xyXG4gIGhlaWdodDogMjBweDtcclxufSovXHJcbi8qZW5kIGNoZWNrYm94Ki9cclxuXHJcblxyXG5cclxuXHJcbi5kdC10b29sYmFyLXJvdy1BRyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICAvKm1hcmdpbi1yaWdodDogLTVweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsqL1xyXG59XHJcblxyXG4uZHQtdG9vbGJhci1jb2wtQUcge1xyXG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcclxuICBwYWRkaW5nLWxlZnQ6IDVweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5kdC10b29sYmFyLWNvbC1BRyAuZHQtY29udGV4dC1tZW51IHtcclxuICB3aWR0aDogMTcwcHg7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLmR0LXRvb2xiYXItY29sLUFHLm9wZW4gLmR0LWNvbnRleHQtbWVudSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5kdC10b29sYmFyLWNvbC1BRyAuZHQtbGlzdC1tZW51LWl0ZW0uZGlzYWJsZWQsXHJcbi5kdC10b29sYmFyLWNvbC1BRyAuZHQtbGlzdC1tZW51LWl0ZW0uZGlzYWJsZWQ6aG92ZXIge1xyXG4gIGNvbG9yOiBzaWx2ZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAwO1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxufVxyXG5cclxuXHJcbi5jbGljayB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuIiwiLmRhc2gtcG9pbnQtZ3JhcGgtaG9sZGVyIHtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICBtYXgtd2lkdGg6IDYyMHB4O1xuICBtYXgtaGVpZ2h0OiA0MjBweDtcbiAgbWFyZ2luOiAxMHB4IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbi5kYXNoLWJhci1ncmFwaC1ob2xkZXIge1xuICBtYXJnaW46IDEwcHggNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cblxuLnNwaW5uZXJfb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBvcGFjaXR5OiAwLjU7XG4gIHotaW5kZXg6IDEwMDA7XG59XG5cbi5zcGlubmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBoZWlnaHQ6IDYwcHg7XG4gIHdpZHRoOiA2MHB4O1xuICBtYXJnaW46IDBweCBhdXRvO1xuICAtd2Via2l0LWFuaW1hdGlvbjogcm90YXRpb24gMC42cyBpbmZpbml0ZSBsaW5lYXI7XG4gIC1tb3otYW5pbWF0aW9uOiByb3RhdGlvbiAwLjZzIGluZmluaXRlIGxpbmVhcjtcbiAgLW8tYW5pbWF0aW9uOiByb3RhdGlvbiAwLjZzIGluZmluaXRlIGxpbmVhcjtcbiAgYW5pbWF0aW9uOiByb3RhdGlvbiAwLjZzIGluZmluaXRlIGxpbmVhcjtcbiAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCByZ2JhKDAsIDE3NCwgMjM5LCAwLjE1KTtcbiAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgcmdiYSgwLCAxNzQsIDIzOSwgMC4xNSk7XG4gIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCByZ2JhKDAsIDE3NCwgMjM5LCAwLjE1KTtcbiAgYm9yZGVyLXRvcDogNnB4IHNvbGlkIHJnYmEoMCwgMTc0LCAyMzksIDAuOCk7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG59XG5cbi5kaXZoZWlnaHQge1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAvKnRhYmxlLWxheW91dDphdXRvOyovXG59XG5cbi8qdGgsIHRkIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59Ki9cbnRyLmV4YW1wbGUtZGV0YWlsLXJvdyB7XG4gIGhlaWdodDogMDtcbn1cblxudHIuZXhhbXBsZS1lbGVtZW50LXJvdzpub3QoLmV4YW1wbGUtZXhwYW5kZWQtcm93KTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHdoaXRlc21va2U7XG59XG5cbnRyLmV4YW1wbGUtZWxlbWVudC1yb3c6bm90KC5leGFtcGxlLWV4cGFuZGVkLXJvdyk6YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI2VmZWZlZjtcbn1cblxuLmV4YW1wbGUtZWxlbWVudC1yb3cgdGQge1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xufVxuXG4uZXhhbXBsZS1lbGVtZW50LWRldGFpbCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8qZGlzcGxheTogZmxleDsqL1xufVxuXG4uZXhhbXBsZS1lbGVtZW50LWRpYWdyYW0ge1xuICBtaW4td2lkdGg6IDgwcHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrO1xuICBwYWRkaW5nOiA4cHg7XG4gIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xuICBtYXJnaW46IDhweCAwO1xuICBoZWlnaHQ6IDEwNHB4O1xufVxuXG4uZXhhbXBsZS1lbGVtZW50LXN5bWJvbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDQwcHg7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi5leGFtcGxlLWVsZW1lbnQtZGVzY3JpcHRpb24ge1xuICBwYWRkaW5nOiAxNnB4O1xufVxuXG4uZXhhbXBsZS1lbGVtZW50LWRlc2NyaXB0aW9uLWF0dHJpYnV0aW9uIHtcbiAgb3BhY2l0eTogMC41O1xufVxuXG50aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1QjlCRDU7XG59XG5cbi50aF9leHBhbmRlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDOURGRjQ7XG4gIHBhZGRpbmc6IDRweCAzcHg7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjNmM2YzY7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzZjNmM2O1xufVxuXG4udGhlYWRlciB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogNHB4IDNweDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2M2YzZjNjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNmM2YzY7XG4gIC8qYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjNmM2YzY7Ki9cbn1cblxuLnRkX2V4cGFuZGVkIHtcbiAgcGFkZGluZzogNHB4IDNweDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2M2YzZjNjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNmM2YzY7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYzZjNmM2O1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjNmM2YzY7XG59XG5cbi5kaXZIZWFyZGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDIwMHB4O1xuICBmb250LXNpemU6IGxhcmdlO1xufVxuXG4udGRfTWFpbiB7XG4gIHBhZGRpbmc6IDRweCAzcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzZjNmM2O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2M2YzZjNjtcbn1cblxuLmhpZ2hsaWdodCB7XG4gIGNvbG9yOiBibHVldmlvbGV0O1xufVxuXG4uZm9vdGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKnN0YXJ0IFJhZGlvIEJ1dHRvbiovXG4vKi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn0qL1xuLypFTkQgUmFkaW8gQnV0dG9uKi9cbi8qc3RhcnQgY2hlY2tib3gqL1xuLyouY2hlY2tib3hzaXplIC5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn1cblxuXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgYm9yZGVyLWNvbG9yOiB2aW9sZXQ7XG4gIHRvcDogMTBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn1cblxuXG5cbjo6bmctZGVlcCAubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLFxuOjpuZy1kZWVwIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlICFpbXBvcnRhbnQ7XG4gIHRvcDogMTBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn0qL1xuLyo6Om5nLWRlZXAgLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsdWUgIWltcG9ydGFudDtcbiAgdG9wOiAxMHB4O1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufSovXG4vKmVuZCBjaGVja2JveCovXG4vKjo6bmctZGVlcCAubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZSAhaW1wb3J0YW50O1xuICB0b3A6IDEwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59Ki9cbi8qZW5kIGNoZWNrYm94Ki9cbi5kdC10b29sYmFyLXJvdy1BRyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8qbWFyZ2luLXJpZ2h0OiAtNXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07Ki9cbn1cblxuLmR0LXRvb2xiYXItY29sLUFHIHtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZHQtdG9vbGJhci1jb2wtQUcgLmR0LWNvbnRleHQtbWVudSB7XG4gIHdpZHRoOiAxNzBweDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmR0LXRvb2xiYXItY29sLUFHLm9wZW4gLmR0LWNvbnRleHQtbWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZHQtdG9vbGJhci1jb2wtQUcgLmR0LWxpc3QtbWVudS1pdGVtLmRpc2FibGVkLFxuLmR0LXRvb2xiYXItY29sLUFHIC5kdC1saXN0LW1lbnUtaXRlbS5kaXNhYmxlZDpob3ZlciB7XG4gIGNvbG9yOiBzaWx2ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGJveC1zaGFkb3c6IDAgMCAwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5jbGljayB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn0iXX0= */\"","import { Component, OnInit, Output, EventEmitter, ViewChild, Sanitizer, ElementRef, OnDestroy } from '@angular/core';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { request } from 'http';\r\n//import { RequestMetadata, PagedResult } from '../../../../lib/ng-crud-table';\r\nimport { MatTableDataSource, fadeInContent } from '@angular/material';\r\nimport { DataSource } from '@angular/cdk/table';\r\nimport { MatDialog, MatDialogConfig, PageEvent, MatPaginator } from '@angular/material';\r\nimport { Row } from 'lib/ng-data-table';\r\nimport { SelectItem, formatDate, lastDateFunc } from 'lib/common';\r\nimport { rsltTypeInTitle } from 'src/app/shared/functions/title';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Chart, ChartType, ChartOptions } from 'chart.js';\r\nimport { ChartsModule } from 'ng2-charts';\r\nimport { CustomStatsConfig } from 'src/app/shared/models/Configuration/CustomStatsConfig';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\n//import { Label } from 'ng2-charts';\r\n//import * as pluginDataLabels from 'chartjs-plugin-datalabels';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { CommonFilter } from 'src/app/shared/models/Common/common-filter';\r\nimport { DataFilter } from 'lib/ng-data-table/base';\r\nimport { DemoService } from 'src/app/shared/demo.service';\r\n\r\n@Component({\r\n selector: 'app-audio-and-delay-statistics-pie-chart',\r\n templateUrl: './audio-and-delay-statistics-pie-chart.component.html',\r\n styleUrls: ['./audio-and-delay-statistics-pie-chart.component.scss', '../../graphics/analysis/analysis.component.scss',\r\n '../../../../lib/dt-toolbar/dt-toolbar.component.css',\r\n '../../../../lib/styles/icons.css',\r\n '../../../../lib/styles/context-menu.css',\r\n '../../../../lib/styles/list-menu.css'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n})\r\nexport class AudioAndDelayStatisticsPieChartComponent implements OnInit, OnDestroy {\r\n baseUrl: string;\r\n url: string;\r\n //public chartNameRTD: string = \"\";\r\n //public chartNameOWD: string = \"\";\r\n //public chartNamePDD: string = \"\";\r\n //public chartNameSNR: string = \"\";\r\n pieChartRTD: Chart;\r\n pieChartOWD: Chart;\r\n pieChartPDD: Chart;\r\n pieChartSNR: Chart;\r\n showLegend: boolean = false;\r\n getLegend: boolean = false;\r\n voiceQualityConfigList = [];\r\n voiceQualityConfig = new CustomStatsConfig();\r\n\r\n clearAllFiltersAction: boolean = true;\r\n actionsMessage: string = 'Actions';\r\n modifyFiltersMessage: string = 'Modify filters';\r\n clearFiltersMessage: string = 'Clear all filters';\r\n isFilters: boolean = true;\r\n hasFilters: boolean;\r\n\r\n rsltType: string = \"AudioDelayStatsPieChart\";\r\n\r\n rsltTypeTS = '-1';\r\n TSSelected: number;\r\n\r\n AutoRefreshInfo: any;\r\n\r\n title: string = \"Audio/Delay Statistics\";\r\n staticScreen = false;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n isLoading = true;\r\n\r\n interval;\r\n\r\n private subscriptions: Subscription[] = [];\r\n filterEventIDSelected = false;\r\n delColSelected = false;\r\n columnName = \"VQuad_Timestamp\";\r\n TimestampType = 1;\r\n\r\n //public pieChartOptionsRTD: ChartOptions = {\r\n // responsive: true,\r\n // legend: {\r\n // position: 'left',\r\n // },\r\n // plugins: {\r\n // datalabels: {\r\n // formatter: (value, ctx) => {\r\n // const label = ctx.chart.data.labels[ctx.dataIndex];\r\n // return label;\r\n // },\r\n // },\r\n // }\r\n //};\r\n //public pieChartLabelsRTD: string[] = [];\r\n //public pieChartDataRTD: number[] = [];//[300, 500, 100, 200];\r\n //public pieChartTypeRTD: ChartType = 'pie';\r\n //public pieChartLegendRTD = true;\r\n ////public pieChartPlugins = [pluginDataLabels];\r\n //public pieChartColorsRTD = [\r\n // {\r\n // backgroundColor: [],//['rgba(0, 0, 255)', 'rgba(0, 0, 255)', 'rgba(0, 0, 255)', 'rgba(0, 0, 255)'],\r\n // },\r\n //];\r\n\r\n //public pieChartOptionsOWD: ChartOptions = {\r\n // responsive: true,\r\n // legend: {\r\n // position: 'left',\r\n // },\r\n // plugins: {\r\n // datalabels: {\r\n // formatter: (value, ctx) => {\r\n // const label = ctx.chart.data.labels[ctx.dataIndex];\r\n // return label;\r\n // },\r\n // },\r\n // }\r\n //};\r\n //public pieChartLabelsOWD: string[] = [];\r\n //public pieChartDataOWD: number[] = [];//[300, 500, 100, 200];\r\n //public pieChartTypeOWD: ChartType = 'pie';\r\n //public pieChartLegendOWD = true;\r\n ////public pieChartPlugins = [pluginDataLabels];\r\n //public pieChartColorsOWD = [\r\n // {\r\n // backgroundColor: [],//['rgba(255,255,0)', 'rgba(255,255,0)', 'rgba(255,255,0)', 'rgba(255,255,0)'],\r\n // },\r\n //];\r\n\r\n //public pieChartOptionsPDD: ChartOptions = {\r\n // responsive: true,\r\n // legend: {\r\n // position: 'left',\r\n // },\r\n // plugins: {\r\n // datalabels: {\r\n // formatter: (value, ctx) => {\r\n // const label = ctx.chart.data.labels[ctx.dataIndex];\r\n // return label;\r\n // },\r\n // },\r\n // }\r\n //};\r\n //public pieChartLabelsPDD: string[] = [];\r\n //public pieChartDataPDD: number[] = [];//[300, 500, 100, 200];\r\n //public pieChartTypePDD: ChartType = 'pie';\r\n //public pieChartLegendPDD = true;\r\n ////public pieChartPlugins = [pluginDataLabels];\r\n //public pieChartColorsPDD = [\r\n // {\r\n // backgroundColor: [],//['rgba(0, 0, 255)', 'rgba(0, 0, 255)', 'rgba(0, 0, 255)', 'rgba(0, 0, 255)'],\r\n // },\r\n //];\r\n\r\n //public pieChartOptionsSNR: ChartOptions = {\r\n // responsive: true,\r\n // legend: {\r\n // position: 'left',\r\n // },\r\n // plugins: {\r\n // datalabels: {\r\n // formatter: (value, ctx) => {\r\n // const label = ctx.chart.data.labels[ctx.dataIndex];\r\n // return label;\r\n // },\r\n // },\r\n // }\r\n //};\r\n //public pieChartLabelsSNR: string[] = [];\r\n //public pieChartDataSNR: number[] = [];//[300, 500, 100, 200];\r\n //public pieChartTypeSNR: ChartType = 'pie';\r\n //public pieChartLegendSNR = true;\r\n ////public pieChartPlugins = [pluginDataLabels];\r\n //public pieChartColorsSNR = [\r\n // {\r\n // backgroundColor: [],//['rgba(0, 0, 255)', 'rgba(0, 0, 255)', 'rgba(0, 0, 255)', 'rgba(0, 0, 255)'],\r\n // },\r\n //];\r\n\r\n dataSource: any[];\r\n dataSourceExpanded = [];\r\n lstPieChartSetting: [] = [];\r\n\r\n columnsToDisplay = ['RowExpand', 'VQuad_Location', 'AVGOFRTD', 'MAXOFRTD', 'MINOFRTD', 'AVGOFPDD', 'MAXOFPDD', 'MINOFPDD', 'AVGOFOWD', 'MAXOFOWD', 'MINOFOWD'\r\n , 'AVGOFSWR', 'MAXOFSWR', 'MINOFSWR', 'TOTALRECORD'];\r\n\r\n audioDelayColumns = ['VQuad_PhoneID', 'AVGOFRTD', 'MAXOFRTD', 'MINOFRTD', 'AVGOFPDD', 'MAXOFPDD', 'MINOFPDD', 'AVGOFOWD', 'MAXOFOWD', 'MINOFOWD'\r\n , 'AVGOFSWR', 'MAXOFSWR', 'MINOFSWR', 'TOTALRECORD'];\r\n expandedElement: PeriodicElement | null;\r\n\r\n\r\n constructor(private _Activatedroute: ActivatedRoute, private _router: Router, private service: DemoService, private commonFilterService: CommonFilterService, private http: HttpClient, private dialog: MatDialog) {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n this.commonFilterService.setNonFiltersScreen(false);\r\n\r\n _Activatedroute.params.subscribe(val => {\r\n this.rsltType = _Activatedroute.snapshot.url[1].path;\r\n\r\n this.parentEvent();\r\n });\r\n this.commonFilterService.setNonFiltersScreen(this.staticScreen);\r\n\r\n this.commonFilterService.TSType.subscribe(res => {//TsType\r\n this.TimestampType = res;\r\n if (this.TimestampType >= 2)//\r\n this.TimestampType = 1;//Change VQT to VQuad Timestamp if screen doesn't belongs to VQT types nd send as TSTYpe in filtering - IMP\r\n this.columnName = \"VQuad_Timestamp\";\r\n if (this.TimestampType == 2) {\r\n this.columnName = \"VQT_Timestamp\";\r\n }\r\n else if (this.TimestampType == 0) {\r\n this.columnName = \"Call_Timestamp\";\r\n }\r\n });\r\n\r\n const _broadSublisten = this.commonFilterService.listen.subscribe(res => {\r\n if (res === 'onlyADMStatInit' && !this.filterEventIDSelected)\r\n this.LoadAudioAndDelay('');\r\n if (this.filterEventIDSelected)\r\n this.filterEventIDSelected = false;\r\n });\r\n this.subscriptions.push(_broadSublisten);\r\n\r\n this.commonFilterService.isFilters$.subscribe(res => {\r\n this.isFilters = res;\r\n });\r\n\r\n //Do Refresh\r\n const _broadSubRefresh = this.commonFilterService.componentMethodCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.LoadAudioAndDelay('');\r\n }\r\n );\r\n this.subscriptions.push(_broadSubRefresh);\r\n\r\n const _broadSubDeleteFilter = this.commonFilterService.DeleteFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n if (res !== '') {//IMP IMP\r\n this.LoadAudioAndDelay(res);\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubDeleteFilter);\r\n\r\n const _broadSubAllGeneralFilter = this.commonFilterService.AllGeneralFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log('AllGeneralFilter')\r\n this.AllGeneralFilter = res;\r\n if (!this.delColSelected && !this.clearAllFiltersBool && this.AllGeneralFilter.length > 0)\r\n this.LoadAudioAndDelay('');\r\n\r\n //reset here\r\n if (this.delColSelected)\r\n this.delColSelected = false;\r\n if (this.clearAllFiltersBool)\r\n this.clearAllFiltersBool = false;\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAllGeneralFilter);\r\n\r\n //const _broadSubGeneralDFFilter = this.commonFilterService.GeneralFilterDF.subscribe(res => {\r\n // //console.log('GeneralDFFilter')\r\n // this.filters = res;\r\n //});\r\n //this.subscriptions.push(_broadSubGeneralDFFilter);\r\n const _broadSubGeneralFilter = this.commonFilterService.GeneralFilter.subscribe(res => {\r\n //console.log('GeneralFilter')\r\n debugger;\r\n this.filters = res;\r\n });\r\n this.subscriptions.push(_broadSubGeneralFilter);\r\n\r\n const _broadSubEventIDFilter = this.commonFilterService.GeneralEventIDFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log('filtersWithEventID')\r\n //this.filterEventIDSelected = true;\r\n this.filtersWithEventID = res;\r\n //if (!this.delColSelected && !this.clearAllFiltersBool && (typeof this.filtersWithEventID == 'object' && Object.keys(this.filtersWithEventID).length > 0))\r\n // this.LoadAudioAndDelay('');\r\n }\r\n );\r\n this.subscriptions.push(_broadSubEventIDFilter);\r\n\r\n //Do Auto-refresh - start/stop\r\n const _broadSubAutoRefresh = this.commonFilterService.componentMethodWithArgCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.AutoRefreshInfo = res;\r\n //console.log(this.AutoRefreshInfo);\r\n\r\n if (this.AutoRefreshInfo.AutoRefStop) {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n }\r\n }\r\n else {\r\n this.interval = setInterval(() => {\r\n //console.log(this.AutoRefreshInfo.AutoRefStop);\r\n this.LoadAudioAndDelay('');\r\n }, this.AutoRefreshInfo.AutoRefSelected);\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAutoRefresh);\r\n\r\n const _broadStatsRefresh = this.commonFilterService.componentAudioStatsMethodCalled$.subscribe(\r\n res => {\r\n this.commonFilterService.basicAudioSavedRefresh(0);\r\n this.getLegend = false;\r\n this.LoadAudioAndDelay('');\r\n }\r\n );\r\n this.subscriptions.push(_broadStatsRefresh);\r\n\r\n }\r\n\r\n ngOnInit() {\r\n //this.LoadAudioAndDelay();\r\n if (this.pieChartRTD != null)\r\n this.pieChartRTD.destroy();\r\n if (this.pieChartOWD != null)\r\n this.pieChartOWD.destroy();\r\n if (this.pieChartPDD != null)\r\n this.pieChartPDD.destroy();\r\n if (this.pieChartSNR != null)\r\n this.pieChartSNR.destroy();\r\n\r\n this.getLegend = false;\r\n }\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n parentEvent() {\r\n //debugger;\r\n\r\n this.title = rsltTypeInTitle(this.rsltType);\r\n this.childTitleEvent.emit({ title: this.title });\r\n }\r\n\r\n parentRef(TSSelected) {\r\n this.TSSelected = parseInt(TSSelected);\r\n //this.setRsltType();\r\n }\r\n parentEventID() {\r\n this.LoadAudioAndDelay('');\r\n }\r\n parentAutoRef(AutoRefreshInfo) {\r\n this.TSSelected = parseInt(AutoRefreshInfo.TSSelected);\r\n this.AutoRefreshInfo = AutoRefreshInfo;\r\n }\r\n\r\n modifyFilter() {\r\n //this._router.navigate([{ outlets: { filterPopup: ['filters'], configPopup: null } }]);\r\n let selectedMainFilterCrieriaName = 'null';\r\n this.commonFilterService.mainFilter_CriteriaName.subscribe(res => selectedMainFilterCrieriaName = res);\r\n this._router.navigate([{ outlets: { filterPopup: ['filters', selectedMainFilterCrieriaName], configPopup: null } }]);\r\n\r\n /////// when calling modify search set mainfilter to initial values\r\n //this.commonFilterService.SetMainFilter(0);// set selected mainfilter id\r\n //this.commonFilterService.setMFCustDT(\"\");\r\n //this.commonFilterService.setMFTZON(0);\r\n ////this.commonFilterService.basicRefresh();\r\n }\r\n\r\n clearAllFiltersBool = false;\r\n clearAllFilters() {\r\n this.LoadAudioAndDelay('clearAllFilters');\r\n //this.table.sorter.sortMeta = [];\r\n //this.table.events.onSort();//IMP- to reset sorting sel cols to none\r\n\r\n //if (this.table.dataFilter.hasFilters()) {\r\n // this.table.dataFilter.clear();\r\n // //console.log(this.table.dataFilter.hasFilters())\r\n // this.table.events.onFilter();\r\n // //this.table.events.onFilterClear();\r\n // this.clearFilters.emit();\r\n //}\r\n }\r\n\r\n AllGeneralFilter = [];\r\n genArrDel = [];\r\n filtersWithEventID = {};\r\n filters = {};\r\n selectedCallIDOrDevID = false;\r\n async LoadAudioAndDelay(delFilterColName, dontReload?) {\r\n\r\n if (delFilterColName == 'VQuad_CallID') {\r\n this.filtersWithEventID = {};\r\n for (const key in this.filters) {\r\n if (key == 'VQuad_CallID')\r\n delete this.filters[key];\r\n }\r\n }\r\n else if (delFilterColName == 'clearAllFilters') {\r\n this.filtersWithEventID = {};\r\n for (const key in this.filters) {\r\n if (key !== this.columnName)\r\n delete this.filters[key];\r\n }\r\n }\r\n debugger;\r\n this.hasFilters = Object.keys(this.filters).length <= 1 ? false : true;\r\n\r\n if (dontReload) {\r\n //do nothing as already screen loaded\r\n }\r\n else {\r\n if (!this.selectedCallIDOrDevID)\r\n this.isLoading = true;\r\n this.url = this.baseUrl + 'CustomStatsConfig/GetAudioAndDelayData';\r\n await this.GetAudioAndDelayMainData_Service(delFilterColName, this.AllGeneralFilter, this.filtersWithEventID, this.filters, this.TimestampType, this.columnName).then((res: any) => {\r\n //console.log(res);\r\n if (!this.selectedCallIDOrDevID) {\r\n let rows: any[] = JSON.parse(res) as any[];\r\n this.dataSource = rows[\"lstAudioAndDelayColumn\"];\r\n\r\n if (rows[\"lstAudioAndDelayColumn\"].length > 0)\r\n this.currVQuadLocationSelected = rows[\"lstAudioAndDelayColumn\"][0].VQuad_Location;\r\n\r\n this.BindPieChart(rows[\"lstPieChartSetting\"]);\r\n //this.lstPieChartSetting = rows[\"lstPieChartSetting\"];\r\n }\r\n });\r\n this.isLoading = false;\r\n this.selectedCallIDOrDevID = false;\r\n }\r\n //this.hasFilters = Object.keys(this.filters).length <= 1 ? false : true;\r\n if (delFilterColName != '' && delFilterColName != 'clearAllFilters') {\r\n this.delColSelected = true;\r\n\r\n this.commonFilterService.setDeleteFilterData('');//reset if delete\r\n\r\n if (delFilterColName == 'VQuad_CallID') {\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n }\r\n\r\n this.genArrDel = this.AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"] != delFilterColName;\r\n });\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n else if (delFilterColName == 'clearAllFilters') {\r\n this.clearAllFiltersBool = true;\r\n \r\n\r\n this.commonFilterService.setClearAllFiltersData();//reset if delete\r\n this.commonFilterService.setGeneralFilterData(this.filters);\r\n this.commonFilterService.setGeneralFilterDFData(this.filters);//mainly used in main screen\r\n\r\n this.filtersWithEventID = {};\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n\r\n this.genArrDel = [];\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n //this.hasFilters = Object.keys(this.filters).length <= 1 ? false : true;\r\n }\r\n LoadSelectedCallIDAudioDelay(event, vquadLocation, collapsed?) {\r\n if (event != null)\r\n event.preventDefault();\r\n\r\n if (this.currVQuadLocationSelected != vquadLocation || collapsed || this.expandedElement == null) {\r\n\r\n this.currVQuadLocationSelected = vquadLocation;\r\n this.currVQuadPhoneIDSelected = \"\";//reset\r\n\r\n this.isLoading = true;\r\n this.url = this.baseUrl + 'CustomStatsConfig/GetAudioAndDelayData?strVQuadLocation=' + vquadLocation;\r\n\r\n this.GetAudioAndDelayData_Service().subscribe((resCache: any) => {\r\n //console.log(res);\r\n if (resCache == \"CacheExpired\") {\r\n this.selectedCallIDOrDevID = true;\r\n this.LoadAudioAndDelay('');\r\n\r\n this.GetAudioAndDelayData_Service().subscribe((res: any) => {\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //this.dataSource = rows[\"lstAudioAndDelayColumn\"];\r\n\r\n this.BindPieChart(rows[\"lstPieChartSetting\"]);\r\n this.isLoading = false;\r\n },\r\n err => {\r\n this.isLoading = false;\r\n });\r\n }\r\n else {\r\n let rows: any[] = JSON.parse(resCache) as any[];\r\n //this.dataSource = rows[\"lstAudioAndDelayColumn\"];\r\n\r\n this.BindPieChart(rows[\"lstPieChartSetting\"]);\r\n this.isLoading = false;\r\n }\r\n },\r\n err => {\r\n this.isLoading = false;\r\n });\r\n }\r\n }\r\n\r\n BindPieChart(pieChartList) {\r\n debugger;\r\n if (this.pieChartRTD != null)\r\n this.pieChartRTD.destroy();\r\n if (this.pieChartOWD != null)\r\n this.pieChartOWD.destroy();\r\n if (this.pieChartPDD != null)\r\n this.pieChartPDD.destroy();\r\n if (this.pieChartSNR != null)\r\n this.pieChartSNR.destroy();\r\n //console.log(pieCharList);\r\n // this.pieChartLabels.pop();\r\n\r\n let RTDNoData = false;\r\n \r\n let OWDNoData = false;\r\n \r\n let PDDNoData = false;\r\n \r\n let SNRNoData = false;\r\n \r\n for (let i = 0; i < pieChartList.length; i++) {\r\n //// RTD piechart\r\n if (pieChartList[i].pieChartName.includes('RTD')) {\r\n RTDNoData = true;\r\n\r\n //this.chartNameRTD = pieChartList[i].pieChartName;\r\n //this.pieChartDataRTD = pieChartList[i].pieChartData;\r\n //this.pieChartColorsRTD[0].backgroundColor = pieChartList[i].pieChartRGBColors;\r\n\r\n //for (let j = 0; j < pieChartList[i].pieChartLabels.length; j++) {\r\n // this.pieChartLabelsRTD.push(pieChartList[i].pieChartLabels[j]);\r\n //}\r\n if (document.getElementById(\"RTDPieChart\") != null) {\r\n //https://phppot.com/javascript/chartjs-pie-chart/\r\n //https://www.w3schools.com/js/tryit.asp?filename=tryai_chartjs_pie\r\n this.pieChartRTD = new Chart((document.getElementById(\"RTDPieChart\")).getContext(\"2d\"), {\r\n type: 'pie',\r\n data: {\r\n labels: pieChartList[i].pieChartLabels,\r\n datasets: [{\r\n backgroundColor: pieChartList[i].pieChartRGBColors,\r\n data: pieChartList[i].pieChartData\r\n }]\r\n },\r\n options: {\r\n title: {\r\n display: true,\r\n text: pieChartList[i].pieChartName\r\n },\r\n responsive: true\r\n }\r\n });\r\n this.pieChartRTD.render();\r\n }\r\n }\r\n\r\n //// OWD piechart\r\n if (pieChartList[i].pieChartName.includes('OWD')) {\r\n OWDNoData = true;\r\n //this.chartNameOWD = pieChartList[i].pieChartName;\r\n //this.pieChartDataOWD = pieChartList[i].pieChartData;\r\n //this.pieChartColorsOWD[0].backgroundColor = pieChartList[i].pieChartRGBColors;\r\n\r\n //for (let j = 0; j < pieChartList[i].pieChartLabels.length; j++) {\r\n // this.pieChartLabelsOWD.push(pieChartList[i].pieChartLabels[j]);\r\n //}\r\n if (document.getElementById(\"OWDPieChart\") != null) {\r\n this.pieChartOWD = new Chart((document.getElementById(\"OWDPieChart\")).getContext(\"2d\"), {\r\n type: 'pie',\r\n data: {\r\n labels: pieChartList[i].pieChartLabels,\r\n datasets: [{\r\n backgroundColor: pieChartList[i].pieChartRGBColors,\r\n data: pieChartList[i].pieChartData\r\n }]\r\n },\r\n options: {\r\n title: {\r\n display: true,\r\n text: pieChartList[i].pieChartName\r\n },\r\n responsive: true\r\n }\r\n });\r\n this.pieChartOWD.render();\r\n }\r\n }\r\n\r\n\r\n //// PDD piechart\r\n if (pieChartList[i].pieChartName.includes('PDD')) {\r\n PDDNoData = true;\r\n //this.chartNamePDD = pieChartList[i].pieChartName;\r\n //this.pieChartDataPDD = pieChartList[i].pieChartData;\r\n //this.pieChartColorsPDD[0].backgroundColor = pieChartList[i].pieChartRGBColors;\r\n\r\n //for (let j = 0; j < pieChartList[i].pieChartLabels.length; j++) {\r\n // this.pieChartLabelsPDD.push(pieChartList[i].pieChartLabels[j]);\r\n //}\r\n if (document.getElementById(\"PDDPieChart\") != null) {\r\n this.pieChartPDD = new Chart((document.getElementById(\"PDDPieChart\")).getContext(\"2d\"), {\r\n type: 'pie',\r\n data: {\r\n labels: pieChartList[i].pieChartLabels,\r\n datasets: [{\r\n backgroundColor: pieChartList[i].pieChartRGBColors,\r\n data: pieChartList[i].pieChartData\r\n }]\r\n },\r\n options: {\r\n title: {\r\n display: true,\r\n text: pieChartList[i].pieChartName\r\n },\r\n responsive: true\r\n }\r\n });\r\n this.pieChartPDD.render();\r\n }\r\n }\r\n\r\n //// SNR piechart\r\n if (pieChartList[i].pieChartName.includes('SNR')) {\r\n SNRNoData = true;\r\n //this.chartNameSNR = pieChartList[i].pieChartName;\r\n //this.pieChartDataSNR = pieChartList[i].pieChartData;\r\n //this.pieChartColorsSNR[0].backgroundColor = pieChartList[i].pieChartRGBColors;\r\n\r\n //for (let j = 0; j < pieChartList[i].pieChartLabels.length; j++) {\r\n // this.pieChartLabelsSNR.push(pieChartList[i].pieChartLabels[j]);\r\n //}\r\n if (document.getElementById(\"SNRPieChart\") != null) {\r\n this.pieChartSNR = new Chart((document.getElementById(\"SNRPieChart\")).getContext(\"2d\"), {\r\n type: 'pie',\r\n data: {\r\n labels: pieChartList[i].pieChartLabels,\r\n datasets: [{\r\n backgroundColor: pieChartList[i].pieChartRGBColors,\r\n data: pieChartList[i].pieChartData\r\n }]\r\n },\r\n options: {\r\n title: {\r\n display: true,\r\n text: pieChartList[i].pieChartName\r\n },\r\n responsive: true\r\n }\r\n });\r\n this.pieChartSNR.render();\r\n }\r\n }\r\n }\r\n\r\n if (document.getElementById(\"RTDPieChart\") != null && !RTDNoData) {\r\n this.pieChartRTD = new Chart((document.getElementById(\"RTDPieChart\")).getContext(\"2d\"), {\r\n type: 'pie',\r\n options: {\r\n title: {\r\n display: true,\r\n text: 'No Data Found (RTD)'\r\n },\r\n responsive: true\r\n }\r\n });\r\n this.pieChartRTD.render();\r\n }\r\n\r\n if (document.getElementById(\"OWDPieChart\") != null && !OWDNoData) {\r\n this.pieChartOWD = new Chart((document.getElementById(\"OWDPieChart\")).getContext(\"2d\"), {\r\n type: 'pie',\r\n options: {\r\n title: {\r\n display: true,\r\n text: 'No Data Found (OWD)'\r\n },\r\n responsive: true\r\n }\r\n });\r\n this.pieChartOWD.render();\r\n }\r\n\r\n if (document.getElementById(\"PDDPieChart\") != null && !PDDNoData) {\r\n this.pieChartPDD = new Chart((document.getElementById(\"PDDPieChart\")).getContext(\"2d\"), {\r\n type: 'pie',\r\n options: {\r\n title: {\r\n display: true,\r\n text: 'No Data Found (PDD)'\r\n },\r\n responsive: true\r\n }\r\n });\r\n this.pieChartPDD.render();\r\n }\r\n\r\n if (document.getElementById(\"SNRPieChart\") != null && !SNRNoData) {\r\n this.pieChartSNR = new Chart((document.getElementById(\"SNRPieChart\")).getContext(\"2d\"), {\r\n type: 'pie',\r\n options: {\r\n title: {\r\n display: true,\r\n text: 'No Data Found (SNR)'\r\n },\r\n responsive: true\r\n }\r\n });\r\n this.pieChartSNR.render();\r\n }\r\n ////for (let i = 0; i < pieCharList.length; i++)\r\n //// this.pieChartColors[0].backgroundColor = pieCharList[i].pieChartRGBColors;\r\n\r\n \r\n //if (RTDNoData == false) {\r\n // this.chartNameRTD = \"\";\r\n // this.pieChartDataRTD = [];\r\n // this.pieChartLabelsRTD = [];\r\n //}\r\n //if (OWDNoData == false) {\r\n // this.chartNameOWD = \"\";\r\n // this.pieChartDataOWD = [];\r\n // this.pieChartLabelsOWD = [];\r\n //}\r\n //if (PDDNoData == false) {\r\n // this.chartNamePDD = \"\";\r\n // this.pieChartDataPDD = [];\r\n // this.pieChartLabelsPDD = [];\r\n //}\r\n //if (SNRNoData == false) {\r\n // this.chartNameSNR = \"\";\r\n // this.pieChartDataSNR = [];\r\n // this.pieChartLabelsSNR = [];\r\n //}\r\n }\r\n\r\n currVQuadLocationSelected = \"\";\r\n currVQuadPhoneIDSelected = \"\";\r\n GetAudioAndDelayExpandedData(event, vquadLocation, VQuadPhoneID?) {\r\n if (event != null)\r\n event.preventDefault();\r\n\r\n if (this.expandedElement != null) {\r\n this.isLoading = true;\r\n //console.log(vquadLocation);\r\n if (VQuadPhoneID) {\r\n if (this.currVQuadPhoneIDSelected != VQuadPhoneID) {\r\n this.currVQuadPhoneIDSelected = VQuadPhoneID;\r\n this.url = this.baseUrl + 'CustomStatsConfig/GetAudioDelayExpandedData?strVQuadLocation=' + vquadLocation + '&VQuadPhoneID=' + VQuadPhoneID;\r\n }\r\n else\r\n this.isLoading = false;\r\n }\r\n else {\r\n this.currVQuadLocationSelected = vquadLocation;\r\n this.url = this.baseUrl + 'CustomStatsConfig/GetAudioDelayExpandedData?strVQuadLocation=' + vquadLocation;\r\n }\r\n\r\n if (this.isLoading) {//same phone id not selected again\r\n this.GetAudioAndDelayData_Service().subscribe((res: any) => {\r\n\r\n if (res == \"CacheExpired\") {\r\n this.selectedCallIDOrDevID = true;\r\n this.LoadAudioAndDelay('');\r\n\r\n this.GetAudioAndDelayData_Service().subscribe((res: any) => {\r\n\r\n let rows: any[] = JSON.parse(res) as any[];\r\n\r\n if (VQuadPhoneID) { }//sub grid already loaded\r\n else {\r\n this.dataSourceExpanded = rows[\"lstAudioAndDelayColumn\"];//sub grid loading first time\r\n if (rows[\"lstAudioAndDelayColumn\"].length > 0)\r\n this.currVQuadPhoneIDSelected = rows[\"lstAudioAndDelayColumn\"][0].VQuad_PhoneID;\r\n }\r\n\r\n this.BindPieChart(rows[\"lstPieChartSetting\"]);//selected or first phone id pie data loading\r\n this.isLoading = false;\r\n },\r\n err => {\r\n this.isLoading = false;\r\n });\r\n }\r\n else {\r\n //console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n\r\n if (VQuadPhoneID) { }//sub grid already loaded\r\n else {\r\n this.dataSourceExpanded = rows[\"lstAudioAndDelayColumn\"];//sub grid loading first time\r\n if (rows[\"lstAudioAndDelayColumn\"].length > 0)\r\n this.currVQuadPhoneIDSelected = rows[\"lstAudioAndDelayColumn\"][0].VQuad_PhoneID;\r\n }\r\n\r\n this.BindPieChart(rows[\"lstPieChartSetting\"]);//selected or first phone id pie data loading\r\n this.isLoading = false;\r\n }\r\n },\r\n err => {\r\n this.isLoading = false;\r\n });\r\n }\r\n }\r\n else \r\n this.LoadSelectedCallIDAudioDelay(null, this.currVQuadLocationSelected, true);//switch back to original Call ID Pie graphs\r\n }\r\n\r\n ////////////////////////////// get config data\r\n GetAudioAndDelayConfig() {\r\n this.showLegend = !this.showLegend; // open/hide legend div\r\n /////if call api for one time only\r\n if (this.getLegend)\r\n return;\r\n\r\n this.url = this.baseUrl + 'CustomStatsConfig/GetAudioDelayPieChartConfig';\r\n this.GetAudioAndDelayData_Service().subscribe((res: any) => {\r\n\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //console.log(rows);\r\n this.voiceQualityConfigList = rows;\r\n this.getLegend = true;\r\n });\r\n }\r\n\r\n /////////////////////////////////////////////////////// SERVICES\r\n GetAudioAndDelayData_Service() {\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, options);\r\n }\r\n\r\n commonFilter = new CommonFilter();\r\n generalFilterArray = [];\r\n dataFilter = new DataFilter();\r\n async GetAudioAndDelayMainData_Service(delFilterColName, AllGeneralFilter, filtersWithEventID, filters, TimestampType, columnName) {\r\n //let params = new HttpParams()\r\n // .set('TSType', TSType)\r\n // .set('TSBetween', TSBetween);\r\n this.generalFilterArray = [];\r\n this.commonFilter.TimestampType = TimestampType;\r\n\r\n let dbTz = -500;\r\n //this.commonFilterService.DB_TZ.subscribe(res => {\r\n // dbTz = res;\r\n //});\r\n //if (dbTz == -500) {//query var col table\r\n // await this.service.getDBTimezoneDiff('VquadData').then(res => {\r\n // this.commonFilterService.setDBTZFromVarCol(res);\r\n // dbTz = res;\r\n // });\r\n //}\r\n ////console.log(dbTz)\r\n\r\n let MainFilterTZ = 0;\r\n this.commonFilterService.mainFilterID.subscribe(res => this.commonFilter.MainFilterID = res);// set mainfilter ID\r\n this.commonFilterService.mfTZ.subscribe(res => MainFilterTZ = res);\r\n let dbAndBrHrs = -500;\r\n //if (this.commonFilter.MainFilterID != 0) {\r\n this.commonFilterService.DB_BRDiff.subscribe(res => {\r\n dbAndBrHrs = res;\r\n });\r\n if (dbAndBrHrs == -500) {//query var col table\r\n await this.service.getDBAndBrowserDiffHours('VquadData').then(res => {\r\n this.commonFilterService.setDBAndBrowserHrsDiff(res);\r\n dbAndBrHrs = res;\r\n });\r\n }\r\n //}\r\n\r\n let dates = formatDate(new Date(Date.now() + -1 * 600 * 1000), dbTz, dbAndBrHrs) + \"^\" + formatDate(new Date(), dbTz, dbAndBrHrs);//\"06/02/2019 11:00:00^06/02/2019 20:00:00\"; \r\n this.commonFilterService.TSBetween.subscribe(res => dates = res);//latest dates selected is set here from service\r\n //Added to set proper dates here based on range selection\r\n this.commonFilterService.TSRangeFilter.subscribe(res => { if (res.RangeType !== \"custom\") { dates = lastDateFunc(res.RangeType, dbTz, dbAndBrHrs) } });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n //Save current date selection in service to affected when switched to other screens from here - IMP\r\n this.commonFilterService.setDatesProperties(dates);\r\n\r\n this.generalFilterArray.push({ ColumnName: columnName, Operator: 6, Value: (dates.split('^'))[0], ValueTo: (dates.split('^'))[1], LoggedInUserName: null });\r\n this.generalFilterArray.push({ ColumnName: columnName, Operator: 13, Value: null, ValueTo: null, LoggedInUserName: null });\r\n //console.log(this.generalFilterArray)\r\n let genArr = [];\r\n let genArrCnt = 0;\r\n\r\n if (delFilterColName != 'clearAllFilters') {\r\n genArr = AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"].toUpperCase() != columnName.toUpperCase() && (el[\"RsltType\"] == 'pesq' || el[\"RsltType\"] == 'polqa' || el[\"RsltType\"] == 'audio-delay' || el[\"RsltType\"] == 'fax' || el[\"RsltType\"] == '');\r\n });\r\n\r\n this.commonFilterService.GeneralFilterDF.subscribe(res => {\r\n //console.log(res)\r\n filters = res;\r\n });\r\n }\r\n\r\n if (typeof filtersWithEventID == 'object' && Object.keys(filtersWithEventID).length > 0) {\r\n this.dataFilter.filters = filtersWithEventID;\r\n //console.log(filtersWithEventID)\r\n genArr = genArr.filter(el => {\r\n return el[\"ColumnName\"] != 'VQuad_CallID';\r\n });\r\n let generalFilterArrayAll = this.dataFilter.getProcessedFiltersArray(\"ALL\");\r\n genArr = [...genArr, ...generalFilterArrayAll];\r\n\r\n for (const key in filters) {\r\n if (key == 'VQuad_CallID')\r\n delete filters[key];\r\n }\r\n let generalFilterArrayNew = this.dataFilter.getProcessedFilters(\"\");\r\n filters = { ...filters, ...generalFilterArrayNew };\r\n }\r\n //console.log(genArr)\r\n //console.log(filters)\r\n\r\n if (delFilterColName != '' && delFilterColName != 'clearAllFilters') {\r\n //cleared = 1;\r\n genArr = genArr.filter(el => {\r\n return el[\"ColumnName\"] != delFilterColName;\r\n });\r\n\r\n for (const key in filters) {\r\n if (key == delFilterColName)\r\n delete filters[key];\r\n }\r\n }\r\n\r\n this.generalFilterArray.push(...genArr);\r\n genArrCnt = genArr.length;\r\n\r\n if (delFilterColName != 'clearAllFilters') {\r\n let newFilters = {};\r\n for (const key in filters) {\r\n if (filters[key].rsltType == 'pesq' || filters[key].rsltType == 'polqa' || filters[key].rsltType == 'audio-delay' || filters[key].rsltType == 'fax' || filters[key].rsltType == '') {\r\n let value = filters[key].value;\r\n let matchMode = filters[key].matchMode;\r\n let valueTo = filters[key].valueTo;\r\n let type = filters[key].type;\r\n let rsltType = filters[key].rsltType;\r\n let title = filters[key].title;\r\n newFilters[key] = { value, matchMode, valueTo, type, rsltType, title };\r\n }\r\n }\r\n //console.log(newFilters)\r\n debugger;\r\n this.commonFilterService.setGeneralFilterData(newFilters);\r\n }\r\n\r\n let body = JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.generalFilterArray });\r\n //debugger\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return await this.http.post(this.url, body, options).toPromise();\r\n }\r\n}\r\n\r\nexport interface PeriodicElement {\r\n name: string;\r\n position: number;\r\n weight: number;\r\n symbol: string;\r\n description: string;\r\n}\r\n\r\n\r\n\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3N0YXRpc3RpY3MvbmV0d29yay1zdGF0dXMvY29tbWFuZC1jZW50ZXIvY29tbWFuZC1jZW50ZXIuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-command-center',\n templateUrl: './command-center.component.html',\n styleUrls: ['./command-center.component.scss']\n})\nexport class CommandCenterComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit, Output, EventEmitter, ViewChild, Input, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { FormBuilder, FormGroup, FormArray } from '@angular/forms';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { MatDialog, MatDialogConfig, PageEvent, MatPaginator, MatSort, MatTableDataSource } from '@angular/material';\r\nimport { DemoService } from '../../../shared/demo.service';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { CommonFilter } from 'src/app/shared/models/Common/common-filter';\r\nimport { ConfirmDialogComponent } from 'src/app/shared/components/confirm-dialog/confirm-dialog.component';\r\nimport { strictEqual } from 'assert';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { RemoteCommandType } from 'src/app/shared/models/Remote Operations/remote-operations';\r\nimport { getDateValue, iterateAndWait } from 'lib/common/utils';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-file-monitor',\r\n templateUrl: './file-monitor.component.html',\r\n //styleUrls: ['./file-monitor.component.scss']\r\n styleUrls: ['../vquad/vquad.component.scss']\r\n})\r\nexport class FileMonitorComponent implements OnInit, AfterViewInit, OnDestroy {\r\n selectedRow: string;\r\n baseUrl: string;\r\n title: string;\r\n staticScreen = true;\r\n isLoading = false;\r\n url: string;\r\n currentPage: number;\r\n FMID: number = 0;\r\n centralIP1: string;\r\n centralIP2: string;\r\n centralIP3: string;\r\n centralIP4: string;\r\n // MatPaginator Inputs\r\n length = 100;\r\n pageSize = 20;\r\n pageSizeOption\r\n s: number[] = [1, 10, 25, 100];\r\n pageIndex = 0;\r\n\r\n pageEvent: PageEvent; // MatPaginator Output\r\n private commonFilter: CommonFilter;\r\n dataSource = new MatTableDataSource([]);//[];\r\n\r\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n\r\n centralIPsForm: FormGroup;\r\n centralIPsList = [];\r\n\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n columnsToDisplay = ['NodeIP_Abs', 'NodeIPAddr_Abs', 'CentralIP_Abs', 'RemotePath_Abs', 'DelType_Abs', 'FileType_Abs', 'FMStatus_Abs', 'Edit'];//, 'Select'];\r\n\r\n GetCentralIPLabel(CentralIPIndex_Abs) {\r\n\r\n return CentralIPIndex_Abs == \"0\" ? \"Primary IP\" : (CentralIPIndex_Abs == \"1\" ? \"Secondary IPs\" : \"\");\r\n }\r\n GetCentralIPInput(CentralIPIndex_Abs) {\r\n\r\n return CentralIPIndex_Abs == \"0\" ? \"Primary IP\" : \"Secondary IP\" + CentralIPIndex_Abs;\r\n }\r\n GetCentralIPLabelClass(CentralIPIndex_Abs) {\r\n\r\n return CentralIPIndex_Abs == \"0\" ? \"PrimaryIPNew\" : (CentralIPIndex_Abs == \"1\" ? \"SecondaryIPNew\" : \"\");\r\n }\r\n\r\n GetFileType(FileType_Abs) {\r\n\r\n return FileType_Abs == \"*.*\" ? \"All File\" : (FileType_Abs != null ? FileType_Abs.replace(\"*.\", \"\") : \"\");\r\n }\r\n\r\n //mySubscription: any;\r\n AutoRefreshInfo: any;\r\n interval;\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(private commonFilterService: CommonFilterService, private http: HttpClient, private demoService: DemoService, private dialog: MatDialog, private _formBuilder: FormBuilder, private router: Router) {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n\r\n this.commonFilterService.setNonFiltersScreen(true);\r\n\r\n this.centralIPsForm = this._formBuilder.group({\r\n dummyCentralIPsArray: this._formBuilder.array(this.centralIPsList)\r\n });\r\n\r\n\r\n //Do Refresh\r\n const _broadSubRefresh = this.commonFilterService.componentMethodCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log(res)\r\n this.LoadNSFMData();\r\n }\r\n );\r\n this.subscriptions.push(_broadSubRefresh);\r\n\r\n //Do Auto-refresh - start/stop\r\n const _broadSubAutoRefresh = this.commonFilterService.componentMethodWithArgCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.AutoRefreshInfo = res;\r\n //console.log(res)\r\n if (this.AutoRefreshInfo.AutoRefStop) {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n }\r\n }\r\n else {\r\n this.interval = setInterval(() => {\r\n //console.log(this.AutoRefreshInfo.AutoRefStop);\r\n\r\n this.LoadNSFMData();\r\n }, this.AutoRefreshInfo.AutoRefSelected);\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAutoRefresh);\r\n }\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n //ngOnDestroy() {\r\n // if (this.mySubscription) {\r\n // this.mySubscription.unsubscribe();\r\n // }\r\n //}\r\n\r\n ngAfterViewInit() {\r\n //setTimeout(() => this.dataSource.paginator = this.paginator);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n get dummyCentralIPsArray(): FormArray {\r\n return this.centralIPsForm.get('dummyCentralIPsArray') as FormArray;\r\n }\r\n\r\n OnReloadRoute() {\r\n this.router.navigateByUrl('statistics/nsfilemonitor');\r\n }\r\n ngOnInit() {\r\n\r\n //this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n // return false;\r\n //};\r\n //this.mySubscription = this.router.events.subscribe((event) => {\r\n // if (event instanceof NavigationEnd) {\r\n // // Trick the Router into believing it's last link wasn't previously loaded\r\n // this.router.navigated = false;\r\n\r\n // // if you need to scroll back to top, here is the right place\r\n // window.scrollTo(0, 0);\r\n // }\r\n //});\r\n\r\n\r\n this.LoadNSFMData();\r\n }\r\n\r\n @Input() StatusVquadID: number = 0;\r\n LoadNSFMData(event?: PageEvent) {\r\n this.isLoading = true;\r\n //this.prevRowData = null;\r\n //this.prevRowIndex = -1;\r\n this.commonFilter = new CommonFilter();\r\n if (event != undefined) {\r\n\r\n this.currentPage = +event.pageIndex + +1;\r\n this.url = this.baseUrl + 'NwStat_FileMonitor/GetAllNSStat_FileMonitors';\r\n this.commonFilter.PerPage = event.pageSize.toString();\r\n this.commonFilter.PageNumber = this.currentPage.toString();\r\n\r\n } else {\r\n this.url = this.baseUrl + 'NwStat_FileMonitor/GetAllNSStat_FileMonitors';\r\n this.commonFilter.PerPage = this.pageSize.toString();\r\n this.commonFilter.PageNumber = \"1\";\r\n }\r\n //console.log(this.StatusVquadID)\r\n if (this.StatusVquadID != 0) {\r\n this.url = this.baseUrl + 'NwStat_VQuad/GetAllNSStat_FileMonitorByVQuadID';\r\n this.commonFilter.ResultOrFileType = this.StatusVquadID;\r\n }\r\n\r\n this.GetAllData(this.commonFilter).subscribe((res: any) => {\r\n if (res !== 'null') {\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //console.log(rows)\r\n this.dataSource.data = rows;\r\n }\r\n this.isLoading = false;\r\n },\r\n err => {\r\n this.isLoading = false;\r\n });\r\n\r\n //this.demoService.GetData(this.commonFilter, 'NwStat_FileMonitor', 'GetAllNSStat_FileMonitors').subscribe((res: any) => {\r\n // // console.log(res);\r\n // let rows: any[] = JSON.parse(res) as any[];\r\n // this.dataSource = rows;\r\n //});\r\n \r\n return event;\r\n }\r\n\r\n GetAllData(commFilter: CommonFilter) {\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, commFilter, options);\r\n \r\n }\r\n\r\n ///////////////////// checkbox selection\r\n selection = new SelectionModel(true, []);\r\n\r\n //** Whether the number of selected elements matches the total number of rows. */\r\n isAllSelected() {\r\n\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data != null ? this.dataSource.data.length : 0;\r\n return numSelected === numRows;\r\n }\r\n\r\n //** Selects all rows if they are not all selected; otherwise clear selection. */\r\n masterToggle() {\r\n this.isAllSelected() ?\r\n this.selection.clear() :\r\n this.dataSource.data.forEach(row => this.selection.select(row));\r\n }\r\n\r\n //** The label for the checkbox on the passed row */\r\n checkboxLabel(row?: any): string {\r\n if (!row) {\r\n return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n }\r\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`;\r\n }\r\n\r\n\r\n DeleteNSFM() {\r\n this.selectedRow = '';\r\n this.dataSource.data.filter((value, key) => {\r\n if (this.selection.isSelected(value)) {\r\n //console.log(value.ID_Abs);\r\n this.selectedRow = this.selectedRow + value.ID_Abs + ',';\r\n }\r\n });\r\n\r\n if (this.selectedRow != '') {\r\n\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"40%\";\r\n dailogConfig.data = { title: \"Confirm Action\", message: \"Are you sure, you want to delete selected records?\" };\r\n\r\n this.dialog.open(ConfirmDialogComponent, dailogConfig).afterClosed().subscribe(dialogResult => {\r\n if (dialogResult) {\r\n this.DeleteFMData(this.selectedRow).subscribe((res: any) => {\r\n this.LoadNSFMData();\r\n });\r\n }\r\n });\r\n\r\n //if (confirm(\"Are you sure, you want to delete selected records?\")) {\r\n // this.DeleteMobileData(this.selectedRow).subscribe((res: any) => {\r\n // this.LoadNSMobileData();\r\n // });\r\n //}\r\n }\r\n\r\n }\r\n\r\n DeleteFMData(nsFMIDs: string) {\r\n this.url = this.baseUrl + 'NwStat_FileMonitor/DeleteNwStat_FileMonitor?nsFMIDs=' + nsFMIDs;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, options);\r\n }\r\n ///////////////////////////////////// end checkbox\r\n\r\n parentEvent(title) {\r\n //debugger;\r\n\r\n this.title = title;\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n\r\n\r\n isEditable = {};\r\n currStat = \"\";\r\n EditRow(rowData: any, rowIndex) {\r\n //console.log(this.prevRowIndex)\r\n if (this.prevRowIndex === -1) {\r\n this.prevRowData = rowData;\r\n this.currStat = rowData.FMStatus_Abs.toString();\r\n this.prevRowIndex = rowIndex;\r\n }\r\n else {\r\n this.UndoRow(this.prevRowIndex);\r\n this.prevRowData = null;\r\n this.prevRowIndex = -1;\r\n }\r\n //console.log(this.prevRowData)\r\n this.isEditable[rowIndex] = !this.isEditable[rowIndex];\r\n this.FMID = rowData.ID_Abs;\r\n\r\n this.centralIPsList = [];\r\n let cntIPs = 0;\r\n for (const key in rowData.CentralIP_Abs) {\r\n if (rowData.CentralIP_Abs[key] !== 'null')\r\n this.centralIPsList.push(rowData.CentralIP_Abs[key]);\r\n else\r\n this.centralIPsList.push(\"\");\r\n cntIPs++;\r\n }\r\n for (var i = cntIPs; i < 4; i++)\r\n this.centralIPsList.push(\"\");\r\n\r\n // if receiving data at a later point, use below instead\r\n this.centralIPsForm.setControl('dummyCentralIPsArray', this._formBuilder.array(this.centralIPsList));\r\n }\r\n\r\n //Needed UpdateRow function finally to be exectued to affect on Filemonitor side\r\n isStatusChanged = false;\r\n ChangeStatusRow(rowData: any) {\r\n this.isStatusChanged = true;\r\n if (rowData.FMStatus_Abs === 1)//Disconnect File monitor\r\n rowData.FMStatus_Abs = RemoteCommandType.STOP_SCRIPT;\r\n else//2,3\r\n rowData.FMStatus_Abs = RemoteCommandType.LOAD_SCRIPT;//Connect file monitor\r\n }\r\n KeepStatusToOriginalRow(rowData: any) {\r\n\r\n if (rowData.FMStatus_Abs > 1)//2,3 - Disconnect File monitor\r\n rowData.FMStatus_Abs = RemoteCommandType.STOP_SCRIPT;\r\n else//1\r\n rowData.FMStatus_Abs = RemoteCommandType.LOAD_SCRIPT;//Connect file monitor\r\n }\r\n\r\n prevRowData: any;\r\n prevRowIndex = -1;\r\n UndoRow(rowIndex) {\r\n this.isEditable[rowIndex] = false;\r\n this.FMID = 0;\r\n this.isStatusChanged = false;//reset\r\n //console.log(rowData.FMStatus_Abs)\r\n if (this.prevRowData != null) {\r\n this.dataSource.data = this.dataSource.data.filter((value, key) => {\r\n if (value.ID_Abs == this.prevRowData.ID_Abs) {\r\n value.FMStatus_Abs = this.currStat == \"\" ? this.prevRowData.FMStatus_Abs : parseInt(this.currStat);\r\n value.RemotePath_Abs = this.prevRowData.RemotePath_Abs;\r\n value.DelType_Abs = this.prevRowData.DelType_Abs;\r\n value.FileType_Abs = this.prevRowData.FileType_Abs;\r\n value.CentralIP_Abs = this.prevRowData.CentralIP_Abs;\r\n }\r\n return true;\r\n });\r\n }\r\n }\r\n\r\n //Update config and start file monitor updating DB\r\n UpdateRow(rowData: any, rowIndex) {\r\n // console.log(rowData);\r\n //console.log(rowData.FMStatus_Abs)\r\n if (this.isStatusChanged == false)\r\n this.KeepStatusToOriginalRow(rowData);\r\n\r\n this.isEditable[rowIndex] = !this.isEditable[rowIndex];\r\n this.FMID = 0;\r\n this.isStatusChanged = false;//reset\r\n\r\n let newCentralIPList: { [id: number]: string; } = {};//[];\r\n for (var i = 0; i < 4; i++)\r\n newCentralIPList[i] = this.dummyCentralIPsArray.value[i];//this.centralIPsList[i];\r\n\r\n rowData.CentralIP_Abs = newCentralIPList;\r\n let oldRemotePath = rowData.RemotePath_Abs;\r\n rowData.RemotePath_Abs = rowData.RemotePath_Abs.replace(/\\\\/g, \"\\\\\\\\\");\r\n if (rowData.FMStatus_Abs === 3)\r\n rowData.RemotePath_Abs = oldRemotePath;//no need of replacing \\ as we are stopping without sending any edited info\r\n\r\n this.UpdateFileMonitorData(rowData).subscribe((res: any) => {\r\n rowData.RemotePath_Abs = oldRemotePath;//reset to not repeat replacing \\ with \\\\\r\n this.isLoading = true;\r\n setTimeout(() => { this.isLoading = false; this.OnReloadRoute(); }, 3000); \r\n });\r\n\r\n //this.dataSource = this.dataSource.filter((value, key) => {\r\n // if (value.ID_Abs == rowData.ID_Abs) {\r\n //// value.FMStatus_Abs = rowData.FMStatus_Abs;\r\n // value.RemotePath_Abs = rowData.RemotePath_Abs;\r\n // value.DelType_Abs = rowData.DelType_Abs;\r\n // value.FileType_Abs = rowData.FileType_Abs;\r\n // value.CentralIP_Abs = rowData.CentralIP_Abs;\r\n // }\r\n // return true;\r\n //});\r\n \r\n }\r\n\r\n //Update only on Database side which has to be override by File monitor app\r\n UpdateFileMonitorData(rowData: any) {\r\n\r\n this.url = this.baseUrl + 'NwStat_FileMonitor/UpdateNwStat_FileMonitor';\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, rowData, options);\r\n\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Output, EventEmitter, ViewChild, Input, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { MatDialog, MatDialogConfig, PageEvent, MatPaginator, MatSort, MatTableDataSource } from '@angular/material';\r\nimport { DemoService } from '../../../shared/demo.service';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { CommonFilter } from 'src/app/shared/models/Common/common-filter';\r\nimport { ConfirmDialogComponent } from 'src/app/shared/components/confirm-dialog/confirm-dialog.component';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-mobile',\r\n templateUrl: './mobile.component.html',\r\n //styleUrls: ['./mobile.component.scss']\r\n styleUrls: ['../vquad/vquad.component.scss']\r\n})\r\nexport class MobileComponent implements OnInit, AfterViewInit, OnDestroy {\r\n isLoading = false;\r\n\r\n selectedRow: string;\r\n baseUrl: string;\r\n title: string;\r\n staticScreen = true;\r\n url: string;\r\n currentPage: number;\r\n // MatPaginator Inputs\r\n length = 100;\r\n pageSize = 20;\r\n pageSizeOptions: number[] = [1, 10, 25, 100];\r\n pageIndex = 0;\r\n\r\n pageEvent: PageEvent; // MatPaginator Output\r\n private commonFilter: CommonFilter;\r\n dataSource = new MatTableDataSource([]);//[];\r\n\r\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n columnsToDisplay = ['PhoneStatus', 'PhoneID_Abs', 'DeviceName_Abs', 'PhoneNumber_Abs', 'DeviceModel_Abs', 'GPS_Lat_Abs', 'GPS_Long_Abs', 'NodeTimestamp_Abs',\r\n 'TestStatusID_Abs', 'Battery_Level_Abs', 'RSSI_Abs', 'Mode_Abs', 'select'];\r\n\r\n AutoRefreshInfo: any;\r\n interval;\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(private commonFilterService: CommonFilterService, private http: HttpClient, private demoService: DemoService, private dialog: MatDialog, private router: Router) {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n\r\n this.commonFilterService.setNonFiltersScreen(true);\r\n\r\n //Do Refresh\r\n const _broadSubRefresh = this.commonFilterService.componentMethodCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log(res)\r\n this.LoadNSMobileData();\r\n }\r\n );\r\n this.subscriptions.push(_broadSubRefresh);\r\n\r\n //Do Auto-refresh - start/stop\r\n const _broadSubAutoRefresh = this.commonFilterService.componentMethodWithArgCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.AutoRefreshInfo = res;\r\n //console.log(res)\r\n if (this.AutoRefreshInfo.AutoRefStop) {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n }\r\n }\r\n else {\r\n this.interval = setInterval(() => {\r\n //console.log(this.AutoRefreshInfo.AutoRefStop);\r\n\r\n this.LoadNSMobileData();\r\n }, this.AutoRefreshInfo.AutoRefSelected);\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAutoRefresh);\r\n }\r\n ngAfterViewInit() {\r\n //setTimeout(() => this.dataSource.paginator = this.paginator);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.LoadNSMobileData();\r\n }\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n OnReloadRoute() {\r\n this.router.navigateByUrl('statistics/nsmobile');\r\n }\r\n\r\n @Input() StatusMobileID: number = 0;\r\n LoadNSMobileData(event?: PageEvent) {\r\n debugger;\r\n this.commonFilter = new CommonFilter();\r\n if (event != undefined) {\r\n\r\n this.currentPage = +event.pageIndex + +1;\r\n //this.url = this.baseUrl + 'NwStat_VQuad/GetVquads_New?perPage=' + event.pageSize + '&pageNumber=' + this.currentPage;\r\n this.url = this.baseUrl + 'NwStat_Mobile/GetAllNwStat_Mobiles';\r\n this.commonFilter.PerPage = event.pageSize.toString();\r\n this.commonFilter.PageNumber = this.currentPage.toString();\r\n\r\n } else {\r\n this.url = this.baseUrl + 'NwStat_Mobile/GetAllNwStat_Mobiles';\r\n this.commonFilter.PerPage = this.pageSize.toString();\r\n this.commonFilter.PageNumber = \"1\";\r\n }\r\n //console.log(this.StatusMobileID)\r\n if (this.StatusMobileID != 0) {\r\n this.url = this.baseUrl + 'NwStat_Mobile/GetAllNwStat_MobileByID';\r\n this.commonFilter.ResultOrFileType = this.StatusMobileID;\r\n }\r\n\r\n this.GetAllData(this.commonFilter).subscribe((res: any) => {\r\n //console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n this.length = rows.length;\r\n this.dataSource.data = rows;\r\n this.isLoading = false;\r\n },\r\n err => {\r\n this.isLoading = false;\r\n });\r\n\r\n return event;\r\n }\r\n\r\n parentEvent(title) {\r\n //debugger;\r\n\r\n this.title = title;\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n\r\n GetAllData(commFilter: CommonFilter) {\r\n\r\n //this.url = this.baseUrl + 'NwStat_Mobile/GetAllNwStat_Mobiles';\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, commFilter, options);\r\n }\r\n\r\n ///////////////////// checkbox selection\r\n selection = new SelectionModel(true, []);\r\n\r\n //** Whether the number of selected elements matches the total number of rows. */\r\n isAllSelected() {\r\n\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data != null ? this.dataSource.data.length : 0;\r\n return numSelected === numRows;\r\n }\r\n\r\n //** Selects all rows if they are not all selected; otherwise clear selection. */\r\n delButton: boolean;\r\n masterToggle() {\r\n this.isAllSelected() ?\r\n this.selection.clear() :\r\n this.dataSource.data.forEach(row => this.selection.select(row));\r\n\r\n this.delbuttonSet(1);\r\n }\r\n delbuttonSet(type, row?) {\r\n if (type == 2)\r\n this.selection.toggle(row);\r\n\r\n if (this.selection.selected.length > 0)\r\n this.delButton = true;\r\n else\r\n this.delButton = false;\r\n }\r\n\r\n //** The label for the checkbox on the passed row */\r\n checkboxLabel(row?: any): string {\r\n if (!row) {\r\n return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n }\r\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`;\r\n }\r\n\r\n\r\n DeleteNSMobile() {\r\n this.selectedRow = '';\r\n this.dataSource.data.filter((value, key) => {\r\n if (this.selection.isSelected(value)) {\r\n //console.log(value.ID_Abs);\r\n this.selectedRow = this.selectedRow + value.ID_Abs + ',';\r\n }\r\n });\r\n\r\n if (this.selectedRow != '') {\r\n\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"40%\";\r\n dailogConfig.data = { title: \"Confirm Action\", message: \"Are you sure, you want to delete selected records?\" };\r\n\r\n this.dialog.open(ConfirmDialogComponent, dailogConfig).afterClosed().subscribe(dialogResult => {\r\n if (dialogResult) {\r\n this.DeleteMobileData(this.selectedRow).subscribe((res: any) => {\r\n this.LoadNSMobileData();\r\n });\r\n }\r\n });\r\n\r\n //if (confirm(\"Are you sure, you want to delete selected records?\")) {\r\n // this.DeleteMobileData(this.selectedRow).subscribe((res: any) => {\r\n // this.LoadNSMobileData();\r\n // });\r\n //}\r\n }\r\n\r\n }\r\n\r\n DeleteMobileData(nsMobileID: string) {\r\n this.url = this.baseUrl + 'NwStat_Mobile/DeleteMobileByID?nsMobileIDs=' + nsMobileID;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, options);\r\n }\r\n ///////////////////////////////////// end checkbox\r\n\r\n}\r\n","module.exports = \".active, .btn:hover {\\n background-color: #2196F3;\\n color: white;\\n}\\n\\n.tab1, .tab2, .tab3 {\\n background-color: #2196F3;\\n color: white;\\n}\\n\\n.blueTick {\\n color: deepskyblue;\\n}\\n\\n.greenTick {\\n color: green;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc3RhdGlzdGljcy9uZXR3b3JrLXN0YXR1cy9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvc3JjXFxhcHBcXHN0YXRpc3RpY3NcXG5ldHdvcmstc3RhdHVzXFxuZXR3b3JrLXN0YXR1cy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvc3RhdGlzdGljcy9uZXR3b3JrLXN0YXR1cy9uZXR3b3JrLXN0YXR1cy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHlCQUFBO0VBQ0EsWUFBQTtBQ0NGOztBREVBO0VBQ0UseUJBQUE7RUFDQSxZQUFBO0FDQ0Y7O0FERUE7RUFDRSxrQkFBQTtBQ0NGOztBREVBO0VBQ0UsWUFBQTtBQ0NGIiwiZmlsZSI6InNyYy9hcHAvc3RhdGlzdGljcy9uZXR3b3JrLXN0YXR1cy9uZXR3b3JrLXN0YXR1cy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5hY3RpdmUsIC5idG46aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4udGFiMSwgLnRhYjIsIC50YWIzIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLmJsdWVUaWNrIHtcclxuICBjb2xvcjogZGVlcHNreWJsdWU7XHJcbn1cclxuXHJcbi5ncmVlblRpY2sge1xyXG4gIGNvbG9yOiBncmVlbjtcclxufVxyXG4iLCIuYWN0aXZlLCAuYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMztcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4udGFiMSwgLnRhYjIsIC50YWIzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMztcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uYmx1ZVRpY2sge1xuICBjb2xvcjogZGVlcHNreWJsdWU7XG59XG5cbi5ncmVlblRpY2sge1xuICBjb2xvcjogZ3JlZW47XG59Il19 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\n\r\n@Component({\r\n selector: 'app-network-status',\r\n templateUrl: './network-status.component.html',\r\n styleUrls: ['./network-status.component.scss']\r\n})\r\nexport class NetworkStatusComponent implements OnInit {\r\n tab: number = 1;\r\n\r\n constructor(private commonFilterService: CommonFilterService) {\r\n this.commonFilterService.setNonFiltersScreen(true);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onClick(check) {\r\n this.tab = parseInt(check);\r\n //console.log(this.tab)\r\n }\r\n\r\n}\r\n","module.exports = \"/*https://stackblitz.com/edit/angular-nested-mat-table?file=app%2Ftable-expandable-rows-example.ts*/\\n.outerTable {\\n /*width: 2000px !important;*/\\n}\\n.divFlow {\\n height: 760px;\\n max-height: 800px;\\n overflow: auto;\\n}\\n.outerTable th,\\n.innerTable th {\\n background: #1976D2;\\n color: white;\\n font-weight: bold;\\n text-align: center !important;\\n font-size: 12px;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n /*font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\\n font-family: Cambria, Cochin, Georgia, Times, Times New Roman, serif;*/\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n /*width:120px;*/\\n}\\n.outerTable td,\\n.innerTable td {\\n text-align: left !important;\\n font-size: 12px;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n /*font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\\n font-family: Cambria, Cochin, Georgia, Times, Times New Roman, serif;*/\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n}\\n/*elumalai*/\\n.outerTable tr,\\n.innerTable tr {\\n background-color: #FAFAFA;\\n}\\n.innerTable {\\n width: 100%;\\n}\\n.innerTable tr:nth-child(even) {\\n background: #C9DFF4;\\n}\\n.innerTable tr:nth-child(odd) {\\n background: #FFF;\\n}\\ntr.example-detail-row {\\n height: 0;\\n}\\n/*elumalai*/\\ntr.example-element-row:not(.example-expanded-row):hover {\\n background: #EBF3FE;\\n /*#777;*/\\n color: blueviolet;\\n}\\n/*elumalai*/\\ntr.example-element-row:not(.example-expanded-row):active {\\n /*background: #efefef;*/\\n background: #EBF3FE;\\n color: blueviolet;\\n}\\n/*.outerTable tr.example-element-row:not(.example-detail-row):nth-child(even) {\\n background: #C9DFF4;\\n}\\n\\n.outerTable tr.example-element-row:not(.example-detail-row):nth-child(odd) {\\n background: #FFF;\\n}*/\\n.example-element-row td {\\n border-bottom-width: 0;\\n}\\n.example-element-detail {\\n overflow: hidden;\\n /*display: flex;*/\\n}\\n/*https://www.freakyjolly.com/expand-collapse-single-or-multiple-rows-in-angular-98-material-table-multiple-single/*/\\n/*.example-element-detail {\\n overflow: hidden;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background-color: #e1e1e1;\\n box-shadow: inset 2px 3px 8px #c1c1c1;\\n border-radius: 8px;\\n}*/\\n.inner-table {\\n width: 1100px;\\n}\\n/*.inner-table mat-form-field {\\n margin-top: 15px;\\n width: 100%;\\n }\\n\\n .outerTable mat-form-field {\\n margin-top: 15px;\\n width: 70%;\\n }*/\\n.divHearder {\\n margin-left: 200px;\\n font-size: large;\\n margin-right: 100px;\\n}\\n.highlight {\\n color: blueviolet;\\n font-variant: all-petite-caps;\\n}\\n/*https://stackoverflow.com/questions/46632098/accessing-primary-color-which-is-defined-custom-theme-inside-components-scss\\n https://medium.com/@tomastrajan/the-complete-guide-to-angular-material-themes-4d165a9d24d1\\n*/\\n/*https: //stackblitz.com/edit/angular-material-theme-secrets?embed=1&file=src%2Ftheme.scss&source=post_page---------------------------*/\\n/*@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic&subset=latin-ext');\\n@import url('https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic&subset=latin-ext');*/\\n/*@import '../css/GoogleFontsOpenSans.css';\\n@import '../css/GoogleFontsRoboto.css';*/\\n/* Theme for the ripple elements.*/\\n/* stylelint-disable material/no-prefixes */\\n/* stylelint-enable */\\n.mat-badge-content {\\n font-weight: 600;\\n font-size: 12px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-badge-small .mat-badge-content {\\n font-size: 9px;\\n}\\n.mat-badge-large .mat-badge-content {\\n font-size: 24px;\\n}\\n.mat-h1, .mat-headline, .mat-typography h1 {\\n font: 400 24px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h2, .mat-title, .mat-typography h2 {\\n font: 500 20px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h3, .mat-subheading-2, .mat-typography h3 {\\n font: 400 16px/28px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h4, .mat-subheading-1, .mat-typography h4 {\\n font: 400 15px/24px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h5, .mat-typography h5 {\\n font: 400 calc(14px * 0.83)/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n.mat-h6, .mat-typography h6 {\\n font: 400 calc(14px * 0.67)/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n.mat-body-strong, .mat-body-2 {\\n font: 500 14px/24px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-body, .mat-body-1, .mat-typography {\\n font: 400 14px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-body p, .mat-body-1 p, .mat-typography p {\\n margin: 0 0 12px;\\n}\\n.mat-small, .mat-caption {\\n font: 400 12px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-display-4, .mat-typography .mat-display-4 {\\n font: 300 112px/112px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n letter-spacing: -0.05em;\\n margin: 0 0 56px;\\n}\\n.mat-display-3, .mat-typography .mat-display-3 {\\n font: 400 56px/56px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n letter-spacing: -0.02em;\\n margin: 0 0 64px;\\n}\\n.mat-display-2, .mat-typography .mat-display-2 {\\n font: 400 45px/48px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n letter-spacing: -0.005em;\\n margin: 0 0 64px;\\n}\\n.mat-display-1, .mat-typography .mat-display-1 {\\n font: 400 34px/40px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 64px;\\n}\\n.mat-bottom-sheet-container {\\n font: 400 14px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-button, .mat-raised-button, .mat-icon-button, .mat-stroked-button,\\n.mat-flat-button, .mat-fab, .mat-mini-fab {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-button-toggle {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-card {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-card-title {\\n font-size: 24px;\\n font-weight: 500;\\n}\\n.mat-card-header .mat-card-title {\\n font-size: 20px;\\n}\\n.mat-card-subtitle,\\n.mat-card-content {\\n font-size: 14px;\\n}\\n.mat-checkbox {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-checkbox-layout .mat-checkbox-label {\\n line-height: 24px;\\n}\\n.mat-chip {\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-chip .mat-chip-trailing-icon.mat-icon,\\n.mat-chip .mat-chip-remove.mat-icon {\\n font-size: 18px;\\n}\\n.mat-table {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-header-cell {\\n font-size: 12px;\\n font-weight: 500;\\n}\\n.mat-cell, .mat-footer-cell {\\n font-size: 14px;\\n}\\n.mat-calendar {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-calendar-body {\\n font-size: 13px;\\n}\\n.mat-calendar-body-label,\\n.mat-calendar-period-button {\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-calendar-table-header th {\\n font-size: 11px;\\n font-weight: 400;\\n}\\n.mat-dialog-title {\\n font: 500 20px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-expansion-panel-header {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 15px;\\n font-weight: 400;\\n}\\n.mat-expansion-panel-content {\\n font: 400 14px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-form-field {\\n font-size: inherit;\\n font-weight: 400;\\n line-height: 1.125;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-form-field-wrapper {\\n padding-bottom: 1.34375em;\\n}\\n.mat-form-field-prefix .mat-icon,\\n.mat-form-field-suffix .mat-icon {\\n font-size: 150%;\\n line-height: 1.125;\\n}\\n.mat-form-field-prefix .mat-icon-button,\\n.mat-form-field-suffix .mat-icon-button {\\n height: 1.5em;\\n width: 1.5em;\\n}\\n.mat-form-field-prefix .mat-icon-button .mat-icon,\\n.mat-form-field-suffix .mat-icon-button .mat-icon {\\n height: 1.125em;\\n line-height: 1.125;\\n}\\n.mat-form-field-infix {\\n padding: 0.5em 0;\\n border-top: 0.84375em solid transparent;\\n}\\n.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.34375em) scale(0.75);\\n transform: translateY(-1.34375em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.34374em) scale(0.75);\\n transform: translateY(-1.34374em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-form-field-label-wrapper {\\n top: -0.84375em;\\n padding-top: 0.84375em;\\n}\\n.mat-form-field-label {\\n top: 1.34375em;\\n}\\n.mat-form-field-underline {\\n bottom: 1.34375em;\\n}\\n.mat-form-field-subscript-wrapper {\\n font-size: 75%;\\n margin-top: 0.6666666667em;\\n top: calc(100% - 1.7916666667em);\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-wrapper {\\n padding-bottom: 1.25em;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-infix {\\n padding: 0.4375em 0;\\n}\\n.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);\\n -ms-transform: translateY(-1.28125em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);\\n -ms-transform: translateY(-1.28124em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);\\n -ms-transform: translateY(-1.28123em) scale(0.75);\\n width: 133.3333533333%;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-label {\\n top: 1.28125em;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-underline {\\n bottom: 1.25em;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {\\n margin-top: 0.5416666667em;\\n top: calc(100% - 1.6666666667em);\\n}\\n@media print {\\n .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.28122em) scale(0.75);\\n transform: translateY(-1.28122em) scale(0.75);\\n }\\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28121em) scale(0.75);\\n }\\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.2812em) scale(0.75);\\n transform: translateY(-1.2812em) scale(0.75);\\n }\\n}\\n.mat-form-field-appearance-fill .mat-form-field-infix {\\n padding: 0.25em 0 0.75em 0;\\n}\\n.mat-form-field-appearance-fill .mat-form-field-label {\\n top: 1.09375em;\\n margin-top: -0.5em;\\n}\\n.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-0.59375em) scale(0.75);\\n transform: translateY(-0.59375em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-0.59374em) scale(0.75);\\n transform: translateY(-0.59374em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-form-field-appearance-outline .mat-form-field-infix {\\n padding: 1em 0 1em 0;\\n}\\n.mat-form-field-appearance-outline .mat-form-field-label {\\n top: 1.84375em;\\n margin-top: -0.25em;\\n}\\n.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.59375em) scale(0.75);\\n transform: translateY(-1.59375em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.59374em) scale(0.75);\\n transform: translateY(-1.59374em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-grid-tile-header,\\n.mat-grid-tile-footer {\\n font-size: 14px;\\n}\\n.mat-grid-tile-header .mat-line,\\n.mat-grid-tile-footer .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-grid-tile-header .mat-line:nth-child(n+2),\\n.mat-grid-tile-footer .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\ninput.mat-input-element {\\n margin-top: -0.0625em;\\n}\\n.mat-menu-item {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 400;\\n}\\n.mat-paginator,\\n.mat-paginator-page-size .mat-select-trigger {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n}\\n.mat-radio-button {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-select {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-select-trigger {\\n height: 1.125em;\\n}\\n.mat-slide-toggle-content {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-slider-thumb-label-text {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n.mat-stepper-vertical, .mat-stepper-horizontal {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-step-label {\\n font-size: 14px;\\n font-weight: 400;\\n}\\n.mat-step-sub-label-error {\\n font-weight: normal;\\n}\\n.mat-step-label-error {\\n font-size: 14px;\\n}\\n.mat-step-label-selected {\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-tab-group {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-tab-label, .mat-tab-link {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-toolbar,\\n.mat-toolbar h1,\\n.mat-toolbar h2,\\n.mat-toolbar h3,\\n.mat-toolbar h4,\\n.mat-toolbar h5,\\n.mat-toolbar h6 {\\n font: 500 20px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0;\\n}\\n.mat-tooltip {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 10px;\\n padding-top: 6px;\\n padding-bottom: 6px;\\n}\\n.mat-tooltip-handset {\\n font-size: 14px;\\n padding-top: 8px;\\n padding-bottom: 8px;\\n}\\n.mat-list-item {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-list-option {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-list-base .mat-list-item {\\n font-size: 16px;\\n}\\n.mat-list-base .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n.mat-list-base .mat-list-option {\\n font-size: 16px;\\n}\\n.mat-list-base .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n.mat-list-base .mat-subheader {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-list-base[dense] .mat-list-item {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-list-option {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-subheader {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n.mat-option {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n}\\n.mat-optgroup-label {\\n font: 500 14px/24px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-simple-snackbar {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n}\\n.mat-simple-snackbar-action {\\n line-height: 1;\\n font-family: inherit;\\n font-size: inherit;\\n font-weight: 500;\\n}\\n.mat-tree {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-tree-node,\\n.mat-nested-tree-node {\\n font-weight: 400;\\n font-size: 14px;\\n}\\n.mat-ripple {\\n overflow: hidden;\\n position: relative;\\n}\\n.mat-ripple.mat-ripple-unbounded {\\n overflow: visible;\\n}\\n.mat-ripple-element {\\n position: absolute;\\n border-radius: 50%;\\n pointer-events: none;\\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\\n -ms-transform: scale(0);\\n transform: scale(0);\\n}\\n@media (-ms-high-contrast: active) {\\n .mat-ripple-element {\\n display: none;\\n }\\n}\\n.cdk-visually-hidden {\\n border: 0;\\n clip: rect(0 0 0 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n outline: 0;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n}\\n.cdk-overlay-container, .cdk-global-overlay-wrapper {\\n pointer-events: none;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n}\\n.cdk-overlay-container {\\n position: fixed;\\n z-index: 1000;\\n}\\n.cdk-overlay-container:empty {\\n display: none;\\n}\\n.cdk-global-overlay-wrapper {\\n display: -ms-flexbox;\\n display: flex;\\n position: absolute;\\n z-index: 1000;\\n}\\n.cdk-overlay-pane {\\n position: absolute;\\n pointer-events: auto;\\n box-sizing: border-box;\\n z-index: 1000;\\n display: -ms-flexbox;\\n display: flex;\\n max-width: 100%;\\n max-height: 100%;\\n}\\n.cdk-overlay-backdrop {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n z-index: 1000;\\n pointer-events: auto;\\n -webkit-tap-highlight-color: transparent;\\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\\n opacity: 0;\\n}\\n.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\\n opacity: 1;\\n}\\n@media screen and (-ms-high-contrast: active) {\\n .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\\n opacity: 0.6;\\n }\\n}\\n.cdk-overlay-dark-backdrop {\\n background: rgba(0, 0, 0, 0.32);\\n}\\n.cdk-overlay-transparent-backdrop, .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {\\n opacity: 0;\\n}\\n.cdk-overlay-connected-position-bounding-box {\\n position: absolute;\\n z-index: 1000;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n min-width: 1px;\\n min-height: 1px;\\n}\\n.cdk-global-scrollblock {\\n position: fixed;\\n width: 100%;\\n overflow-y: scroll;\\n}\\n@-webkit-keyframes cdk-text-field-autofill-start {\\n /*!*/\\n}\\n@keyframes cdk-text-field-autofill-start {\\n /*!*/\\n}\\n@-webkit-keyframes cdk-text-field-autofill-end {\\n /*!*/\\n}\\n@keyframes cdk-text-field-autofill-end {\\n /*!*/\\n}\\n.cdk-text-field-autofill-monitored:-webkit-autofill {\\n -webkit-animation-name: cdk-text-field-autofill-start;\\n animation-name: cdk-text-field-autofill-start;\\n}\\n.cdk-text-field-autofill-monitored:not(:-webkit-autofill) {\\n -webkit-animation-name: cdk-text-field-autofill-end;\\n animation-name: cdk-text-field-autofill-end;\\n}\\ntextarea.cdk-textarea-autosize {\\n resize: none;\\n}\\ntextarea.cdk-textarea-autosize-measuring {\\n height: auto !important;\\n overflow: hidden !important;\\n padding: 2px 0 !important;\\n box-sizing: content-box !important;\\n}\\n.mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.mat-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-option:hover:not(.mat-option-disabled), .mat-option:focus:not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.mat-option.mat-active {\\n background: rgba(0, 0, 0, 0.04);\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-option.mat-option-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #64b5f6;\\n}\\n.mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: yellow;\\n}\\n.mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #f44336;\\n}\\n.mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-optgroup-disabled .mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-pseudo-checkbox {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-pseudo-checkbox::after {\\n color: #fafafa;\\n}\\n.mat-pseudo-checkbox-disabled {\\n color: #b0b0b0;\\n}\\n.mat-pseudo-checkbox-checked,\\n.mat-pseudo-checkbox-indeterminate,\\n.mat-accent .mat-pseudo-checkbox-checked,\\n.mat-accent .mat-pseudo-checkbox-indeterminate {\\n background: yellow;\\n}\\n.mat-primary .mat-pseudo-checkbox-checked,\\n.mat-primary .mat-pseudo-checkbox-indeterminate {\\n background: #64b5f6;\\n}\\n.mat-warn .mat-pseudo-checkbox-checked,\\n.mat-warn .mat-pseudo-checkbox-indeterminate {\\n background: #f44336;\\n}\\n.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\\n.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\\n background: #b0b0b0;\\n}\\n.mat-elevation-z0 {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z1 {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z2 {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z3 {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z4 {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z5 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z6 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z7 {\\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z8 {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z9 {\\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z10 {\\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z11 {\\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z12 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z13 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z14 {\\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z15 {\\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z16 {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z17 {\\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z18 {\\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z19 {\\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z20 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z21 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z22 {\\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z23 {\\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z24 {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n}\\n.mat-app-background {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-theme-loaded-marker {\\n display: none;\\n}\\n.mat-autocomplete-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-autocomplete-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\\n background: white;\\n}\\n.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-badge-content {\\n color: rgba(0, 0, 0, 0.87);\\n background: #64b5f6;\\n}\\n@media (-ms-high-contrast: active) {\\n .mat-badge-content {\\n outline: solid 1px;\\n border-radius: 0;\\n }\\n}\\n.mat-badge-accent .mat-badge-content {\\n background: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-badge-warn .mat-badge-content {\\n color: white;\\n background: #f44336;\\n}\\n.mat-badge {\\n position: relative;\\n}\\n.mat-badge-hidden .mat-badge-content {\\n display: none;\\n}\\n.mat-badge-disabled .mat-badge-content {\\n background: #b9b9b9;\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-badge-content {\\n position: absolute;\\n text-align: center;\\n display: inline-block;\\n border-radius: 50%;\\n transition: transform 200ms ease-in-out;\\n -ms-transform: scale(0.6);\\n transform: scale(0.6);\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n pointer-events: none;\\n}\\n.ng-animate-disabled .mat-badge-content,\\n.mat-badge-content._mat-animation-noopable {\\n transition: none;\\n}\\n.mat-badge-content.mat-badge-active {\\n -ms-transform: none;\\n transform: none;\\n}\\n.mat-badge-small .mat-badge-content {\\n width: 16px;\\n height: 16px;\\n line-height: 16px;\\n}\\n.mat-badge-small.mat-badge-above .mat-badge-content {\\n top: -8px;\\n}\\n.mat-badge-small.mat-badge-below .mat-badge-content {\\n bottom: -8px;\\n}\\n.mat-badge-small.mat-badge-before .mat-badge-content {\\n left: -16px;\\n}\\n[dir=rtl] .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -16px;\\n}\\n.mat-badge-small.mat-badge-after .mat-badge-content {\\n right: -16px;\\n}\\n[dir=rtl] .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -16px;\\n}\\n.mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -8px;\\n}\\n[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -8px;\\n}\\n.mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -8px;\\n}\\n[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -8px;\\n}\\n.mat-badge-medium .mat-badge-content {\\n width: 22px;\\n height: 22px;\\n line-height: 22px;\\n}\\n.mat-badge-medium.mat-badge-above .mat-badge-content {\\n top: -11px;\\n}\\n.mat-badge-medium.mat-badge-below .mat-badge-content {\\n bottom: -11px;\\n}\\n.mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: -22px;\\n}\\n[dir=rtl] .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -22px;\\n}\\n.mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: -22px;\\n}\\n[dir=rtl] .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -22px;\\n}\\n.mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -11px;\\n}\\n[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -11px;\\n}\\n.mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -11px;\\n}\\n[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -11px;\\n}\\n.mat-badge-large .mat-badge-content {\\n width: 28px;\\n height: 28px;\\n line-height: 28px;\\n}\\n.mat-badge-large.mat-badge-above .mat-badge-content {\\n top: -14px;\\n}\\n.mat-badge-large.mat-badge-below .mat-badge-content {\\n bottom: -14px;\\n}\\n.mat-badge-large.mat-badge-before .mat-badge-content {\\n left: -28px;\\n}\\n[dir=rtl] .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -28px;\\n}\\n.mat-badge-large.mat-badge-after .mat-badge-content {\\n right: -28px;\\n}\\n[dir=rtl] .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -28px;\\n}\\n.mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -14px;\\n}\\n[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -14px;\\n}\\n.mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -14px;\\n}\\n[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -14px;\\n}\\n.mat-bottom-sheet-container {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-button, .mat-icon-button, .mat-stroked-button {\\n color: inherit;\\n background: transparent;\\n}\\n.mat-button.mat-primary, .mat-icon-button.mat-primary, .mat-stroked-button.mat-primary {\\n color: #64b5f6;\\n}\\n.mat-button.mat-accent, .mat-icon-button.mat-accent, .mat-stroked-button.mat-accent {\\n color: yellow;\\n}\\n.mat-button.mat-warn, .mat-icon-button.mat-warn, .mat-stroked-button.mat-warn {\\n color: #f44336;\\n}\\n.mat-button.mat-primary[disabled], .mat-button.mat-accent[disabled], .mat-button.mat-warn[disabled], .mat-button[disabled][disabled], .mat-icon-button.mat-primary[disabled], .mat-icon-button.mat-accent[disabled], .mat-icon-button.mat-warn[disabled], .mat-icon-button[disabled][disabled], .mat-stroked-button.mat-primary[disabled], .mat-stroked-button.mat-accent[disabled], .mat-stroked-button.mat-warn[disabled], .mat-stroked-button[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-button.mat-primary .mat-button-focus-overlay, .mat-icon-button.mat-primary .mat-button-focus-overlay, .mat-stroked-button.mat-primary .mat-button-focus-overlay {\\n background-color: #64b5f6;\\n}\\n.mat-button.mat-accent .mat-button-focus-overlay, .mat-icon-button.mat-accent .mat-button-focus-overlay, .mat-stroked-button.mat-accent .mat-button-focus-overlay {\\n background-color: yellow;\\n}\\n.mat-button.mat-warn .mat-button-focus-overlay, .mat-icon-button.mat-warn .mat-button-focus-overlay, .mat-stroked-button.mat-warn .mat-button-focus-overlay {\\n background-color: #f44336;\\n}\\n.mat-button[disabled] .mat-button-focus-overlay, .mat-icon-button[disabled] .mat-button-focus-overlay, .mat-stroked-button[disabled] .mat-button-focus-overlay {\\n background-color: transparent;\\n}\\n.mat-button .mat-ripple-element, .mat-icon-button .mat-ripple-element, .mat-stroked-button .mat-ripple-element {\\n opacity: 0.1;\\n background-color: currentColor;\\n}\\n.mat-button-focus-overlay {\\n background: black;\\n}\\n.mat-stroked-button:not([disabled]) {\\n border-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-flat-button, .mat-raised-button, .mat-fab, .mat-mini-fab {\\n color: rgba(0, 0, 0, 0.87);\\n background-color: white;\\n}\\n.mat-flat-button.mat-primary, .mat-raised-button.mat-primary, .mat-fab.mat-primary, .mat-mini-fab.mat-primary {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-flat-button.mat-accent, .mat-raised-button.mat-accent, .mat-fab.mat-accent, .mat-mini-fab.mat-accent {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-flat-button.mat-warn, .mat-raised-button.mat-warn, .mat-fab.mat-warn, .mat-mini-fab.mat-warn {\\n color: white;\\n}\\n.mat-flat-button.mat-primary[disabled], .mat-flat-button.mat-accent[disabled], .mat-flat-button.mat-warn[disabled], .mat-flat-button[disabled][disabled], .mat-raised-button.mat-primary[disabled], .mat-raised-button.mat-accent[disabled], .mat-raised-button.mat-warn[disabled], .mat-raised-button[disabled][disabled], .mat-fab.mat-primary[disabled], .mat-fab.mat-accent[disabled], .mat-fab.mat-warn[disabled], .mat-fab[disabled][disabled], .mat-mini-fab.mat-primary[disabled], .mat-mini-fab.mat-accent[disabled], .mat-mini-fab.mat-warn[disabled], .mat-mini-fab[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-flat-button.mat-primary, .mat-raised-button.mat-primary, .mat-fab.mat-primary, .mat-mini-fab.mat-primary {\\n background-color: #64b5f6;\\n}\\n.mat-flat-button.mat-accent, .mat-raised-button.mat-accent, .mat-fab.mat-accent, .mat-mini-fab.mat-accent {\\n background-color: yellow;\\n}\\n.mat-flat-button.mat-warn, .mat-raised-button.mat-warn, .mat-fab.mat-warn, .mat-mini-fab.mat-warn {\\n background-color: #f44336;\\n}\\n.mat-flat-button.mat-primary[disabled], .mat-flat-button.mat-accent[disabled], .mat-flat-button.mat-warn[disabled], .mat-flat-button[disabled][disabled], .mat-raised-button.mat-primary[disabled], .mat-raised-button.mat-accent[disabled], .mat-raised-button.mat-warn[disabled], .mat-raised-button[disabled][disabled], .mat-fab.mat-primary[disabled], .mat-fab.mat-accent[disabled], .mat-fab.mat-warn[disabled], .mat-fab[disabled][disabled], .mat-mini-fab.mat-primary[disabled], .mat-mini-fab.mat-accent[disabled], .mat-mini-fab.mat-warn[disabled], .mat-mini-fab[disabled][disabled] {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-flat-button.mat-primary .mat-ripple-element, .mat-raised-button.mat-primary .mat-ripple-element, .mat-fab.mat-primary .mat-ripple-element, .mat-mini-fab.mat-primary .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.mat-flat-button.mat-accent .mat-ripple-element, .mat-raised-button.mat-accent .mat-ripple-element, .mat-fab.mat-accent .mat-ripple-element, .mat-mini-fab.mat-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.mat-flat-button.mat-warn .mat-ripple-element, .mat-raised-button.mat-warn .mat-ripple-element, .mat-fab.mat-warn .mat-ripple-element, .mat-mini-fab.mat-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.mat-stroked-button:not([class*=mat-elevation-z]), .mat-flat-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-raised-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-fab:not([class*=mat-elevation-z]), .mat-mini-fab:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.mat-fab[disabled]:not([class*=mat-elevation-z]), .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-button-toggle-standalone,\\n.mat-button-toggle-group {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.mat-button-toggle-group-appearance-standard {\\n box-shadow: none;\\n}\\n.mat-button-toggle {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-button-toggle .mat-button-toggle-focus-overlay {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n background: white;\\n}\\n.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\\n background-color: black;\\n}\\n.mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: none;\\n border-top: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.mat-button-toggle-checked {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-button-toggle-checked.mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-button-toggle-disabled {\\n color: rgba(0, 0, 0, 0.26);\\n background-color: #eeeeee;\\n}\\n.mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\\n background: white;\\n}\\n.mat-button-toggle-disabled.mat-button-toggle-checked {\\n background-color: #bdbdbd;\\n}\\n.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.mat-button-toggle-group-appearance-standard {\\n border: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.mat-card {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-card:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-card-subtitle {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-checkbox-frame {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-checkbox-checkmark {\\n fill: #fafafa;\\n}\\n.mat-checkbox-checkmark-path {\\n stroke: #fafafa !important;\\n}\\n@media (-ms-high-contrast: black-on-white) {\\n .mat-checkbox-checkmark-path {\\n stroke: #000 !important;\\n }\\n}\\n.mat-checkbox-mixedmark {\\n background-color: #fafafa;\\n}\\n.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .mat-checkbox-checked.mat-primary .mat-checkbox-background {\\n background-color: #64b5f6;\\n}\\n.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .mat-checkbox-checked.mat-accent .mat-checkbox-background {\\n background-color: yellow;\\n}\\n.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .mat-checkbox-checked.mat-warn .mat-checkbox-background {\\n background-color: #f44336;\\n}\\n.mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: #b0b0b0;\\n}\\n.mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\\n border-color: #b0b0b0;\\n}\\n.mat-checkbox-disabled .mat-checkbox-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n@media (-ms-high-contrast: active) {\\n .mat-checkbox-disabled {\\n opacity: 0.5;\\n }\\n}\\n@media (-ms-high-contrast: active) {\\n .mat-checkbox-background {\\n background: none;\\n }\\n}\\n.mat-checkbox .mat-ripple-element {\\n background-color: black;\\n}\\n.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\\n.mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\\n background: #64b5f6;\\n}\\n.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\\n.mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\\n background: yellow;\\n}\\n.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\\n.mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\\n background: #f44336;\\n}\\n.mat-chip.mat-standard-chip {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-chip.mat-standard-chip .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\\n opacity: 0.54;\\n}\\n.mat-chip.mat-standard-chip.mat-chip-disabled {\\n opacity: 0.4;\\n}\\n.mat-chip.mat-standard-chip::after {\\n background: black;\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\\n background-color: #64b5f6;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\\n background-color: #f44336;\\n color: white;\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\\n background-color: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.mat-table {\\n background: white;\\n}\\n.mat-table thead, .mat-table tbody, .mat-table tfoot,\\nmat-header-row, mat-row, mat-footer-row,\\n[mat-header-row], [mat-row], [mat-footer-row],\\n.mat-table-sticky {\\n background: inherit;\\n}\\nmat-row, mat-header-row, mat-footer-row,\\nth.mat-header-cell, td.mat-cell, td.mat-footer-cell {\\n border-bottom-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-header-cell {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-cell, .mat-footer-cell {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-calendar-arrow {\\n border-top-color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-datepicker-toggle,\\n.mat-datepicker-content .mat-calendar-next-button,\\n.mat-datepicker-content .mat-calendar-previous-button {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-calendar-table-header {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-calendar-table-header-divider::after {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n.mat-calendar-body-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-calendar-body-cell-content {\\n color: rgba(0, 0, 0, 0.87);\\n border-color: transparent;\\n}\\n.mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n.mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.18);\\n}\\n.mat-calendar-body-selected {\\n background-color: #64b5f6;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(100, 181, 246, 0.4);\\n}\\n.mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n.mat-datepicker-content {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-datepicker-content.mat-accent .mat-calendar-body-selected {\\n background-color: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(255, 255, 0, 0.4);\\n}\\n.mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n.mat-datepicker-content.mat-warn .mat-calendar-body-selected {\\n background-color: #f44336;\\n color: white;\\n}\\n.mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(244, 67, 54, 0.4);\\n}\\n.mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.mat-datepicker-content-touch {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-datepicker-toggle-active {\\n color: #64b5f6;\\n}\\n.mat-datepicker-toggle-active.mat-accent {\\n color: yellow;\\n}\\n.mat-datepicker-toggle-active.mat-warn {\\n color: #f44336;\\n}\\n.mat-dialog-container {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-divider {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-divider-vertical {\\n border-right-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-expansion-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-expansion-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-action-row {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused, .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused, .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n@media (hover: none) {\\n .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\\n background: white;\\n }\\n}\\n.mat-expansion-panel-header-title {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-expansion-panel-header-description,\\n.mat-expansion-indicator::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-expansion-panel-header[aria-disabled=true] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\\n.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\\n color: inherit;\\n}\\n.mat-form-field-label {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n.mat-hint {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n.mat-form-field.mat-focused .mat-form-field-label {\\n color: #64b5f6;\\n}\\n.mat-form-field.mat-focused .mat-form-field-label.mat-accent {\\n color: yellow;\\n}\\n.mat-form-field.mat-focused .mat-form-field-label.mat-warn {\\n color: #f44336;\\n}\\n.mat-focused .mat-form-field-required-marker {\\n color: yellow;\\n}\\n.mat-form-field-ripple {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-form-field.mat-focused .mat-form-field-ripple {\\n background-color: #64b5f6;\\n}\\n.mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\\n background-color: yellow;\\n}\\n.mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\\n background-color: #f44336;\\n}\\n.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\\n color: #64b5f6;\\n}\\n.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\\n color: yellow;\\n}\\n.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n.mat-form-field.mat-form-field-invalid .mat-form-field-label {\\n color: #f44336;\\n}\\n.mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\\n.mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\\n color: #f44336;\\n}\\n.mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\\n.mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\\n background-color: #f44336;\\n}\\n.mat-error {\\n color: #f44336;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-form-field-appearance-legacy .mat-hint {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.mat-form-field-appearance-standard .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.mat-form-field-appearance-fill .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.02);\\n}\\n.mat-form-field-appearance-fill .mat-form-field-underline::before {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\\n background-color: transparent;\\n}\\n.mat-form-field-appearance-outline .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-form-field-appearance-outline .mat-form-field-outline-thick {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\\n color: #64b5f6;\\n}\\n.mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\\n color: yellow;\\n}\\n.mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n.mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.06);\\n}\\n.mat-icon.mat-primary {\\n color: #64b5f6;\\n}\\n.mat-icon.mat-accent {\\n color: yellow;\\n}\\n.mat-icon.mat-warn {\\n color: #f44336;\\n}\\n.mat-form-field-type-mat-native-select .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-input-element:disabled,\\n.mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-input-element {\\n caret-color: #64b5f6;\\n}\\n.mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-input-element:-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-input-element::-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-input-element::placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-input-element::-webkit-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-input-element:-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-accent .mat-input-element {\\n caret-color: yellow;\\n}\\n.mat-warn .mat-input-element,\\n.mat-form-field-invalid .mat-input-element {\\n caret-color: #f44336;\\n}\\n.mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n.mat-list-base .mat-list-item {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-list-base .mat-list-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-list-base .mat-subheader {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-list-item-disabled {\\n background-color: #eeeeee;\\n}\\n.mat-list-option:hover, .mat-list-option:focus,\\n.mat-nav-list .mat-list-item:hover,\\n.mat-nav-list .mat-list-item:focus,\\n.mat-action-list .mat-list-item:hover,\\n.mat-action-list .mat-list-item:focus {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.mat-menu-panel {\\n background: white;\\n}\\n.mat-menu-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-menu-item {\\n background: transparent;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-menu-item[disabled], .mat-menu-item[disabled]::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-menu-item .mat-icon-no-color,\\n.mat-menu-item-submenu-trigger::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-menu-item:hover:not([disabled]),\\n.mat-menu-item.cdk-program-focused:not([disabled]),\\n.mat-menu-item.cdk-keyboard-focused:not([disabled]),\\n.mat-menu-item-highlighted:not([disabled]) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.mat-paginator {\\n background: white;\\n}\\n.mat-paginator,\\n.mat-paginator-page-size .mat-select-trigger {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-paginator-decrement,\\n.mat-paginator-increment {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n border-right: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n.mat-paginator-first,\\n.mat-paginator-last {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n.mat-icon-button[disabled] .mat-paginator-decrement,\\n.mat-icon-button[disabled] .mat-paginator-increment,\\n.mat-icon-button[disabled] .mat-paginator-first,\\n.mat-icon-button[disabled] .mat-paginator-last {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-progress-bar-background {\\n fill: #bbdefb;\\n}\\n.mat-progress-bar-buffer {\\n background-color: #bbdefb;\\n}\\n.mat-progress-bar-fill::after {\\n background-color: #64b5f6;\\n}\\n.mat-progress-bar.mat-accent .mat-progress-bar-background {\\n fill: #ffff8d;\\n}\\n.mat-progress-bar.mat-accent .mat-progress-bar-buffer {\\n background-color: #ffff8d;\\n}\\n.mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\\n background-color: yellow;\\n}\\n.mat-progress-bar.mat-warn .mat-progress-bar-background {\\n fill: #ffcdd2;\\n}\\n.mat-progress-bar.mat-warn .mat-progress-bar-buffer {\\n background-color: #ffcdd2;\\n}\\n.mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\\n background-color: #f44336;\\n}\\n.mat-progress-spinner circle, .mat-spinner circle {\\n stroke: #64b5f6;\\n}\\n.mat-progress-spinner.mat-accent circle, .mat-spinner.mat-accent circle {\\n stroke: yellow;\\n}\\n.mat-progress-spinner.mat-warn circle, .mat-spinner.mat-warn circle {\\n stroke: #f44336;\\n}\\n.mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #64b5f6;\\n}\\n.mat-radio-button.mat-primary .mat-radio-inner-circle,\\n.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\\n background-color: #64b5f6;\\n}\\n.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\\n border-color: yellow;\\n}\\n.mat-radio-button.mat-accent .mat-radio-inner-circle,\\n.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\\n background-color: yellow;\\n}\\n.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #f44336;\\n}\\n.mat-radio-button.mat-warn .mat-radio-inner-circle,\\n.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\\n background-color: #f44336;\\n}\\n.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\\n.mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\\n.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-radio-button.mat-radio-disabled .mat-radio-label-content {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-radio-button .mat-ripple-element {\\n background-color: black;\\n}\\n.mat-select-value {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-select-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-select-disabled .mat-select-value {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-select-arrow {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-select-panel {\\n background: white;\\n}\\n.mat-select-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n.mat-form-field.mat-focused.mat-primary .mat-select-arrow {\\n color: #64b5f6;\\n}\\n.mat-form-field.mat-focused.mat-accent .mat-select-arrow {\\n color: yellow;\\n}\\n.mat-form-field.mat-focused.mat-warn .mat-select-arrow {\\n color: #f44336;\\n}\\n.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\\n color: #f44336;\\n}\\n.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-drawer-container {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-drawer {\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-drawer.mat-drawer-push {\\n background-color: white;\\n}\\n.mat-drawer:not(.mat-drawer-side) {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.mat-drawer-side {\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.mat-drawer-side.mat-drawer-end {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n[dir=rtl] .mat-drawer-side {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n[dir=rtl] .mat-drawer-side.mat-drawer-end {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.mat-drawer-backdrop.mat-drawer-shown {\\n background-color: rgba(0, 0, 0, 0.6);\\n}\\n.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\\n background-color: yellow;\\n}\\n.mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(255, 255, 0, 0.54);\\n}\\n.mat-slide-toggle.mat-checked .mat-ripple-element {\\n background-color: yellow;\\n}\\n.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\\n background-color: #64b5f6;\\n}\\n.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(100, 181, 246, 0.54);\\n}\\n.mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\\n background-color: #64b5f6;\\n}\\n.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\\n background-color: #f44336;\\n}\\n.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(244, 67, 54, 0.54);\\n}\\n.mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\\n background-color: #f44336;\\n}\\n.mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\\n background-color: black;\\n}\\n.mat-slide-toggle-thumb {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n background-color: #fafafa;\\n}\\n.mat-slide-toggle-bar {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-primary .mat-slider-track-fill,\\n.mat-primary .mat-slider-thumb,\\n.mat-primary .mat-slider-thumb-label {\\n background-color: #64b5f6;\\n}\\n.mat-primary .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-accent .mat-slider-track-fill,\\n.mat-accent .mat-slider-thumb,\\n.mat-accent .mat-slider-thumb-label {\\n background-color: yellow;\\n}\\n.mat-accent .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-warn .mat-slider-track-fill,\\n.mat-warn .mat-slider-thumb,\\n.mat-warn .mat-slider-thumb-label {\\n background-color: #f44336;\\n}\\n.mat-warn .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.mat-slider-focus-ring {\\n background-color: rgba(255, 255, 0, 0.2);\\n}\\n.mat-slider:hover .mat-slider-track-background,\\n.cdk-focused .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-slider-disabled .mat-slider-track-background,\\n.mat-slider-disabled .mat-slider-track-fill,\\n.mat-slider-disabled .mat-slider-thumb {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-slider-disabled:hover .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-slider-min-value .mat-slider-focus-ring {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\\n.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\\n.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n background-color: transparent;\\n}\\n.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-slider-has-ticks .mat-slider-wrapper::after {\\n border-color: rgba(0, 0, 0, 0.7);\\n}\\n.mat-slider-horizontal .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to right, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n.mat-slider-vertical .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n.mat-step-header.cdk-keyboard-focused, .mat-step-header.cdk-program-focused, .mat-step-header:hover {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n@media (hover: none) {\\n .mat-step-header:hover {\\n background: none;\\n }\\n}\\n.mat-step-header .mat-step-label,\\n.mat-step-header .mat-step-optional {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-step-header .mat-step-icon {\\n background-color: rgba(0, 0, 0, 0.54);\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-step-header .mat-step-icon-selected,\\n.mat-step-header .mat-step-icon-state-done,\\n.mat-step-header .mat-step-icon-state-edit {\\n background-color: #64b5f6;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-step-header .mat-step-icon-state-error {\\n background-color: transparent;\\n color: #f44336;\\n}\\n.mat-step-header .mat-step-label.mat-step-label-active {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-step-header .mat-step-label.mat-step-label-error {\\n color: #f44336;\\n}\\n.mat-stepper-horizontal, .mat-stepper-vertical {\\n background-color: white;\\n}\\n.mat-stepper-vertical-line::before {\\n border-left-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-horizontal-stepper-header::before,\\n.mat-horizontal-stepper-header::after,\\n.mat-stepper-horizontal-line {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-sort-header-arrow {\\n color: #757575;\\n}\\n.mat-tab-nav-bar,\\n.mat-tab-header {\\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\\n}\\n.mat-tab-group-inverted-header .mat-tab-nav-bar,\\n.mat-tab-group-inverted-header .mat-tab-header {\\n border-top: 1px solid rgba(0, 0, 0, 0.12);\\n border-bottom: none;\\n}\\n.mat-tab-label, .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-label.mat-tab-disabled, .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-tab-group[class*=mat-background-] .mat-tab-header,\\n.mat-tab-nav-bar[class*=mat-background-] {\\n border-bottom: none;\\n border-top: none;\\n}\\n.mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(187, 222, 251, 0.3);\\n}\\n.mat-tab-group.mat-primary .mat-ink-bar, .mat-tab-nav-bar.mat-primary .mat-ink-bar {\\n background-color: #64b5f6;\\n}\\n.mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 255, 141, 0.3);\\n}\\n.mat-tab-group.mat-accent .mat-ink-bar, .mat-tab-nav-bar.mat-accent .mat-ink-bar {\\n background-color: yellow;\\n}\\n.mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n.mat-tab-group.mat-warn .mat-ink-bar, .mat-tab-nav-bar.mat-warn .mat-ink-bar {\\n background-color: #f44336;\\n}\\n.mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\\n background-color: white;\\n}\\n.mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(187, 222, 251, 0.3);\\n}\\n.mat-tab-group.mat-background-primary .mat-tab-header, .mat-tab-group.mat-background-primary .mat-tab-links, .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\\n background-color: #64b5f6;\\n}\\n.mat-tab-group.mat-background-primary .mat-tab-label, .mat-tab-group.mat-background-primary .mat-tab-link, .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n.mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n.mat-tab-group.mat-background-primary .mat-ripple-element, .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 255, 141, 0.3);\\n}\\n.mat-tab-group.mat-background-accent .mat-tab-header, .mat-tab-group.mat-background-accent .mat-tab-links, .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\\n background-color: yellow;\\n}\\n.mat-tab-group.mat-background-accent .mat-tab-label, .mat-tab-group.mat-background-accent .mat-tab-link, .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n.mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n.mat-tab-group.mat-background-accent .mat-ripple-element, .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n.mat-tab-group.mat-background-warn .mat-tab-header, .mat-tab-group.mat-background-warn .mat-tab-links, .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\\n background-color: #f44336;\\n}\\n.mat-tab-group.mat-background-warn .mat-tab-label, .mat-tab-group.mat-background-warn .mat-tab-link, .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\\n color: white;\\n}\\n.mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.mat-tab-group.mat-background-warn .mat-ripple-element, .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.mat-toolbar {\\n background: whitesmoke;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-toolbar.mat-primary {\\n background: #64b5f6;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-toolbar.mat-accent {\\n background: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-toolbar.mat-warn {\\n background: #f44336;\\n color: white;\\n}\\n.mat-toolbar .mat-form-field-underline,\\n.mat-toolbar .mat-form-field-ripple,\\n.mat-toolbar .mat-focused .mat-form-field-ripple {\\n background-color: currentColor;\\n}\\n.mat-toolbar .mat-form-field-label,\\n.mat-toolbar .mat-focused .mat-form-field-label,\\n.mat-toolbar .mat-select-value,\\n.mat-toolbar .mat-select-arrow,\\n.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\\n color: inherit;\\n}\\n.mat-toolbar .mat-input-element {\\n caret-color: currentColor;\\n}\\n.mat-tooltip {\\n background: rgba(97, 97, 97, 0.9);\\n}\\n.mat-tree {\\n background: white;\\n}\\n.mat-tree-node,\\n.mat-nested-tree-node {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-snack-bar-container {\\n color: rgba(255, 255, 255, 0.7);\\n background: #323232;\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-simple-snackbar-action {\\n color: yellow;\\n}\\n.unicorn-dark-theme .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.unicorn-dark-theme .mat-option {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-option:hover:not(.mat-option-disabled), .unicorn-dark-theme .mat-option:focus:not(.mat-option-disabled) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.unicorn-dark-theme .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.unicorn-dark-theme .mat-option.mat-active {\\n background: rgba(255, 255, 255, 0.04);\\n color: white;\\n}\\n.unicorn-dark-theme .mat-option.mat-option-disabled {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-optgroup-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-optgroup-disabled .mat-optgroup-label {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-pseudo-checkbox {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-pseudo-checkbox::after {\\n color: #303030;\\n}\\n.unicorn-dark-theme .mat-pseudo-checkbox-disabled {\\n color: #686868;\\n}\\n.unicorn-dark-theme .mat-pseudo-checkbox-checked,\\n.unicorn-dark-theme .mat-pseudo-checkbox-indeterminate,\\n.unicorn-dark-theme .mat-accent .mat-pseudo-checkbox-checked,\\n.unicorn-dark-theme .mat-accent .mat-pseudo-checkbox-indeterminate {\\n background: #ffd740;\\n}\\n.unicorn-dark-theme .mat-primary .mat-pseudo-checkbox-checked,\\n.unicorn-dark-theme .mat-primary .mat-pseudo-checkbox-indeterminate {\\n background: #607d8b;\\n}\\n.unicorn-dark-theme .mat-warn .mat-pseudo-checkbox-checked,\\n.unicorn-dark-theme .mat-warn .mat-pseudo-checkbox-indeterminate {\\n background: #ff5722;\\n}\\n.unicorn-dark-theme .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\\n.unicorn-dark-theme .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\\n background: #686868;\\n}\\n.unicorn-dark-theme .mat-elevation-z0 {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z1 {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z2 {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z3 {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z4 {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z5 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z6 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z7 {\\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z8 {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z9 {\\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z10 {\\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z11 {\\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z12 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z13 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z14 {\\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z15 {\\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z16 {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z17 {\\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z18 {\\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z19 {\\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z20 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z21 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z22 {\\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z23 {\\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z24 {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-app-background, .unicorn-dark-theme.mat-app-background {\\n background-color: #303030;\\n color: white;\\n}\\n.mat-theme-loaded-marker {\\n display: none;\\n}\\n.unicorn-dark-theme .mat-autocomplete-panel {\\n background: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-badge-content {\\n color: white;\\n background: #607d8b;\\n}\\n@media (-ms-high-contrast: active) {\\n .unicorn-dark-theme .mat-badge-content {\\n outline: solid 1px;\\n border-radius: 0;\\n }\\n}\\n.unicorn-dark-theme .mat-badge-accent .mat-badge-content {\\n background: #ffd740;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-badge-warn .mat-badge-content {\\n color: white;\\n background: #ff5722;\\n}\\n.unicorn-dark-theme .mat-badge {\\n position: relative;\\n}\\n.unicorn-dark-theme .mat-badge-hidden .mat-badge-content {\\n display: none;\\n}\\n.unicorn-dark-theme .mat-badge-disabled .mat-badge-content {\\n background: #6e6e6e;\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-badge-content {\\n position: absolute;\\n text-align: center;\\n display: inline-block;\\n border-radius: 50%;\\n transition: transform 200ms ease-in-out;\\n -ms-transform: scale(0.6);\\n transform: scale(0.6);\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n pointer-events: none;\\n}\\n.unicorn-dark-theme .ng-animate-disabled .mat-badge-content,\\n.unicorn-dark-theme .mat-badge-content._mat-animation-noopable {\\n transition: none;\\n}\\n.unicorn-dark-theme .mat-badge-content.mat-badge-active {\\n -ms-transform: none;\\n transform: none;\\n}\\n.unicorn-dark-theme .mat-badge-small .mat-badge-content {\\n width: 16px;\\n height: 16px;\\n line-height: 16px;\\n}\\n.unicorn-dark-theme .mat-badge-small.mat-badge-above .mat-badge-content {\\n top: -8px;\\n}\\n.unicorn-dark-theme .mat-badge-small.mat-badge-below .mat-badge-content {\\n bottom: -8px;\\n}\\n.unicorn-dark-theme .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: -16px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -16px;\\n}\\n.unicorn-dark-theme .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: -16px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -16px;\\n}\\n.unicorn-dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -8px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -8px;\\n}\\n.unicorn-dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -8px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -8px;\\n}\\n.unicorn-dark-theme .mat-badge-medium .mat-badge-content {\\n width: 22px;\\n height: 22px;\\n line-height: 22px;\\n}\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-above .mat-badge-content {\\n top: -11px;\\n}\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-below .mat-badge-content {\\n bottom: -11px;\\n}\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: -22px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -22px;\\n}\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: -22px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -22px;\\n}\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -11px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -11px;\\n}\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -11px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -11px;\\n}\\n.unicorn-dark-theme .mat-badge-large .mat-badge-content {\\n width: 28px;\\n height: 28px;\\n line-height: 28px;\\n}\\n.unicorn-dark-theme .mat-badge-large.mat-badge-above .mat-badge-content {\\n top: -14px;\\n}\\n.unicorn-dark-theme .mat-badge-large.mat-badge-below .mat-badge-content {\\n bottom: -14px;\\n}\\n.unicorn-dark-theme .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: -28px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -28px;\\n}\\n.unicorn-dark-theme .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: -28px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -28px;\\n}\\n.unicorn-dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -14px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -14px;\\n}\\n.unicorn-dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -14px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -14px;\\n}\\n.unicorn-dark-theme .mat-bottom-sheet-container {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n background: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-button, .unicorn-dark-theme .mat-icon-button, .unicorn-dark-theme .mat-stroked-button {\\n color: inherit;\\n background: transparent;\\n}\\n.unicorn-dark-theme .mat-button.mat-primary, .unicorn-dark-theme .mat-icon-button.mat-primary, .unicorn-dark-theme .mat-stroked-button.mat-primary {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-button.mat-accent, .unicorn-dark-theme .mat-icon-button.mat-accent, .unicorn-dark-theme .mat-stroked-button.mat-accent {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-button.mat-warn, .unicorn-dark-theme .mat-icon-button.mat-warn, .unicorn-dark-theme .mat-stroked-button.mat-warn {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-button.mat-primary[disabled], .unicorn-dark-theme .mat-button.mat-accent[disabled], .unicorn-dark-theme .mat-button.mat-warn[disabled], .unicorn-dark-theme .mat-button[disabled][disabled], .unicorn-dark-theme .mat-icon-button.mat-primary[disabled], .unicorn-dark-theme .mat-icon-button.mat-accent[disabled], .unicorn-dark-theme .mat-icon-button.mat-warn[disabled], .unicorn-dark-theme .mat-icon-button[disabled][disabled], .unicorn-dark-theme .mat-stroked-button.mat-primary[disabled], .unicorn-dark-theme .mat-stroked-button.mat-accent[disabled], .unicorn-dark-theme .mat-stroked-button.mat-warn[disabled], .unicorn-dark-theme .mat-stroked-button[disabled][disabled] {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-button.mat-primary .mat-button-focus-overlay, .unicorn-dark-theme .mat-icon-button.mat-primary .mat-button-focus-overlay, .unicorn-dark-theme .mat-stroked-button.mat-primary .mat-button-focus-overlay {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-button.mat-accent .mat-button-focus-overlay, .unicorn-dark-theme .mat-icon-button.mat-accent .mat-button-focus-overlay, .unicorn-dark-theme .mat-stroked-button.mat-accent .mat-button-focus-overlay {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-button.mat-warn .mat-button-focus-overlay, .unicorn-dark-theme .mat-icon-button.mat-warn .mat-button-focus-overlay, .unicorn-dark-theme .mat-stroked-button.mat-warn .mat-button-focus-overlay {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-button[disabled] .mat-button-focus-overlay, .unicorn-dark-theme .mat-icon-button[disabled] .mat-button-focus-overlay, .unicorn-dark-theme .mat-stroked-button[disabled] .mat-button-focus-overlay {\\n background-color: transparent;\\n}\\n.unicorn-dark-theme .mat-button .mat-ripple-element, .unicorn-dark-theme .mat-icon-button .mat-ripple-element, .unicorn-dark-theme .mat-stroked-button .mat-ripple-element {\\n opacity: 0.1;\\n background-color: currentColor;\\n}\\n.unicorn-dark-theme .mat-button-focus-overlay {\\n background: white;\\n}\\n.unicorn-dark-theme .mat-stroked-button:not([disabled]) {\\n border-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-flat-button, .unicorn-dark-theme .mat-raised-button, .unicorn-dark-theme .mat-fab, .unicorn-dark-theme .mat-mini-fab {\\n color: white;\\n background-color: #424242;\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-primary, .unicorn-dark-theme .mat-raised-button.mat-primary, .unicorn-dark-theme .mat-fab.mat-primary, .unicorn-dark-theme .mat-mini-fab.mat-primary {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-accent, .unicorn-dark-theme .mat-raised-button.mat-accent, .unicorn-dark-theme .mat-fab.mat-accent, .unicorn-dark-theme .mat-mini-fab.mat-accent {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-warn, .unicorn-dark-theme .mat-raised-button.mat-warn, .unicorn-dark-theme .mat-fab.mat-warn, .unicorn-dark-theme .mat-mini-fab.mat-warn {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-primary[disabled], .unicorn-dark-theme .mat-flat-button.mat-accent[disabled], .unicorn-dark-theme .mat-flat-button.mat-warn[disabled], .unicorn-dark-theme .mat-flat-button[disabled][disabled], .unicorn-dark-theme .mat-raised-button.mat-primary[disabled], .unicorn-dark-theme .mat-raised-button.mat-accent[disabled], .unicorn-dark-theme .mat-raised-button.mat-warn[disabled], .unicorn-dark-theme .mat-raised-button[disabled][disabled], .unicorn-dark-theme .mat-fab.mat-primary[disabled], .unicorn-dark-theme .mat-fab.mat-accent[disabled], .unicorn-dark-theme .mat-fab.mat-warn[disabled], .unicorn-dark-theme .mat-fab[disabled][disabled], .unicorn-dark-theme .mat-mini-fab.mat-primary[disabled], .unicorn-dark-theme .mat-mini-fab.mat-accent[disabled], .unicorn-dark-theme .mat-mini-fab.mat-warn[disabled], .unicorn-dark-theme .mat-mini-fab[disabled][disabled] {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-primary, .unicorn-dark-theme .mat-raised-button.mat-primary, .unicorn-dark-theme .mat-fab.mat-primary, .unicorn-dark-theme .mat-mini-fab.mat-primary {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-accent, .unicorn-dark-theme .mat-raised-button.mat-accent, .unicorn-dark-theme .mat-fab.mat-accent, .unicorn-dark-theme .mat-mini-fab.mat-accent {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-warn, .unicorn-dark-theme .mat-raised-button.mat-warn, .unicorn-dark-theme .mat-fab.mat-warn, .unicorn-dark-theme .mat-mini-fab.mat-warn {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-primary[disabled], .unicorn-dark-theme .mat-flat-button.mat-accent[disabled], .unicorn-dark-theme .mat-flat-button.mat-warn[disabled], .unicorn-dark-theme .mat-flat-button[disabled][disabled], .unicorn-dark-theme .mat-raised-button.mat-primary[disabled], .unicorn-dark-theme .mat-raised-button.mat-accent[disabled], .unicorn-dark-theme .mat-raised-button.mat-warn[disabled], .unicorn-dark-theme .mat-raised-button[disabled][disabled], .unicorn-dark-theme .mat-fab.mat-primary[disabled], .unicorn-dark-theme .mat-fab.mat-accent[disabled], .unicorn-dark-theme .mat-fab.mat-warn[disabled], .unicorn-dark-theme .mat-fab[disabled][disabled], .unicorn-dark-theme .mat-mini-fab.mat-primary[disabled], .unicorn-dark-theme .mat-mini-fab.mat-accent[disabled], .unicorn-dark-theme .mat-mini-fab.mat-warn[disabled], .unicorn-dark-theme .mat-mini-fab[disabled][disabled] {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-primary .mat-ripple-element, .unicorn-dark-theme .mat-raised-button.mat-primary .mat-ripple-element, .unicorn-dark-theme .mat-fab.mat-primary .mat-ripple-element, .unicorn-dark-theme .mat-mini-fab.mat-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-accent .mat-ripple-element, .unicorn-dark-theme .mat-raised-button.mat-accent .mat-ripple-element, .unicorn-dark-theme .mat-fab.mat-accent .mat-ripple-element, .unicorn-dark-theme .mat-mini-fab.mat-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-warn .mat-ripple-element, .unicorn-dark-theme .mat-raised-button.mat-warn .mat-ripple-element, .unicorn-dark-theme .mat-fab.mat-warn .mat-ripple-element, .unicorn-dark-theme .mat-mini-fab.mat-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.unicorn-dark-theme .mat-stroked-button:not([class*=mat-elevation-z]), .unicorn-dark-theme .mat-flat-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-raised-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-fab:not([class*=mat-elevation-z]), .unicorn-dark-theme .mat-mini-fab:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .unicorn-dark-theme .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-fab[disabled]:not([class*=mat-elevation-z]), .unicorn-dark-theme .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-button-toggle-standalone,\\n.unicorn-dark-theme .mat-button-toggle-group {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.unicorn-dark-theme .mat-button-toggle-group-appearance-standard {\\n box-shadow: none;\\n}\\n.unicorn-dark-theme .mat-button-toggle {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-button-toggle .mat-button-toggle-focus-overlay {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-button-toggle-appearance-standard {\\n color: white;\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: none;\\n border-top: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-button-toggle-checked {\\n background-color: #212121;\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-button-toggle-disabled {\\n color: rgba(255, 255, 255, 0.3);\\n background-color: black;\\n}\\n.unicorn-dark-theme .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-button-toggle-disabled.mat-button-toggle-checked {\\n background-color: #424242;\\n}\\n.unicorn-dark-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.unicorn-dark-theme .mat-button-toggle-group-appearance-standard {\\n border: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-card {\\n background: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-card:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-card-subtitle {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-checkbox-frame {\\n border-color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-checkbox-checkmark {\\n fill: #303030;\\n}\\n.unicorn-dark-theme .mat-checkbox-checkmark-path {\\n stroke: #303030 !important;\\n}\\n@media (-ms-high-contrast: black-on-white) {\\n .unicorn-dark-theme .mat-checkbox-checkmark-path {\\n stroke: #000 !important;\\n }\\n}\\n.unicorn-dark-theme .mat-checkbox-mixedmark {\\n background-color: #303030;\\n}\\n.unicorn-dark-theme .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .unicorn-dark-theme .mat-checkbox-checked.mat-primary .mat-checkbox-background {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .unicorn-dark-theme .mat-checkbox-checked.mat-accent .mat-checkbox-background {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .unicorn-dark-theme .mat-checkbox-checked.mat-warn .mat-checkbox-background {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .unicorn-dark-theme .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: #686868;\\n}\\n.unicorn-dark-theme .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\\n border-color: #686868;\\n}\\n.unicorn-dark-theme .mat-checkbox-disabled .mat-checkbox-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n@media (-ms-high-contrast: active) {\\n .unicorn-dark-theme .mat-checkbox-disabled {\\n opacity: 0.5;\\n }\\n}\\n@media (-ms-high-contrast: active) {\\n .unicorn-dark-theme .mat-checkbox-background {\\n background: none;\\n }\\n}\\n.unicorn-dark-theme .mat-checkbox .mat-ripple-element {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\\n.unicorn-dark-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\\n background: #607d8b;\\n}\\n.unicorn-dark-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\\n.unicorn-dark-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\\n background: #ffd740;\\n}\\n.unicorn-dark-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\\n.unicorn-dark-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\\n background: #ff5722;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip {\\n background-color: #616161;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\\n opacity: 0.54;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-disabled {\\n opacity: 0.4;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip::after {\\n background: white;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\\n background-color: #607d8b;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\\n background-color: #ff5722;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\\n background-color: #ffd740;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.unicorn-dark-theme .mat-table {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-table thead, .unicorn-dark-theme .mat-table tbody, .unicorn-dark-theme .mat-table tfoot,\\n.unicorn-dark-theme mat-header-row, .unicorn-dark-theme mat-row, .unicorn-dark-theme mat-footer-row,\\n.unicorn-dark-theme [mat-header-row], .unicorn-dark-theme [mat-row], .unicorn-dark-theme [mat-footer-row],\\n.unicorn-dark-theme .mat-table-sticky {\\n background: inherit;\\n}\\n.unicorn-dark-theme mat-row, .unicorn-dark-theme mat-header-row, .unicorn-dark-theme mat-footer-row,\\n.unicorn-dark-theme th.mat-header-cell, .unicorn-dark-theme td.mat-cell, .unicorn-dark-theme td.mat-footer-cell {\\n border-bottom-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-header-cell {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-cell, .unicorn-dark-theme .mat-footer-cell {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-calendar-arrow {\\n border-top-color: white;\\n}\\n.unicorn-dark-theme .mat-datepicker-toggle,\\n.unicorn-dark-theme .mat-datepicker-content .mat-calendar-next-button,\\n.unicorn-dark-theme .mat-datepicker-content .mat-calendar-previous-button {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-calendar-table-header {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-calendar-table-header-divider::after {\\n background: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-calendar-body-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-calendar-body-cell-content {\\n color: white;\\n border-color: transparent;\\n}\\n.unicorn-dark-theme .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.unicorn-dark-theme .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.unicorn-dark-theme .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n background-color: rgba(255, 255, 255, 0.04);\\n}\\n.unicorn-dark-theme .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-calendar-body-selected {\\n background-color: #607d8b;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(96, 125, 139, 0.4);\\n}\\n.unicorn-dark-theme .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.unicorn-dark-theme .mat-datepicker-content {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n background-color: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\\n background-color: #ffd740;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(255, 215, 64, 0.4);\\n}\\n.unicorn-dark-theme .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\\n background-color: #ff5722;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(255, 87, 34, 0.4);\\n}\\n.unicorn-dark-theme .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.unicorn-dark-theme .mat-datepicker-content-touch {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-datepicker-toggle-active {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-datepicker-toggle-active.mat-accent {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-datepicker-toggle-active.mat-warn {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-dialog-container {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n background: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-divider {\\n border-top-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-divider-vertical {\\n border-right-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-expansion-panel {\\n background: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-expansion-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-action-row {\\n border-top-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused, .unicorn-dark-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused, .unicorn-dark-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n@media (hover: none) {\\n .unicorn-dark-theme .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\\n background: #424242;\\n }\\n}\\n.unicorn-dark-theme .mat-expansion-panel-header-title {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-expansion-panel-header-description,\\n.unicorn-dark-theme .mat-expansion-indicator::after {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-expansion-panel-header[aria-disabled=true] {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\\n.unicorn-dark-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\\n color: inherit;\\n}\\n.unicorn-dark-theme .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-hint {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-label {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-focused .mat-form-field-required-marker {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-form-field-ripple {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-ripple {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-error {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-legacy .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-legacy .mat-hint {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-legacy .mat-form-field-underline {\\n background-color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-standard .mat-form-field-underline {\\n background-color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-fill .mat-form-field-flex {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\\n background-color: rgba(255, 255, 255, 0.05);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-fill .mat-form-field-underline::before {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\\n background-color: transparent;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline .mat-form-field-outline {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline .mat-form-field-outline-thick {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\\n color: rgba(255, 255, 255, 0.15);\\n}\\n.unicorn-dark-theme .mat-icon.mat-primary {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-icon.mat-accent {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-icon.mat-warn {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-input-element:disabled,\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element {\\n caret-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-input-element::-moz-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element:-ms-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element::-ms-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element::placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element::-moz-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element::-webkit-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element:-ms-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-input-element option:disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.unicorn-dark-theme .mat-accent .mat-input-element {\\n caret-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-warn .mat-input-element,\\n.unicorn-dark-theme .mat-form-field-invalid .mat-input-element {\\n caret-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-list-base .mat-list-item {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-list-base .mat-list-option {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-list-base .mat-subheader {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-list-item-disabled {\\n background-color: black;\\n}\\n.unicorn-dark-theme .mat-list-option:hover, .unicorn-dark-theme .mat-list-option:focus,\\n.unicorn-dark-theme .mat-nav-list .mat-list-item:hover,\\n.unicorn-dark-theme .mat-nav-list .mat-list-item:focus,\\n.unicorn-dark-theme .mat-action-list .mat-list-item:hover,\\n.unicorn-dark-theme .mat-action-list .mat-list-item:focus {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.unicorn-dark-theme .mat-menu-panel {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-menu-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-menu-item {\\n background: transparent;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-menu-item[disabled], .unicorn-dark-theme .mat-menu-item[disabled]::after {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-menu-item .mat-icon-no-color,\\n.unicorn-dark-theme .mat-menu-item-submenu-trigger::after {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-menu-item:hover:not([disabled]),\\n.unicorn-dark-theme .mat-menu-item.cdk-program-focused:not([disabled]),\\n.unicorn-dark-theme .mat-menu-item.cdk-keyboard-focused:not([disabled]),\\n.unicorn-dark-theme .mat-menu-item-highlighted:not([disabled]) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.unicorn-dark-theme .mat-paginator {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-paginator,\\n.unicorn-dark-theme .mat-paginator-page-size .mat-select-trigger {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-paginator-decrement,\\n.unicorn-dark-theme .mat-paginator-increment {\\n border-top: 2px solid white;\\n border-right: 2px solid white;\\n}\\n.unicorn-dark-theme .mat-paginator-first,\\n.unicorn-dark-theme .mat-paginator-last {\\n border-top: 2px solid white;\\n}\\n.unicorn-dark-theme .mat-icon-button[disabled] .mat-paginator-decrement,\\n.unicorn-dark-theme .mat-icon-button[disabled] .mat-paginator-increment,\\n.unicorn-dark-theme .mat-icon-button[disabled] .mat-paginator-first,\\n.unicorn-dark-theme .mat-icon-button[disabled] .mat-paginator-last {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-progress-bar-background {\\n fill: #cfd8dc;\\n}\\n.unicorn-dark-theme .mat-progress-bar-buffer {\\n background-color: #cfd8dc;\\n}\\n.unicorn-dark-theme .mat-progress-bar-fill::after {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-progress-bar.mat-accent .mat-progress-bar-background {\\n fill: #ffe57f;\\n}\\n.unicorn-dark-theme .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\\n background-color: #ffe57f;\\n}\\n.unicorn-dark-theme .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-progress-bar.mat-warn .mat-progress-bar-background {\\n fill: #ffccbc;\\n}\\n.unicorn-dark-theme .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\\n background-color: #ffccbc;\\n}\\n.unicorn-dark-theme .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-progress-spinner circle, .unicorn-dark-theme .mat-spinner circle {\\n stroke: #607d8b;\\n}\\n.unicorn-dark-theme .mat-progress-spinner.mat-accent circle, .unicorn-dark-theme .mat-spinner.mat-accent circle {\\n stroke: #ffd740;\\n}\\n.unicorn-dark-theme .mat-progress-spinner.mat-warn circle, .unicorn-dark-theme .mat-spinner.mat-warn circle {\\n stroke: #ff5722;\\n}\\n.unicorn-dark-theme .mat-radio-outer-circle {\\n border-color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-primary .mat-radio-inner-circle,\\n.unicorn-dark-theme .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .unicorn-dark-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .unicorn-dark-theme .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-accent .mat-radio-inner-circle,\\n.unicorn-dark-theme .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .unicorn-dark-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .unicorn-dark-theme .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-warn .mat-radio-inner-circle,\\n.unicorn-dark-theme .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .unicorn-dark-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .unicorn-dark-theme .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-radio-button .mat-ripple-element {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-select-value {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-select-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-select-disabled .mat-select-value {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-select-arrow {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-select-panel {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-select-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\\n background: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-drawer-container {\\n background-color: #303030;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-drawer {\\n background-color: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-drawer.mat-drawer-push {\\n background-color: #424242;\\n}\\n.unicorn-dark-theme .mat-drawer:not(.mat-drawer-side) {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-drawer-side {\\n border-right: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-drawer-side.mat-drawer-end {\\n border-left: solid 1px rgba(255, 255, 255, 0.12);\\n border-right: none;\\n}\\n.unicorn-dark-theme [dir=rtl] .mat-drawer-side {\\n border-left: solid 1px rgba(255, 255, 255, 0.12);\\n border-right: none;\\n}\\n.unicorn-dark-theme [dir=rtl] .mat-drawer-side.mat-drawer-end {\\n border-left: none;\\n border-right: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-drawer-backdrop.mat-drawer-shown {\\n background-color: rgba(189, 189, 189, 0.6);\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(255, 215, 64, 0.54);\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-checked .mat-ripple-element {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(96, 125, 139, 0.54);\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(255, 87, 34, 0.54);\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-slide-toggle-thumb {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n background-color: #bdbdbd;\\n}\\n.unicorn-dark-theme .mat-slide-toggle-bar {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-slider-track-background {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-primary .mat-slider-track-fill,\\n.unicorn-dark-theme .mat-primary .mat-slider-thumb,\\n.unicorn-dark-theme .mat-primary .mat-slider-thumb-label {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-primary .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-accent .mat-slider-track-fill,\\n.unicorn-dark-theme .mat-accent .mat-slider-thumb,\\n.unicorn-dark-theme .mat-accent .mat-slider-thumb-label {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-accent .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-warn .mat-slider-track-fill,\\n.unicorn-dark-theme .mat-warn .mat-slider-thumb,\\n.unicorn-dark-theme .mat-warn .mat-slider-thumb-label {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-warn .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-slider-focus-ring {\\n background-color: rgba(255, 215, 64, 0.2);\\n}\\n.unicorn-dark-theme .mat-slider:hover .mat-slider-track-background,\\n.unicorn-dark-theme .cdk-focused .mat-slider-track-background {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-slider-disabled .mat-slider-track-background,\\n.unicorn-dark-theme .mat-slider-disabled .mat-slider-track-fill,\\n.unicorn-dark-theme .mat-slider-disabled .mat-slider-thumb {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-slider-disabled:hover .mat-slider-track-background {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-slider-min-value .mat-slider-focus-ring {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\\n.unicorn-dark-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\\n.unicorn-dark-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\\n border-color: rgba(255, 255, 255, 0.3);\\n background-color: transparent;\\n}\\n.unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\\n border-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\\n border-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-slider-has-ticks .mat-slider-wrapper::after {\\n border-color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-slider-horizontal .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to right, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\\n}\\n.unicorn-dark-theme .mat-slider-vertical .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to bottom, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\\n}\\n.unicorn-dark-theme .mat-step-header.cdk-keyboard-focused, .unicorn-dark-theme .mat-step-header.cdk-program-focused, .unicorn-dark-theme .mat-step-header:hover {\\n background-color: rgba(255, 255, 255, 0.04);\\n}\\n@media (hover: none) {\\n .unicorn-dark-theme .mat-step-header:hover {\\n background: none;\\n }\\n}\\n.unicorn-dark-theme .mat-step-header .mat-step-label,\\n.unicorn-dark-theme .mat-step-header .mat-step-optional {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-step-header .mat-step-icon {\\n background-color: rgba(255, 255, 255, 0.7);\\n color: white;\\n}\\n.unicorn-dark-theme .mat-step-header .mat-step-icon-selected,\\n.unicorn-dark-theme .mat-step-header .mat-step-icon-state-done,\\n.unicorn-dark-theme .mat-step-header .mat-step-icon-state-edit {\\n background-color: #607d8b;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-step-header .mat-step-icon-state-error {\\n background-color: transparent;\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-step-header .mat-step-label.mat-step-label-active {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-step-header .mat-step-label.mat-step-label-error {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-stepper-horizontal, .unicorn-dark-theme .mat-stepper-vertical {\\n background-color: #424242;\\n}\\n.unicorn-dark-theme .mat-stepper-vertical-line::before {\\n border-left-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-horizontal-stepper-header::before,\\n.unicorn-dark-theme .mat-horizontal-stepper-header::after,\\n.unicorn-dark-theme .mat-stepper-horizontal-line {\\n border-top-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-sort-header-arrow {\\n color: #c6c6c6;\\n}\\n.unicorn-dark-theme .mat-tab-nav-bar,\\n.unicorn-dark-theme .mat-tab-header {\\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-tab-group-inverted-header .mat-tab-nav-bar,\\n.unicorn-dark-theme .mat-tab-group-inverted-header .mat-tab-header {\\n border-top: 1px solid rgba(255, 255, 255, 0.12);\\n border-bottom: none;\\n}\\n.unicorn-dark-theme .mat-tab-label, .unicorn-dark-theme .mat-tab-link {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.unicorn-dark-theme .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-tab-group[class*=mat-background-] .mat-tab-header,\\n.unicorn-dark-theme .mat-tab-nav-bar[class*=mat-background-] {\\n border-bottom: none;\\n border-top: none;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(207, 216, 220, 0.3);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-primary .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-ink-bar {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 229, 127, 0.3);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-accent .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-ink-bar {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 204, 188, 0.3);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-warn .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-ink-bar {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(207, 216, 220, 0.3);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-header, .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-links, .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-label, .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-link, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-ripple-element, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 229, 127, 0.3);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-header, .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-links, .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-label, .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-link, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-ripple-element, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 204, 188, 0.3);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-header, .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-links, .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-label, .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-link, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-ripple-element, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-toolbar {\\n background: #212121;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-toolbar.mat-primary {\\n background: #607d8b;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-toolbar.mat-accent {\\n background: #ffd740;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-toolbar.mat-warn {\\n background: #ff5722;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-toolbar .mat-form-field-underline,\\n.unicorn-dark-theme .mat-toolbar .mat-form-field-ripple,\\n.unicorn-dark-theme .mat-toolbar .mat-focused .mat-form-field-ripple {\\n background-color: currentColor;\\n}\\n.unicorn-dark-theme .mat-toolbar .mat-form-field-label,\\n.unicorn-dark-theme .mat-toolbar .mat-focused .mat-form-field-label,\\n.unicorn-dark-theme .mat-toolbar .mat-select-value,\\n.unicorn-dark-theme .mat-toolbar .mat-select-arrow,\\n.unicorn-dark-theme .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\\n color: inherit;\\n}\\n.unicorn-dark-theme .mat-toolbar .mat-input-element {\\n caret-color: currentColor;\\n}\\n.unicorn-dark-theme .mat-tooltip {\\n background: rgba(97, 97, 97, 0.9);\\n}\\n.unicorn-dark-theme .mat-tree {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-tree-node,\\n.unicorn-dark-theme .mat-nested-tree-node {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-snack-bar-container {\\n color: rgba(0, 0, 0, 0.87);\\n background: #fafafa;\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-simple-snackbar-action {\\n color: inherit;\\n}\\n/*\\n https: //stackblitz.com/edit/angular-material-theme-secrets?embed=1&file=src%2Ftheme.scss&source=post_page---------------------------\\n https://material.angular.io/guide/typography\\n https://material-ui.com/customization/color/\\n*/\\n.defaultMat {\\n /*.mat-checkbox-inner-container, {\\n height: 40px;\\n width: 40px;\\n }*/\\n /*https: //stackoverflow.com/questions/46812064/how-to-set-the-color-of-an-icon-in-angular-material\\n https: //css-tricks.com/solved-with-css-colorizing-svg-backgrounds/*/\\n /* Note: If you're using an SVG icon, you should make the class target the `` element */\\n /*.white-icon svg {\\n fill: white;\\n filter:brightness(100);\\n }*/\\n /*.mat-menu-item {\\n height:20px;\\n }\\n button.mat-menu-item {\\n height: 30px;\\n font-size: 15px;\\n }*/\\n}\\n.defaultMat .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.defaultMat .mat-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-option:hover:not(.mat-option-disabled), .defaultMat .mat-option:focus:not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.defaultMat .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.defaultMat .mat-option.mat-active {\\n background: rgba(0, 0, 0, 0.04);\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-option.mat-option-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #2196f3;\\n}\\n.defaultMat .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: yellow;\\n}\\n.defaultMat .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #f44336;\\n}\\n.defaultMat .mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-optgroup-disabled .mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-pseudo-checkbox {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-pseudo-checkbox::after {\\n color: #fafafa;\\n}\\n.defaultMat .mat-pseudo-checkbox-disabled {\\n color: #b0b0b0;\\n}\\n.defaultMat .mat-pseudo-checkbox-checked,\\n.defaultMat .mat-pseudo-checkbox-indeterminate,\\n.defaultMat .mat-accent .mat-pseudo-checkbox-checked,\\n.defaultMat .mat-accent .mat-pseudo-checkbox-indeterminate {\\n background: yellow;\\n}\\n.defaultMat .mat-primary .mat-pseudo-checkbox-checked,\\n.defaultMat .mat-primary .mat-pseudo-checkbox-indeterminate {\\n background: #2196f3;\\n}\\n.defaultMat .mat-warn .mat-pseudo-checkbox-checked,\\n.defaultMat .mat-warn .mat-pseudo-checkbox-indeterminate {\\n background: #f44336;\\n}\\n.defaultMat .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\\n.defaultMat .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\\n background: #b0b0b0;\\n}\\n.defaultMat .mat-elevation-z0 {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z1 {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z2 {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z3 {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z4 {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z5 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z6 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z7 {\\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z8 {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z9 {\\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z10 {\\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z11 {\\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z12 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z13 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z14 {\\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z15 {\\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z16 {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z17 {\\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z18 {\\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z19 {\\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z20 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z21 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z22 {\\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z23 {\\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z24 {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-app-background, .defaultMat.mat-app-background {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-theme-loaded-marker {\\n display: none;\\n}\\n.defaultMat .mat-autocomplete-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\\n background: white;\\n}\\n.defaultMat .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-badge-content {\\n color: white;\\n background: #2196f3;\\n}\\n@media (-ms-high-contrast: active) {\\n .defaultMat .mat-badge-content {\\n outline: solid 1px;\\n border-radius: 0;\\n }\\n}\\n.defaultMat .mat-badge-accent .mat-badge-content {\\n background: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-badge-warn .mat-badge-content {\\n color: white;\\n background: #f44336;\\n}\\n.defaultMat .mat-badge {\\n position: relative;\\n}\\n.defaultMat .mat-badge-hidden .mat-badge-content {\\n display: none;\\n}\\n.defaultMat .mat-badge-disabled .mat-badge-content {\\n background: #b9b9b9;\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-badge-content {\\n position: absolute;\\n text-align: center;\\n display: inline-block;\\n border-radius: 50%;\\n transition: transform 200ms ease-in-out;\\n -ms-transform: scale(0.6);\\n transform: scale(0.6);\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n pointer-events: none;\\n}\\n.defaultMat .ng-animate-disabled .mat-badge-content,\\n.defaultMat .mat-badge-content._mat-animation-noopable {\\n transition: none;\\n}\\n.defaultMat .mat-badge-content.mat-badge-active {\\n -ms-transform: none;\\n transform: none;\\n}\\n.defaultMat .mat-badge-small .mat-badge-content {\\n width: 16px;\\n height: 16px;\\n line-height: 16px;\\n}\\n.defaultMat .mat-badge-small.mat-badge-above .mat-badge-content {\\n top: -8px;\\n}\\n.defaultMat .mat-badge-small.mat-badge-below .mat-badge-content {\\n bottom: -8px;\\n}\\n.defaultMat .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: -16px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -16px;\\n}\\n.defaultMat .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: -16px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -16px;\\n}\\n.defaultMat .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -8px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -8px;\\n}\\n.defaultMat .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -8px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -8px;\\n}\\n.defaultMat .mat-badge-medium .mat-badge-content {\\n width: 22px;\\n height: 22px;\\n line-height: 22px;\\n}\\n.defaultMat .mat-badge-medium.mat-badge-above .mat-badge-content {\\n top: -11px;\\n}\\n.defaultMat .mat-badge-medium.mat-badge-below .mat-badge-content {\\n bottom: -11px;\\n}\\n.defaultMat .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: -22px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -22px;\\n}\\n.defaultMat .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: -22px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -22px;\\n}\\n.defaultMat .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -11px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -11px;\\n}\\n.defaultMat .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -11px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -11px;\\n}\\n.defaultMat .mat-badge-large .mat-badge-content {\\n width: 28px;\\n height: 28px;\\n line-height: 28px;\\n}\\n.defaultMat .mat-badge-large.mat-badge-above .mat-badge-content {\\n top: -14px;\\n}\\n.defaultMat .mat-badge-large.mat-badge-below .mat-badge-content {\\n bottom: -14px;\\n}\\n.defaultMat .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: -28px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -28px;\\n}\\n.defaultMat .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: -28px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -28px;\\n}\\n.defaultMat .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -14px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -14px;\\n}\\n.defaultMat .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -14px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -14px;\\n}\\n.defaultMat .mat-bottom-sheet-container {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-button, .defaultMat .mat-icon-button, .defaultMat .mat-stroked-button {\\n color: inherit;\\n background: transparent;\\n}\\n.defaultMat .mat-button.mat-primary, .defaultMat .mat-icon-button.mat-primary, .defaultMat .mat-stroked-button.mat-primary {\\n color: #2196f3;\\n}\\n.defaultMat .mat-button.mat-accent, .defaultMat .mat-icon-button.mat-accent, .defaultMat .mat-stroked-button.mat-accent {\\n color: yellow;\\n}\\n.defaultMat .mat-button.mat-warn, .defaultMat .mat-icon-button.mat-warn, .defaultMat .mat-stroked-button.mat-warn {\\n color: #f44336;\\n}\\n.defaultMat .mat-button.mat-primary[disabled], .defaultMat .mat-button.mat-accent[disabled], .defaultMat .mat-button.mat-warn[disabled], .defaultMat .mat-button[disabled][disabled], .defaultMat .mat-icon-button.mat-primary[disabled], .defaultMat .mat-icon-button.mat-accent[disabled], .defaultMat .mat-icon-button.mat-warn[disabled], .defaultMat .mat-icon-button[disabled][disabled], .defaultMat .mat-stroked-button.mat-primary[disabled], .defaultMat .mat-stroked-button.mat-accent[disabled], .defaultMat .mat-stroked-button.mat-warn[disabled], .defaultMat .mat-stroked-button[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-button.mat-primary .mat-button-focus-overlay, .defaultMat .mat-icon-button.mat-primary .mat-button-focus-overlay, .defaultMat .mat-stroked-button.mat-primary .mat-button-focus-overlay {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-button.mat-accent .mat-button-focus-overlay, .defaultMat .mat-icon-button.mat-accent .mat-button-focus-overlay, .defaultMat .mat-stroked-button.mat-accent .mat-button-focus-overlay {\\n background-color: yellow;\\n}\\n.defaultMat .mat-button.mat-warn .mat-button-focus-overlay, .defaultMat .mat-icon-button.mat-warn .mat-button-focus-overlay, .defaultMat .mat-stroked-button.mat-warn .mat-button-focus-overlay {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-button[disabled] .mat-button-focus-overlay, .defaultMat .mat-icon-button[disabled] .mat-button-focus-overlay, .defaultMat .mat-stroked-button[disabled] .mat-button-focus-overlay {\\n background-color: transparent;\\n}\\n.defaultMat .mat-button .mat-ripple-element, .defaultMat .mat-icon-button .mat-ripple-element, .defaultMat .mat-stroked-button .mat-ripple-element {\\n opacity: 0.1;\\n background-color: currentColor;\\n}\\n.defaultMat .mat-button-focus-overlay {\\n background: black;\\n}\\n.defaultMat .mat-stroked-button:not([disabled]) {\\n border-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-flat-button, .defaultMat .mat-raised-button, .defaultMat .mat-fab, .defaultMat .mat-mini-fab {\\n color: rgba(0, 0, 0, 0.87);\\n background-color: white;\\n}\\n.defaultMat .mat-flat-button.mat-primary, .defaultMat .mat-raised-button.mat-primary, .defaultMat .mat-fab.mat-primary, .defaultMat .mat-mini-fab.mat-primary {\\n color: white;\\n}\\n.defaultMat .mat-flat-button.mat-accent, .defaultMat .mat-raised-button.mat-accent, .defaultMat .mat-fab.mat-accent, .defaultMat .mat-mini-fab.mat-accent {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-flat-button.mat-warn, .defaultMat .mat-raised-button.mat-warn, .defaultMat .mat-fab.mat-warn, .defaultMat .mat-mini-fab.mat-warn {\\n color: white;\\n}\\n.defaultMat .mat-flat-button.mat-primary[disabled], .defaultMat .mat-flat-button.mat-accent[disabled], .defaultMat .mat-flat-button.mat-warn[disabled], .defaultMat .mat-flat-button[disabled][disabled], .defaultMat .mat-raised-button.mat-primary[disabled], .defaultMat .mat-raised-button.mat-accent[disabled], .defaultMat .mat-raised-button.mat-warn[disabled], .defaultMat .mat-raised-button[disabled][disabled], .defaultMat .mat-fab.mat-primary[disabled], .defaultMat .mat-fab.mat-accent[disabled], .defaultMat .mat-fab.mat-warn[disabled], .defaultMat .mat-fab[disabled][disabled], .defaultMat .mat-mini-fab.mat-primary[disabled], .defaultMat .mat-mini-fab.mat-accent[disabled], .defaultMat .mat-mini-fab.mat-warn[disabled], .defaultMat .mat-mini-fab[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-flat-button.mat-primary, .defaultMat .mat-raised-button.mat-primary, .defaultMat .mat-fab.mat-primary, .defaultMat .mat-mini-fab.mat-primary {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-flat-button.mat-accent, .defaultMat .mat-raised-button.mat-accent, .defaultMat .mat-fab.mat-accent, .defaultMat .mat-mini-fab.mat-accent {\\n background-color: yellow;\\n}\\n.defaultMat .mat-flat-button.mat-warn, .defaultMat .mat-raised-button.mat-warn, .defaultMat .mat-fab.mat-warn, .defaultMat .mat-mini-fab.mat-warn {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-flat-button.mat-primary[disabled], .defaultMat .mat-flat-button.mat-accent[disabled], .defaultMat .mat-flat-button.mat-warn[disabled], .defaultMat .mat-flat-button[disabled][disabled], .defaultMat .mat-raised-button.mat-primary[disabled], .defaultMat .mat-raised-button.mat-accent[disabled], .defaultMat .mat-raised-button.mat-warn[disabled], .defaultMat .mat-raised-button[disabled][disabled], .defaultMat .mat-fab.mat-primary[disabled], .defaultMat .mat-fab.mat-accent[disabled], .defaultMat .mat-fab.mat-warn[disabled], .defaultMat .mat-fab[disabled][disabled], .defaultMat .mat-mini-fab.mat-primary[disabled], .defaultMat .mat-mini-fab.mat-accent[disabled], .defaultMat .mat-mini-fab.mat-warn[disabled], .defaultMat .mat-mini-fab[disabled][disabled] {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-flat-button.mat-primary .mat-ripple-element, .defaultMat .mat-raised-button.mat-primary .mat-ripple-element, .defaultMat .mat-fab.mat-primary .mat-ripple-element, .defaultMat .mat-mini-fab.mat-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.defaultMat .mat-flat-button.mat-accent .mat-ripple-element, .defaultMat .mat-raised-button.mat-accent .mat-ripple-element, .defaultMat .mat-fab.mat-accent .mat-ripple-element, .defaultMat .mat-mini-fab.mat-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.defaultMat .mat-flat-button.mat-warn .mat-ripple-element, .defaultMat .mat-raised-button.mat-warn .mat-ripple-element, .defaultMat .mat-fab.mat-warn .mat-ripple-element, .defaultMat .mat-mini-fab.mat-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.defaultMat .mat-stroked-button:not([class*=mat-elevation-z]), .defaultMat .mat-flat-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-raised-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-fab:not([class*=mat-elevation-z]), .defaultMat .mat-mini-fab:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .defaultMat .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-fab[disabled]:not([class*=mat-elevation-z]), .defaultMat .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-button-toggle-standalone,\\n.defaultMat .mat-button-toggle-group {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.defaultMat .mat-button-toggle-group-appearance-standard {\\n box-shadow: none;\\n}\\n.defaultMat .mat-button-toggle {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-button-toggle .mat-button-toggle-focus-overlay {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n background: white;\\n}\\n.defaultMat .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\\n background-color: black;\\n}\\n.defaultMat .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: none;\\n border-top: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-button-toggle-checked {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-button-toggle-disabled {\\n color: rgba(0, 0, 0, 0.26);\\n background-color: #eeeeee;\\n}\\n.defaultMat .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\\n background: white;\\n}\\n.defaultMat .mat-button-toggle-disabled.mat-button-toggle-checked {\\n background-color: #bdbdbd;\\n}\\n.defaultMat .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.defaultMat .mat-button-toggle-group-appearance-standard {\\n border: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-card {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-card:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-card-subtitle {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-checkbox-frame {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-checkbox-checkmark {\\n fill: #fafafa;\\n}\\n.defaultMat .mat-checkbox-checkmark-path {\\n stroke: #fafafa !important;\\n}\\n@media (-ms-high-contrast: black-on-white) {\\n .defaultMat .mat-checkbox-checkmark-path {\\n stroke: #000 !important;\\n }\\n}\\n.defaultMat .mat-checkbox-mixedmark {\\n background-color: #fafafa;\\n}\\n.defaultMat .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .defaultMat .mat-checkbox-checked.mat-primary .mat-checkbox-background {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .defaultMat .mat-checkbox-checked.mat-accent .mat-checkbox-background {\\n background-color: yellow;\\n}\\n.defaultMat .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .defaultMat .mat-checkbox-checked.mat-warn .mat-checkbox-background {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .defaultMat .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: #b0b0b0;\\n}\\n.defaultMat .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\\n border-color: #b0b0b0;\\n}\\n.defaultMat .mat-checkbox-disabled .mat-checkbox-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n@media (-ms-high-contrast: active) {\\n .defaultMat .mat-checkbox-disabled {\\n opacity: 0.5;\\n }\\n}\\n@media (-ms-high-contrast: active) {\\n .defaultMat .mat-checkbox-background {\\n background: none;\\n }\\n}\\n.defaultMat .mat-checkbox .mat-ripple-element {\\n background-color: black;\\n}\\n.defaultMat .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\\n.defaultMat .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\\n background: #2196f3;\\n}\\n.defaultMat .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\\n.defaultMat .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\\n background: yellow;\\n}\\n.defaultMat .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\\n.defaultMat .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\\n background: #f44336;\\n}\\n.defaultMat .mat-chip.mat-standard-chip {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-chip.mat-standard-chip .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.defaultMat .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\\n opacity: 0.54;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-disabled {\\n opacity: 0.4;\\n}\\n.defaultMat .mat-chip.mat-standard-chip::after {\\n background: black;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\\n background-color: #2196f3;\\n color: white;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\\n background-color: #f44336;\\n color: white;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\\n background-color: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.defaultMat .mat-table {\\n background: white;\\n}\\n.defaultMat .mat-table thead, .defaultMat .mat-table tbody, .defaultMat .mat-table tfoot,\\n.defaultMat mat-header-row, .defaultMat mat-row, .defaultMat mat-footer-row,\\n.defaultMat [mat-header-row], .defaultMat [mat-row], .defaultMat [mat-footer-row],\\n.defaultMat .mat-table-sticky {\\n background: inherit;\\n}\\n.defaultMat mat-row, .defaultMat mat-header-row, .defaultMat mat-footer-row,\\n.defaultMat th.mat-header-cell, .defaultMat td.mat-cell, .defaultMat td.mat-footer-cell {\\n border-bottom-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-header-cell {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-cell, .defaultMat .mat-footer-cell {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-calendar-arrow {\\n border-top-color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-datepicker-toggle,\\n.defaultMat .mat-datepicker-content .mat-calendar-next-button,\\n.defaultMat .mat-datepicker-content .mat-calendar-previous-button {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-calendar-table-header {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-calendar-table-header-divider::after {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-calendar-body-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-calendar-body-cell-content {\\n color: rgba(0, 0, 0, 0.87);\\n border-color: transparent;\\n}\\n.defaultMat .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.defaultMat .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.defaultMat .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n.defaultMat .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.18);\\n}\\n.defaultMat .mat-calendar-body-selected {\\n background-color: #2196f3;\\n color: white;\\n}\\n.defaultMat .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(33, 150, 243, 0.4);\\n}\\n.defaultMat .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.defaultMat .mat-datepicker-content {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\\n background-color: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(255, 255, 0, 0.4);\\n}\\n.defaultMat .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\\n background-color: #f44336;\\n color: white;\\n}\\n.defaultMat .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(244, 67, 54, 0.4);\\n}\\n.defaultMat .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.defaultMat .mat-datepicker-content-touch {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-datepicker-toggle-active {\\n color: #2196f3;\\n}\\n.defaultMat .mat-datepicker-toggle-active.mat-accent {\\n color: yellow;\\n}\\n.defaultMat .mat-datepicker-toggle-active.mat-warn {\\n color: #f44336;\\n}\\n.defaultMat .mat-dialog-container {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-divider {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-divider-vertical {\\n border-right-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-expansion-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-expansion-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-action-row {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused, .defaultMat .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused, .defaultMat .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n@media (hover: none) {\\n .defaultMat .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\\n background: white;\\n }\\n}\\n.defaultMat .mat-expansion-panel-header-title {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-expansion-panel-header-description,\\n.defaultMat .mat-expansion-indicator::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-expansion-panel-header[aria-disabled=true] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\\n.defaultMat .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\\n color: inherit;\\n}\\n.defaultMat .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n.defaultMat .mat-hint {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-label {\\n color: #2196f3;\\n}\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\\n color: yellow;\\n}\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\\n color: #f44336;\\n}\\n.defaultMat .mat-focused .mat-form-field-required-marker {\\n color: yellow;\\n}\\n.defaultMat .mat-form-field-ripple {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-ripple {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\\n background-color: yellow;\\n}\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\\n color: #2196f3;\\n}\\n.defaultMat .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\\n color: yellow;\\n}\\n.defaultMat .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-label {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-error {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-hint {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.defaultMat .mat-form-field-appearance-standard .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.defaultMat .mat-form-field-appearance-fill .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.02);\\n}\\n.defaultMat .mat-form-field-appearance-fill .mat-form-field-underline::before {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\\n background-color: transparent;\\n}\\n.defaultMat .mat-form-field-appearance-outline .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-form-field-appearance-outline .mat-form-field-outline-thick {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\\n color: #2196f3;\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\\n color: yellow;\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.06);\\n}\\n.defaultMat .mat-icon.mat-primary {\\n color: #2196f3;\\n}\\n.defaultMat .mat-icon.mat-accent {\\n color: yellow;\\n}\\n.defaultMat .mat-icon.mat-warn {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-input-element:disabled,\\n.defaultMat .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-input-element {\\n caret-color: #2196f3;\\n}\\n.defaultMat .mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-input-element:-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-input-element::-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-input-element::placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-input-element::-webkit-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-input-element:-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-accent .mat-input-element {\\n caret-color: yellow;\\n}\\n.defaultMat .mat-warn .mat-input-element,\\n.defaultMat .mat-form-field-invalid .mat-input-element {\\n caret-color: #f44336;\\n}\\n.defaultMat .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n.defaultMat .mat-list-base .mat-list-item {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-list-base .mat-list-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-list-base .mat-subheader {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-list-item-disabled {\\n background-color: #eeeeee;\\n}\\n.defaultMat .mat-list-option:hover, .defaultMat .mat-list-option:focus,\\n.defaultMat .mat-nav-list .mat-list-item:hover,\\n.defaultMat .mat-nav-list .mat-list-item:focus,\\n.defaultMat .mat-action-list .mat-list-item:hover,\\n.defaultMat .mat-action-list .mat-list-item:focus {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.defaultMat .mat-menu-panel {\\n background: white;\\n}\\n.defaultMat .mat-menu-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-menu-item {\\n background: transparent;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-menu-item[disabled], .defaultMat .mat-menu-item[disabled]::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-menu-item .mat-icon-no-color,\\n.defaultMat .mat-menu-item-submenu-trigger::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-menu-item:hover:not([disabled]),\\n.defaultMat .mat-menu-item.cdk-program-focused:not([disabled]),\\n.defaultMat .mat-menu-item.cdk-keyboard-focused:not([disabled]),\\n.defaultMat .mat-menu-item-highlighted:not([disabled]) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.defaultMat .mat-paginator {\\n background: white;\\n}\\n.defaultMat .mat-paginator,\\n.defaultMat .mat-paginator-page-size .mat-select-trigger {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-paginator-decrement,\\n.defaultMat .mat-paginator-increment {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n border-right: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-paginator-first,\\n.defaultMat .mat-paginator-last {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-icon-button[disabled] .mat-paginator-decrement,\\n.defaultMat .mat-icon-button[disabled] .mat-paginator-increment,\\n.defaultMat .mat-icon-button[disabled] .mat-paginator-first,\\n.defaultMat .mat-icon-button[disabled] .mat-paginator-last {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-progress-bar-background {\\n fill: #bbdefb;\\n}\\n.defaultMat .mat-progress-bar-buffer {\\n background-color: #bbdefb;\\n}\\n.defaultMat .mat-progress-bar-fill::after {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-progress-bar.mat-accent .mat-progress-bar-background {\\n fill: #ffff8d;\\n}\\n.defaultMat .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\\n background-color: #ffff8d;\\n}\\n.defaultMat .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\\n background-color: yellow;\\n}\\n.defaultMat .mat-progress-bar.mat-warn .mat-progress-bar-background {\\n fill: #ffcdd2;\\n}\\n.defaultMat .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\\n background-color: #ffcdd2;\\n}\\n.defaultMat .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-progress-spinner circle, .defaultMat .mat-spinner circle {\\n stroke: #2196f3;\\n}\\n.defaultMat .mat-progress-spinner.mat-accent circle, .defaultMat .mat-spinner.mat-accent circle {\\n stroke: yellow;\\n}\\n.defaultMat .mat-progress-spinner.mat-warn circle, .defaultMat .mat-spinner.mat-warn circle {\\n stroke: #f44336;\\n}\\n.defaultMat .mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #2196f3;\\n}\\n.defaultMat .mat-radio-button.mat-primary .mat-radio-inner-circle,\\n.defaultMat .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .defaultMat .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .defaultMat .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\\n border-color: yellow;\\n}\\n.defaultMat .mat-radio-button.mat-accent .mat-radio-inner-circle,\\n.defaultMat .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .defaultMat .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .defaultMat .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\\n background-color: yellow;\\n}\\n.defaultMat .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #f44336;\\n}\\n.defaultMat .mat-radio-button.mat-warn .mat-radio-inner-circle,\\n.defaultMat .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .defaultMat .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .defaultMat .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\\n.defaultMat .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\\n.defaultMat .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-radio-button .mat-ripple-element {\\n background-color: black;\\n}\\n.defaultMat .mat-select-value {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-select-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-select-disabled .mat-select-value {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-select-arrow {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-select-panel {\\n background: white;\\n}\\n.defaultMat .mat-select-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\\n color: #2196f3;\\n}\\n.defaultMat .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\\n color: yellow;\\n}\\n.defaultMat .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-drawer-container {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-drawer {\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-drawer.mat-drawer-push {\\n background-color: white;\\n}\\n.defaultMat .mat-drawer:not(.mat-drawer-side) {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-drawer-side {\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-drawer-side.mat-drawer-end {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n.defaultMat [dir=rtl] .mat-drawer-side {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n.defaultMat [dir=rtl] .mat-drawer-side.mat-drawer-end {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-drawer-backdrop.mat-drawer-shown {\\n background-color: rgba(0, 0, 0, 0.6);\\n}\\n.defaultMat .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\\n background-color: yellow;\\n}\\n.defaultMat .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(255, 255, 0, 0.54);\\n}\\n.defaultMat .mat-slide-toggle.mat-checked .mat-ripple-element {\\n background-color: yellow;\\n}\\n.defaultMat .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(33, 150, 243, 0.54);\\n}\\n.defaultMat .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(244, 67, 54, 0.54);\\n}\\n.defaultMat .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\\n background-color: black;\\n}\\n.defaultMat .mat-slide-toggle-thumb {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n background-color: #fafafa;\\n}\\n.defaultMat .mat-slide-toggle-bar {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-primary .mat-slider-track-fill,\\n.defaultMat .mat-primary .mat-slider-thumb,\\n.defaultMat .mat-primary .mat-slider-thumb-label {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-primary .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.defaultMat .mat-accent .mat-slider-track-fill,\\n.defaultMat .mat-accent .mat-slider-thumb,\\n.defaultMat .mat-accent .mat-slider-thumb-label {\\n background-color: yellow;\\n}\\n.defaultMat .mat-accent .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-warn .mat-slider-track-fill,\\n.defaultMat .mat-warn .mat-slider-thumb,\\n.defaultMat .mat-warn .mat-slider-thumb-label {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-warn .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.defaultMat .mat-slider-focus-ring {\\n background-color: rgba(255, 255, 0, 0.2);\\n}\\n.defaultMat .mat-slider:hover .mat-slider-track-background,\\n.defaultMat .cdk-focused .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-slider-disabled .mat-slider-track-background,\\n.defaultMat .mat-slider-disabled .mat-slider-track-fill,\\n.defaultMat .mat-slider-disabled .mat-slider-thumb {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-slider-disabled:hover .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-slider-min-value .mat-slider-focus-ring {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\\n.defaultMat .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\\n.defaultMat .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n background-color: transparent;\\n}\\n.defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-slider-has-ticks .mat-slider-wrapper::after {\\n border-color: rgba(0, 0, 0, 0.7);\\n}\\n.defaultMat .mat-slider-horizontal .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to right, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n.defaultMat .mat-slider-vertical .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n.defaultMat .mat-step-header.cdk-keyboard-focused, .defaultMat .mat-step-header.cdk-program-focused, .defaultMat .mat-step-header:hover {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n@media (hover: none) {\\n .defaultMat .mat-step-header:hover {\\n background: none;\\n }\\n}\\n.defaultMat .mat-step-header .mat-step-label,\\n.defaultMat .mat-step-header .mat-step-optional {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-step-header .mat-step-icon {\\n background-color: rgba(0, 0, 0, 0.54);\\n color: white;\\n}\\n.defaultMat .mat-step-header .mat-step-icon-selected,\\n.defaultMat .mat-step-header .mat-step-icon-state-done,\\n.defaultMat .mat-step-header .mat-step-icon-state-edit {\\n background-color: #2196f3;\\n color: white;\\n}\\n.defaultMat .mat-step-header .mat-step-icon-state-error {\\n background-color: transparent;\\n color: #f44336;\\n}\\n.defaultMat .mat-step-header .mat-step-label.mat-step-label-active {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-step-header .mat-step-label.mat-step-label-error {\\n color: #f44336;\\n}\\n.defaultMat .mat-stepper-horizontal, .defaultMat .mat-stepper-vertical {\\n background-color: white;\\n}\\n.defaultMat .mat-stepper-vertical-line::before {\\n border-left-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-horizontal-stepper-header::before,\\n.defaultMat .mat-horizontal-stepper-header::after,\\n.defaultMat .mat-stepper-horizontal-line {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-sort-header-arrow {\\n color: #757575;\\n}\\n.defaultMat .mat-tab-nav-bar,\\n.defaultMat .mat-tab-header {\\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-tab-group-inverted-header .mat-tab-nav-bar,\\n.defaultMat .mat-tab-group-inverted-header .mat-tab-header {\\n border-top: 1px solid rgba(0, 0, 0, 0.12);\\n border-bottom: none;\\n}\\n.defaultMat .mat-tab-label, .defaultMat .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-tab-group[class*=mat-background-] .mat-tab-header,\\n.defaultMat .mat-tab-nav-bar[class*=mat-background-] {\\n border-bottom: none;\\n border-top: none;\\n}\\n.defaultMat .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(187, 222, 251, 0.3);\\n}\\n.defaultMat .mat-tab-group.mat-primary .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-primary .mat-ink-bar {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\\n background-color: white;\\n}\\n.defaultMat .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 255, 141, 0.3);\\n}\\n.defaultMat .mat-tab-group.mat-accent .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-accent .mat-ink-bar {\\n background-color: yellow;\\n}\\n.defaultMat .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n.defaultMat .mat-tab-group.mat-warn .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-warn .mat-ink-bar {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\\n background-color: white;\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(187, 222, 251, 0.3);\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-header, .defaultMat .mat-tab-group.mat-background-primary .mat-tab-links, .defaultMat .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-label, .defaultMat .mat-tab-group.mat-background-primary .mat-tab-link, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\\n color: white;\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-ripple-element, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 255, 141, 0.3);\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-header, .defaultMat .mat-tab-group.mat-background-accent .mat-tab-links, .defaultMat .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\\n background-color: yellow;\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-label, .defaultMat .mat-tab-group.mat-background-accent .mat-tab-link, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-ripple-element, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-header, .defaultMat .mat-tab-group.mat-background-warn .mat-tab-links, .defaultMat .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-label, .defaultMat .mat-tab-group.mat-background-warn .mat-tab-link, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\\n color: white;\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-ripple-element, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.defaultMat .mat-toolbar {\\n background: whitesmoke;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-toolbar.mat-primary {\\n background: #2196f3;\\n color: white;\\n}\\n.defaultMat .mat-toolbar.mat-accent {\\n background: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-toolbar.mat-warn {\\n background: #f44336;\\n color: white;\\n}\\n.defaultMat .mat-toolbar .mat-form-field-underline,\\n.defaultMat .mat-toolbar .mat-form-field-ripple,\\n.defaultMat .mat-toolbar .mat-focused .mat-form-field-ripple {\\n background-color: currentColor;\\n}\\n.defaultMat .mat-toolbar .mat-form-field-label,\\n.defaultMat .mat-toolbar .mat-focused .mat-form-field-label,\\n.defaultMat .mat-toolbar .mat-select-value,\\n.defaultMat .mat-toolbar .mat-select-arrow,\\n.defaultMat .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\\n color: inherit;\\n}\\n.defaultMat .mat-toolbar .mat-input-element {\\n caret-color: currentColor;\\n}\\n.defaultMat .mat-tooltip {\\n background: rgba(97, 97, 97, 0.9);\\n}\\n.defaultMat .mat-tree {\\n background: white;\\n}\\n.defaultMat .mat-tree-node,\\n.defaultMat .mat-nested-tree-node {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-snack-bar-container {\\n color: rgba(255, 255, 255, 0.7);\\n background: #323232;\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-simple-snackbar-action {\\n color: yellow;\\n}\\n.defaultMat .mat-badge-content {\\n font-weight: 600;\\n font-size: 12px;\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-badge-small .mat-badge-content {\\n font-size: 9px;\\n}\\n.defaultMat .mat-badge-large .mat-badge-content {\\n font-size: 24px;\\n}\\n.defaultMat .mat-h1, .defaultMat .mat-headline, .defaultMat .mat-typography h1 {\\n font: 600 24px/32px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.defaultMat .mat-h2, .defaultMat .mat-title, .defaultMat .mat-typography h2 {\\n font: 600 20px/32px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.defaultMat .mat-h3, .defaultMat .mat-subheading-2, .defaultMat .mat-typography h3 {\\n font: 600 16px/22px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.defaultMat .mat-h4, .defaultMat .mat-subheading-1, .defaultMat .mat-typography h4 {\\n font: 600 15px/24px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.defaultMat .mat-h5, .defaultMat .mat-typography h5 {\\n font: 600 calc(14px * 0.83)/30px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n.defaultMat .mat-h6, .defaultMat .mat-typography h6 {\\n font: 600 calc(14px * 0.67)/30px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n.defaultMat .mat-body-strong, .defaultMat .mat-body-2 {\\n font: 600 14px/24px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-body, .defaultMat .mat-body-1, .defaultMat .mat-typography {\\n font: 600 14px/30px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-body p, .defaultMat .mat-body-1 p, .defaultMat .mat-typography p {\\n margin: 0 0 12px;\\n}\\n.defaultMat .mat-small, .defaultMat .mat-caption {\\n font: 600 12px/20px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-display-4, .defaultMat .mat-typography .mat-display-4 {\\n font: 300 112px/112px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 56px;\\n}\\n.defaultMat .mat-display-3, .defaultMat .mat-typography .mat-display-3 {\\n font: 600 56px/56px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 64px;\\n}\\n.defaultMat .mat-display-2, .defaultMat .mat-typography .mat-display-2 {\\n font: 400 45px/48px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 64px;\\n}\\n.defaultMat .mat-display-1, .defaultMat .mat-typography .mat-display-1 {\\n font: 600 34px/40px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 64px;\\n}\\n.defaultMat .mat-bottom-sheet-container {\\n font: 600 14px/30px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-button, .defaultMat .mat-raised-button, .defaultMat .mat-icon-button, .defaultMat .mat-stroked-button,\\n.defaultMat .mat-flat-button, .defaultMat .mat-fab, .defaultMat .mat-mini-fab {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 10px;\\n font-weight: 800;\\n}\\n.defaultMat .mat-button-toggle {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-card {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-card-title {\\n font-size: 24px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-card-header .mat-card-title {\\n font-size: 20px;\\n}\\n.defaultMat .mat-card-subtitle,\\n.defaultMat .mat-card-content {\\n font-size: 14px;\\n}\\n.defaultMat .mat-checkbox {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-checkbox-layout .mat-checkbox-label {\\n line-height: 24px;\\n}\\n.defaultMat .mat-chip {\\n font-size: 14px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-chip .mat-chip-trailing-icon.mat-icon,\\n.defaultMat .mat-chip .mat-chip-remove.mat-icon {\\n font-size: 18px;\\n}\\n.defaultMat .mat-table {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-header-cell {\\n font-size: 12px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-cell, .defaultMat .mat-footer-cell {\\n font-size: 14px;\\n}\\n.defaultMat .mat-calendar {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-calendar-body {\\n font-size: 13px;\\n}\\n.defaultMat .mat-calendar-body-label,\\n.defaultMat .mat-calendar-period-button {\\n font-size: 10px;\\n font-weight: 800;\\n}\\n.defaultMat .mat-calendar-table-header th {\\n font-size: 11px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-dialog-title {\\n font: 600 20px/32px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-expansion-panel-header {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 15px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-expansion-panel-content {\\n font: 600 14px/30px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-form-field {\\n font-size: inherit;\\n font-weight: 400;\\n line-height: 1.125;\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-form-field-wrapper {\\n padding-bottom: 1.34375em;\\n}\\n.defaultMat .mat-form-field-prefix .mat-icon,\\n.defaultMat .mat-form-field-suffix .mat-icon {\\n font-size: 150%;\\n line-height: 1.125;\\n}\\n.defaultMat .mat-form-field-prefix .mat-icon-button,\\n.defaultMat .mat-form-field-suffix .mat-icon-button {\\n height: 1.5em;\\n width: 1.5em;\\n}\\n.defaultMat .mat-form-field-prefix .mat-icon-button .mat-icon,\\n.defaultMat .mat-form-field-suffix .mat-icon-button .mat-icon {\\n height: 1.125em;\\n line-height: 1.125;\\n}\\n.defaultMat .mat-form-field-infix {\\n padding: 0.5em 0;\\n border-top: 0.84375em solid transparent;\\n}\\n.defaultMat .mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.34373em) scale(0.75);\\n transform: translateY(-1.34373em) scale(0.75);\\n width: 133.3333533333%;\\n}\\n.defaultMat .mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.34372em) scale(0.75);\\n transform: translateY(-1.34372em) scale(0.75);\\n width: 133.3333633333%;\\n}\\n.defaultMat .mat-form-field-label-wrapper {\\n top: -0.84375em;\\n padding-top: 0.84375em;\\n}\\n.defaultMat .mat-form-field-label {\\n top: 1.34375em;\\n}\\n.defaultMat .mat-form-field-underline {\\n bottom: 1.34375em;\\n}\\n.defaultMat .mat-form-field-subscript-wrapper {\\n font-size: 75%;\\n margin-top: 0.6666666667em;\\n top: calc(100% - 1.7916666667em);\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-wrapper {\\n padding-bottom: 1.25em;\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-infix {\\n padding: 0.4375em 0;\\n}\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00106px);\\n -ms-transform: translateY(-1.28119em) scale(0.75);\\n width: 133.3333933333%;\\n}\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00107px);\\n -ms-transform: translateY(-1.28118em) scale(0.75);\\n width: 133.3334033333%;\\n}\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00108px);\\n -ms-transform: translateY(-1.28117em) scale(0.75);\\n width: 133.3334133333%;\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-label {\\n top: 1.28125em;\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-underline {\\n bottom: 1.25em;\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {\\n margin-top: 0.5416666667em;\\n top: calc(100% - 1.6666666667em);\\n}\\n@media print {\\n .defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.28116em) scale(0.75);\\n transform: translateY(-1.28116em) scale(0.75);\\n }\\n .defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28115em) scale(0.75);\\n }\\n .defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.28114em) scale(0.75);\\n transform: translateY(-1.28114em) scale(0.75);\\n }\\n}\\n.defaultMat .mat-form-field-appearance-fill .mat-form-field-infix {\\n padding: 0.25em 0 0.75em 0;\\n}\\n.defaultMat .mat-form-field-appearance-fill .mat-form-field-label {\\n top: 1.09375em;\\n margin-top: -0.5em;\\n}\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-0.59373em) scale(0.75);\\n transform: translateY(-0.59373em) scale(0.75);\\n width: 133.3333533333%;\\n}\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-0.59372em) scale(0.75);\\n transform: translateY(-0.59372em) scale(0.75);\\n width: 133.3333633333%;\\n}\\n.defaultMat .mat-form-field-appearance-outline .mat-form-field-infix {\\n padding: 1em 0 1em 0;\\n}\\n.defaultMat .mat-form-field-appearance-outline .mat-form-field-label {\\n top: 1.84375em;\\n margin-top: -0.25em;\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.59373em) scale(0.75);\\n transform: translateY(-1.59373em) scale(0.75);\\n width: 133.3333533333%;\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.59372em) scale(0.75);\\n transform: translateY(-1.59372em) scale(0.75);\\n width: 133.3333633333%;\\n}\\n.defaultMat .mat-grid-tile-header,\\n.defaultMat .mat-grid-tile-footer {\\n font-size: 14px;\\n}\\n.defaultMat .mat-grid-tile-header .mat-line,\\n.defaultMat .mat-grid-tile-footer .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.defaultMat .mat-grid-tile-header .mat-line:nth-child(n+2),\\n.defaultMat .mat-grid-tile-footer .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n.defaultMat input.mat-input-element {\\n margin-top: -0.0625em;\\n}\\n.defaultMat .mat-menu-item {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-paginator,\\n.defaultMat .mat-paginator-page-size .mat-select-trigger {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n}\\n.defaultMat .mat-radio-button {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-select {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-select-trigger {\\n height: 1.125em;\\n}\\n.defaultMat .mat-slide-toggle-content {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-slider-thumb-label-text {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-stepper-vertical, .defaultMat .mat-stepper-horizontal {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-step-label {\\n font-size: 14px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-step-sub-label-error {\\n font-weight: normal;\\n}\\n.defaultMat .mat-step-label-error {\\n font-size: 14px;\\n}\\n.defaultMat .mat-step-label-selected {\\n font-size: 14px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-tab-group {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-tab-label, .defaultMat .mat-tab-link {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 10px;\\n font-weight: 800;\\n}\\n.defaultMat .mat-toolbar,\\n.defaultMat .mat-toolbar h1,\\n.defaultMat .mat-toolbar h2,\\n.defaultMat .mat-toolbar h3,\\n.defaultMat .mat-toolbar h4,\\n.defaultMat .mat-toolbar h5,\\n.defaultMat .mat-toolbar h6 {\\n font: 600 20px/32px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0;\\n}\\n.defaultMat .mat-tooltip {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 10px;\\n padding-top: 6px;\\n padding-bottom: 6px;\\n}\\n.defaultMat .mat-tooltip-handset {\\n font-size: 14px;\\n padding-top: 8px;\\n padding-bottom: 8px;\\n}\\n.defaultMat .mat-list-item {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-list-option {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-list-base .mat-list-item {\\n font-size: 16px;\\n}\\n.defaultMat .mat-list-base .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.defaultMat .mat-list-base .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n.defaultMat .mat-list-base .mat-list-option {\\n font-size: 16px;\\n}\\n.defaultMat .mat-list-base .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.defaultMat .mat-list-base .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n.defaultMat .mat-list-base .mat-subheader {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-list-base[dense] .mat-list-item {\\n font-size: 12px;\\n}\\n.defaultMat .mat-list-base[dense] .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.defaultMat .mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n.defaultMat .mat-list-base[dense] .mat-list-option {\\n font-size: 12px;\\n}\\n.defaultMat .mat-list-base[dense] .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.defaultMat .mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n.defaultMat .mat-list-base[dense] .mat-subheader {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-option {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n}\\n.defaultMat .mat-optgroup-label {\\n font: 600 14px/24px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-simple-snackbar {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n}\\n.defaultMat .mat-simple-snackbar-action {\\n line-height: 1;\\n font-family: inherit;\\n font-size: inherit;\\n font-weight: 800;\\n}\\n.defaultMat .mat-tree {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-tree-node,\\n.defaultMat .mat-nested-tree-node {\\n font-weight: 600;\\n font-size: 14px;\\n}\\n.defaultMat main {\\n background-color: #F0F0F0;\\n}\\n.defaultMat .menu {\\n /*background-color: $background;\\n text-align: center;*/\\n color: black;\\n display: -ms-flexbox;\\n display: flex;\\n}\\n.defaultMat a, .defaultMat a:hover, .defaultMat a:hover span {\\n text-decoration: none;\\n outline: none;\\n}\\n.defaultMat .mat-raised-button:not([class*=mat-elevation-z]),\\n.defaultMat .mat-button,\\n.defaultMat .mat-fab:not([class*=mat-elevation-z]),\\n.defaultMat .mat-mini-fab:not([class*=mat-elevation-z]),\\n.defaultMat .mat-icon-button {\\n box-sizing: border-box;\\n border-width: 1px;\\n border-style: solid;\\n border-color: rgba(0, 0, 0, 0.12);\\n box-shadow: none;\\n}\\n.defaultMat .mat-chip {\\n box-sizing: border-box;\\n border-width: 1px;\\n border-style: solid;\\n border-color: rgba(0, 0, 0, 0.12);\\n border-radius: 10px;\\n}\\n.defaultMat .mat-raised-button.back {\\n color: white;\\n background-color: #616161;\\n}\\n.defaultMat .mat-card {\\n margin: 10px 10px 0 10px;\\n}\\n.defaultMat .mat-checkbox-layout .mat-checkbox-label {\\n line-height: 40px;\\n}\\n.defaultMat .mat-list .mat-list-item .mat-list-text h4.mat-line {\\n font-weight: 800;\\n}\\n.defaultMat .mat-list .mat-list-item .mat-list-text p.mat-line {\\n color: #82b1ff;\\n}\\n.defaultMat .mat-card:not([class*=mat-elevation-z]) {\\n box-sizing: border-box;\\n -ms-flex: 1;\\n flex: 1;\\n border-width: 1px;\\n border-style: solid;\\n border-color: rgba(0, 0, 0, 0.12);\\n box-shadow: none;\\n}\\n.defaultMat .mat-toolbar {\\n background-color: white;\\n border-width: 1px;\\n border-style: solid;\\n border-color: rgba(0, 0, 0, 0.12);\\n box-shadow: none;\\n}\\n.defaultMat .mat-card.mat-card-accent {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-card.mat-card-warn {\\n color: white;\\n}\\n.defaultMat .white-icon {\\n color: white;\\n filter: brightness(100);\\n}\\n.green-icon {\\n color: green;\\n}\\n.Start, .PrimaryIP {\\n color: #64b5f6;\\n}\\n.Stop, .SecondaryIP {\\n color: #f44336;\\n}\\n.Start {\\n background-color: darkgreen;\\n color: white;\\n}\\n.Stop {\\n background-color: red;\\n color: white;\\n}\\n::ng-deep .mainVQuadChk .mat-checkbox-frame {\\n border-color: white;\\n}\\n.IdleOrDisconn {\\n background-color: grey;\\n color: white;\\n font-variant: all-petite-caps;\\n -moz-text-align-last: center;\\n text-align-last: center;\\n}\\n.Connected {\\n background-color: yellow;\\n font-variant: all-petite-caps;\\n -moz-text-align-last: center;\\n text-align-last: center;\\n}\\n.IncomingOrAnswering {\\n background-color: blueviolet;\\n color: white;\\n font-variant: all-petite-caps;\\n -moz-text-align-last: center;\\n text-align-last: center;\\n}\\n.otherCallStats {\\n background-color: orange;\\n color: white;\\n font-variant: all-petite-caps;\\n -moz-text-align-last: center;\\n text-align-last: center;\\n}\\n.footer {\\n position: fixed;\\n left: 0;\\n bottom: 0;\\n width: 100%;\\n background-color: red;\\n color: white;\\n text-align: center;\\n}\\n/*start Radio Button*/\\n/*.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}*/\\n/*END Radio Button*/\\n/*start checkbox*/\\n/*https://www.codegrepper.com/code-examples/css/mat+radio+button+color*/\\n/*::ng-deep .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element {\\n opacity: 0.5 !important;\\n background-color: blue !important;\\n}\\n\\n::ng-deep .mat-radio-button.mat-accent .mat-radio-inner-circle {\\n background-color: blue !important;\\n}\\n\\n::ng-deep.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\\n border-color: blue !important;\\n}*/\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n.mat-radio-button {\\n font-size: 14px;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n}\\n:host ::ng-deep .mat-form-field-outline-start,\\n:host ::ng-deep .mat-form-field-outline-gap,\\n:host ::ng-deep .mat-form-field-outline-end {\\n background-color: white !important;\\n}\\n.smallRadio .mat-radio-container {\\n height: 12px;\\n width: 12px;\\n}\\n.smallRadio .mat-radio-outer-circle {\\n height: 12px;\\n width: 12px;\\n}\\n.smallRadio .mat-radio-inner-circle {\\n height: 12px;\\n width: 12px;\\n}\\n.smallRadio .mat-radio-button .mat-radio-ripple {\\n height: 24px;\\n width: 24px;\\n left: calc(50% - 12px);\\n top: calc(50% - 12px);\\n}\\n/*::ng-deep .mat-checkbox-layout {\\n width: 15px;\\n height: 15px;\\n}\\n\\n.checkboxsize .defaultMat .mat-checkbox-inner-container {\\n width: 15px;\\n height: 15px;\\n}\\n\\n::ng-deep .mat-checkbox .mat-checkbox-frame {\\n width: 15px;\\n height: 15px;\\n}\\n::ng-deep .mainChk .mat-checkbox-frame {\\n border-color: white;\\n}\\n\\n::ng-deep .mat-checkbox .mat-checkbox-ripple {\\n width: 15px;\\n height: 15px;\\n}\\n::ng-deep .mat-ripple-element {\\n width: 15px;\\n height: 15px;\\n display: none !important;\\n}\\n\\n::ng-deep .mat-checkbox-checked .mat-checkbox-background,\\n::ng-deep .mat-checkbox-indeterminate .mat-checkbox-background {\\n width: 15px;\\n height: 15px;\\n}\\n::ng-deep .mat-checkbox-background {\\n width: 15px;\\n height: 15px;\\n}*/\\n/*::ng-deep .mat-checkbox-checked .mat-checkbox-background {\\n background-color: blue !important;\\n top: 10px;\\n width: 20px;\\n height: 20px;\\n}*/\\n/*end checkbox*/\\n/*https: //blog.hubspot.com/website/css-fade-in\\nhttps: //stackoverflow.com/questions/30125705/css-how-to-make-an-element-fade-in-and-then-fade-out\\nhttp://css3.bradshawenterprises.com/cfimg/\\nhttps://stackblitz.com/edit/angular-material-prototype-animated-icon?file=src%2Fapp%2Fmat-animated-icon%2Fmat-animated-icon.component.scss\\n*/\\n/*https: //codepen.io/goorak7/pen/bNJZLm*/\\n.blink {\\n animation: blink 2s steps(5, start) infinite;\\n -webkit-animation: blink 1s steps(5, start) infinite;\\n}\\n@keyframes blink {\\n to {\\n visibility: hidden;\\n }\\n}\\n@-webkit-keyframes blink {\\n to {\\n visibility: hidden;\\n }\\n}\\n/*https: //css-tricks.com/animations-the-angular-way/*/\\n.click {\\n cursor: pointer;\\n}\\n/*.faIcn-rotate-90 {\\n -webkit-transform: rotate(90deg);\\n -moz-transform: rotate(90deg);\\n -ms-transform: rotate(90deg);\\n -o-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}*/\\n/*//https://stackoverflow.com/questions/53312640/how-to-change-size-of-mat-icon-on-angular-material/53312754\\n //https://stackoverflow.com/questions/48776142/change-svg-size-in-angular-material-2-mat-icon-using-vanilla-css-or-html?rq=1\\n.mat-icon {\\n font-size: 24px;\\n transform: scale(2);\\n}*/\\n/*.mat-icon-button {\\n width: 24px !important;\\n height: 24px !important;\\n line-height: 24px !important;\\n}*/\\na.disabled {\\n cursor: not-allowed;\\n pointer-events: none;\\n text-decoration: none;\\n}\\n.flex-container {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n /*justify-content: flex-end;\\n align-items: center;\\n min-height: 48px;\\n padding: 0 8px;*/\\n}\\n.divspan {\\n position: relative;\\n border-radius: 30px;\\n padding: 0px 10px 0px 10px;\\n}\\n.PrimaryIPNew {\\n background: #cff6dd;\\n color: #64b5f6;\\n font-variant: all-petite-caps;\\n}\\n.SecondaryIPNew {\\n background: #cff6dd;\\n color: #f44336;\\n font-variant: all-petite-caps;\\n}\\n.blueTick {\\n color: deepskyblue;\\n}\\n.greenTick {\\n color: green;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc3RhdGlzdGljcy9uZXR3b3JrLXN0YXR1cy92LW1vYmlsZS9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvc3JjXFxhcHBcXHN0YXRpc3RpY3NcXG5ldHdvcmstc3RhdHVzXFx2LW1vYmlsZVxcdi1tb2JpbGUuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3N0YXRpc3RpY3MvbmV0d29yay1zdGF0dXMvdi1tb2JpbGUvdi1tb2JpbGUuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3N0YXRpc3RpY3MvbmV0d29yay1zdGF0dXMvdi1tb2JpbGUvRDpcXFNyY3dlYlxcVlMyMDE3IFByb2plY3RzXFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3L3NyY1xcdGhlbWVzXFx0aGVtZS5zY3NzIiwic3JjL2FwcC9zdGF0aXN0aWNzL25ldHdvcmstc3RhdHVzL3YtbW9iaWxlL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyXFxtYXRlcmlhbFxcX3RoZW1pbmcuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtR0FBQTtBQUVBO0VBQ0UsNEJBQUE7QUNBRjtBRElBO0VBQ0UsYUFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtBQ0RGO0FESUE7O0VBRUUsbUJBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSw2QkFBQTtFQUNBLGVBQUE7RUFDQSxrREFBQTtFQUNBO3dFQUFBO0VBRUEsK0JBQUE7RUFDQSxnQ0FBQTtFQUNBLGVBQUE7QUNERjtBRElBOztFQUVFLDJCQUFBO0VBQ0EsZUFBQTtFQUNBLGtEQUFBO0VBQ0E7d0VBQUE7RUFFQSwrQkFBQTtFQUNBLGdDQUFBO0FDREY7QURJQSxXQUFBO0FBQ0E7O0VB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QUNFLG1CQUFBO0VBQ0Esb0JBQUE7RUFDQSxxQkFBQTtBQytuTEY7QUQzbkxBO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0EsbUJBQUE7TUFBQSxlQUFBO0VBQ0E7OztrQkFBQTtBQ2lvTEY7QUQzbkxBO0VBQ0Usa0JBQUE7RUFDQSxtQkFBQTtFQUNBLDBCQUFBO0FDOG5MRjtBRDNuTEE7RUFDRSxtQkFBQTtFQUNBLGNBQUE7RUFDQSw2QkFBQTtBQzhuTEY7QUQzbkxBO0VBQ0UsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsNkJBQUE7QUM4bkxGO0FEM25MQTtFQUNFLGtCQUFBO0FDOG5MRjtBRDNuTEE7RUFDRSxZQUFBO0FDOG5MRiIsImZpbGUiOiJzcmMvYXBwL3N0YXRpc3RpY3MvbmV0d29yay1zdGF0dXMvdi1tb2JpbGUvdi1tb2JpbGUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKmh0dHBzOi8vc3RhY2tibGl0ei5jb20vZWRpdC9hbmd1bGFyLW5lc3RlZC1tYXQtdGFibGU/ZmlsZT1hcHAlMkZ0YWJsZS1leHBhbmRhYmxlLXJvd3MtZXhhbXBsZS50cyovXHJcblxyXG4ub3V0ZXJUYWJsZSB7XHJcbiAgLyp3aWR0aDogMjAwMHB4ICFpbXBvcnRhbnQ7Ki9cclxufVxyXG5cclxuXHJcbi5kaXZGbG93IHtcclxuICBoZWlnaHQ6IDc2MHB4O1xyXG4gIG1heC1oZWlnaHQ6IDgwMHB4O1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG59XHJcblxyXG4ub3V0ZXJUYWJsZSB0aCxcclxuLmlubmVyVGFibGUgdGgge1xyXG4gIGJhY2tncm91bmQ6ICMxOTc2RDI7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxuICAvKmZvbnQtZmFtaWx5OidTZWdvZSBVSScsIFRhaG9tYSwgR2VuZXZhLCBWZXJkYW5hLCBzYW5zLXNlcmlmO1xyXG4gIGZvbnQtZmFtaWx5OiBDYW1icmlhLCBDb2NoaW4sIEdlb3JnaWEsIFRpbWVzLCBUaW1lcyBOZXcgUm9tYW4sIHNlcmlmOyovXHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2M2YzZjNjtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M2YzZjNjtcclxuICAvKndpZHRoOjEyMHB4OyovXHJcbn1cclxuXHJcbi5vdXRlclRhYmxlIHRkLFxyXG4uaW5uZXJUYWJsZSB0ZCB7XHJcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxuICAvKmZvbnQtZmFtaWx5OiAnU2Vnb2UgVUknLCBUYWhvbWEsIEdlbmV2YSwgVmVyZGFuYSwgc2Fucy1zZXJpZjtcclxuICBmb250LWZhbWlseTogQ2FtYnJpYSwgQ29jaGluLCBHZW9yZ2lhLCBUaW1lcywgVGltZXMgTmV3IFJvbWFuLCBzZXJpZjsqL1xyXG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjNmM2YzY7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNmM2YzY7XHJcbn1cclxuXHJcbi8qZWx1bWFsYWkqL1xyXG4ub3V0ZXJUYWJsZSB0cixcclxuLmlubmVyVGFibGUgdHIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUZBRkE7XHJcbn1cclxuXHJcblxyXG4uaW5uZXJUYWJsZSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5pbm5lclRhYmxlIHRyOm50aC1jaGlsZChldmVuKSB7XHJcbiAgYmFja2dyb3VuZDogI0M5REZGNDtcclxufVxyXG5cclxuLmlubmVyVGFibGUgdHI6bnRoLWNoaWxkKG9kZCkge1xyXG4gIGJhY2tncm91bmQ6ICNGRkY7XHJcbn1cclxuXHJcblxyXG5cclxudHIuZXhhbXBsZS1kZXRhaWwtcm93IHtcclxuICBoZWlnaHQ6IDA7XHJcbn1cclxuXHJcbi8qZWx1bWFsYWkqL1xyXG50ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1leHBhbmRlZC1yb3cpOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiAjRUJGM0ZFOyAvKiM3Nzc7Ki9cclxuICBjb2xvcjogYmx1ZXZpb2xldDtcclxufVxyXG5cclxuXHJcbi8qZWx1bWFsYWkqL1xyXG50ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1leHBhbmRlZC1yb3cpOmFjdGl2ZSB7XHJcbiAgLypiYWNrZ3JvdW5kOiAjZWZlZmVmOyovXHJcbiAgYmFja2dyb3VuZDogI0VCRjNGRTtcclxuICBjb2xvcjogYmx1ZXZpb2xldDtcclxufVxyXG4vKi5vdXRlclRhYmxlIHRyLmV4YW1wbGUtZWxlbWVudC1yb3c6bm90KC5leGFtcGxlLWRldGFpbC1yb3cpOm50aC1jaGlsZChldmVuKSB7XHJcbiAgYmFja2dyb3VuZDogI0M5REZGNDtcclxufVxyXG5cclxuLm91dGVyVGFibGUgdHIuZXhhbXBsZS1lbGVtZW50LXJvdzpub3QoLmV4YW1wbGUtZGV0YWlsLXJvdyk6bnRoLWNoaWxkKG9kZCkge1xyXG4gIGJhY2tncm91bmQ6ICNGRkY7XHJcbn0qL1xyXG4uZXhhbXBsZS1lbGVtZW50LXJvdyB0ZCB7XHJcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcclxufVxyXG5cclxuLmV4YW1wbGUtZWxlbWVudC1kZXRhaWwge1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgLypkaXNwbGF5OiBmbGV4OyovXHJcbn1cclxuLypodHRwczovL3d3dy5mcmVha3lqb2xseS5jb20vZXhwYW5kLWNvbGxhcHNlLXNpbmdsZS1vci1tdWx0aXBsZS1yb3dzLWluLWFuZ3VsYXItOTgtbWF0ZXJpYWwtdGFibGUtbXVsdGlwbGUtc2luZ2xlLyovXHJcbi8qLmV4YW1wbGUtZWxlbWVudC1kZXRhaWwge1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNlMWUxZTE7XHJcbiAgYm94LXNoYWRvdzogaW5zZXQgMnB4IDNweCA4cHggI2MxYzFjMTtcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbn0qL1xyXG4uaW5uZXItdGFibGUge1xyXG4gIHdpZHRoOiAxMTAwcHg7XHJcbn1cclxuXHJcbi8qLmlubmVyLXRhYmxlIG1hdC1mb3JtLWZpZWxkIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIC5vdXRlclRhYmxlIG1hdC1mb3JtLWZpZWxkIHtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgICB3aWR0aDogNzAlO1xyXG4gIH0qL1xyXG5cclxuLmRpdkhlYXJkZXIge1xyXG4gIG1hcmdpbi1sZWZ0OiAyMDBweDtcclxuICBmb250LXNpemU6IGxhcmdlO1xyXG4gIG1hcmdpbi1yaWdodDogMTAwcHg7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4uaGlnaGxpZ2h0IHtcclxuICBjb2xvcjogYmx1ZXZpb2xldDtcclxuICBmb250LXZhcmlhbnQ6IGFsbC1wZXRpdGUtY2FwcztcclxufVxyXG4vKmh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2NjMyMDk4L2FjY2Vzc2luZy1wcmltYXJ5LWNvbG9yLXdoaWNoLWlzLWRlZmluZWQtY3VzdG9tLXRoZW1lLWluc2lkZS1jb21wb25lbnRzLXNjc3NcclxuICBodHRwczovL21lZGl1bS5jb20vQHRvbWFzdHJhamFuL3RoZS1jb21wbGV0ZS1ndWlkZS10by1hbmd1bGFyLW1hdGVyaWFsLXRoZW1lcy00ZDE2NWE5ZDI0ZDFcclxuKi9cclxuQGltcG9ydCAnLi4vLi4vLi4vLi4vdGhlbWVzL3RoZW1lLnNjc3MnO1xyXG4kcHJpbWFyeTogbWFwLWdldCgkY3VzdG9tLXRoZW1lLCBwcmltYXJ5KTtcclxuJHdhcm46IG1hcC1nZXQoJGN1c3RvbS10aGVtZSwgd2Fybik7XHJcbiRhY2NlbnQ6IG1hcC1nZXQoJGN1c3RvbS10aGVtZSwgYWNjZW50KTtcclxuXHJcblxyXG4uZ3JlZW4taWNvbiB7XHJcbiAgY29sb3I6IGdyZWVuO1xyXG59XHJcblxyXG4uU3RhcnQsIC5QcmltYXJ5SVAge1xyXG4gIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnkpO1xyXG59XHJcblxyXG4uU3RvcCwgLlNlY29uZGFyeUlQIHtcclxuICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcclxufVxyXG5cclxuLlN0YXJ0IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZ3JlZW47XHJcbiAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4uU3RvcCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYWluVlF1YWRDaGsgLm1hdC1jaGVja2JveC1mcmFtZSB7XHJcbiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuXHJcbi5JZGxlT3JEaXNjb25uIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5O1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBmb250LXZhcmlhbnQ6IGFsbC1wZXRpdGUtY2FwcztcclxuICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcclxufVxyXG5cclxuLkNvbm5lY3RlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xyXG4gIGZvbnQtdmFyaWFudDogYWxsLXBldGl0ZS1jYXBzO1xyXG4gIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xyXG59XHJcblxyXG4uSW5jb21pbmdPckFuc3dlcmluZyB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZXZpb2xldDtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgZm9udC12YXJpYW50OiBhbGwtcGV0aXRlLWNhcHM7XHJcbiAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XHJcbn1cclxuXHJcbi5vdGhlckNhbGxTdGF0cyB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBmb250LXZhcmlhbnQ6IGFsbC1wZXRpdGUtY2FwcztcclxuICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcclxufVxyXG5cclxuLmZvb3RlciB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIGxlZnQ6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJlZDtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbi8qc3RhcnQgUmFkaW8gQnV0dG9uKi9cclxuLyoubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICBtYXJnaW4tbGVmdDogMTZweDtcclxufSovXHJcbi8qRU5EIFJhZGlvIEJ1dHRvbiovXHJcbi8qc3RhcnQgY2hlY2tib3gqL1xyXG5cclxuLypodHRwczovL3d3dy5jb2RlZ3JlcHBlci5jb20vY29kZS1leGFtcGxlcy9jc3MvbWF0K3JhZGlvK2J1dHRvbitjb2xvciovXHJcbi8qOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudCB7XHJcbiAgb3BhY2l0eTogMC41ICFpbXBvcnRhbnQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcclxuICBib3JkZXItY29sb3I6IGJsdWUgIWltcG9ydGFudDtcclxufSovXHJcblxyXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICBtYXJnaW4tbGVmdDogMTZweDtcclxufVxyXG5cclxuLm1hdC1yYWRpby1idXR0b24ge1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxufVxyXG5cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXN0YXJ0LFxyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZ2FwLCAvKkZvciBhYm92ZSBtYXQtbGFiZWwgLSBJTVAqL1xyXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZW5kIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc21hbGxSYWRpbyAubWF0LXJhZGlvLWNvbnRhaW5lciB7XHJcbiAgaGVpZ2h0OiAxMnB4O1xyXG4gIHdpZHRoOiAxMnB4O1xyXG59XHJcblxyXG4uc21hbGxSYWRpbyAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxMnB4O1xyXG4gIHdpZHRoOiAxMnB4O1xyXG59XHJcblxyXG4uc21hbGxSYWRpbyAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XHJcbiAgaGVpZ2h0OiAxMnB4O1xyXG4gIHdpZHRoOiAxMnB4O1xyXG59XHJcblxyXG4uc21hbGxSYWRpbyAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJhZGlvLXJpcHBsZSB7XHJcbiAgaGVpZ2h0OiAyNHB4O1xyXG4gIHdpZHRoOiAyNHB4O1xyXG4gIGxlZnQ6IGNhbGMoNTAlIC0gMTJweCk7XHJcbiAgdG9wOiBjYWxjKDUwJSAtIDEycHgpO1xyXG59XHJcblxyXG5cclxuLyo6Om5nLWRlZXAgLm1hdC1jaGVja2JveC1sYXlvdXQge1xyXG4gIHdpZHRoOiAxNXB4O1xyXG4gIGhlaWdodDogMTVweDtcclxufVxyXG5cclxuLmNoZWNrYm94c2l6ZSAuZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lciB7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LWZyYW1lIHtcclxuICB3aWR0aDogMTVweDtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbn1cclxuOjpuZy1kZWVwIC5tYWluQ2hrIC5tYXQtY2hlY2tib3gtZnJhbWUge1xyXG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LWNoZWNrYm94IC5tYXQtY2hlY2tib3gtcmlwcGxlIHtcclxuICB3aWR0aDogMTVweDtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xyXG4gIHdpZHRoOiAxNXB4O1xyXG4gIGhlaWdodDogMTVweDtcclxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLFxyXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG59XHJcbjo6bmctZGVlcCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xyXG4gIHdpZHRoOiAxNXB4O1xyXG4gIGhlaWdodDogMTVweDtcclxufSovXHJcblxyXG5cclxuLyo6Om5nLWRlZXAgLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZSAhaW1wb3J0YW50O1xyXG4gIHRvcDogMTBweDtcclxuICB3aWR0aDogMjBweDtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbn0qL1xyXG5cclxuLyplbmQgY2hlY2tib3gqL1xyXG5cclxuXHJcbi8qaHR0cHM6IC8vYmxvZy5odWJzcG90LmNvbS93ZWJzaXRlL2Nzcy1mYWRlLWluXHJcbmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zMDEyNTcwNS9jc3MtaG93LXRvLW1ha2UtYW4tZWxlbWVudC1mYWRlLWluLWFuZC10aGVuLWZhZGUtb3V0XHJcbmh0dHA6Ly9jc3MzLmJyYWRzaGF3ZW50ZXJwcmlzZXMuY29tL2NmaW1nL1xyXG5odHRwczovL3N0YWNrYmxpdHouY29tL2VkaXQvYW5ndWxhci1tYXRlcmlhbC1wcm90b3R5cGUtYW5pbWF0ZWQtaWNvbj9maWxlPXNyYyUyRmFwcCUyRm1hdC1hbmltYXRlZC1pY29uJTJGbWF0LWFuaW1hdGVkLWljb24uY29tcG9uZW50LnNjc3NcclxuKi9cclxuLypodHRwczogLy9jb2RlcGVuLmlvL2dvb3JhazcvcGVuL2JOSlpMbSovXHJcbi5ibGluayB7XHJcbiAgYW5pbWF0aW9uOiBibGluayAycyBzdGVwcyg1LCBzdGFydCkgaW5maW5pdGU7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGJsaW5rIDFzIHN0ZXBzKDUsIHN0YXJ0KSBpbmZpbml0ZTtcclxufVxyXG5cclxuQGtleWZyYW1lcyBibGluayB7XHJcbiAgdG8ge1xyXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIH1cclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGJsaW5rIHtcclxuICB0byB7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgfVxyXG59XHJcbi8qaHR0cHM6IC8vY3NzLXRyaWNrcy5jb20vYW5pbWF0aW9ucy10aGUtYW5ndWxhci13YXkvKi9cclxuLmNsaWNrIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuLyouZmFJY24tcm90YXRlLTkwIHtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcclxuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcclxuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xyXG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XHJcbn0qL1xyXG4vKi8vaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTMzMTI2NDAvaG93LXRvLWNoYW5nZS1zaXplLW9mLW1hdC1pY29uLW9uLWFuZ3VsYXItbWF0ZXJpYWwvNTMzMTI3NTRcclxuICAvL2h0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ4Nzc2MTQyL2NoYW5nZS1zdmctc2l6ZS1pbi1hbmd1bGFyLW1hdGVyaWFsLTItbWF0LWljb24tdXNpbmctdmFuaWxsYS1jc3Mtb3ItaHRtbD9ycT0xXHJcbi5tYXQtaWNvbiB7XHJcbiAgZm9udC1zaXplOiAyNHB4O1xyXG4gIHRyYW5zZm9ybTogc2NhbGUoMik7XHJcbn0qL1xyXG4vKi5tYXQtaWNvbi1idXR0b24ge1xyXG4gIHdpZHRoOiAyNHB4ICFpbXBvcnRhbnQ7XHJcbiAgaGVpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XHJcbiAgbGluZS1oZWlnaHQ6IDI0cHggIWltcG9ydGFudDtcclxufSovXHJcbmEuZGlzYWJsZWQge1xyXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG5cclxuLmZsZXgtY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICAvKmp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBtaW4taGVpZ2h0OiA0OHB4O1xyXG4gIHBhZGRpbmc6IDAgOHB4OyovXHJcbn1cclxuXHJcbi5kaXZzcGFuIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgYm9yZGVyLXJhZGl1czogMzBweDtcclxuICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDtcclxufVxyXG5cclxuLlByaW1hcnlJUE5ldyB7XHJcbiAgYmFja2dyb3VuZDogI2NmZjZkZDtcclxuICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcclxuICBmb250LXZhcmlhbnQ6IGFsbC1wZXRpdGUtY2FwcztcclxufVxyXG5cclxuLlNlY29uZGFyeUlQTmV3IHtcclxuICBiYWNrZ3JvdW5kOiAjY2ZmNmRkO1xyXG4gIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4pO1xyXG4gIGZvbnQtdmFyaWFudDogYWxsLXBldGl0ZS1jYXBzO1xyXG59XHJcblxyXG4uYmx1ZVRpY2sge1xyXG4gIGNvbG9yOiBkZWVwc2t5Ymx1ZTtcclxufVxyXG5cclxuLmdyZWVuVGljayB7XHJcbiAgY29sb3I6IGdyZWVuO1xyXG59XHJcbiIsIi8qaHR0cHM6Ly9zdGFja2JsaXR6LmNvbS9lZGl0L2FuZ3VsYXItbmVzdGVkLW1hdC10YWJsZT9maWxlPWFwcCUyRnRhYmxlLWV4cGFuZGFibGUtcm93cy1leGFtcGxlLnRzKi9cbi5vdXRlclRhYmxlIHtcbiAgLyp3aWR0aDogMjAwMHB4ICFpbXBvcnRhbnQ7Ki9cbn1cblxuLmRpdkZsb3cge1xuICBoZWlnaHQ6IDc2MHB4O1xuICBtYXgtaGVpZ2h0OiA4MDBweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5vdXRlclRhYmxlIHRoLFxuLmlubmVyVGFibGUgdGgge1xuICBiYWNrZ3JvdW5kOiAjMTk3NkQyO1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgLypmb250LWZhbWlseTonU2Vnb2UgVUknLCBUYWhvbWEsIEdlbmV2YSwgVmVyZGFuYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1mYW1pbHk6IENhbWJyaWEsIENvY2hpbiwgR2VvcmdpYSwgVGltZXMsIFRpbWVzIE5ldyBSb21hbiwgc2VyaWY7Ki9cbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2M2YzZjNjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNmM2YzY7XG4gIC8qd2lkdGg6MTIwcHg7Ki9cbn1cblxuLm91dGVyVGFibGUgdGQsXG4uaW5uZXJUYWJsZSB0ZCB7XG4gIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgLypmb250LWZhbWlseTogJ1NlZ29lIFVJJywgVGFob21hLCBHZW5ldmEsIFZlcmRhbmEsIHNhbnMtc2VyaWY7XG4gIGZvbnQtZmFtaWx5OiBDYW1icmlhLCBDb2NoaW4sIEdlb3JnaWEsIFRpbWVzLCBUaW1lcyBOZXcgUm9tYW4sIHNlcmlmOyovXG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjNmM2YzY7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzZjNmM2O1xufVxuXG4vKmVsdW1hbGFpKi9cbi5vdXRlclRhYmxlIHRyLFxuLmlubmVyVGFibGUgdHIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkFGQUZBO1xufVxuXG4uaW5uZXJUYWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uaW5uZXJUYWJsZSB0cjpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kOiAjQzlERkY0O1xufVxuXG4uaW5uZXJUYWJsZSB0cjpudGgtY2hpbGQob2RkKSB7XG4gIGJhY2tncm91bmQ6ICNGRkY7XG59XG5cbnRyLmV4YW1wbGUtZGV0YWlsLXJvdyB7XG4gIGhlaWdodDogMDtcbn1cblxuLyplbHVtYWxhaSovXG50ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1leHBhbmRlZC1yb3cpOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI0VCRjNGRTtcbiAgLyojNzc3OyovXG4gIGNvbG9yOiBibHVldmlvbGV0O1xufVxuXG4vKmVsdW1hbGFpKi9cbnRyLmV4YW1wbGUtZWxlbWVudC1yb3c6bm90KC5leGFtcGxlLWV4cGFuZGVkLXJvdyk6YWN0aXZlIHtcbiAgLypiYWNrZ3JvdW5kOiAjZWZlZmVmOyovXG4gIGJhY2tncm91bmQ6ICNFQkYzRkU7XG4gIGNvbG9yOiBibHVldmlvbGV0O1xufVxuXG4vKi5vdXRlclRhYmxlIHRyLmV4YW1wbGUtZWxlbWVudC1yb3c6bm90KC5leGFtcGxlLWRldGFpbC1yb3cpOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQ6ICNDOURGRjQ7XG59XG5cbi5vdXRlclRhYmxlIHRyLmV4YW1wbGUtZWxlbWVudC1yb3c6bm90KC5leGFtcGxlLWRldGFpbC1yb3cpOm50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZDogI0ZGRjtcbn0qL1xuLmV4YW1wbGUtZWxlbWVudC1yb3cgdGQge1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xufVxuXG4uZXhhbXBsZS1lbGVtZW50LWRldGFpbCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8qZGlzcGxheTogZmxleDsqL1xufVxuXG4vKmh0dHBzOi8vd3d3LmZyZWFreWpvbGx5LmNvbS9leHBhbmQtY29sbGFwc2Utc2luZ2xlLW9yLW11bHRpcGxlLXJvd3MtaW4tYW5ndWxhci05OC1tYXRlcmlhbC10YWJsZS1tdWx0aXBsZS1zaW5nbGUvKi9cbi8qLmV4YW1wbGUtZWxlbWVudC1kZXRhaWwge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UxZTFlMTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMnB4IDNweCA4cHggI2MxYzFjMTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xufSovXG4uaW5uZXItdGFibGUge1xuICB3aWR0aDogMTEwMHB4O1xufVxuXG4vKi5pbm5lci10YWJsZSBtYXQtZm9ybS1maWVsZCB7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5vdXRlclRhYmxlIG1hdC1mb3JtLWZpZWxkIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgIHdpZHRoOiA3MCU7XG4gIH0qL1xuLmRpdkhlYXJkZXIge1xuICBtYXJnaW4tbGVmdDogMjAwcHg7XG4gIGZvbnQtc2l6ZTogbGFyZ2U7XG4gIG1hcmdpbi1yaWdodDogMTAwcHg7XG59XG5cbi5oaWdobGlnaHQge1xuICBjb2xvcjogYmx1ZXZpb2xldDtcbiAgZm9udC12YXJpYW50OiBhbGwtcGV0aXRlLWNhcHM7XG59XG5cbi8qaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDY2MzIwOTgvYWNjZXNzaW5nLXByaW1hcnktY29sb3Itd2hpY2gtaXMtZGVmaW5lZC1jdXN0b20tdGhlbWUtaW5zaWRlLWNvbXBvbmVudHMtc2Nzc1xuICBodHRwczovL21lZGl1bS5jb20vQHRvbWFzdHJhamFuL3RoZS1jb21wbGV0ZS1ndWlkZS10by1hbmd1bGFyLW1hdGVyaWFsLXRoZW1lcy00ZDE2NWE5ZDI0ZDFcbiovXG4vKmh0dHBzOiAvL3N0YWNrYmxpdHouY29tL2VkaXQvYW5ndWxhci1tYXRlcmlhbC10aGVtZS1zZWNyZXRzP2VtYmVkPTEmZmlsZT1zcmMlMkZ0aGVtZS5zY3NzJnNvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PU9wZW4rU2Fuczo0MDAsMzAwLDMwMGl0YWxpYyw0MDBpdGFsaWMsNjAwLDYwMGl0YWxpYyw3MDAsNzAwaXRhbGljLDgwMCw4MDBpdGFsaWMmc3Vic2V0PWxhdGluLWV4dCcpO1xuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86MzAwLDQwMCw1MDAsNzAwLDQwMGl0YWxpYyZhbXA7c3Vic2V0PWxhdGluLWV4dCcpOyovXG4vKkBpbXBvcnQgJy4uL2Nzcy9Hb29nbGVGb250c09wZW5TYW5zLmNzcyc7XG5AaW1wb3J0ICcuLi9jc3MvR29vZ2xlRm9udHNSb2JvdG8uY3NzJzsqL1xuLyogVGhlbWUgZm9yIHRoZSByaXBwbGUgZWxlbWVudHMuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIG1hdGVyaWFsL25vLXByZWZpeGVzICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4ubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1iYWRnZS1zbWFsbCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXNpemU6IDlweDtcbn1cblxuLm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXNpemU6IDI0cHg7XG59XG5cbi5tYXQtaDEsIC5tYXQtaGVhZGxpbmUsIC5tYXQtdHlwb2dyYXBoeSBoMSB7XG4gIGZvbnQ6IDQwMCAyNHB4LzMycHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG5cbi5tYXQtaDIsIC5tYXQtdGl0bGUsIC5tYXQtdHlwb2dyYXBoeSBoMiB7XG4gIGZvbnQ6IDUwMCAyMHB4LzMycHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG5cbi5tYXQtaDMsIC5tYXQtc3ViaGVhZGluZy0yLCAubWF0LXR5cG9ncmFwaHkgaDMge1xuICBmb250OiA0MDAgMTZweC8yOHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxNnB4O1xufVxuXG4ubWF0LWg0LCAubWF0LXN1YmhlYWRpbmctMSwgLm1hdC10eXBvZ3JhcGh5IGg0IHtcbiAgZm9udDogNDAwIDE1cHgvMjRweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbn1cblxuLm1hdC1oNSwgLm1hdC10eXBvZ3JhcGh5IGg1IHtcbiAgZm9udDogNDAwIGNhbGMoMTRweCAqIDAuODMpLzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDEycHg7XG59XG5cbi5tYXQtaDYsIC5tYXQtdHlwb2dyYXBoeSBoNiB7XG4gIGZvbnQ6IDQwMCBjYWxjKDE0cHggKiAwLjY3KS8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuXG4ubWF0LWJvZHktc3Ryb25nLCAubWF0LWJvZHktMiB7XG4gIGZvbnQ6IDUwMCAxNHB4LzI0cHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtYm9keSwgLm1hdC1ib2R5LTEsIC5tYXQtdHlwb2dyYXBoeSB7XG4gIGZvbnQ6IDQwMCAxNHB4LzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4ubWF0LWJvZHkgcCwgLm1hdC1ib2R5LTEgcCwgLm1hdC10eXBvZ3JhcGh5IHAge1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuXG4ubWF0LXNtYWxsLCAubWF0LWNhcHRpb24ge1xuICBmb250OiA0MDAgMTJweC8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWRpc3BsYXktNCwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS00IHtcbiAgZm9udDogMzAwIDExMnB4LzExMnB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDVlbTtcbiAgbWFyZ2luOiAwIDAgNTZweDtcbn1cblxuLm1hdC1kaXNwbGF5LTMsIC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktMyB7XG4gIGZvbnQ6IDQwMCA1NnB4LzU2cHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICBtYXJnaW46IDAgMCA2NHB4O1xufVxuXG4ubWF0LWRpc3BsYXktMiwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0yIHtcbiAgZm9udDogNDAwIDQ1cHgvNDhweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAwNWVtO1xuICBtYXJnaW46IDAgMCA2NHB4O1xufVxuXG4ubWF0LWRpc3BsYXktMSwgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0xIHtcbiAgZm9udDogNDAwIDM0cHgvNDBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgNjRweDtcbn1cblxuLm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyIHtcbiAgZm9udDogNDAwIDE0cHgvMjBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1idXR0b24sIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLm1hdC1pY29uLWJ1dHRvbiwgLm1hdC1zdHJva2VkLWJ1dHRvbixcbi5tYXQtZmxhdC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1jYXJkIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWNhcmQtdGl0bGUge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuXG4ubWF0LWNhcmQtc3VidGl0bGUsXG4ubWF0LWNhcmQtY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1jaGVja2JveCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1jaGVja2JveC1sYXlvdXQgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuXG4ubWF0LWNoaXAge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4ubWF0LWNoaXAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb24sXG4ubWF0LWNoaXAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLm1hdC10YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1oZWFkZXItY2VsbCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubWF0LWNhbGVuZGFyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHkge1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCxcbi5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIgdGgge1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgZm9udDogNTAwIDIwcHgvMzJweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICBmb250OiA0MDAgMTRweC8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWZvcm0tZmllbGQge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjM0Mzc1ZW07XG59XG5cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLFxuLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24ge1xuICBmb250LXNpemU6IDE1MCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbn1cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbixcbi5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiB7XG4gIGhlaWdodDogMS41ZW07XG4gIHdpZHRoOiAxLjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24sXG4ubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29uIHtcbiAgaGVpZ2h0OiAxLjEyNWVtO1xuICBsaW5lLWhlaWdodDogMS4xMjU7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuNWVtIDA7XG4gIGJvcmRlci10b3A6IDAuODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4zNDM3NWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjM0Mzc0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogLTAuODQzNzVlbTtcbiAgcGFkZGluZy10b3A6IDAuODQzNzVlbTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAxLjM0Mzc1ZW07XG59XG5cbi5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBib3R0b206IDEuMzQzNzVlbTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIG1hcmdpbi10b3A6IDAuNjY2NjY2NjY2N2VtO1xuICB0b3A6IGNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDEuMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBwYWRkaW5nOiAwLjQzNzVlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMXB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAxcHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTI0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMnB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyM2VtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNTMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMjgxMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYm90dG9tOiAxLjI1ZW07XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgbWFyZ2luLXRvcDogMC41NDE2NjY2NjY3ZW07XG4gIHRvcDogY2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pO1xufVxuXG5AbWVkaWEgcHJpbnQge1xuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjJlbSkgc2NhbGUoMC43NSk7XG4gIH1cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjFlbSkgc2NhbGUoMC43NSk7XG4gIH1cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyZW0pIHNjYWxlKDAuNzUpO1xuICB9XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuMjVlbSAwIDAuNzVlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMDkzNzVlbTtcbiAgbWFyZ2luLXRvcDogLTAuNWVtO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzMzMzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDFlbSAwIDFlbSAwO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuODQzNzVlbTtcbiAgbWFyZ2luLXRvcDogLTAuMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41OTM3NWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41OTM3NGVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNDMzMzMzJTtcbn1cblxuLm1hdC1ncmlkLXRpbGUtaGVhZGVyLFxuLm1hdC1ncmlkLXRpbGUtZm9vdGVyIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLm1hdC1ncmlkLXRpbGUtaGVhZGVyIC5tYXQtbGluZSxcbi5tYXQtZ3JpZC10aWxlLWZvb3RlciAubWF0LWxpbmUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubWF0LWdyaWQtdGlsZS1oZWFkZXIgLm1hdC1saW5lOm50aC1jaGlsZChuKzIpLFxuLm1hdC1ncmlkLXRpbGUtZm9vdGVyIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiAtMC4wNjI1ZW07XG59XG5cbi5tYXQtbWVudS1pdGVtIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtcGFnaW5hdG9yLFxuLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm1hdC1yYWRpby1idXR0b24ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtc2VsZWN0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgaGVpZ2h0OiAxLjEyNWVtO1xufVxuXG4ubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtc3RlcHBlci12ZXJ0aWNhbCwgLm1hdC1zdGVwcGVyLWhvcml6b250YWwge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtc3RlcC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvciB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5tYXQtc3RlcC1sYWJlbC1lcnJvciB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LXRhYi1ncm91cCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC10b29sYmFyLFxuLm1hdC10b29sYmFyIGgxLFxuLm1hdC10b29sYmFyIGgyLFxuLm1hdC10b29sYmFyIGgzLFxuLm1hdC10b29sYmFyIGg0LFxuLm1hdC10b29sYmFyIGg1LFxuLm1hdC10b29sYmFyIGg2IHtcbiAgZm9udDogNTAwIDIwcHgvMzJweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwO1xufVxuXG4ubWF0LXRvb2x0aXAge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgcGFkZGluZy1ib3R0b206IDZweDtcbn1cblxuLm1hdC10b29sdGlwLWhhbmRzZXQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG5cbi5tYXQtbGlzdC1pdGVtIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWxpc3Qtb3B0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBmb250LXNpemU6IDE2cHg7XG59XG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1zdWJoZWFkZXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMikge1xuICBmb250LXNpemU6IDEycHg7XG59XG4ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LW9wdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LXN1YmhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LW9wdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4ubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgZm9udDogNTAwIDE0cHgvMjRweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1zaW1wbGUtc25hY2tiYXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtdHJlZSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC10cmVlLW5vZGUsXG4ubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5tYXQtcmlwcGxlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4ubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5LCB0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmNkay12aXN1YWxseS1oaWRkZW4ge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgb3V0bGluZTogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5jZGstb3ZlcmxheS1jb250YWluZXIsIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEwMDA7XG59XG4uY2RrLW92ZXJsYXktY29udGFpbmVyOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG4uY2RrLW92ZXJsYXktcGFuZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLmNkay1vdmVybGF5LWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO1xuICBvcGFjaXR5OiAwO1xufVxuLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICBvcGFjaXR5OiAxO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxufVxuXG4uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zMik7XG59XG5cbi5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCwgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICBvcGFjaXR5OiAwO1xufVxuXG4uY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAxcHg7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbn1cblxuLmNkay1nbG9iYWwtc2Nyb2xsYmxvY2sge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbkBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQge1xuICAvKiEqL1xufVxuQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQge1xuICAvKiEqL1xufVxuLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0O1xufVxuXG4uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xuICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kO1xufVxuXG50ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICByZXNpemU6IG5vbmU7XG59XG5cbnRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmcge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveCAhaW1wb3J0YW50O1xufVxuXG4ubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4ubWF0LW9wdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1vcHRpb246aG92ZXI6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSwgLm1hdC1vcHRpb246Zm9jdXM6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4ubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5tYXQtb3B0aW9uLm1hdC1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtb3B0aW9uLm1hdC1vcHRpb24tZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC1wcmltYXJ5IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM2NGI1ZjY7XG59XG5cbi5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6IHllbGxvdztcbn1cblxuLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG5cbi5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG5cbi5tYXQtcHNldWRvLWNoZWNrYm94IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4ubWF0LXBzZXVkby1jaGVja2JveDo6YWZ0ZXIge1xuICBjb2xvcjogI2ZhZmFmYTtcbn1cblxuLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBjb2xvcjogI2IwYjBiMDtcbn1cblxuLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUsXG4ubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6IHllbGxvdztcbn1cblxuLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4ubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM2NGI1ZjY7XG59XG5cbi5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xufVxuXG4ubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQsXG4ubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjYjBiMGIwO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejEge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXozIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDVweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejYge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXo3IHtcbiAgYm94LXNoYWRvdzogMHB4IDRweCA1cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA3cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDJweCAxNnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16OCB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejkge1xuICBib3gtc2hhZG93OiAwcHggNXB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDlweCAxMnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoxMCB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTBweCAxNHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDE4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoxMSB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoxMiB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoxMyB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTNweCAxOXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoxNCB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoxNSB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggOXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTVweCAyMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDI4cHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoxNiB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MTcge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejE4IHtcbiAgYm94LXNoYWRvdzogMHB4IDlweCAxMXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMThweCAyOHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggN3B4IDM0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoxOSB7XG4gIGJveC1zaGFkb3c6IDBweCA5cHggMTJweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE5cHggMjlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDdweCAzNnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MjAge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoyMSB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMXB4IDMzcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDBweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejIyIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTRweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIycHggMzVweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MnB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MjMge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoyNCB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1hcHAtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuXG4ubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcik6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuXG4ubWF0LWJhZGdlLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZDogIzY0YjVmNjtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIG91dGxpbmU6IHNvbGlkIDFweDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG5cbi5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6IHllbGxvdztcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtYmFkZ2Utd2FybiAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG59XG5cbi5tYXQtYmFkZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5tYXQtYmFkZ2UtaGlkZGVuIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tYXQtYmFkZ2UtZGlzYWJsZWQgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogI2I5YjliOTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG5cbi5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLm5nLWFuaW1hdGUtZGlzYWJsZWQgLm1hdC1iYWRnZS1jb250ZW50LFxuLm1hdC1iYWRnZS1jb250ZW50Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuLm1hdC1iYWRnZS1jb250ZW50Lm1hdC1iYWRnZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IG5vbmU7XG59XG5cbi5tYXQtYmFkZ2Utc21hbGwgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG59XG4ubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC04cHg7XG59XG4ubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC04cHg7XG59XG4ubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTE2cHg7XG59XG5bZGlyPXJ0bF0gLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMTZweDtcbn1cbi5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTE2cHg7XG59XG4ubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLThweDtcbn1cbltkaXI9cnRsXSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC04cHg7XG59XG4ubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLThweDtcbn1cbltkaXI9cnRsXSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLThweDtcbn1cblxuLm1hdC1iYWRnZS1tZWRpdW0gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgd2lkdGg6IDIycHg7XG4gIGhlaWdodDogMjJweDtcbiAgbGluZS1oZWlnaHQ6IDIycHg7XG59XG4ubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYWJvdmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgdG9wOiAtMTFweDtcbn1cbi5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xMXB4O1xufVxuLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMjJweDtcbn1cbltkaXI9cnRsXSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMjJweDtcbn1cbi5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMjJweDtcbn1cbi5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTExcHg7XG59XG5bZGlyPXJ0bF0gLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTExcHg7XG59XG4ubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0xMXB4O1xufVxuW2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTExcHg7XG59XG5cbi5tYXQtYmFkZ2UtbGFyZ2UgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG59XG4ubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xNHB4O1xufVxuLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTRweDtcbn1cbi5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMjhweDtcbn1cbltkaXI9cnRsXSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yOHB4O1xufVxuLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMjhweDtcbn1cbi5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTRweDtcbn1cbltkaXI9cnRsXSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNHB4O1xufVxuLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTRweDtcbn1cblxuLm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24ge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLm1hdC1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeSwgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1idXR0b24ubWF0LWFjY2VudCwgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50LCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnQge1xuICBjb2xvcjogeWVsbG93O1xufVxuLm1hdC1idXR0b24ubWF0LXdhcm4sIC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm4sIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLm1hdC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5tYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLm1hdC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLm1hdC1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4ubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5tYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAubWF0LXN0cm9rZWQtYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ubWF0LWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50LCAubWF0LWljb24tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5tYXQtc3Ryb2tlZC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIG9wYWNpdHk6IDAuMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuXG4ubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZDogYmxhY2s7XG59XG5cbi5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWZsYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LCAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LCAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCwgLm1hdC1mYWIubWF0LWFjY2VudCwgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4sIC5tYXQtZmFiLm1hdC13YXJuLCAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLm1hdC1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5tYXQtZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLm1hdC1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5tYXQtZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLm1hdC1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSwgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5tYXQtbWluaS1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSwgLm1hdC1mYWIubWF0LXByaW1hcnksIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LCAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCwgLm1hdC1mYWIubWF0LWFjY2VudCwgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAubWF0LWZhYi5tYXQtd2FybiwgLm1hdC1taW5pLWZhYi5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5tYXQtZmxhdC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAubWF0LWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLm1hdC1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAubWF0LWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4ubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLm1hdC1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5tYXQtZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5tYXQtbWluaS1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cblxuLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLm1hdC1mbGF0LWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tYXQtcmFpc2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1hdC1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5tYXQtbWluaS1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWF0LWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAubWF0LW1pbmktZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1hdC1mYWJbZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAubWF0LW1pbmktZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUsXG4ubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4ubWF0LWJ1dHRvbi10b2dnbGUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5tYXQtYnV0dG9uLXRvZ2dsZSAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cblxuLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG5bZGlyPXJ0bF0gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1idXR0b24tdG9nZ2xlLXZlcnRpY2FsIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuXG4ubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbn1cbi5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4ubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiZGJkYmQ7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4ubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJvcmRlcjogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtY2FyZCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtY2FyZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWF0LWNhcmQubWF0LWNhcmQtZmxhdDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtY2hlY2tib3gtY2hlY2ttYXJrIHtcbiAgZmlsbDogI2ZhZmFmYTtcbn1cblxuLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZTogI2ZhZmFmYSAhaW1wb3J0YW50O1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHtcbiAgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gICAgc3Ryb2tlOiAjMDAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xufVxuXG4ubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLCAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC13YXJuIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC13YXJuIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG5cbi5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLCAubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiMGIwYjA7XG59XG4ubWF0LWNoZWNrYm94LWRpc2FibGVkOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6ICNiMGIwYjA7XG59XG4ubWF0LWNoZWNrYm94LWRpc2FibGVkIC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cbn1cblxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuLm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG5cbi5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogIzY0YjVmNjtcbn1cbi5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LFxuLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6IHllbGxvdztcbn1cbi5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogI2Y0NDMzNjtcbn1cblxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCk6YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSAubWF0LWNoaXAtcmVtb3ZlOmhvdmVyIHtcbiAgb3BhY2l0eTogMC41NDtcbn1cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbn1cblxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0YjVmNjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LWNoaXAtcmVtb3ZlIHtcbiAgY29sb3I6IHdoaXRlO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgb3BhY2l0eTogMC40O1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLm1hdC10YWJsZSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4ubWF0LXRhYmxlIHRoZWFkLCAubWF0LXRhYmxlIHRib2R5LCAubWF0LXRhYmxlIHRmb290LFxubWF0LWhlYWRlci1yb3csIG1hdC1yb3csIG1hdC1mb290ZXItcm93LFxuW21hdC1oZWFkZXItcm93XSwgW21hdC1yb3ddLCBbbWF0LWZvb3Rlci1yb3ddLFxuLm1hdC10YWJsZS1zdGlja3kge1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxuXG5tYXQtcm93LCBtYXQtaGVhZGVyLXJvdywgbWF0LWZvb3Rlci1yb3csXG50aC5tYXQtaGVhZGVyLWNlbGwsIHRkLm1hdC1jZWxsLCB0ZC5tYXQtZm9vdGVyLWNlbGwge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWhlYWRlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtY2VsbCwgLm1hdC1mb290ZXItY2VsbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuXG4ubWF0LWNhbGVuZGFyLWFycm93IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1kYXRlcGlja2VyLXRvZ2dsZSxcbi5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4ubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlci1kaXZpZGVyOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmUgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE4KTtcbn1cblxuLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0YjVmNjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAwLCAxODEsIDI0NiwgMC40KTtcbn1cblxuLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtZGF0ZXBpY2tlci1jb250ZW50IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMCwgMC40KTtcbn1cbi5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xuICBjb2xvcjogd2hpdGU7XG59XG4ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NCwgNjcsIDU0LCAwLjQpO1xufVxuLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHdoaXRlO1xufVxuXG4ubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUge1xuICBjb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC1hY2NlbnQge1xuICBjb2xvcjogeWVsbG93O1xufVxuLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLm1hdC1kaWFsb2ctY29udGFpbmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtZGl2aWRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZGl2aWRlci12ZXJ0aWNhbCB7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1leHBhbnNpb24tcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtYWN0aW9uLXJvdyB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKS5jZGsta2V5Ym9hcmQtZm9jdXNlZCwgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLmNkay1wcm9ncmFtLWZvY3VzZWQsIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5cbkBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgfVxufVxuLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbixcbi5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbi5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4ubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuXG4ubWF0LWhpbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuXG4ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQge1xuICBjb2xvcjogeWVsbG93O1xufVxuLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuXG4ubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuXG4ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuXG4ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuXG4ubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50LFxuLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4ubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuXG4ubWF0LWVycm9yIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWhpbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNDIpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNDIpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjQyKSAwJSwgcmdiYSgwLCAwLCAwLCAwLjQyKSAzMyUsIHRyYW5zcGFyZW50IDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0cHggMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDIpO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWludmFsaWQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA2KTtcbn1cblxuLm1hdC1pY29uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LWljb24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LWljb24ubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LWlucHV0LWVsZW1lbnQ6ZGlzYWJsZWQsXG4ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG5cbi5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4ubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5tYXQtaW5wdXQtZWxlbWVudDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cblxuLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6IHllbGxvdztcbn1cblxuLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbi5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjZjQ0MzM2O1xufVxuXG4ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtc3ViaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtbGlzdC1pdGVtLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbn1cblxuLm1hdC1saXN0LW9wdGlvbjpob3ZlciwgLm1hdC1saXN0LW9wdGlvbjpmb2N1cyxcbi5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06aG92ZXIsXG4ubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzLFxuLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi5tYXQtYWN0aW9uLWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuXG4ubWF0LW1lbnUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5tYXQtbWVudS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LW1lbnUtaXRlbSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtbWVudS1pdGVtW2Rpc2FibGVkXSwgLm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRdOjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LW1lbnUtaXRlbSAubWF0LWljb24tbm8tY29sb3IsXG4ubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXI6OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtbWVudS1pdGVtOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbi5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLm1hdC1tZW51LWl0ZW0taGlnaGxpZ2h0ZWQ6bm90KFtkaXNhYmxlZF0pIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cblxuLm1hdC1wYWdpbmF0b3Ige1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cblxuLm1hdC1wYWdpbmF0b3IsXG4ubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4ubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQge1xuICBib3JkZXItdG9wOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4ubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbi5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCxcbi5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICNiYmRlZmI7XG59XG5cbi5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiYmRlZmI7XG59XG5cbi5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0YjVmNjtcbn1cblxuLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgZmlsbDogI2ZmZmY4ZDtcbn1cbi5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmY4ZDtcbn1cbi5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG5cbi5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjZmZjZGQyO1xufVxuLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmY2RkMjtcbn1cbi5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cblxuLm1hdC1wcm9ncmVzcy1zcGlubmVyIGNpcmNsZSwgLm1hdC1zcGlubmVyIGNpcmNsZSB7XG4gIHN0cm9rZTogIzY0YjVmNjtcbn1cbi5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSwgLm1hdC1zcGlubmVyLm1hdC1hY2NlbnQgY2lyY2xlIHtcbiAgc3Ryb2tlOiB5ZWxsb3c7XG59XG4ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXdhcm4gY2lyY2xlLCAubWF0LXNwaW5uZXIubWF0LXdhcm4gY2lyY2xlIHtcbiAgc3Ryb2tlOiAjZjQ0MzM2O1xufVxuXG4ubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICBib3JkZXItY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeTphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4ubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICBib3JkZXItY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybjphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUsXG4ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4ubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG5cbi5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG5cbi5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG5cbi5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtc2VsZWN0LXBhbmVsIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4ubWF0LXNlbGVjdC1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1hdC1zZWxlY3QtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXByaW1hcnkgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtd2FybiAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtaW52YWxpZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtZHJhd2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1kcmF3ZXIubWF0LWRyYXdlci1wdXNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4ubWF0LWRyYXdlcjpub3QoLm1hdC1kcmF3ZXItc2lkZSkge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1kcmF3ZXItc2lkZSB7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5kIHtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG5cbltkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG5bZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3duIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuXG4ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDAsIDAuNTQpO1xufVxuLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAwLCAxODEsIDI0NiwgMC41NCk7XG59XG4ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtc2xpZGUtdG9nZ2xlLm1hdC13YXJuLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtc2xpZGUtdG9nZ2xlLm1hdC13YXJuLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ0LCA2NywgNTQsIDAuNTQpO1xufVxuLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LXNsaWRlLXRvZ2dsZTpub3QoLm1hdC1jaGVja2VkKSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG5cbi5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbn1cblxuLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG5cbi5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLFxuLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4ubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYixcbi5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuXG4ubWF0LXdhcm4gLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYixcbi5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLm1hdC1zbGlkZXItZm9jdXMtcmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDAsIDAuMik7XG59XG5cbi5tYXQtc2xpZGVyOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG5cbi5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4ubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLm1hdC1zbGlkZXItZGlzYWJsZWQ6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG5cbi5tYXQtc2xpZGVyLW1pbi12YWx1ZSAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWIsXG4ubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWIsXG4ubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3ZlciAubWF0LXNsaWRlci10aHVtYiwgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyk6aG92ZXIubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiwgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuXG4ubWF0LXNsaWRlci1oYXMtdGlja3MgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTtcbn1cblxuLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC43KSwgcmdiYSgwLCAwLCAwLCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cblxuLm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGlja3Mge1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjcpLCByZ2JhKDAsIDAsIDAsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG59XG5cbi5tYXQtc3RlcC1oZWFkZXIuY2RrLWtleWJvYXJkLWZvY3VzZWQsIC5tYXQtc3RlcC1oZWFkZXIuY2RrLXByb2dyYW0tZm9jdXNlZCwgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5tYXQtc3RlcC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbn1cbi5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLFxuLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtb3B0aW9uYWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4ubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsXG4ubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1hY3RpdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG5cbi5tYXQtc3RlcHBlci1ob3Jpem9udGFsLCAubWF0LXN0ZXBwZXItdmVydGljYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cblxuLm1hdC1zdGVwcGVyLXZlcnRpY2FsLWxpbmU6OmJlZm9yZSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmJlZm9yZSxcbi5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsXG4ubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5lIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1zb3J0LWhlYWRlci1hcnJvdyB7XG4gIGNvbG9yOiAjNzU3NTc1O1xufVxuXG4ubWF0LXRhYi1uYXYtYmFyLFxuLm1hdC10YWItaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1uYXYtYmFyLFxuLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4ubWF0LXRhYi1sYWJlbCwgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG5cbi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG5cbi5tYXQtdGFiLWdyb3VwW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIC5tYXQtdGFiLWhlYWRlcixcbi5tYXQtdGFiLW5hdi1iYXJbY2xhc3MqPW1hdC1iYWNrZ3JvdW5kLV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItdG9wOiBub25lO1xufVxuXG4ubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTg3LCAyMjIsIDI1MSwgMC4zKTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LWluay1iYXIsIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMTQxLCAwLjMpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LWluay1iYXIsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LWluay1iYXIsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIwNSwgMjEwLCAwLjMpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLCAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciwgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxODcsIDIyMiwgMjUxLCAwLjMpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGlua3MsIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rcywgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluaywgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDE0MSwgMC4zKTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rcywgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmtzLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbCwgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmssIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMDUsIDIxMCwgMC4zKTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmtzLCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmssIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogd2hpdGU7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuXG4ubWF0LXRvb2xiYXIge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZXNtb2tlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtdG9vbGJhci5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICM2NGI1ZjY7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC10b29sYmFyLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kOiB5ZWxsb3c7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC10b29sYmFyLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZDogI2Y0NDMzNjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUsXG4ubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5tYXQtdG9vbGJhciAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5tYXQtdG9vbGJhciAubWF0LXNlbGVjdC12YWx1ZSxcbi5tYXQtdG9vbGJhciAubWF0LXNlbGVjdC1hcnJvdyxcbi5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5tYXQtdG9vbGJhciAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuXG4ubWF0LXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDk3LCA5NywgOTcsIDAuOSk7XG59XG5cbi5tYXQtdHJlZSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4ubWF0LXRyZWUtbm9kZSxcbi5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuXG4ubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICBiYWNrZ3JvdW5kOiAjMzIzMjMyO1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG5cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1vcHRpb24ge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtb3B0aW9uOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1vcHRpb246Zm9jdXM6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW9wdGlvbi5tYXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW9wdGlvbi5tYXQtb3B0aW9uLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcmltYXJ5IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtd2FybiAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveDo6YWZ0ZXIge1xuICBjb2xvcjogIzMwMzAzMDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBjb2xvcjogIzY4Njg2ODtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZDogIzY4Njg2ODtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejAge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejIge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MyB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggM3B4IDRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXo0IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXo1IHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA1cHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXo2IHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16NyB7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejgge1xuICBib3gtc2hhZG93OiAwcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXo5IHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA2cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA5cHggMTJweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MTAge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MTEge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDdweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDExcHggMTVweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAyMHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MTIge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MTMge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MTQge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDlweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE0cHggMjFweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MTUge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDlweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE1cHggMjJweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAyOHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MTYge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejE3IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTdweCAyNnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxOCB7XG4gIGJveC1zaGFkb3c6IDBweCA5cHggMTFweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE4cHggMjhweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDdweCAzNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MTkge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDEycHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejIwIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIwcHggMzFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCAzOHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MjEge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjFweCAzM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDQwcHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyMiB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDE0cHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejIzIHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTRweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIzcHggMzZweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MjQge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYXBwLWJhY2tncm91bmQsIC51bmljb3JuLWRhcmstdGhlbWUubWF0LWFwcC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMwMzAzMDtcbiAgY29sb3I6IHdoaXRlO1xufVxuLm1hdC10aGVtZS1sb2FkZWQtbWFya2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcikge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQ6ICM2MDdkOGI7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIG91dGxpbmU6IHNvbGlkIDFweDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICNmZmQ3NDA7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLXdhcm4gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWhpZGRlbiAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICM2ZTZlNmU7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm5nLWFuaW1hdGUtZGlzYWJsZWQgLm1hdC1iYWRnZS1jb250ZW50LFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQuX21hdC1hbmltYXRpb24tbm9vcGFibGUge1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1zbWFsbCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWJvdmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgdG9wOiAtOHB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC04cHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTE2cHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTZweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC04cHg7XG59XG5bZGlyPXJ0bF0gLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC04cHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC04cHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYWJvdmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgdG9wOiAtMTFweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWJlbG93IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJvdHRvbTogLTExcHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMjJweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMjJweDtcbn1cbltkaXI9cnRsXSAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTIycHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTExcHg7XG59XG5bZGlyPXJ0bF0gLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMTFweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTExcHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTE0cHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlbG93IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJvdHRvbTogLTE0cHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMjhweDtcbn1cbltkaXI9cnRsXSAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTI4cHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMjhweDtcbn1cbltkaXI9cnRsXSAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMjhweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMTRweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNHB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnQge1xuICBjb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24ubWF0LXdhcm4sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC13YXJuIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBvcGFjaXR5OiAwLjE7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYiB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0Mjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXdhcm4ge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b246bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWI6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZSAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIFtkaXI9cnRsXSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjEyMTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJvcmRlcjogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FyZCB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYXJkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYXJkLm1hdC1jYXJkLWZsYXQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FyZC1zdWJ0aXRsZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja21hcmsge1xuICBmaWxsOiAjMzAzMDMwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgc3Ryb2tlOiAjMzAzMDMwICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBibGFjay1vbi13aGl0ZSkge1xuICAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICAgIHN0cm9rZTogIzAwMCAhaW1wb3J0YW50O1xuICB9XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMwMzAzMDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wcmltYXJ5IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC13YXJuIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY4Njg2ODtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZDpub3QoLm1hdC1jaGVja2JveC1jaGVja2VkKSAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgYm9yZGVyLWNvbG9yOiAjNjg2ODY4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkIC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjE2MTYxO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtcmVtb3ZlIHtcbiAgY29sb3I6IHdoaXRlO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKTphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCkgLm1hdC1jaGlwLXJlbW92ZTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNTQ7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LWNoaXAtcmVtb3ZlIHtcbiAgY29sb3I6IHdoaXRlO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LWNoaXAtcmVtb3ZlIHtcbiAgY29sb3I6IHdoaXRlO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ3NDA7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LWNoaXAtcmVtb3ZlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWJsZSB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFibGUgdGhlYWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWJsZSB0Ym9keSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYmxlIHRmb290LFxuLnVuaWNvcm4tZGFyay10aGVtZSBtYXQtaGVhZGVyLXJvdywgLnVuaWNvcm4tZGFyay10aGVtZSBtYXQtcm93LCAudW5pY29ybi1kYXJrLXRoZW1lIG1hdC1mb290ZXItcm93LFxuLnVuaWNvcm4tZGFyay10aGVtZSBbbWF0LWhlYWRlci1yb3ddLCAudW5pY29ybi1kYXJrLXRoZW1lIFttYXQtcm93XSwgLnVuaWNvcm4tZGFyay10aGVtZSBbbWF0LWZvb3Rlci1yb3ddLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYmxlLXN0aWNreSB7XG4gIGJhY2tncm91bmQ6IGluaGVyaXQ7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIG1hdC1yb3csIC51bmljb3JuLWRhcmstdGhlbWUgbWF0LWhlYWRlci1yb3csIC51bmljb3JuLWRhcmstdGhlbWUgbWF0LWZvb3Rlci1yb3csXG4udW5pY29ybi1kYXJrLXRoZW1lIHRoLm1hdC1oZWFkZXItY2VsbCwgLnVuaWNvcm4tZGFyay10aGVtZSB0ZC5tYXQtY2VsbCwgLnVuaWNvcm4tZGFyay10aGVtZSB0ZC5tYXQtZm9vdGVyLWNlbGwge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWhlYWRlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jZWxsLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9vdGVyLWNlbGwge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1uZXh0LWJ1dHRvbixcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1wcmV2aW91cy1idXR0b24ge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50IHtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmUgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTYsIDEyNSwgMTM5LCAwLjQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNzQwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjE1LCA2NCwgMC40KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTcyMjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgODcsIDM0LCAwLjQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50LXRvdWNoIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtYWNjZW50IHtcbiAgY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC13YXJuIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRpdmlkZXIge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRpdmlkZXItdmVydGljYWwge1xuICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYWN0aW9uLXJvdyB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKS5jZGsta2V5Ym9hcmQtZm9jdXNlZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkuY2RrLXByb2dyYW0tZm9jdXNlZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xufVxuQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKTpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgfVxufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbixcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1oaW50IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQge1xuICBjb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKSAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZXJyb3Ige1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWhpbnQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZC5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWludmFsaWQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi5tYXQtYWNjZW50IHtcbiAgY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50OmRpc2FibGVkLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50IG9wdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQgb3B0aW9uOmRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXdhcm4gLm1hdC1pbnB1dC1lbGVtZW50LFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbGlzdC1pdGVtLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbGlzdC1vcHRpb246aG92ZXIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1saXN0LW9wdGlvbjpmb2N1cyxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbTpmb2N1cyxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWVudS1wYW5lbCB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWVudS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1lbnUtaXRlbSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWVudS1pdGVtW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF06OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXI6OmFmdGVyIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1lbnUtaXRlbTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1lbnUtaXRlbS5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVkOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcGFnaW5hdG9yIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wYWdpbmF0b3IsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQge1xuICBib3JkZXItdG9wOiAycHggc29saWQgd2hpdGU7XG4gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjY2ZkOGRjO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2ZkOGRjO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICNmZmU1N2Y7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZTU3Zjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjZmZjY2JjO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjY2JjO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGUsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zcGlubmVyIGNpcmNsZSB7XG4gIHN0cm9rZTogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1hY2NlbnQgY2lyY2xlLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSB7XG4gIHN0cm9rZTogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNwaW5uZXIubWF0LXdhcm4gY2lyY2xlIHtcbiAgc3Ryb2tlOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnk6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4ubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICBib3JkZXItY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2VsZWN0LXBhbmVsIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zZWxlY3QtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zZWxlY3QtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXByaW1hcnkgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWludmFsaWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRyYXdlci1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDMwO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZHJhd2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRyYXdlci5tYXQtZHJhd2VyLXB1c2gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRyYXdlcjpub3QoLm1hdC1kcmF3ZXItc2lkZSkge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kcmF3ZXItc2lkZSB7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgW2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGUge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgW2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kcmF3ZXItYmFja2Ryb3AubWF0LWRyYXdlci1zaG93biB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTg5LCAxODksIDE4OSwgMC42KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjE1LCA2NCwgMC41NCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoOTYsIDEyNSwgMTM5LCAwLjU0KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC13YXJuLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDg3LCAzNCwgMC41NCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC13YXJuLm1hdC1jaGVja2VkIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZTpub3QoLm1hdC1jaGVja2VkKSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JkYmRiZDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWIsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItZm9jdXMtcmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMTUsIDY0LCAwLjIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlcjpob3ZlciAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLFxuLnVuaWNvcm4tZGFyay10aGVtZSAuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZSAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYixcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyIC5tYXQtc2xpZGVyLXRodW1iLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3Zlci5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykuY2RrLWZvY3VzZWQubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1oYXMtdGlja3MgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGlja3Mge1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIuY2RrLWtleWJvYXJkLWZvY3VzZWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xufVxuQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLW9wdGlvbmFsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXNlbGVjdGVkLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtYWN0aXZlIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1lcnJvciB7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YmVmb3JlLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmFmdGVyLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5lIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zb3J0LWhlYWRlci1hcnJvdyB7XG4gIGNvbG9yOiAjYzZjNmM2O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtdGFiLW5hdi1iYXIsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbGFiZWwsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cFtjbGFzcyo9bWF0LWJhY2tncm91bmQtXSAubWF0LXRhYi1oZWFkZXIsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXJbY2xhc3MqPW1hdC1iYWNrZ3JvdW5kLV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDcsIDIxNiwgMjIwLCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LWluay1iYXIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIyOSwgMTI3LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1pbmstYmFyLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMDQsIDE4OCwgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2FybiAubWF0LWluay1iYXIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjA3LCAyMTYsIDIyMCwgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rcywgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmtzLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIyOSwgMTI3LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rcywgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmtzLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIwNCwgMTg4LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmtzLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmssIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2xiYXIge1xuICBiYWNrZ3JvdW5kOiAjMjEyMTIxO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdG9vbGJhci5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICM2MDdkOGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10b29sYmFyLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kOiAjZmZkNzQwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10b29sYmFyLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZDogI2ZmNTcyMjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LXNlbGVjdC12YWx1ZSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDk3LCA5NywgOTcsIDAuOSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdHJlZSB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdHJlZS1ub2RlLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc25hY2stYmFyLWNvbnRhaW5lciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4vKlxuICBodHRwczogLy9zdGFja2JsaXR6LmNvbS9lZGl0L2FuZ3VsYXItbWF0ZXJpYWwtdGhlbWUtc2VjcmV0cz9lbWJlZD0xJmZpbGU9c3JjJTJGdGhlbWUuc2NzcyZzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGh0dHBzOi8vbWF0ZXJpYWwuYW5ndWxhci5pby9ndWlkZS90eXBvZ3JhcGh5XG4gIGh0dHBzOi8vbWF0ZXJpYWwtdWkuY29tL2N1c3RvbWl6YXRpb24vY29sb3IvXG4qL1xuLmRlZmF1bHRNYXQge1xuICAvKi5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyLCB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICB9Ki9cbiAgLypodHRwczogLy9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDY4MTIwNjQvaG93LXRvLXNldC10aGUtY29sb3Itb2YtYW4taWNvbi1pbi1hbmd1bGFyLW1hdGVyaWFsXG4gIGh0dHBzOiAvL2Nzcy10cmlja3MuY29tL3NvbHZlZC13aXRoLWNzcy1jb2xvcml6aW5nLXN2Zy1iYWNrZ3JvdW5kcy8qL1xuICAvKiBOb3RlOiBJZiB5b3UncmUgdXNpbmcgYW4gU1ZHIGljb24sIHlvdSBzaG91bGQgbWFrZSB0aGUgY2xhc3MgdGFyZ2V0IHRoZSBgPHN2Zz5gIGVsZW1lbnQgKi9cbiAgLyoud2hpdGUtaWNvbiBzdmcge1xuICAgIGZpbGw6IHdoaXRlO1xuICAgIGZpbHRlcjpicmlnaHRuZXNzKDEwMCk7XG4gIH0qL1xuICAvKi5tYXQtbWVudS1pdGVtIHtcbiAgICBoZWlnaHQ6MjBweDtcbiAgfVxuICBidXR0b24ubWF0LW1lbnUtaXRlbSB7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgfSovXG59XG4uZGVmYXVsdE1hdCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1vcHRpb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtb3B0aW9uOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtb3B0aW9uOmZvY3VzOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSk6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LW9wdGlvbi5tYXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LW9wdGlvbi5tYXQtb3B0aW9uLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByaW1hcnkgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtd2FybiAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVyIHtcbiAgY29sb3I6ICNmYWZhZmE7XG59XG4uZGVmYXVsdE1hdCAubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCB7XG4gIGNvbG9yOiAjYjBiMGIwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5kZWZhdWx0TWF0IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUsXG4uZGVmYXVsdE1hdCAubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuLmRlZmF1bHRNYXQgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuLmRlZmF1bHRNYXQgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uZGVmYXVsdE1hdCAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQsXG4uZGVmYXVsdE1hdCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjYjBiMGIwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejAge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MyB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggM3B4IDRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16NCB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDVweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXo2IHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejcge1xuICBib3gtc2hhZG93OiAwcHggNHB4IDVweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDdweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMnB4IDE2cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16OCB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXo5IHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA2cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA5cHggMTJweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejEwIHtcbiAgYm94LXNoYWRvdzogMHB4IDZweCA2cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMHB4IDE0cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA0cHggMThweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoxMSB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MTIge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejEzIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxM3B4IDE5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjRweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoxNCB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MTUge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDlweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE1cHggMjJweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAyOHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejE2IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MTcge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoxOCB7XG4gIGJveC1zaGFkb3c6IDBweCA5cHggMTFweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE4cHggMjhweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDdweCAzNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejE5IHtcbiAgYm94LXNoYWRvdzogMHB4IDlweCAxMnB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTlweCAyOXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggN3B4IDM2cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MjAge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MjEge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjFweCAzM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDQwcHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MjIge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxNHB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjJweCAzNXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDQycHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MjMge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MjQge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWFwcC1iYWNrZ3JvdW5kLCAuZGVmYXVsdE1hdC5tYXQtYXBwLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtdGhlbWUtbG9hZGVkLW1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kZWZhdWx0TWF0IC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1hdXRvY29tcGxldGUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQ6ICMyMTk2ZjM7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1hY2NlbnQgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogeWVsbG93O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2Utd2FybiAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1oaWRkZW4gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtZGlzYWJsZWQgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogI2I5YjliOTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlLWluLW91dDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjYpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uZGVmYXVsdE1hdCAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWNvbnRlbnQuX21hdC1hbmltYXRpb24tbm9vcGFibGUge1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1jb250ZW50Lm1hdC1iYWRnZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IG5vbmU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWJvdmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgdG9wOiAtOHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtOHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC5kZWZhdWx0TWF0IC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTE2cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTE2cHg7XG59XG5bZGlyPXJ0bF0gLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC04cHg7XG59XG5bZGlyPXJ0bF0gLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtOHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC04cHg7XG59XG5bZGlyPXJ0bF0gLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC04cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLW1lZGl1bSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBsaW5lLWhlaWdodDogMjJweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xMXB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWJlbG93IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJvdHRvbTogLTExcHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0yMnB4O1xufVxuW2Rpcj1ydGxdIC5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yMnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMjJweDtcbn1cbltkaXI9cnRsXSAuZGVmYXVsdE1hdCAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0yMnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuZGVmYXVsdE1hdCAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMTFweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTExcHg7XG59XG5bZGlyPXJ0bF0gLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTFweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbGFyZ2UgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xNHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMjhweDtcbn1cbltkaXI9cnRsXSAuZGVmYXVsdE1hdCAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yOHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMjhweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTRweDtcbn1cbltkaXI9cnRsXSAuZGVmYXVsdE1hdCAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbiwgLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbiwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5LCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5LCAuZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi5tYXQtYWNjZW50LCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnQsIC5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi5tYXQtd2FybiwgLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgb3BhY2l0eTogMC4xO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZDogYmxhY2s7XG59XG4uZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24sIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbiwgLmRlZmF1bHRNYXQgLm1hdC1mYWIsIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksIC5kZWZhdWx0TWF0IC5tYXQtZmFiLm1hdC1wcmltYXJ5LCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LWFjY2VudCwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4sIC5kZWZhdWx0TWF0IC5tYXQtZmFiLm1hdC13YXJuLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LXByaW1hcnksIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LWFjY2VudCwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtd2FybiwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYi5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5kZWZhdWx0TWF0IC5tYXQtZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mYWJbZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLFxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZSAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCBbZGlyPXJ0bF0gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiZGJkYmQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBib3JkZXI6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYXJkIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYXJkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FyZC5tYXQtY2FyZC1mbGF0Om5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1jaGVja21hcmsge1xuICBmaWxsOiAjZmFmYWZhO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZTogI2ZhZmFmYSAhaW1wb3J0YW50O1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHtcbiAgLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gICAgc3Ryb2tlOiAjMDAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLCAuZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLCAuZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLCAuZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiMGIwYjA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWRpc2FibGVkOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6ICNiMGIwYjA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWRpc2FibGVkIC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3ggLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LFxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LFxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCk6YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSAubWF0LWNoaXAtcmVtb3ZlOmhvdmVyIHtcbiAgb3BhY2l0eTogMC41NDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LWNoaXAtcmVtb3ZlIHtcbiAgY29sb3I6IHdoaXRlO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LWNoaXAtcmVtb3ZlIHtcbiAgY29sb3I6IHdoaXRlO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgb3BhY2l0eTogMC40O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFibGUge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFibGUgdGhlYWQsIC5kZWZhdWx0TWF0IC5tYXQtdGFibGUgdGJvZHksIC5kZWZhdWx0TWF0IC5tYXQtdGFibGUgdGZvb3QsXG4uZGVmYXVsdE1hdCBtYXQtaGVhZGVyLXJvdywgLmRlZmF1bHRNYXQgbWF0LXJvdywgLmRlZmF1bHRNYXQgbWF0LWZvb3Rlci1yb3csXG4uZGVmYXVsdE1hdCBbbWF0LWhlYWRlci1yb3ddLCAuZGVmYXVsdE1hdCBbbWF0LXJvd10sIC5kZWZhdWx0TWF0IFttYXQtZm9vdGVyLXJvd10sXG4uZGVmYXVsdE1hdCAubWF0LXRhYmxlLXN0aWNreSB7XG4gIGJhY2tncm91bmQ6IGluaGVyaXQ7XG59XG4uZGVmYXVsdE1hdCBtYXQtcm93LCAuZGVmYXVsdE1hdCBtYXQtaGVhZGVyLXJvdywgLmRlZmF1bHRNYXQgbWF0LWZvb3Rlci1yb3csXG4uZGVmYXVsdE1hdCB0aC5tYXQtaGVhZGVyLWNlbGwsIC5kZWZhdWx0TWF0IHRkLm1hdC1jZWxsLCAuZGVmYXVsdE1hdCB0ZC5tYXQtZm9vdGVyLWNlbGwge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1oZWFkZXItY2VsbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jZWxsLCAuZGVmYXVsdE1hdCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhbGVuZGFyLWFycm93IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsXG4uZGVmYXVsdE1hdCAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLW5leHQtYnV0dG9uLFxuLmRlZmF1bHRNYXQgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1wcmV2aW91cy1idXR0b24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlci1kaXZpZGVyOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQpOmhvdmVyID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSxcbi5kZWZhdWx0TWF0IC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSxcbi5kZWZhdWx0TWF0IC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmUgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzMsIDE1MCwgMjQzLCAwLjQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAwLCAwLjQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ0LCA2NywgNTQsIDAuNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlIHtcbiAgY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtYWNjZW50IHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC13YXJuIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRpYWxvZy1jb250YWluZXIge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGl2aWRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRpdmlkZXItdmVydGljYWwge1xuICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWV4cGFuc2lvbi1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYWN0aW9uLXJvdyB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkuY2RrLWtleWJvYXJkLWZvY3VzZWQsIC5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKS5jZGstcHJvZ3JhbS1mb2N1c2VkLCAuZGVmYXVsdE1hdCAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAuZGVmYXVsdE1hdCAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICB9XG59XG4uZGVmYXVsdE1hdCAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbixcbi5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsXG4uZGVmYXVsdE1hdCAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWhpbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50IHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50LFxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lcnJvciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtaGludCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC40MikgMCUsIHJnYmEoMCwgMCwgMCwgMC40MikgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjQyKSAwJSwgcmdiYSgwLCAwLCAwLCAwLjQyKSAzMyUsIHRyYW5zcGFyZW50IDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0cHggMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtaW52YWxpZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDYpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1pY29uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWljb24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWljb24ubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCxcbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWlucHV0LWVsZW1lbnQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaW5wdXQtZWxlbWVudDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYWNjZW50IC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LXdhcm4gLm1hdC1pbnB1dC1lbGVtZW50LFxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LW9wdGlvbjpob3ZlciwgLmRlZmF1bHRNYXQgLm1hdC1saXN0LW9wdGlvbjpmb2N1cyxcbi5kZWZhdWx0TWF0IC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06aG92ZXIsXG4uZGVmYXVsdE1hdCAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzLFxuLmRlZmF1bHRNYXQgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi5kZWZhdWx0TWF0IC5tYXQtYWN0aW9uLWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1tZW51LXBhbmVsIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LW1lbnUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbWVudS1pdGVtIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF06OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LW1lbnUtaXRlbSAubWF0LWljb24tbm8tY29sb3IsXG4uZGVmYXVsdE1hdCAubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXI6OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LW1lbnUtaXRlbTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4uZGVmYXVsdE1hdCAubWF0LW1lbnUtaXRlbS5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdChbZGlzYWJsZWRdKSxcbi5kZWZhdWx0TWF0IC5tYXQtbWVudS1pdGVtLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdChbZGlzYWJsZWRdKSxcbi5kZWZhdWx0TWF0IC5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVkOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXBhZ2luYXRvciB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wYWdpbmF0b3IsXG4uZGVmYXVsdE1hdCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuLmRlZmF1bHRNYXQgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5kZWZhdWx0TWF0IC5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICBib3JkZXItdG9wOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbi5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCxcbi5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjYmJkZWZiO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiZGVmYjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICNmZmZmOGQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmOGQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICNmZmNkZDI7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjZGQyO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcm9ncmVzcy1zcGlubmVyIGNpcmNsZSwgLmRlZmF1bHRNYXQgLm1hdC1zcGlubmVyIGNpcmNsZSB7XG4gIHN0cm9rZTogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSwgLmRlZmF1bHRNYXQgLm1hdC1zcGlubmVyLm1hdC1hY2NlbnQgY2lyY2xlIHtcbiAgc3Ryb2tlOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXdhcm4gY2lyY2xlLCAuZGVmYXVsdE1hdCAubWF0LXNwaW5uZXIubWF0LXdhcm4gY2lyY2xlIHtcbiAgc3Ryb2tlOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICBib3JkZXItY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAuZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQ6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4gLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSxcbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50LFxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNlbGVjdC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNlbGVjdC1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zZWxlY3QtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2VsZWN0LXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtcHJpbWFyeSAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1pbnZhbGlkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRyYXdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZHJhd2VyLm1hdC1kcmF3ZXItcHVzaCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kcmF3ZXI6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRyYXdlci1zaWRlIHtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi5kZWZhdWx0TWF0IFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4uZGVmYXVsdE1hdCBbZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kcmF3ZXItYmFja2Ryb3AubWF0LWRyYXdlci1zaG93biB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzMywgMTUwLCAyNDMsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NCwgNjcsIDU0LCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC13YXJuLm1hdC1jaGVja2VkIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uZGVmYXVsdE1hdCAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWIsXG4uZGVmYXVsdE1hdCAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWFjY2VudCAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLmRlZmF1bHRNYXQgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWIsXG4uZGVmYXVsdE1hdCAubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtd2FybiAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLmRlZmF1bHRNYXQgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLFxuLmRlZmF1bHRNYXQgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItZm9jdXMtcmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDAsIDAuMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlcjpob3ZlciAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLFxuLmRlZmF1bHRNYXQgLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCxcbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci1kaXNhYmxlZDpob3ZlciAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLW1pbi12YWx1ZSAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWIsXG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWIsXG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3ZlciAubWF0LXNsaWRlci10aHVtYiwgLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyk6aG92ZXIubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiwgLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjcpLCByZ2JhKDAsIDAsIDAsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgwLjAwMDFkZWcsIHJnYmEoMCwgMCwgMCwgMC43KSwgcmdiYSgwLCAwLCAwLCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGlja3Mge1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjcpLCByZ2JhKDAsIDAsIDAsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXN0ZXAtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLCAuZGVmYXVsdE1hdCAubWF0LXN0ZXAtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQsIC5kZWZhdWx0TWF0IC5tYXQtc3RlcC1oZWFkZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAuZGVmYXVsdE1hdCAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG4uZGVmYXVsdE1hdCAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbCxcbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLW9wdGlvbmFsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxcbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSxcbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1hY3RpdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbCwgLmRlZmF1bHRNYXQgLm1hdC1zdGVwcGVyLXZlcnRpY2FsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmJlZm9yZSxcbi5kZWZhdWx0TWF0IC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsXG4uZGVmYXVsdE1hdCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5lIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc29ydC1oZWFkZXItYXJyb3cge1xuICBjb2xvcjogIzc1NzU3NTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIsXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1uYXYtYmFyLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItbGFiZWwsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cFtjbGFzcyo9bWF0LWJhY2tncm91bmQtXSAubWF0LXRhYi1oZWFkZXIsXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxODcsIDIyMiwgMjUxLCAwLjMpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMTQxLCAwLjMpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LWluay1iYXIsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LWluay1iYXIsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIwNSwgMjEwLCAwLjMpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC1pbmstYmFyLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxODcsIDIyMiwgMjUxLCAwLjMpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGlua3MsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXIsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rcywgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluaywgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMTQxLCAwLjMpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlciwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmtzLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlciwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluaywgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIwNSwgMjEwLCAwLjMpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rcywgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluaywgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZXNtb2tlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhci5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICMyMTk2ZjM7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhci5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZDogeWVsbG93O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhci5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lLFxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsXG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtYXJyb3csXG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdG9vbHRpcCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoOTcsIDk3LCA5NywgMC45KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdHJlZSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10cmVlLW5vZGUsXG4uZGVmYXVsdE1hdCAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc25hY2stYmFyLWNvbnRhaW5lciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIGJhY2tncm91bmQ6ICMzMjMyMzI7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGZvbnQtc2l6ZTogOXB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXNpemU6IDI0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWgxLCAuZGVmYXVsdE1hdCAubWF0LWhlYWRsaW5lLCAuZGVmYXVsdE1hdCAubWF0LXR5cG9ncmFwaHkgaDEge1xuICBmb250OiA2MDAgMjRweC8zMnB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaDIsIC5kZWZhdWx0TWF0IC5tYXQtdGl0bGUsIC5kZWZhdWx0TWF0IC5tYXQtdHlwb2dyYXBoeSBoMiB7XG4gIGZvbnQ6IDYwMCAyMHB4LzMycHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxNnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1oMywgLmRlZmF1bHRNYXQgLm1hdC1zdWJoZWFkaW5nLTIsIC5kZWZhdWx0TWF0IC5tYXQtdHlwb2dyYXBoeSBoMyB7XG4gIGZvbnQ6IDYwMCAxNnB4LzIycHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxNnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1oNCwgLmRlZmF1bHRNYXQgLm1hdC1zdWJoZWFkaW5nLTEsIC5kZWZhdWx0TWF0IC5tYXQtdHlwb2dyYXBoeSBoNCB7XG4gIGZvbnQ6IDYwMCAxNXB4LzI0cHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxNnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1oNSwgLmRlZmF1bHRNYXQgLm1hdC10eXBvZ3JhcGh5IGg1IHtcbiAgZm9udDogNjAwIGNhbGMoMTRweCAqIDAuODMpLzMwcHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1oNiwgLmRlZmF1bHRNYXQgLm1hdC10eXBvZ3JhcGh5IGg2IHtcbiAgZm9udDogNjAwIGNhbGMoMTRweCAqIDAuNjcpLzMwcHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1ib2R5LXN0cm9uZywgLmRlZmF1bHRNYXQgLm1hdC1ib2R5LTIge1xuICBmb250OiA2MDAgMTRweC8yNHB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYm9keSwgLmRlZmF1bHRNYXQgLm1hdC1ib2R5LTEsIC5kZWZhdWx0TWF0IC5tYXQtdHlwb2dyYXBoeSB7XG4gIGZvbnQ6IDYwMCAxNHB4LzMwcHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1ib2R5IHAsIC5kZWZhdWx0TWF0IC5tYXQtYm9keS0xIHAsIC5kZWZhdWx0TWF0IC5tYXQtdHlwb2dyYXBoeSBwIHtcbiAgbWFyZ2luOiAwIDAgMTJweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc21hbGwsIC5kZWZhdWx0TWF0IC5tYXQtY2FwdGlvbiB7XG4gIGZvbnQ6IDYwMCAxMnB4LzIwcHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kaXNwbGF5LTQsIC5kZWZhdWx0TWF0IC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktNCB7XG4gIGZvbnQ6IDMwMCAxMTJweC8xMTJweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDU2cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRpc3BsYXktMywgLmRlZmF1bHRNYXQgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0zIHtcbiAgZm9udDogNjAwIDU2cHgvNTZweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDY0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRpc3BsYXktMiwgLmRlZmF1bHRNYXQgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0yIHtcbiAgZm9udDogNDAwIDQ1cHgvNDhweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDY0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRpc3BsYXktMSwgLmRlZmF1bHRNYXQgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0xIHtcbiAgZm9udDogNjAwIDM0cHgvNDBweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDY0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICBmb250OiA2MDAgMTRweC8zMHB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24sIC5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b24sIC5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b24sXG4uZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLCAuZGVmYXVsdE1hdCAubWF0LWZhYiwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYiB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYXJkLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYXJkLWhlYWRlciAubWF0LWNhcmQtdGl0bGUge1xuICBmb250LXNpemU6IDIwcHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQtc3VidGl0bGUsXG4uZGVmYXVsdE1hdCAubWF0LWNhcmQtY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1sYXlvdXQgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uLFxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb24ge1xuICBmb250LXNpemU6IDE4cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYmxlIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaGVhZGVyLWNlbGwge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNlbGwsIC5kZWZhdWx0TWF0IC5tYXQtZm9vdGVyLWNlbGwge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhbGVuZGFyIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXItYm9keSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCxcbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHRoIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kaWFsb2ctdGl0bGUge1xuICBmb250OiA2MDAgMjBweC8zMnB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICBmb250OiA2MDAgMTRweC8zMHB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZCB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1O1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMS4zNDM3NWVtO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24sXG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMTUwJTtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24tYnV0dG9uLFxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9uIHtcbiAgaGVpZ2h0OiAxLjVlbTtcbiAgd2lkdGg6IDEuNWVtO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24tYnV0dG9uIC5tYXQtaWNvbixcbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24ge1xuICBoZWlnaHQ6IDEuMTI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuNWVtIDA7XG4gIGJvcmRlci10b3A6IDAuODQzNzVlbSBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMzQzNzNlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzUzMzMzMyU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4zNDM3MmVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNjMzMzMzJTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAtMC44NDM3NWVtO1xuICBwYWRkaW5nLXRvcDogMC44NDM3NWVtO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAxLjM0Mzc1ZW07XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYm90dG9tOiAxLjM0Mzc1ZW07XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIge1xuICBmb250LXNpemU6IDc1JTtcbiAgbWFyZ2luLXRvcDogMC42NjY2NjY2NjY3ZW07XG4gIHRvcDogY2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDEuMjVlbTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBwYWRkaW5nOiAwLjQzNzVlbSAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTA2cHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTE5ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM5MzMzMzMlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDdweCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMThlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzNDAzMzMzMyU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTA4cHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTE3ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzQxMzMzMzMlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMS4yODEyNWVtO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBib3R0b206IDEuMjVlbTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIge1xuICBtYXJnaW4tdG9wOiAwLjU0MTY2NjY2NjdlbTtcbiAgdG9wOiBjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSk7XG59XG5AbWVkaWEgcHJpbnQge1xuICAuZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMTZlbSkgc2NhbGUoMC43NSk7XG4gIH1cbiAgLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMTVlbSkgc2NhbGUoMC43NSk7XG4gIH1cbiAgLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODExNGVtKSBzY2FsZSgwLjc1KTtcbiAgfVxufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBwYWRkaW5nOiAwLjI1ZW0gMCAwLjc1ZW0gMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAxLjA5Mzc1ZW07XG4gIG1hcmdpbi10b3A6IC0wLjVlbTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC41OTM3M2VtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNTMzMzMzJTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC41OTM3MmVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNjMzMzMzJTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgcGFkZGluZzogMWVtIDAgMWVtIDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMS44NDM3NWVtO1xuICBtYXJnaW4tdG9wOiAtMC4yNWVtO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjU5MzczZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM1MzMzMzMlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjU5MzcyZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM2MzMzMzMlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1ncmlkLXRpbGUtaGVhZGVyLFxuLmRlZmF1bHRNYXQgLm1hdC1ncmlkLXRpbGUtZm9vdGVyIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1ncmlkLXRpbGUtaGVhZGVyIC5tYXQtbGluZSxcbi5kZWZhdWx0TWF0IC5tYXQtZ3JpZC10aWxlLWZvb3RlciAubWF0LWxpbmUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uZGVmYXVsdE1hdCAubWF0LWdyaWQtdGlsZS1oZWFkZXIgLm1hdC1saW5lOm50aC1jaGlsZChuKzIpLFxuLmRlZmF1bHRNYXQgLm1hdC1ncmlkLXRpbGUtZm9vdGVyIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5kZWZhdWx0TWF0IGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgbWFyZ2luLXRvcDogLTAuMDYyNWVtO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1tZW51LWl0ZW0ge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LXBhZ2luYXRvcixcbi5kZWZhdWx0TWF0IC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zZWxlY3Qge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIGhlaWdodDogMS4xMjVlbTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnQge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcHBlci12ZXJ0aWNhbCwgLmRlZmF1bHRNYXQgLm1hdC1zdGVwcGVyLWhvcml6b250YWwge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvciB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4uZGVmYXVsdE1hdCAubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cCB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1sYWJlbCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbGluayB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhcixcbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciBoMSxcbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciBoMixcbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciBoMyxcbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciBoNCxcbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciBoNSxcbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciBoNiB7XG4gIGZvbnQ6IDYwMCAyMHB4LzMycHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRvb2x0aXAge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEwcHg7XG4gIHBhZGRpbmctdG9wOiA2cHg7XG4gIHBhZGRpbmctYm90dG9tOiA2cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRvb2x0aXAtaGFuZHNldCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1pdGVtIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1vcHRpb24ge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0ge1xuICBmb250LXNpemU6IDE2cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMikge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiAubWF0LWxpbmUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlIC5tYXQtc3ViaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMikge1xuICBmb250LXNpemU6IDEycHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LW9wdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LXN1YmhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtb3B0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGZvbnQ6IDYwMCAxNHB4LzI0cHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zaW1wbGUtc25hY2tiYXIge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdHJlZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRyZWUtbm9kZSxcbi5kZWZhdWx0TWF0IC5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5kZWZhdWx0TWF0IG1haW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjBGMEYwO1xufVxuLmRlZmF1bHRNYXQgLm1lbnUge1xuICAvKmJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7Ki9cbiAgY29sb3I6IGJsYWNrO1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmRlZmF1bHRNYXQgYSwgLmRlZmF1bHRNYXQgYTpob3ZlciwgLmRlZmF1bHRNYXQgYTpob3ZlciBzcGFuIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLFxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24sXG4uZGVmYXVsdE1hdCAubWF0LWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSxcbi5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksXG4uZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24uYmFjayB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYxNjE2MTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FyZCB7XG4gIG1hcmdpbjogMTBweCAxMHB4IDAgMTBweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtbGF5b3V0IC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICBsaW5lLWhlaWdodDogNDBweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdCAubWF0LWxpc3QtaXRlbSAubWF0LWxpc3QtdGV4dCBoNC5tYXQtbGluZSB7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QgLm1hdC1saXN0LWl0ZW0gLm1hdC1saXN0LXRleHQgcC5tYXQtbGluZSB7XG4gIGNvbG9yOiAjODJiMWZmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYXJkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZmxleDogMTtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYXJkLm1hdC1jYXJkLWFjY2VudCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYXJkLm1hdC1jYXJkLXdhcm4ge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAud2hpdGUtaWNvbiB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDEwMCk7XG59XG5cbi5ncmVlbi1pY29uIHtcbiAgY29sb3I6IGdyZWVuO1xufVxuXG4uU3RhcnQsIC5QcmltYXJ5SVAge1xuICBjb2xvcjogIzY0YjVmNjtcbn1cblxuLlN0b3AsIC5TZWNvbmRhcnlJUCB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuXG4uU3RhcnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZ3JlZW47XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLlN0b3Age1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuOjpuZy1kZWVwIC5tYWluVlF1YWRDaGsgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG5cbi5JZGxlT3JEaXNjb25uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JleTtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXZhcmlhbnQ6IGFsbC1wZXRpdGUtY2FwcztcbiAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XG59XG5cbi5Db25uZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG4gIGZvbnQtdmFyaWFudDogYWxsLXBldGl0ZS1jYXBzO1xuICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcbn1cblxuLkluY29taW5nT3JBbnN3ZXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVldmlvbGV0O1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtdmFyaWFudDogYWxsLXBldGl0ZS1jYXBzO1xuICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcbn1cblxuLm90aGVyQ2FsbFN0YXRzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlO1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtdmFyaWFudDogYWxsLXBldGl0ZS1jYXBzO1xuICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcbn1cblxuLmZvb3RlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLypzdGFydCBSYWRpbyBCdXR0b24qL1xuLyoubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Ki9cbi8qRU5EIFJhZGlvIEJ1dHRvbiovXG4vKnN0YXJ0IGNoZWNrYm94Ki9cbi8qaHR0cHM6Ly93d3cuY29kZWdyZXBwZXIuY29tL2NvZGUtZXhhbXBsZXMvY3NzL21hdCtyYWRpbytidXR0b24rY29sb3IqL1xuLyo6Om5nLWRlZXAgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgb3BhY2l0eTogMC41ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsdWUgIWltcG9ydGFudDtcbn1cblxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlICFpbXBvcnRhbnQ7XG59XG5cbjo6bmctZGVlcC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICBib3JkZXItY29sb3I6IGJsdWUgIWltcG9ydGFudDtcbn0qL1xuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufVxuXG4ubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG59XG5cbjpob3N0IDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydCxcbjpob3N0IDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1nYXAsXG46aG9zdCA6Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLnNtYWxsUmFkaW8gLm1hdC1yYWRpby1jb250YWluZXIge1xuICBoZWlnaHQ6IDEycHg7XG4gIHdpZHRoOiAxMnB4O1xufVxuXG4uc21hbGxSYWRpbyAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGhlaWdodDogMTJweDtcbiAgd2lkdGg6IDEycHg7XG59XG5cbi5zbWFsbFJhZGlvIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcbiAgaGVpZ2h0OiAxMnB4O1xuICB3aWR0aDogMTJweDtcbn1cblxuLnNtYWxsUmFkaW8gLm1hdC1yYWRpby1idXR0b24gLm1hdC1yYWRpby1yaXBwbGUge1xuICBoZWlnaHQ6IDI0cHg7XG4gIHdpZHRoOiAyNHB4O1xuICBsZWZ0OiBjYWxjKDUwJSAtIDEycHgpO1xuICB0b3A6IGNhbGMoNTAlIC0gMTJweCk7XG59XG5cbi8qOjpuZy1kZWVwIC5tYXQtY2hlY2tib3gtbGF5b3V0IHtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbn1cblxuLmNoZWNrYm94c2l6ZSAuZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG59XG5cbjo6bmctZGVlcCAubWF0LWNoZWNrYm94IC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xufVxuOjpuZy1kZWVwIC5tYWluQ2hrIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LXJpcHBsZSB7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG59XG46Om5nLWRlZXAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuOjpuZy1kZWVwIC5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG59XG46Om5nLWRlZXAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbn0qL1xuLyo6Om5nLWRlZXAgLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsdWUgIWltcG9ydGFudDtcbiAgdG9wOiAxMHB4O1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufSovXG4vKmVuZCBjaGVja2JveCovXG4vKmh0dHBzOiAvL2Jsb2cuaHVic3BvdC5jb20vd2Vic2l0ZS9jc3MtZmFkZS1pblxuaHR0cHM6IC8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzMwMTI1NzA1L2Nzcy1ob3ctdG8tbWFrZS1hbi1lbGVtZW50LWZhZGUtaW4tYW5kLXRoZW4tZmFkZS1vdXRcbmh0dHA6Ly9jc3MzLmJyYWRzaGF3ZW50ZXJwcmlzZXMuY29tL2NmaW1nL1xuaHR0cHM6Ly9zdGFja2JsaXR6LmNvbS9lZGl0L2FuZ3VsYXItbWF0ZXJpYWwtcHJvdG90eXBlLWFuaW1hdGVkLWljb24/ZmlsZT1zcmMlMkZhcHAlMkZtYXQtYW5pbWF0ZWQtaWNvbiUyRm1hdC1hbmltYXRlZC1pY29uLmNvbXBvbmVudC5zY3NzXG4qL1xuLypodHRwczogLy9jb2RlcGVuLmlvL2dvb3JhazcvcGVuL2JOSlpMbSovXG4uYmxpbmsge1xuICBhbmltYXRpb246IGJsaW5rIDJzIHN0ZXBzKDUsIHN0YXJ0KSBpbmZpbml0ZTtcbiAgLXdlYmtpdC1hbmltYXRpb246IGJsaW5rIDFzIHN0ZXBzKDUsIHN0YXJ0KSBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBibGluayB7XG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyBibGluayB7XG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cbi8qaHR0cHM6IC8vY3NzLXRyaWNrcy5jb20vYW5pbWF0aW9ucy10aGUtYW5ndWxhci13YXkvKi9cbi5jbGljayB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyouZmFJY24tcm90YXRlLTkwIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAtby10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn0qL1xuLyovL2h0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzUzMzEyNjQwL2hvdy10by1jaGFuZ2Utc2l6ZS1vZi1tYXQtaWNvbi1vbi1hbmd1bGFyLW1hdGVyaWFsLzUzMzEyNzU0XG4gIC8vaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDg3NzYxNDIvY2hhbmdlLXN2Zy1zaXplLWluLWFuZ3VsYXItbWF0ZXJpYWwtMi1tYXQtaWNvbi11c2luZy12YW5pbGxhLWNzcy1vci1odG1sP3JxPTFcbi5tYXQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgyKTtcbn0qL1xuLyoubWF0LWljb24tYnV0dG9uIHtcbiAgd2lkdGg6IDI0cHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG59Ki9cbmEuZGlzYWJsZWQge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uZmxleC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIC8qanVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWluLWhlaWdodDogNDhweDtcbiAgcGFkZGluZzogMCA4cHg7Ki9cbn1cblxuLmRpdnNwYW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gIHBhZGRpbmc6IDBweCAxMHB4IDBweCAxMHB4O1xufVxuXG4uUHJpbWFyeUlQTmV3IHtcbiAgYmFja2dyb3VuZDogI2NmZjZkZDtcbiAgY29sb3I6ICM2NGI1ZjY7XG4gIGZvbnQtdmFyaWFudDogYWxsLXBldGl0ZS1jYXBzO1xufVxuXG4uU2Vjb25kYXJ5SVBOZXcge1xuICBiYWNrZ3JvdW5kOiAjY2ZmNmRkO1xuICBjb2xvcjogI2Y0NDMzNjtcbiAgZm9udC12YXJpYW50OiBhbGwtcGV0aXRlLWNhcHM7XG59XG5cbi5ibHVlVGljayB7XG4gIGNvbG9yOiBkZWVwc2t5Ymx1ZTtcbn1cblxuLmdyZWVuVGljayB7XG4gIGNvbG9yOiBncmVlbjtcbn0iLCIvKmh0dHBzOiAvL3N0YWNrYmxpdHouY29tL2VkaXQvYW5ndWxhci1tYXRlcmlhbC10aGVtZS1zZWNyZXRzP2VtYmVkPTEmZmlsZT1zcmMlMkZ0aGVtZS5zY3NzJnNvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4vKkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9T3BlbitTYW5zOjQwMCwzMDAsMzAwaXRhbGljLDQwMGl0YWxpYyw2MDAsNjAwaXRhbGljLDcwMCw3MDBpdGFsaWMsODAwLDgwMGl0YWxpYyZzdWJzZXQ9bGF0aW4tZXh0Jyk7XHJcbkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvOjMwMCw0MDAsNTAwLDcwMCw0MDBpdGFsaWMmYW1wO3N1YnNldD1sYXRpbi1leHQnKTsqL1xyXG4vKkBpbXBvcnQgJy4uL2Nzcy9Hb29nbGVGb250c09wZW5TYW5zLmNzcyc7XHJcbkBpbXBvcnQgJy4uL2Nzcy9Hb29nbGVGb250c1JvYm90by5jc3MnOyovXHJcblxyXG5AaW1wb3J0ICd+QGFuZ3VsYXIvbWF0ZXJpYWwvdGhlbWluZyc7XHJcblxyXG5AaW5jbHVkZSBtYXQtY29yZSgpO1xyXG5cclxuLy9odHRwczovL21lZGl1bS5jb20vdGVuc3VsdC9hbmd1bGFyLW1hdGVyaWFsLWN1c3RvbS10aGVtZS1pbXBsZW1lbnRhdGlvbi1pbi1hbmd1bGFyLTYtZDQyNGEyYTQ3ZTRjXHJcbi8vaHR0cHM6Ly9tYXRlcmlhbC11aS5jb20vY3VzdG9taXphdGlvbi9jb2xvci9cclxuLy9DdXN0b20gdGhlbWVcclxuJGN1c3RvbS10aGVtZS1wcmltYXJ5OiBtYXQtcGFsZXR0ZSgkbWF0LWJsdWUsIDMwMCk7XHJcbiRjdXN0b20tdGhlbWUtYWNjZW50OiBtYXQtcGFsZXR0ZSgkbWF0LXllbGxvdywgQTIwMCwgQTEwMCwgQTQwMCk7Ly9tYXQtcGFsZXR0ZSgkbWF0LXBpbmssIEEyMDAsIEExMDAsIEE0MDApO1xyXG4kY3VzdG9tLXRoZW1lLXdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKTtcclxuJGN1c3RvbS10aGVtZTogbWF0LWxpZ2h0LXRoZW1lKCRjdXN0b20tdGhlbWUtcHJpbWFyeSwgJGN1c3RvbS10aGVtZS1hY2NlbnQsICRjdXN0b20tdGhlbWUtd2Fybik7XHJcblxyXG4vL0FkZCB0byBhbmd1bGFyIG1hdGVyaWFsXHJcbkBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdGhlbWUoJGN1c3RvbS10aGVtZSk7XHJcblxyXG5cclxuXHJcbi8vaHR0cHM6Ly9tYXRlcmlhbC5hbmd1bGFyLmlvL2d1aWRlL3RoZW1pbmdcclxuLy9odHRwczovL3d3dy5mcmVlY29kZWNhbXAub3JnL25ld3MvaG93LXRvLW1ha2UtYS1jdXN0b20tdGhlbWUtaW4tYW5ndWxhci1tYXRlcmlhbC1kNDcxMjJhMWUzNjEvXHJcbi8vIERlZmluZSBhbiBhbHRlcm5hdGUgZGFyayB0aGVtZS5cclxuJGRhcmstcHJpbWFyeTogbWF0LXBhbGV0dGUoJG1hdC1ibHVlLWdyZXkpO1xyXG4kZGFyay1hY2NlbnQ6IG1hdC1wYWxldHRlKCRtYXQtYW1iZXIsIEEyMDAsIEExMDAsIEE0MDApO1xyXG4kZGFyay13YXJuOiBtYXQtcGFsZXR0ZSgkbWF0LWRlZXAtb3JhbmdlKTtcclxuJGRhcmstdGhlbWU6IG1hdC1kYXJrLXRoZW1lKCRkYXJrLXByaW1hcnksICRkYXJrLWFjY2VudCwgJGRhcmstd2Fybik7XHJcblxyXG4vLyBJbmNsdWRlIHRoZSBhbHRlcm5hdGl2ZSB0aGVtZSBzdHlsZXMgaW5zaWRlIG9mIGEgYmxvY2sgd2l0aCBhIENTUyBjbGFzcy4gWW91IGNhbiBtYWtlIHRoaXNcclxuLy8gQ1NTIGNsYXNzIHdoYXRldmVyIHlvdSB3YW50LiBJbiB0aGlzIGV4YW1wbGUsIGFueSBjb21wb25lbnQgaW5zaWRlIG9mIGFuIGVsZW1lbnQgd2l0aFxyXG4vLyBgLnVuaWNvcm4tZGFyay10aGVtZWAgd2lsbCBiZSBhZmZlY3RlZCBieSB0aGlzIGFsdGVybmF0ZSBkYXJrIHRoZW1lIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgdGhlbWUuXHJcbi51bmljb3JuLWRhcmstdGhlbWUge1xyXG4gIEBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdGhlbWUoJGRhcmstdGhlbWUpO1xyXG59XHJcblxyXG5cclxuLypcclxuICBodHRwczogLy9zdGFja2JsaXR6LmNvbS9lZGl0L2FuZ3VsYXItbWF0ZXJpYWwtdGhlbWUtc2VjcmV0cz9lbWJlZD0xJmZpbGU9c3JjJTJGdGhlbWUuc2NzcyZzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgaHR0cHM6Ly9tYXRlcmlhbC5hbmd1bGFyLmlvL2d1aWRlL3R5cG9ncmFwaHlcclxuICBodHRwczovL21hdGVyaWFsLXVpLmNvbS9jdXN0b21pemF0aW9uL2NvbG9yL1xyXG4qL1xyXG4kZGVmYXVsdE1hdC10eXBvZ3JhcGh5OiBtYXQtdHlwb2dyYXBoeS1jb25maWcoXHJcbiAgJGZvbnQtZmFtaWx5OiAnXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmJyxcclxuICAkZGlzcGxheS00OiBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxMTJweCwgMTEycHgsIDMwMCksXHJcbiAgJGRpc3BsYXktMzogbWF0LXR5cG9ncmFwaHktbGV2ZWwoNTZweCwgNTZweCwgNjAwKSxcclxuICAkZGlzcGxheS0yOiBtYXQtdHlwb2dyYXBoeS1sZXZlbCg0NXB4LCA0OHB4LCA0MDApLFxyXG4gICRkaXNwbGF5LTE6IG1hdC10eXBvZ3JhcGh5LWxldmVsKDM0cHgsIDQwcHgsIDYwMCksICRoZWFkbGluZTogbWF0LXR5cG9ncmFwaHktbGV2ZWwoMjRweCwgMzJweCwgNjAwKSxcclxuICAkdGl0bGU6IG1hdC10eXBvZ3JhcGh5LWxldmVsKDIwcHgsIDMycHgsIDYwMCksICRzdWJoZWFkaW5nLTI6IG1hdC10eXBvZ3JhcGh5LWxldmVsKDE2cHgsIDIycHgsIDYwMCksXHJcbiAgJHN1YmhlYWRpbmctMTogbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTVweCwgMjRweCwgNjAwKSwgJGJvZHktMjogbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMjRweCwgNjAwKSxcclxuICAkYm9keS0xOiBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNHB4LCAzMHB4LCA2MDApLCAkY2FwdGlvbjogbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTJweCwgMjBweCwgNjAwKSxcclxuICAkYnV0dG9uOiBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxMHB4LCAxNHB4LCA4MDApLFxyXG4gIC8vIExpbmUtaGVpZ2h0IG11c3QgYmUgdW5pdC1sZXNzIGZyYWN0aW9uIG9mIHRoZSBmb250LXNpemUuXHJcbiAgJGlucHV0OiBtYXQtdHlwb2dyYXBoeS1sZXZlbChpbmhlcml0LCAxLjEyNSwgNDAwKVxyXG4pO1xyXG5cclxuJGRlZmF1bHRNYXQtcHJpbWFyeS1jb2xvcjogKFxyXG4vLyBOb24tYWNjZW50IEJhY2tncm91bmRzXHJcbi8vIEdlbmVyYWxcclxuNTA6ICNlM2YyZmQsIC8vIE1vc3QgZmFyIGF3YXlcclxuMTAwOiAjYmJkZWZiLCAvLyBGYXIgZmFyIGF3YXlcclxuMjAwOiAjOTBjYWY5LCAvLyBGYXIgYXdheVxyXG4zMDA6ICM2NGI1ZjYsIC8vIE1pZGRsZSBmYXJcclxuNDAwOiAjNDJhNWY1LCAvLyBNaWRkbGVcclxuNTAwOiAjMjE5NmYzLCAvLyBNaWRkbGUgY2xvc2UgXFwtIDNGNTFCNVxyXG42MDA6ICMxZTg4ZTUsIC8vIENsb3NlXHJcbjcwMDogIzE5NzZkMiwgLy8gVmVyeSBjbG9zZSAtIDVCOUJENVxyXG44MDA6ICMxNTY1YzAsIC8vIFZlcnkgdmVyeSBDbG9zZVxyXG45MDA6ICMwZDQ3YTEsIC8vIENsb3Nlc3RcclxuQTEwMDogIzgyYjFmZiwgLy8gTW9zdCBmYXIgYXdheVxyXG5BMjAwOiAjNDQ4YWZmLCAvLyBNaWRkbGVcclxuQTQwMDogIzI5NzlmZiwgLy8gQ2xvc2VcclxuQTcwMDogIzI5NjJmZiwgLy8gQ2xvc2VzdFxyXG5jb250cmFzdDogKCA1MDogJGRhcmstcHJpbWFyeS10ZXh0LCAvLyBNb3N0IGZhciBhd2F5XHJcbjEwMDogJGRhcmstcHJpbWFyeS10ZXh0LCAvLyBGYXIgZmFyIGF3YXlcclxuMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsIC8vIEZhciBhd2F5XHJcbjMwMDogJGRhcmstcHJpbWFyeS10ZXh0LCAvLyBNaWRkbGUgZmFyXHJcbjQwMDogJGRhcmstcHJpbWFyeS10ZXh0LCAvLyBNaWRkbGVcclxuNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LCAvLyBNaWRkbGUgY2xvc2VcclxuNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LCAvLyBDbG9zZVxyXG43MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsIC8vIFZlcnkgY2xvc2VcclxuODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LCAvLyBWZXJ5IHZlcnkgQ2xvc2VcclxuOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LCAvLyBDbG9zZXN0XHJcbkExMDA6ICRkYXJrLXByaW1hcnktdGV4dCwgLy8gTW9zdCBmYXIgYXdheVxyXG5BMjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LCAvLyBNaWRkbGVcclxuQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCwgLy8gQ2xvc2VcclxuQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCwgLy8gQ2xvc2VzdFxyXG4pICk7XHJcblxyXG4kZGVmYXVsdE1hdC10aGVtZTogbWF0LWxpZ2h0LXRoZW1lKCBtYXQtcGFsZXR0ZSgkZGVmYXVsdE1hdC1wcmltYXJ5LWNvbG9yKSwgbWF0LXBhbGV0dGUoJG1hdC15ZWxsb3csIEEyMDAsIEExMDAsIEE0MDApLCBtYXQtcGFsZXR0ZSgkbWF0LXJlZCkgKTtcclxuXHJcbi5kZWZhdWx0TWF0IHtcclxuICBAaW5jbHVkZSBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKCRkZWZhdWx0TWF0LXRoZW1lKTtcclxuICBAaW5jbHVkZSBhbmd1bGFyLW1hdGVyaWFsLXR5cG9ncmFwaHkoJGRlZmF1bHRNYXQtdHlwb2dyYXBoeSk7XHJcbiAgJGJhY2tncm91bmQ6ICNGMEYwRjA7IC8vbWF0LWNvbG9yKCRkZWZhdWx0TWF0LXByaW1hcnktY29sb3IsIDcwMCk7IC0gSU1QXHJcbiAgJHByaW1hcnk6IG1hdC1jb2xvcigkZGVmYXVsdE1hdC1wcmltYXJ5LWNvbG9yKTtcclxuICAkYWNjZW50OiBtYXQtY29sb3IoJG1hdC15ZWxsb3cpO1xyXG4gICR3YXJuOiBtYXQtY29sb3IoJG1hdC1yZWQpO1xyXG5cclxuICBtYWluIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xyXG4gIH1cclxuXHJcbiAgLm1lbnUge1xyXG4gICAgLypiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjsqL1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gICAgZGlzcGxheTpmbGV4O1xyXG4gIH1cclxuXHJcbiAgYSwgYTpob3ZlciwgYTpob3ZlciBzcGFuIHtcclxuICAgIGNvbG9yOiAkcHJpbWFyeTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgfVxyXG5cclxuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBoNyB7XHJcbiAgICBjb2xvcjogJHByaW1hcnk7XHJcbiAgfVxyXG5cclxuICAubWF0LXJhaXNlZC1idXR0b246bm90KFtjbGFzcyo9XCJtYXQtZWxldmF0aW9uLXpcIl0pLFxyXG4gIC5tYXQtYnV0dG9uLFxyXG4gIC5tYXQtZmFiOm5vdChbY2xhc3MqPVwibWF0LWVsZXZhdGlvbi16XCJdKSxcclxuICAubWF0LW1pbmktZmFiOm5vdChbY2xhc3MqPVwibWF0LWVsZXZhdGlvbi16XCJdKSxcclxuICAubWF0LWljb24tYnV0dG9uIHtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBib3JkZXItd2lkdGg6IDFweDtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XHJcbiAgICBib3gtc2hhZG93OiBub25lO1xyXG4gIH1cclxuXHJcbiAgLm1hdC1jaGlwIHtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBib3JkZXItd2lkdGg6IDFweDtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gIH1cclxuXHJcbiAgLm1hdC1yYWlzZWQtYnV0dG9uLmJhY2sge1xyXG4gICAgY29sb3I6ICRsaWdodC1wcmltYXJ5LXRleHQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJG1hdC1ncmV5LCBBNzAwKTtcclxuICB9XHJcblxyXG4gIC5tYXQtY2FyZCB7XHJcbiAgICBtYXJnaW46IDEwcHggMTBweCAwIDEwcHg7XHJcbiAgfVxyXG5cclxuICAvKi5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyLCB7XHJcbiAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICB3aWR0aDogNDBweDtcclxuICB9Ki9cclxuXHJcbiAgLm1hdC1jaGVja2JveC1sYXlvdXQgLm1hdC1jaGVja2JveC1sYWJlbCB7XHJcbiAgICBsaW5lLWhlaWdodDogNDBweDtcclxuICB9XHJcblxyXG4gIC5tYXQtbGlzdCAubWF0LWxpc3QtaXRlbSAubWF0LWxpc3QtdGV4dCBoNC5tYXQtbGluZSB7XHJcbiAgICBmb250LXdlaWdodDogODAwO1xyXG4gICAgY29sb3I6ICRwcmltYXJ5O1xyXG4gIH1cclxuXHJcbiAgLm1hdC1saXN0IC5tYXQtbGlzdC1pdGVtIC5tYXQtbGlzdC10ZXh0IHAubWF0LWxpbmUge1xyXG4gICAgY29sb3I6IG1hdC1jb2xvcigkZGVmYXVsdE1hdC1wcmltYXJ5LWNvbG9yLCBBMTAwKTtcclxuICB9XHJcblxyXG4gIC5tYXQtY2FyZDpub3QoW2NsYXNzKj1cIm1hdC1lbGV2YXRpb24telwiXSkge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBib3JkZXItd2lkdGg6IDFweDtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XHJcbiAgICBib3gtc2hhZG93OiBub25lO1xyXG4gIH1cclxuXHJcbiAgLm1hdC10b29sYmFyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxuICB9XHJcblxyXG4gIC5tYXQtY2FyZC5tYXQtY2FyZC1hY2NlbnQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcclxuICAgIGNvbG9yOiAkZGFyay1wcmltYXJ5LXRleHQ7XHJcbiAgfVxyXG5cclxuICAubWF0LWNhcmQubWF0LWNhcmQtd2FybiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2FybjtcclxuICAgIGNvbG9yOiAkbGlnaHQtcHJpbWFyeS10ZXh0O1xyXG4gIH1cclxuICAvKmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80NjgxMjA2NC9ob3ctdG8tc2V0LXRoZS1jb2xvci1vZi1hbi1pY29uLWluLWFuZ3VsYXItbWF0ZXJpYWxcclxuaHR0cHM6IC8vY3NzLXRyaWNrcy5jb20vc29sdmVkLXdpdGgtY3NzLWNvbG9yaXppbmctc3ZnLWJhY2tncm91bmRzLyovXHJcbiAgLndoaXRlLWljb24ge1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgZmlsdGVyOiBicmlnaHRuZXNzKDEwMCk7XHJcbiAgfVxyXG4gIC8qIE5vdGU6IElmIHlvdSdyZSB1c2luZyBhbiBTVkcgaWNvbiwgeW91IHNob3VsZCBtYWtlIHRoZSBjbGFzcyB0YXJnZXQgdGhlIGA8c3ZnPmAgZWxlbWVudCAqL1xyXG4gIC8qLndoaXRlLWljb24gc3ZnIHtcclxuICBmaWxsOiB3aGl0ZTtcclxuICBmaWx0ZXI6YnJpZ2h0bmVzcygxMDApO1xyXG59Ki9cclxuICAvKi5tYXQtbWVudS1pdGVtIHtcclxuICAgIGhlaWdodDoyMHB4O1xyXG4gIH1cclxuICBidXR0b24ubWF0LW1lbnUtaXRlbSB7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgfSovXHJcbn1cclxuIiwiLy8gSW1wb3J0IGFsbCB0aGUgdGhlbWluZyBmdW5jdGlvbmFsaXR5LlxuLy8gV2UgY2FuIHVzZSByZWxhdGl2ZSBpbXBvcnRzIGZvciBpbXBvcnRzIGZyb20gdGhlIGNkayBiZWNhdXNlIHdlIGJ1bmRsZSBldmVyeXRoaW5nXG4vLyB1cCBpbnRvIGEgc2luZ2xlIGZsYXQgc2NzcyBmaWxlIGZvciBtYXRlcmlhbC5cbi8vIFdlIHdhbnQgb3ZlcmxheXMgdG8gYWx3YXlzIGFwcGVhciBvdmVyIHVzZXIgY29udGVudCwgc28gc2V0IGEgYmFzZWxpbmVcbi8vIHZlcnkgaGlnaCB6LWluZGV4IGZvciB0aGUgb3ZlcmxheSBjb250YWluZXIsIHdoaWNoIGlzIHdoZXJlIHdlIGNyZWF0ZSB0aGUgbmV3XG4vLyBzdGFja2luZyBjb250ZXh0IGZvciBhbGwgb3ZlcmxheXMuXG4kY2RrLXotaW5kZXgtb3ZlcmxheS1jb250YWluZXI6IDEwMDAgIWRlZmF1bHQ7XG4kY2RrLXotaW5kZXgtb3ZlcmxheTogMTAwMCAhZGVmYXVsdDtcbiRjZGstei1pbmRleC1vdmVybGF5LWJhY2tkcm9wOiAxMDAwICFkZWZhdWx0O1xuXG4vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBhbGwgb2YgdGhlIGJhY2tkcm9wc1xuJGNkay1vdmVybGF5LWRhcmstYmFja2Ryb3AtYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMyKSAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBiYWNrZHJvcCBhbmltYXRpb24gaXMgYmFzZWQgb24gdGhlIE1hdGVyaWFsIERlc2lnbiBzd2lmdC1lYXNlLW91dC5cbiRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb246IDQwMG1zICFkZWZhdWx0O1xuJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpICFkZWZhdWx0O1xuXG5cbkBtaXhpbiBjZGstb3ZlcmxheSgpIHtcbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgICAvLyBEaXNhYmxlIGV2ZW50cyBmcm9tIGJlaW5nIGNhcHR1cmVkIG9uIHRoZSBvdmVybGF5IGNvbnRhaW5lci5cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIC8vIFRoZSBjb250YWluZXIgc2hvdWxkIGJlIHRoZSBzaXplIG9mIHRoZSB2aWV3cG9ydC5cbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBUaGUgb3ZlcmxheS1jb250YWluZXIgaXMgYW4gaW52aXNpYmxlIGVsZW1lbnQgd2hpY2ggY29udGFpbnMgYWxsIGluZGl2aWR1YWwgb3ZlcmxheXMuXG4gIC5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheS1jb250YWluZXI7XG5cbiAgICAmOmVtcHR5IHtcbiAgICAgIC8vIEhpZGUgdGhlIGVsZW1lbnQgd2hlbiBpdCBkb2Vzbid0IGhhdmUgYW55IGNoaWxkIG5vZGVzLiBUaGlzIGRvZXNuJ3RcbiAgICAgIC8vIGluY2x1ZGUgb3ZlcmxheXMgdGhhdCBoYXZlIGJlZW4gZGV0YWNoZWQsIHJhdGhlciB0aGFuIGRpc3Bvc2VkLlxuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSB1c2UgYW4gZXh0cmEgd3JhcHBlciBlbGVtZW50IGluIG9yZGVyIHRvIHVzZSBtYWtlIHRoZSBvdmVybGF5IGl0c2VsZiBhIGZsZXggaXRlbS5cbiAgLy8gVGhpcyBtYWtlcyBjZW50ZXJpbmcgdGhlIG92ZXJsYXkgZWFzeSB3aXRob3V0IHJ1bm5pbmcgaW50byB0aGUgc3VicGl4ZWwgcmVuZGVyaW5nXG4gIC8vIHByb2JsZW1zIHRpZWQgdG8gdXNpbmcgYHRyYW5zZm9ybWAgYW5kIHdpdGhvdXQgaW50ZXJmZXJpbmcgd2l0aCB0aGUgb3RoZXIgcG9zaXRpb25cbiAgLy8gc3RyYXRlZ2llcy5cbiAgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheTtcbiAgfVxuXG4gIC8vIEEgc2luZ2xlIG92ZXJsYXkgcGFuZS5cbiAgLmNkay1vdmVybGF5LXBhbmUge1xuICAgIC8vIE5vdGU6IGl0J3MgaW1wb3J0YW50IGZvciB0aGlzIG9uZSB0byBzdGFydCBvZmYgYGFic29sdXRlYCxcbiAgICAvLyBpbiBvcmRlciBmb3IgdXMgdG8gYmUgYWJsZSB0byBtZWFzdXJlIGl0IGNvcnJlY3RseS5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheTtcblxuICAgIC8vIEZvciBjb25uZWN0ZWQtcG9zaXRpb24gb3ZlcmxheXMsIHdlIHNldCBgZGlzcGxheTogZmxleGAgaW5cbiAgICAvLyBvcmRlciB0byBmb3JjZSBgbWF4LXdpZHRoYCBhbmQgYG1heC1oZWlnaHRgIHRvIHRha2UgZWZmZWN0LlxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAuY2RrLW92ZXJsYXktYmFja2Ryb3Age1xuICAgIC8vIFRPRE8oamVsYm91cm4pOiByZXVzZSBzaWRlbmF2IGZ1bGxzY3JlZW4gbWl4aW4uXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcblxuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5LWJhY2tkcm9wO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkYmFja2Ryb3AtYW5pbWF0aW9uLWR1cmF0aW9uICRiYWNrZHJvcC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uO1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICAmLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgLy8gSW4gaGlnaCBjb250cmFzdCBtb2RlIHRoZSByZ2JhIGJhY2tncm91bmQgd2lsbCBiZWNvbWUgc29saWQgc28gd2UgbmVlZCB0byBmYWxsIGJhY2tcbiAgICAgIC8vIHRvIG1ha2luZyBpdCBvcGFxdWUgdXNpbmcgYG9wYWNpdHlgLiBOb3RlIHRoYXQgd2UgY2FuJ3QgdXNlIHRoZSBgY2RrLWhpZ2gtY29udHJhc3RgXG4gICAgICAvLyBtaXhpbiwgYmVjYXVzZSB3ZSBjYW4ndCBub3JtYWxpemUgdGhlIGltcG9ydCBwYXRoIHRvIHRoZSBfYTExeS5zY3NzIGJvdGggZm9yIHRoZVxuICAgICAgLy8gc291cmNlIGFuZCB3aGVuIHRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZC4gU2VlICMxMDkwOC5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcCB7XG4gICAgYmFja2dyb3VuZDogJGNkay1vdmVybGF5LWRhcmstYmFja2Ryb3AtYmFja2dyb3VuZDtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCB7XG4gICAgLy8gTm90ZTogYXMgb2YgRmlyZWZveCA1NywgaGF2aW5nIHRoZSBiYWNrZHJvcCBiZSBgYmFja2dyb3VuZDogbm9uZWAgd2lsbCBwcmV2ZW50IGl0IGZyb21cbiAgICAvLyBjYXB0dXJpbmcgdGhlIHVzZXIncyBtb3VzZSBzY3JvbGwgZXZlbnRzLiBTaW5jZSB3ZSBhbHNvIGNhbid0IHVzZSBzb21ldGhpbmcgbGlrZVxuICAgIC8vIGByZ2JhKDAsIDAsIDAsIDApYCwgd2Ugd29yayBhcm91bmQgdGhlIGluY29uc2lzdGVuY3kgYnkgbm90IHNldHRpbmcgdGhlIGJhY2tncm91bmQgYXRcbiAgICAvLyBhbGwgYW5kIHVzaW5nIGBvcGFjaXR5YCB0byBtYWtlIHRoZSBlbGVtZW50IHRyYW5zcGFyZW50LlxuICAgICYsICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIE92ZXJsYXkgcGFyZW50IGVsZW1lbnQgdXNlZCB3aXRoIHRoZSBjb25uZWN0ZWQgcG9zaXRpb24gc3RyYXRlZ3kuIFVzZWQgdG8gY29uc3RyYWluIHRoZVxuICAvLyBvdmVybGF5IGVsZW1lbnQncyBzaXplIHRvIGZpdCB3aXRoaW4gdGhlIHZpZXdwb3J0LlxuICAuY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuXG4gICAgLy8gV2UgdXNlIGBkaXNwbGF5OiBmbGV4YCBvbiB0aGlzIGVsZW1lbnQgZXhjbHVzaXZlbHkgZm9yIGNlbnRlcmluZyBjb25uZWN0ZWQgb3ZlcmxheXMuXG4gICAgLy8gV2hlbiAqbm90KiBjZW50ZXJpbmcsIGEgdG9wL2xlZnQvYm90dG9tL3JpZ2h0IHdpbGwgYmUgc2V0IHdoaWNoIG92ZXJyaWRlcyB0aGUgbm9ybWFsXG4gICAgLy8gZmxleCBsYXlvdXQuXG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIC8vIFdlIHVzZSB0aGUgYGNvbHVtbmAgZGlyZWN0aW9uIGhlcmUgdG8gYXZvaWQgc29tZSBmbGV4Ym94IGlzc3VlcyBpbiBFZGdlXG4gICAgLy8gd2hlbiB1c2luZyB0aGUgXCJncm93IGFmdGVyIG9wZW5cIiBvcHRpb25zLlxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAvLyBBZGQgc29tZSBkaW1lbnNpb25zIHNvIHRoZSBlbGVtZW50IGhhcyBhbiBgaW5uZXJUZXh0YCB3aGljaCBzb21lIHBlb3BsZSBkZXBlbmQgb24gaW4gdGVzdHMuXG4gICAgbWluLXdpZHRoOiAxcHg7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICB9XG5cbiAgLy8gVXNlZCB3aGVuIGRpc2FibGluZyBnbG9iYWwgc2Nyb2xsaW5nLlxuICAuY2RrLWdsb2JhbC1zY3JvbGxibG9jayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuXG4gICAgLy8gTmVjZXNzYXJ5IGZvciB0aGUgY29udGVudCBub3QgdG8gbG9zZSBpdHMgd2lkdGguIE5vdGUgdGhhdCB3ZSdyZSB1c2luZyAxMDAlLCBpbnN0ZWFkIG9mXG4gICAgLy8gMTAwdncsIGJlY2F1c2UgMTAwdncgaW5jbHVkZXMgdGhlIHdpZHRoIHBsdXMgdGhlIHNjcm9sbGJhciwgd2hlcmVhcyAxMDAlIGlzIHRoZSB3aWR0aFxuICAgIC8vIHRoYXQgdGhlIGVsZW1lbnQgaGFkIGJlZm9yZSB3ZSBtYWRlIGl0IGBmaXhlZGAuXG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAvLyBOb3RlOiB0aGlzIHdpbGwgYWx3YXlzIGFkZCBhIHNjcm9sbGJhciB0byB3aGF0ZXZlciBlbGVtZW50IGl0IGlzIG9uLCB3aGljaCBjYW5cbiAgICAvLyBwb3RlbnRpYWxseSByZXN1bHQgaW4gZG91YmxlIHNjcm9sbGJhcnMuIEl0IHNob3VsZG4ndCBiZSBhbiBpc3N1ZSwgYmVjYXVzZSB3ZSB3b24ndFxuICAgIC8vIGJsb2NrIHNjcm9sbGluZyBvbiBhIHBhZ2UgdGhhdCBkb2Vzbid0IGhhdmUgYSBzY3JvbGxiYXIgaW4gdGhlIGZpcnN0IHBsYWNlLlxuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgfVxufVxuXG5AbWl4aW4gY2RrLWExMXkge1xuICAuY2RrLXZpc3VhbGx5LWhpZGRlbiB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcblxuICAgIC8vIEF2b2lkIGJyb3dzZXJzIHJlbmRlcmluZyB0aGUgZm9jdXMgcmluZyBpbiBzb21lIGNhc2VzLlxuICAgIG91dGxpbmU6IDA7XG5cbiAgICAvLyBBdm9pZCBzb21lIGNhc2VzIHdoZXJlIHRoZSBicm93c2VyIHdpbGwgc3RpbGwgcmVuZGVyIHRoZSBuYXRpdmUgY29udHJvbHMgKHNlZSAjOTA0OSkuXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxufVxuXG4vLyBBcHBsaWVzIHN0eWxlcyBmb3IgdXNlcnMgaW4gaGlnaCBjb250cmFzdCBtb2RlLiBOb3RlIHRoYXQgdGhpcyBvbmx5IGFwcGxpZXNcbi8vIHRvIE1pY3Jvc29mdCBicm93c2Vycy4gQ2hyb21lIGNhbiBiZSBpbmNsdWRlZCBieSBjaGVja2luZyBmb3IgdGhlIGBodG1sW2hjXWBcbi8vIGF0dHJpYnV0ZSwgaG93ZXZlciBDaHJvbWUgaGFuZGxlcyBoaWdoIGNvbnRyYXN0IGRpZmZlcmVudGx5LlxuLy9cbi8vIEBwYXJhbSB0YXJnZXQgV2hpY2gga2luZCBvZiBoaWdoIGNvbnRyYXN0IHNldHRpbmcgdG8gdGFyZ2V0LiBEZWZhdWx0cyB0byBgYWN0aXZlYCwgY2FuIGJlXG4vLyAgICBgd2hpdGUtb24tYmxhY2tgIG9yIGBibGFjay1vbi13aGl0ZWAuXG5AbWl4aW4gY2RrLWhpZ2gtY29udHJhc3QoJHRhcmdldDogYWN0aXZlKSB7XG4gIEBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6ICR0YXJnZXQpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBDb3JlIHN0eWxlcyB0aGF0IGVuYWJsZSBtb25pdG9yaW5nIGF1dG9maWxsIHN0YXRlIG9mIHRleHQgZmllbGRzLlxuQG1peGluIGNkay10ZXh0LWZpZWxkIHtcbiAgLy8gS2V5ZnJhbWVzIHRoYXQgYXBwbHkgbm8gc3R5bGVzLCBidXQgYWxsb3cgdXMgdG8gbW9uaXRvciB3aGVuIGFuIHRleHQgZmllbGQgYmVjb21lcyBhdXRvZmlsbGVkXG4gIC8vIGJ5IHdhdGNoaW5nIGZvciB0aGUgYW5pbWF0aW9uIGV2ZW50cyB0aGF0IGFyZSBmaXJlZCB3aGVuIHRoZXkgc3RhcnQuIE5vdGU6IHRoZSAvKiEqLyBjb21tZW50IGlzXG4gIC8vIG5lZWRlZCB0byBwcmV2ZW50IExpYlNhc3MgZnJvbSBzdHJpcHBpbmcgdGhlIGtleWZyYW1lcyBvdXQuXG4gIC8vIEJhc2VkIG9uOiBodHRwczovL21lZGl1bS5jb20vQGJydW5uL2RldGVjdGluZy1hdXRvZmlsbGVkLWZpZWxkcy1pbi1qYXZhc2NyaXB0LWFlZDU5OGQyNWRhN1xuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IHsvKiEqL31cbiAgQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQgey8qISovfVxuXG4gIC5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0O1xuICB9XG5cbiAgLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDpub3QoOi13ZWJraXQtYXV0b2ZpbGwpIHtcbiAgICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSByZXNpemUgaGFuZGxlIG9uIGF1dG9zaXppbmcgdGV4dGFyZWFzLCBiZWNhdXNlIHdoYXRldmVyIGhlaWdodFxuICAvLyB0aGUgdXNlciByZXNpemVkIHRvIHdpbGwgYmUgb3ZlcndyaXR0ZW4gb25jZSB0aGV5IHN0YXJ0IHR5cGluZyBhZ2Fpbi5cbiAgdGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplIHtcbiAgICByZXNpemU6IG5vbmU7XG4gIH1cblxuICAvLyBUaGlzIGNsYXNzIGlzIHRlbXBvcmFyaWx5IGFwcGxpZWQgdG8gdGhlIHRleHRhcmVhIHdoZW4gaXQgaXMgYmVpbmcgbWVhc3VyZWQuIEl0IGlzIGltbWVkaWF0ZWx5XG4gIC8vIHJlbW92ZWQgd2hlbiBtZWFzdXJpbmcgaXMgY29tcGxldGUuIFdlIHVzZSBgIWltcG9ydGFudGAgcnVsZXMgaGVyZSB0byBtYWtlIHN1cmUgdXNlci1zcGVjaWZpZWRcbiAgLy8gcnVsZXMgZG8gbm90IGludGVyZmVyZSB3aXRoIHRoZSBtZWFzdXJlbWVudC5cbiAgdGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZyB7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgIC8vIEhhdmluZyAycHggdG9wIGFuZCBib3R0b20gcGFkZGluZyBzZWVtcyB0byBmaXggYSBidWcgd2hlcmUgQ2hyb21lIGdldHMgYW4gaW5jb3JyZWN0XG4gICAgLy8gbWVhc3VyZW1lbnQuIFdlIGp1c3QgaGF2ZSB0byBhY2NvdW50IGZvciBpdCBsYXRlciBhbmQgc3VidHJhY3QgaXQgb2ZmIHRoZSBmaW5hbCByZXN1bHQuXG4gICAgcGFkZGluZzogMnB4IDAgIWltcG9ydGFudDtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vIFVzZWQgdG8gZ2VuZXJhdGUgVUlEcyBmb3Iga2V5ZnJhbWVzIHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0IGZpZWxkIGF1dG9maWxsIHN0eWxlcy5cbiRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudDogMDtcblxuLy8gTWl4aW4gdXNlZCB0byBhcHBseSBjdXN0b20gYmFja2dyb3VuZCBhbmQgZm9yZWdyb3VuZCBjb2xvcnMgdG8gYW4gYXV0b2ZpbGxlZCB0ZXh0IGZpZWxkLlxuLy8gQmFzZWQgb246IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI3ODE1NDkvXG4vLyByZW1vdmluZy1pbnB1dC1iYWNrZ3JvdW5kLWNvbG91ci1mb3ItY2hyb21lLWF1dG9jb21wbGV0ZSNhbnN3ZXItMzc0MzIyNjBcbkBtaXhpbiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvcigkYmFja2dyb3VuZCwgJGZvcmVncm91bmQ6JycpIHtcbiAgQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH0ge1xuICAgIHRvIHtcbiAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgQGlmICRmb3JlZ3JvdW5kICE9ICcnIHsgY29sb3I6ICRmb3JlZ3JvdW5kOyB9XG4gICAgfVxuICB9XG5cbiAgJjotd2Via2l0LWF1dG9maWxsIHtcbiAgICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9O1xuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gIH1cblxuICAmLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQsXG4gICAgICAgICAgICAgICAgICAgIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fTtcbiAgfVxuXG4gICRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudDpcbiAgICAgICRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudCArIDEgIWdsb2JhbDtcbn1cblxuXG4vLyBDb3JlIHN0eWxlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFwcGx5IG1hdGVyaWFsIGRlc2lnbiB0cmVhdG1lbnRzIHRvIGFueSBlbGVtZW50LlxuLy8gTWVkaWEgcXVlcmllc1xuLy8gVE9ETyhqb3NlcGhwZXJyb3R0KTogQ2hhbmdlICRtYXQteHNtYWxsIGFuZCAkbWF0LXNtYWxsIHVzYWdlcyB0byByZWx5IG9uIEJyZWFrcG9pbnRPYnNlcnZlcixcbiRtYXQteHNtYWxsOiAnbWF4LXdpZHRoOiA1OTlweCc7XG4kbWF0LXNtYWxsOiAnbWF4LXdpZHRoOiA5NTlweCc7XG5cbi8vIFRPRE86IFJldmlzaXQgYWxsIHotaW5kaWNlcyBiZWZvcmUgYmV0YVxuLy8gei1pbmRleCBtYXN0ZXIgbGlzdFxuXG4kei1pbmRleC1mYWI6IDIwICFkZWZhdWx0O1xuJHotaW5kZXgtZHJhd2VyOiAxMDAgIWRlZmF1bHQ7XG5cbi8vIEdsb2JhbCBjb25zdGFudHNcbiRwaTogMy4xNDE1OTI2NTtcblxuLy8gUGFkZGluZyBiZXR3ZWVuIGlucHV0IHRvZ2dsZXMgYW5kIHRoZWlyIGxhYmVsc1xuJG1hdC10b2dnbGUtcGFkZGluZzogOHB4ICFkZWZhdWx0O1xuLy8gV2lkdGggYW5kIGhlaWdodCBvZiBpbnB1dCB0b2dnbGVzXG4kbWF0LXRvZ2dsZS1zaXplOiAyMHB4ICFkZWZhdWx0O1xuXG4vLyBFYXNpbmcgQ3VydmVzXG4vLyBUT0RPKGplbGJvdXJuKTogYWxsIG9mIHRoZXNlIG5lZWQgdG8gYmUgcmV2aXNpdGVkXG5cbi8vIFRoZSBkZWZhdWx0IGFuaW1hdGlvbiBjdXJ2ZXMgdXNlZCBieSBtYXRlcmlhbCBkZXNpZ24uXG4kbWF0LWxpbmVhci1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSkgIWRlZmF1bHQ7XG4kbWF0LWZhc3Qtb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFkZWZhdWx0O1xuJG1hdC1mYXN0LW91dC1saW5lYXItaW4tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKSAhZGVmYXVsdDtcblxuJGVhc2UtaW4tb3V0LWN1cnZlLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSkgIWRlZmF1bHQ7XG5cbiRzd2lmdC1lYXNlLW91dC1kdXJhdGlvbjogNDAwbXMgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1vdXQtdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLW91dDogYWxsICRzd2lmdC1lYXNlLW91dC1kdXJhdGlvbiAkc3dpZnQtZWFzZS1vdXQtdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG4kc3dpZnQtZWFzZS1pbi1kdXJhdGlvbjogMzAwbXMgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLCAwLjU1LCAwLjIpICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2UtaW46IGFsbCAkc3dpZnQtZWFzZS1pbi1kdXJhdGlvbiAkc3dpZnQtZWFzZS1pbi10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG5cbiRzd2lmdC1lYXNlLWluLW91dC1kdXJhdGlvbjogNTAwbXMgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uOiAkZWFzZS1pbi1vdXQtY3VydmUtZnVuY3Rpb24gIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbi1vdXQ6IGFsbCAkc3dpZnQtZWFzZS1pbi1vdXQtZHVyYXRpb24gJHN3aWZ0LWVhc2UtaW4tb3V0LXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuJHN3aWZ0LWxpbmVhci1kdXJhdGlvbjogODBtcyAhZGVmYXVsdDtcbiRzd2lmdC1saW5lYXItdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWRlZmF1bHQ7XG4kc3dpZnQtbGluZWFyOiBhbGwgJHN3aWZ0LWxpbmVhci1kdXJhdGlvbiAkc3dpZnQtbGluZWFyLXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuXG5cbi8vIEEgY29sbGVjdGlvbiBvZiBtaXhpbnMgYW5kIENTUyBjbGFzc2VzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXBwbHkgZWxldmF0aW9uIHRvIGEgbWF0ZXJpYWxcbi8vIGVsZW1lbnQuXG4vLyBTZWU6IGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2Vudmlyb25tZW50L2VsZXZhdGlvbi5odG1sXG4vLyBFeGFtcGxlczpcbi8vXG4vL1xuLy8gLm1hdC1mb28ge1xuLy8gICBAaW5jbHVkZSAkbWF0LWVsZXZhdGlvbigyKTtcbi8vXG4vLyAgICY6YWN0aXZlIHtcbi8vICAgICBAaW5jbHVkZSAkbWF0LWVsZXZhdGlvbig4KTtcbi8vICAgfVxuLy8gfVxuLy9cbi8vIDxkaXYgaWQ9XCJleHRlcm5hbC1jYXJkXCIgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXoyXCI+PHA+U29tZSBjb250ZW50PC9wPjwvZGl2PlxuLy9cbi8vIEZvciBhbiBleHBsYW5hdGlvbiBvZiB0aGUgZGVzaWduIGJlaGluZCBob3cgZWxldmF0aW9uIGlzIGltcGxlbWVudGVkLCBzZWUgdGhlIGRlc2lnbiBkb2MgYXRcbi8vIGh0dHBzOi8vZ29vLmdsL0txMGs5Wi5cblxuLy8gQ29sb3JzIGZvciB1bWJyYSwgcGVudW1icmEsIGFuZCBhbWJpZW50IHNoYWRvd3MuIEFzIGRlc2NyaWJlZCBpbiB0aGUgZGVzaWduIGRvYywgZWFjaCBlbGV2YXRpb25cbi8vIGxldmVsIGlzIGNyZWF0ZWQgdXNpbmcgYSBzZXQgb2YgMyBzaGFkb3cgdmFsdWVzLCBvbmUgZm9yIHVtYnJhICh0aGUgc2hhZG93IHJlcHJlc2VudGluZyB0aGVcbi8vIHNwYWNlIGNvbXBsZXRlbHkgb2JzY3VyZWQgYnkgYW4gb2JqZWN0IHJlbGF0aXZlIHRvIGl0cyBsaWdodCBzb3VyY2UpLCBvbmUgZm9yIHBlbnVtYnJhICh0aGVcbi8vIHNwYWNlIHBhcnRpYWxseSBvYnNjdXJlZCBieSBhbiBvYmplY3QpLCBhbmQgb25lIGZvciBhbWJpZW50ICh0aGUgc3BhY2Ugd2hpY2ggY29udGFpbnMgdGhlIG9iamVjdFxuLy8gaXRzZWxmKS4gRm9yIGEgZnVydGhlciBleHBsYW5hdGlvbiBvZiB0aGVzZSB0ZXJtcyBhbmQgdGhlaXIgbWVhbmluZ3MsIHNlZVxuLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVW1icmEsX3BlbnVtYnJhX2FuZF9hbnR1bWJyYS5cblxuLy8gTWFwcyBmb3IgdGhlIGRpZmZlcmVudCBzaGFkb3cgc2V0cyBhbmQgdGhlaXIgdmFsdWVzIHdpdGhpbiBlYWNoIHotc3BhY2UuIFRoZXNlIHZhbHVlcyB3ZXJlXG4vLyBjcmVhdGVkIGJ5IHRha2luZyBhIGZldyByZWZlcmVuY2Ugc2hhZG93IHNldHMgY3JlYXRlZCBieSBHb29nbGUncyBEZXNpZ25lcnMgYW5kIGludGVycG9sYXRpbmdcbi8vIGFsbCBvZiB0aGUgdmFsdWVzIGJldHdlZW4gdGhlbS5cblxuQGZ1bmN0aW9uIF9nZXQtdW1icmEtbWFwKCRjb2xvciwgJG9wYWNpdHkpIHtcbiAgJHNoYWRvdy1jb2xvcjogaWYodHlwZS1vZigkY29sb3IpID09IGNvbG9yLCByZ2JhKCRjb2xvciwgJG9wYWNpdHkgKiAwLjIpLCAkY29sb3IpO1xuXG4gIEByZXR1cm4gKFxuICAgIDA6ICcwcHggMHB4IDBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTogJzBweCAycHggMXB4IC0xcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjogJzBweCAzcHggMXB4IC0ycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMzogJzBweCAzcHggM3B4IC0ycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNDogJzBweCAycHggNHB4IC0xcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNTogJzBweCAzcHggNXB4IC0xcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCAzcHggNXB4IC0xcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCA0cHggNXB4IC0ycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCA1cHggNXB4IC0zcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCA1cHggNnB4IC0zcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggNnB4IDZweCAtM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDExOiAnMHB4IDZweCA3cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMjogJzBweCA3cHggOHB4IC00cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggN3B4IDhweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE0OiAnMHB4IDdweCA5cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNTogJzBweCA4cHggOXB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggOHB4IDEwcHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNzogJzBweCA4cHggMTFweCAtNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE4OiAnMHB4IDlweCAxMXB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggOXB4IDEycHggLTZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMDogJzBweCAxMHB4IDEzcHggLTZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMTogJzBweCAxMHB4IDEzcHggLTZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMjogJzBweCAxMHB4IDE0cHggLTZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMzogJzBweCAxMXB4IDE0cHggLTdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyNDogJzBweCAxMXB4IDE1cHggLTdweCAjeyRzaGFkb3ctY29sb3J9J1xuICApO1xufVxuXG5AZnVuY3Rpb24gX2dldC1wZW51bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMTQpLCAkY29sb3IpO1xuXG4gIEByZXR1cm4gKFxuICAgIDA6ICcwcHggMHB4IDBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTogJzBweCAxcHggMXB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDJweCAycHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDM6ICcwcHggM3B4IDRweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNDogJzBweCA0cHggNXB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA1OiAnMHB4IDVweCA4cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDY6ICcwcHggNnB4IDEwcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDc6ICcwcHggN3B4IDEwcHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDg6ICcwcHggOHB4IDEwcHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDk6ICcwcHggOXB4IDEycHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEwOiAnMHB4IDEwcHggMTRweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTE6ICcwcHggMTFweCAxNXB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMjogJzBweCAxMnB4IDE3cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEzOiAnMHB4IDEzcHggMTlweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTQ6ICcwcHggMTRweCAyMXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNTogJzBweCAxNXB4IDIycHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE2OiAnMHB4IDE2cHggMjRweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTc6ICcwcHggMTdweCAyNnB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxODogJzBweCAxOHB4IDI4cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE5OiAnMHB4IDE5cHggMjlweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjA6ICcwcHggMjBweCAzMXB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMTogJzBweCAyMXB4IDMzcHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIyOiAnMHB4IDIycHggMzVweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjM6ICcwcHggMjNweCAzNnB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyNDogJzBweCAyNHB4IDM4cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nXG4gICk7XG59XG5cbkBmdW5jdGlvbiBfZ2V0LWFtYmllbnQtbWFwKCRjb2xvciwgJG9wYWNpdHkpIHtcbiAgJHNoYWRvdy1jb2xvcjogaWYodHlwZS1vZigkY29sb3IpID09IGNvbG9yLCByZ2JhKCRjb2xvciwgJG9wYWNpdHkgKiAwLjEyKSwgJGNvbG9yKTtcblxuICBAcmV0dXJuIChcbiAgICAwOiAnMHB4IDBweCAwcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE6ICcwcHggMXB4IDNweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjogJzBweCAxcHggNXB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAzOiAnMHB4IDFweCA4cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDQ6ICcwcHggMXB4IDEwcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDU6ICcwcHggMXB4IDE0cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDY6ICcwcHggMXB4IDE4cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDc6ICcwcHggMnB4IDE2cHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDg6ICcwcHggM3B4IDE0cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDk6ICcwcHggM3B4IDE2cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEwOiAnMHB4IDRweCAxOHB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMTogJzBweCA0cHggMjBweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTI6ICcwcHggNXB4IDIycHggNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEzOiAnMHB4IDVweCAyNHB4IDRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNDogJzBweCA1cHggMjZweCA0cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTU6ICcwcHggNnB4IDI4cHggNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE2OiAnMHB4IDZweCAzMHB4IDVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNzogJzBweCA2cHggMzJweCA1cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTg6ICcwcHggN3B4IDM0cHggNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE5OiAnMHB4IDdweCAzNnB4IDZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMDogJzBweCA4cHggMzhweCA3cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjE6ICcwcHggOHB4IDQwcHggN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIyOiAnMHB4IDhweCA0MnB4IDdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMzogJzBweCA5cHggNDRweCA4cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjQ6ICcwcHggOXB4IDQ2cHggOHB4ICN7JHNoYWRvdy1jb2xvcn0nXG4gICk7XG59XG5cbi8vIFRoZSBkZWZhdWx0IGR1cmF0aW9uIHZhbHVlIGZvciBlbGV2YXRpb24gdHJhbnNpdGlvbnMuXG4kbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uOiAyODBtcyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZWFzaW5nIHZhbHVlIGZvciBlbGV2YXRpb24gdHJhbnNpdGlvbnMuXG4kbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJG1hdC1mYXN0LW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjtcblxuLy8gVGhlIGRlZmF1bHQgY29sb3IgZm9yIGVsZXZhdGlvbiBzaGFkb3dzLlxuJG1hdC1lbGV2YXRpb24tY29sb3I6IGJsYWNrICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBvcGFjaXR5IHNjYWxpbmcgdmFsdWUgZm9yIGVsZXZhdGlvbiBzaGFkb3dzLlxuJG1hdC1lbGV2YXRpb24tb3BhY2l0eTogMSAhZGVmYXVsdDtcblxuLy8gUHJlZml4IGZvciBlbGV2YXRpb24tcmVsYXRlZCBzZWxlY3RvcnMuXG4kX21hdC1lbGV2YXRpb24tcHJlZml4OiAnbWF0LWVsZXZhdGlvbi16JztcblxuLy8gQXBwbGllcyB0aGUgY29ycmVjdCBjc3MgcnVsZXMgdG8gYW4gZWxlbWVudCB0byBnaXZlIGl0IHRoZSBlbGV2YXRpb24gc3BlY2lmaWVkIGJ5ICR6VmFsdWUuXG4vLyBUaGUgJHpWYWx1ZSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjQuXG5AbWl4aW4gbWF0LWVsZXZhdGlvbigkelZhbHVlLCAkY29sb3I6ICRtYXQtZWxldmF0aW9uLWNvbG9yLCAkb3BhY2l0eTogJG1hdC1lbGV2YXRpb24tb3BhY2l0eSkge1xuICBAaWYgdHlwZS1vZigkelZhbHVlKSAhPSBudW1iZXIgb3Igbm90IHVuaXRsZXNzKCR6VmFsdWUpIHtcbiAgICBAZXJyb3IgJyR6VmFsdWUgbXVzdCBiZSBhIHVuaXRsZXNzIG51bWJlcic7XG4gIH1cbiAgQGlmICR6VmFsdWUgPCAwIG9yICR6VmFsdWUgPiAyNCB7XG4gICAgQGVycm9yICckelZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNCc7XG4gIH1cblxuICBib3gtc2hhZG93OiAje21hcC1nZXQoX2dldC11bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfSxcbiAgICAgICAgICAgICAgI3ttYXAtZ2V0KF9nZXQtcGVudW1icmEtbWFwKCRjb2xvciwgJG9wYWNpdHkpLCAkelZhbHVlKX0sXG4gICAgICAgICAgICAgICN7bWFwLWdldChfZ2V0LWFtYmllbnQtbWFwKCRjb2xvciwgJG9wYWNpdHkpLCAkelZhbHVlKX07XG59XG5cbkBtaXhpbiBfbWF0LXRoZW1lLWVsZXZhdGlvbigkelZhbHVlLCAkdGhlbWUsICRvcGFjaXR5OiAkbWF0LWVsZXZhdGlvbi1vcGFjaXR5KSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRlbGV2YXRpb24tY29sb3I6IG1hcC1nZXQoJGZvcmVncm91bmQsIGVsZXZhdGlvbik7XG4gICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdDogaWYoJGVsZXZhdGlvbi1jb2xvciA9PSBudWxsLCAkbWF0LWVsZXZhdGlvbi1jb2xvciwgJGVsZXZhdGlvbi1jb2xvcik7XG5cbiAgQGluY2x1ZGUgbWF0LWVsZXZhdGlvbigkelZhbHVlLCAkZWxldmF0aW9uLWNvbG9yLW9yLWRlZmF1bHQsICRvcGFjaXR5KTtcbn1cblxuLy8gQXBwbGllcyB0aGUgZWxldmF0aW9uIHRvIGFuIGVsZW1lbnQgaW4gYSBtYW5uZXIgdGhhdCBhbGxvd3Ncbi8vIGNvbnN1bWVycyB0byBvdmVycmlkZSBpdCB2aWEgdGhlIE1hdGVyaWFsIGVsZXZhdGlvbiBjbGFzc2VzLlxuQG1peGluIG1hdC1vdmVycmlkYWJsZS1lbGV2YXRpb24oXG4gICAgJHpWYWx1ZSxcbiAgICAkY29sb3I6ICRtYXQtZWxldmF0aW9uLWNvbG9yLFxuICAgICRvcGFjaXR5OiAkbWF0LWVsZXZhdGlvbi1vcGFjaXR5KSB7XG4gICY6bm90KFtjbGFzcyo9JyN7JF9tYXQtZWxldmF0aW9uLXByZWZpeH0nXSkge1xuICAgIEBpbmNsdWRlIG1hdC1lbGV2YXRpb24oJHpWYWx1ZSwgJGNvbG9yLCAkb3BhY2l0eSk7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKCR6VmFsdWUsICR0aGVtZSwgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGVsZXZhdGlvbi1jb2xvcjogbWFwLWdldCgkZm9yZWdyb3VuZCwgZWxldmF0aW9uKTtcbiAgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0OiBpZigkZWxldmF0aW9uLWNvbG9yID09IG51bGwsICRtYXQtZWxldmF0aW9uLWNvbG9yLCAkZWxldmF0aW9uLWNvbG9yKTtcblxuICBAaW5jbHVkZSBtYXQtb3ZlcnJpZGFibGUtZWxldmF0aW9uKCR6VmFsdWUsICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdCwgJG9wYWNpdHkpO1xufVxuXG4vLyBSZXR1cm5zIGEgc3RyaW5nIHRoYXQgY2FuIGJlIHVzZWQgYXMgdGhlIHZhbHVlIGZvciBhIHRyYW5zaXRpb24gcHJvcGVydHkgZm9yIGVsZXZhdGlvbi5cbi8vIENhbGxpbmcgdGhpcyBmdW5jdGlvbiBkaXJlY3RseSBpcyB1c2VmdWwgaW4gc2l0dWF0aW9ucyB3aGVyZSBhIGNvbXBvbmVudCBuZWVkcyB0byB0cmFuc2l0aW9uXG4vLyBtb3JlIHRoYW4gb25lIHByb3BlcnR5LlxuLy9cbi8vIC5mb28ge1xuLy8gICB0cmFuc2l0aW9uOiBtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tcHJvcGVydHktdmFsdWUoKSwgb3BhY2l0eSAxMDBtcyBlYXNlO1xuLy8gfVxuQGZ1bmN0aW9uIG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1wcm9wZXJ0eS12YWx1ZShcbiAgICAkZHVyYXRpb246ICRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICAgJGVhc2luZzogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pIHtcbiAgQHJldHVybiBib3gtc2hhZG93ICN7JGR1cmF0aW9ufSAjeyRlYXNpbmd9O1xufVxuXG4vLyBBcHBsaWVzIHRoZSBjb3JyZWN0IGNzcyBydWxlcyBuZWVkZWQgdG8gaGF2ZSBhbiBlbGVtZW50IHRyYW5zaXRpb24gYmV0d2VlbiBlbGV2YXRpb25zLlxuLy8gVGhpcyBtaXhpbiBzaG91bGQgYmUgYXBwbGllZCB0byBlbGVtZW50cyB3aG9zZSBlbGV2YXRpb24gdmFsdWVzIHdpbGwgY2hhbmdlIGRlcGVuZGluZyBvbiB0aGVpclxuLy8gY29udGV4dCAoZS5nLiB3aGVuIGFjdGl2ZSBvciBkaXNhYmxlZCkuXG4vL1xuLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogQm90aCB0aGlzIG1peGluIGFuZCB0aGUgYWJvdmUgZnVuY3Rpb24gdXNlIGRlZmF1bHQgcGFyYW1ldGVycyBzbyB0aGV5IGNhblxuLy8gYmUgdXNlZCBpbiB0aGUgc2FtZSB3YXkgYnkgY2xpZW50cy5cbkBtaXhpbiBtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24oXG4gICAgJGR1cmF0aW9uOiAkbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uLFxuICAgICRlYXNpbmc6ICRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKSB7XG4gIHRyYW5zaXRpb246IG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1wcm9wZXJ0eS12YWx1ZSgkZHVyYXRpb24sICRlYXNpbmcpO1xufVxuXG4vLyBDb2xvciBwYWxldHRlcyBmcm9tIHRoZSBNYXRlcmlhbCBEZXNpZ24gc3BlYy5cbi8vIFNlZSBodHRwczovL21hdGVyaWFsLmlvL2Rlc2lnbi9jb2xvci9cbi8vXG4vLyBDb250cmFzdCBjb2xvcnMgYXJlIGhhcmQtY29kZWQgYmVjYXVzZSBpdCBpcyB0b28gZGlmZmljdWx0IChwcm9iYWJseSBpbXBvc3NpYmxlKSB0b1xuLy8gY2FsY3VsYXRlIHRoZW0uIFRoZXNlIGNvbnRyYXN0IGNvbG9ycyBhcmUgcHVsbGVkIGZyb20gdGhlIHB1YmxpYyBNYXRlcmlhbCBEZXNpZ24gc3BlYyBzd2F0Y2hlcy5cbi8vIFdoaWxlIHRoZSBjb250cmFzdCBjb2xvcnMgaW4gdGhlIHNwZWMgYXJlIG5vdCBwcmVzY3JpcHRpdmUsIHdlIHVzZSB0aGVtIGZvciBjb252ZW5pZW5jZS5cblxuXG4vLyBAZGVwcmVjYXRlZCByZW5hbWVkIHRvICRkYXJrLXByaW1hcnktdGV4dC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiRibGFjay04Ny1vcGFjaXR5OiByZ2JhKGJsYWNrLCAwLjg3KTtcbi8vIEBkZXByZWNhdGVkIHJlbmFtZWQgdG8gJGxpZ2h0LXByaW1hcnktdGV4dC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiR3aGl0ZS04Ny1vcGFjaXR5OiByZ2JhKHdoaXRlLCAwLjg3KTtcbi8vIEBkZXByZWNhdGVkIHVzZSAkZGFyay1bc2Vjb25kYXJ5LXRleHQsZGlzYWJsZWQtdGV4dCxkaXZpZGVycyxmb2N1c2VkXSBpbnN0ZWFkLlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJGJsYWNrLTEyLW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuMTIpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRsaWdodC1bc2Vjb25kYXJ5LXRleHQsZGlzYWJsZWQtdGV4dCxkaXZpZGVycyxmb2N1c2VkXSBpbnN0ZWFkLlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTEyLW9wYWNpdHk6IHJnYmEod2hpdGUsIDAuMTIpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRkYXJrLVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kYmxhY2stNi1vcGFjaXR5OiByZ2JhKGJsYWNrLCAwLjA2KTtcbi8vIEBkZXByZWNhdGVkIHVzZSAkbGlnaHQtW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiR3aGl0ZS02LW9wYWNpdHk6IHJnYmEod2hpdGUsIDAuMDYpO1xuXG4kZGFyay1wcmltYXJ5LXRleHQ6IHJnYmEoYmxhY2ssIDAuODcpO1xuJGRhcmstc2Vjb25kYXJ5LXRleHQ6IHJnYmEoYmxhY2ssIDAuNTQpO1xuJGRhcmstZGlzYWJsZWQtdGV4dDogcmdiYShibGFjaywgMC4zOCk7XG4kZGFyay1kaXZpZGVyczogcmdiYShibGFjaywgMC4xMik7XG4kZGFyay1mb2N1c2VkOiByZ2JhKGJsYWNrLCAwLjEyKTtcbiRsaWdodC1wcmltYXJ5LXRleHQ6IHdoaXRlO1xuJGxpZ2h0LXNlY29uZGFyeS10ZXh0OiByZ2JhKHdoaXRlLCAwLjcpO1xuJGxpZ2h0LWRpc2FibGVkLXRleHQ6IHJnYmEod2hpdGUsIDAuNSk7XG4kbGlnaHQtZGl2aWRlcnM6IHJnYmEod2hpdGUsIDAuMTIpO1xuJGxpZ2h0LWZvY3VzZWQ6IHJnYmEod2hpdGUsIDAuMTIpO1xuXG4kbWF0LXJlZDogKFxuICA1MDogI2ZmZWJlZSxcbiAgMTAwOiAjZmZjZGQyLFxuICAyMDA6ICNlZjlhOWEsXG4gIDMwMDogI2U1NzM3MyxcbiAgNDAwOiAjZWY1MzUwLFxuICA1MDA6ICNmNDQzMzYsXG4gIDYwMDogI2U1MzkzNSxcbiAgNzAwOiAjZDMyZjJmLFxuICA4MDA6ICNjNjI4MjgsXG4gIDkwMDogI2I3MWMxYyxcbiAgQTEwMDogI2ZmOGE4MCxcbiAgQTIwMDogI2ZmNTI1MixcbiAgQTQwMDogI2ZmMTc0NCxcbiAgQTcwMDogI2Q1MDAwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXBpbms6IChcbiAgNTA6ICNmY2U0ZWMsXG4gIDEwMDogI2Y4YmJkMCxcbiAgMjAwOiAjZjQ4ZmIxLFxuICAzMDA6ICNmMDYyOTIsXG4gIDQwMDogI2VjNDA3YSxcbiAgNTAwOiAjZTkxZTYzLFxuICA2MDA6ICNkODFiNjAsXG4gIDcwMDogI2MyMTg1YixcbiAgODAwOiAjYWQxNDU3LFxuICA5MDA6ICM4ODBlNGYsXG4gIEExMDA6ICNmZjgwYWIsXG4gIEEyMDA6ICNmZjQwODEsXG4gIEE0MDA6ICNmNTAwNTcsXG4gIEE3MDA6ICNjNTExNjIsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1wdXJwbGU6IChcbiAgNTA6ICNmM2U1ZjUsXG4gIDEwMDogI2UxYmVlNyxcbiAgMjAwOiAjY2U5M2Q4LFxuICAzMDA6ICNiYTY4YzgsXG4gIDQwMDogI2FiNDdiYyxcbiAgNTAwOiAjOWMyN2IwLFxuICA2MDA6ICM4ZTI0YWEsXG4gIDcwMDogIzdiMWZhMixcbiAgODAwOiAjNmExYjlhLFxuICA5MDA6ICM0YTE0OGMsXG4gIEExMDA6ICNlYTgwZmMsXG4gIEEyMDA6ICNlMDQwZmIsXG4gIEE0MDA6ICNkNTAwZjksXG4gIEE3MDA6ICNhYTAwZmYsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWRlZXAtcHVycGxlOiAoXG4gIDUwOiAjZWRlN2Y2LFxuICAxMDA6ICNkMWM0ZTksXG4gIDIwMDogI2IzOWRkYixcbiAgMzAwOiAjOTU3NWNkLFxuICA0MDA6ICM3ZTU3YzIsXG4gIDUwMDogIzY3M2FiNyxcbiAgNjAwOiAjNWUzNWIxLFxuICA3MDA6ICM1MTJkYTgsXG4gIDgwMDogIzQ1MjdhMCxcbiAgOTAwOiAjMzExYjkyLFxuICBBMTAwOiAjYjM4OGZmLFxuICBBMjAwOiAjN2M0ZGZmLFxuICBBNDAwOiAjNjUxZmZmLFxuICBBNzAwOiAjNjIwMGVhLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1pbmRpZ286IChcbiAgNTA6ICNlOGVhZjYsXG4gIDEwMDogI2M1Y2FlOSxcbiAgMjAwOiAjOWZhOGRhLFxuICAzMDA6ICM3OTg2Y2IsXG4gIDQwMDogIzVjNmJjMCxcbiAgNTAwOiAjM2Y1MWI1LFxuICA2MDA6ICMzOTQ5YWIsXG4gIDcwMDogIzMwM2Y5ZixcbiAgODAwOiAjMjgzNTkzLFxuICA5MDA6ICMxYTIzN2UsXG4gIEExMDA6ICM4YzllZmYsXG4gIEEyMDA6ICM1MzZkZmUsXG4gIEE0MDA6ICMzZDVhZmUsXG4gIEE3MDA6ICMzMDRmZmUsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWJsdWU6IChcbiAgNTA6ICNlM2YyZmQsXG4gIDEwMDogI2JiZGVmYixcbiAgMjAwOiAjOTBjYWY5LFxuICAzMDA6ICM2NGI1ZjYsXG4gIDQwMDogIzQyYTVmNSxcbiAgNTAwOiAjMjE5NmYzLFxuICA2MDA6ICMxZTg4ZTUsXG4gIDcwMDogIzE5NzZkMixcbiAgODAwOiAjMTU2NWMwLFxuICA5MDA6ICMwZDQ3YTEsXG4gIEExMDA6ICM4MmIxZmYsXG4gIEEyMDA6ICM0NDhhZmYsXG4gIEE0MDA6ICMyOTc5ZmYsXG4gIEE3MDA6ICMyOTYyZmYsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1saWdodC1ibHVlOiAoXG4gIDUwOiAjZTFmNWZlLFxuICAxMDA6ICNiM2U1ZmMsXG4gIDIwMDogIzgxZDRmYSxcbiAgMzAwOiAjNGZjM2Y3LFxuICA0MDA6ICMyOWI2ZjYsXG4gIDUwMDogIzAzYTlmNCxcbiAgNjAwOiAjMDM5YmU1LFxuICA3MDA6ICMwMjg4ZDEsXG4gIDgwMDogIzAyNzdiZCxcbiAgOTAwOiAjMDE1NzliLFxuICBBMTAwOiAjODBkOGZmLFxuICBBMjAwOiAjNDBjNGZmLFxuICBBNDAwOiAjMDBiMGZmLFxuICBBNzAwOiAjMDA5MWVhLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWN5YW46IChcbiAgNTA6ICNlMGY3ZmEsXG4gIDEwMDogI2IyZWJmMixcbiAgMjAwOiAjODBkZWVhLFxuICAzMDA6ICM0ZGQwZTEsXG4gIDQwMDogIzI2YzZkYSxcbiAgNTAwOiAjMDBiY2Q0LFxuICA2MDA6ICMwMGFjYzEsXG4gIDcwMDogIzAwOTdhNyxcbiAgODAwOiAjMDA4MzhmLFxuICA5MDA6ICMwMDYwNjQsXG4gIEExMDA6ICM4NGZmZmYsXG4gIEEyMDA6ICMxOGZmZmYsXG4gIEE0MDA6ICMwMGU1ZmYsXG4gIEE3MDA6ICMwMGI4ZDQsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC10ZWFsOiAoXG4gIDUwOiAjZTBmMmYxLFxuICAxMDA6ICNiMmRmZGIsXG4gIDIwMDogIzgwY2JjNCxcbiAgMzAwOiAjNGRiNmFjLFxuICA0MDA6ICMyNmE2OWEsXG4gIDUwMDogIzAwOTY4OCxcbiAgNjAwOiAjMDA4OTdiLFxuICA3MDA6ICMwMDc5NmIsXG4gIDgwMDogIzAwNjk1YyxcbiAgOTAwOiAjMDA0ZDQwLFxuICBBMTAwOiAjYTdmZmViLFxuICBBMjAwOiAjNjRmZmRhLFxuICBBNDAwOiAjMWRlOWI2LFxuICBBNzAwOiAjMDBiZmE1LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtZ3JlZW46IChcbiAgNTA6ICNlOGY1ZTksXG4gIDEwMDogI2M4ZTZjOSxcbiAgMjAwOiAjYTVkNmE3LFxuICAzMDA6ICM4MWM3ODQsXG4gIDQwMDogIzY2YmI2YSxcbiAgNTAwOiAjNGNhZjUwLFxuICA2MDA6ICM0M2EwNDcsXG4gIDcwMDogIzM4OGUzYyxcbiAgODAwOiAjMmU3ZDMyLFxuICA5MDA6ICMxYjVlMjAsXG4gIEExMDA6ICNiOWY2Y2EsXG4gIEEyMDA6ICM2OWYwYWUsXG4gIEE0MDA6ICMwMGU2NzYsXG4gIEE3MDA6ICMwMGM4NTMsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWxpZ2h0LWdyZWVuOiAoXG4gIDUwOiAjZjFmOGU5LFxuICAxMDA6ICNkY2VkYzgsXG4gIDIwMDogI2M1ZTFhNSxcbiAgMzAwOiAjYWVkNTgxLFxuICA0MDA6ICM5Y2NjNjUsXG4gIDUwMDogIzhiYzM0YSxcbiAgNjAwOiAjN2NiMzQyLFxuICA3MDA6ICM2ODlmMzgsXG4gIDgwMDogIzU1OGIyZixcbiAgOTAwOiAjMzM2OTFlLFxuICBBMTAwOiAjY2NmZjkwLFxuICBBMjAwOiAjYjJmZjU5LFxuICBBNDAwOiAjNzZmZjAzLFxuICBBNzAwOiAjNjRkZDE3LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWxpbWU6IChcbiAgNTA6ICNmOWZiZTcsXG4gIDEwMDogI2YwZjRjMyxcbiAgMjAwOiAjZTZlZTljLFxuICAzMDA6ICNkY2U3NzUsXG4gIDQwMDogI2Q0ZTE1NyxcbiAgNTAwOiAjY2RkYzM5LFxuICA2MDA6ICNjMGNhMzMsXG4gIDcwMDogI2FmYjQyYixcbiAgODAwOiAjOWU5ZDI0LFxuICA5MDA6ICM4Mjc3MTcsXG4gIEExMDA6ICNmNGZmODEsXG4gIEEyMDA6ICNlZWZmNDEsXG4gIEE0MDA6ICNjNmZmMDAsXG4gIEE3MDA6ICNhZWVhMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXllbGxvdzogKFxuICA1MDogI2ZmZmRlNyxcbiAgMTAwOiAjZmZmOWM0LFxuICAyMDA6ICNmZmY1OWQsXG4gIDMwMDogI2ZmZjE3NixcbiAgNDAwOiAjZmZlZTU4LFxuICA1MDA6ICNmZmViM2IsXG4gIDYwMDogI2ZkZDgzNSxcbiAgNzAwOiAjZmJjMDJkLFxuICA4MDA6ICNmOWE4MjUsXG4gIDkwMDogI2Y1N2YxNyxcbiAgQTEwMDogI2ZmZmY4ZCxcbiAgQTIwMDogI2ZmZmYwMCxcbiAgQTQwMDogI2ZmZWEwMCxcbiAgQTcwMDogI2ZmZDYwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1hbWJlcjogKFxuICA1MDogI2ZmZjhlMSxcbiAgMTAwOiAjZmZlY2IzLFxuICAyMDA6ICNmZmUwODIsXG4gIDMwMDogI2ZmZDU0ZixcbiAgNDAwOiAjZmZjYTI4LFxuICA1MDA6ICNmZmMxMDcsXG4gIDYwMDogI2ZmYjMwMCxcbiAgNzAwOiAjZmZhMDAwLFxuICA4MDA6ICNmZjhmMDAsXG4gIDkwMDogI2ZmNmYwMCxcbiAgQTEwMDogI2ZmZTU3ZixcbiAgQTIwMDogI2ZmZDc0MCxcbiAgQTQwMDogI2ZmYzQwMCxcbiAgQTcwMDogI2ZmYWIwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1vcmFuZ2U6IChcbiAgNTA6ICNmZmYzZTAsXG4gIDEwMDogI2ZmZTBiMixcbiAgMjAwOiAjZmZjYzgwLFxuICAzMDA6ICNmZmI3NGQsXG4gIDQwMDogI2ZmYTcyNixcbiAgNTAwOiAjZmY5ODAwLFxuICA2MDA6ICNmYjhjMDAsXG4gIDcwMDogI2Y1N2MwMCxcbiAgODAwOiAjZWY2YzAwLFxuICA5MDA6ICNlNjUxMDAsXG4gIEExMDA6ICNmZmQxODAsXG4gIEEyMDA6ICNmZmFiNDAsXG4gIEE0MDA6ICNmZjkxMDAsXG4gIEE3MDA6ICNmZjZkMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6IGJsYWNrLFxuICApXG4pO1xuXG4kbWF0LWRlZXAtb3JhbmdlOiAoXG4gIDUwOiAjZmJlOWU3LFxuICAxMDA6ICNmZmNjYmMsXG4gIDIwMDogI2ZmYWI5MSxcbiAgMzAwOiAjZmY4YTY1LFxuICA0MDA6ICNmZjcwNDMsXG4gIDUwMDogI2ZmNTcyMixcbiAgNjAwOiAjZjQ1MTFlLFxuICA3MDA6ICNlNjRhMTksXG4gIDgwMDogI2Q4NDMxNSxcbiAgOTAwOiAjYmYzNjBjLFxuICBBMTAwOiAjZmY5ZTgwLFxuICBBMjAwOiAjZmY2ZTQwLFxuICBBNDAwOiAjZmYzZDAwLFxuICBBNzAwOiAjZGQyYzAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1icm93bjogKFxuICA1MDogI2VmZWJlOSxcbiAgMTAwOiAjZDdjY2M4LFxuICAyMDA6ICNiY2FhYTQsXG4gIDMwMDogI2ExODg3ZixcbiAgNDAwOiAjOGQ2ZTYzLFxuICA1MDA6ICM3OTU1NDgsXG4gIDYwMDogIzZkNGM0MSxcbiAgNzAwOiAjNWQ0MDM3LFxuICA4MDA6ICM0ZTM0MmUsXG4gIDkwMDogIzNlMjcyMyxcbiAgQTEwMDogI2Q3Y2NjOCxcbiAgQTIwMDogI2JjYWFhNCxcbiAgQTQwMDogIzhkNmU2MyxcbiAgQTcwMDogIzVkNDAzNyxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1ncmV5OiAoXG4gIDUwOiAjZmFmYWZhLFxuICAxMDA6ICNmNWY1ZjUsXG4gIDIwMDogI2VlZWVlZSxcbiAgMzAwOiAjZTBlMGUwLFxuICA0MDA6ICNiZGJkYmQsXG4gIDUwMDogIzllOWU5ZSxcbiAgNjAwOiAjNzU3NTc1LFxuICA3MDA6ICM2MTYxNjEsXG4gIDgwMDogIzQyNDI0MixcbiAgOTAwOiAjMjEyMTIxLFxuICBBMTAwOiAjZmZmZmZmLFxuICBBMjAwOiAjZWVlZWVlLFxuICBBNDAwOiAjYmRiZGJkLFxuICBBNzAwOiAjNjE2MTYxLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbi8vIEFsaWFzIGZvciBhbHRlcm5hdGUgc3BlbGxpbmcuXG4kbWF0LWdyYXk6ICRtYXQtZ3JleTtcblxuJG1hdC1ibHVlLWdyZXk6IChcbiAgNTA6ICNlY2VmZjEsXG4gIDEwMDogI2NmZDhkYyxcbiAgMjAwOiAjYjBiZWM1LFxuICAzMDA6ICM5MGE0YWUsXG4gIDQwMDogIzc4OTA5YyxcbiAgNTAwOiAjNjA3ZDhiLFxuICA2MDA6ICM1NDZlN2EsXG4gIDcwMDogIzQ1NWE2NCxcbiAgODAwOiAjMzc0NzRmLFxuICA5MDA6ICMyNjMyMzgsXG4gIEExMDA6ICNjZmQ4ZGMsXG4gIEEyMDA6ICNiMGJlYzUsXG4gIEE0MDA6ICM3ODkwOWMsXG4gIEE3MDA6ICM0NTVhNjQsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuLy8gQWxpYXMgZm9yIGFsdGVybmF0ZSBzcGVsbGluZy5cbiRtYXQtYmx1ZS1ncmF5OiAkbWF0LWJsdWUtZ3JleTtcblxuXG4vLyBCYWNrZ3JvdW5kIHBhbGV0dGUgZm9yIGxpZ2h0IHRoZW1lcy5cbiRtYXQtbGlnaHQtdGhlbWUtYmFja2dyb3VuZDogKFxuICBzdGF0dXMtYmFyOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgYXBwLWJhcjogICAgbWFwX2dldCgkbWF0LWdyZXksIDEwMCksXG4gIGJhY2tncm91bmQ6IG1hcF9nZXQoJG1hdC1ncmV5LCA1MCksXG4gIGhvdmVyOiAgICAgIHJnYmEoYmxhY2ssIDAuMDQpLCAvLyBUT0RPKGthcmEpOiBjaGVjayBzdHlsZSB3aXRoIE1hdGVyaWFsIERlc2lnbiBVWFxuICBjYXJkOiAgICAgICB3aGl0ZSxcbiAgZGlhbG9nOiAgICAgd2hpdGUsXG4gIGRpc2FibGVkLWJ1dHRvbjogcmdiYShibGFjaywgMC4xMiksXG4gIHJhaXNlZC1idXR0b246IHdoaXRlLFxuICBmb2N1c2VkLWJ1dHRvbjogJGRhcmstZm9jdXNlZCxcbiAgc2VsZWN0ZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgNDAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZTogbWFwX2dldCgkbWF0LWdyZXksIDIwMCksXG4gIHVuc2VsZWN0ZWQtY2hpcDogbWFwX2dldCgkbWF0LWdyZXksIDMwMCksXG4gIGRpc2FibGVkLWxpc3Qtb3B0aW9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMjAwKSxcbik7XG5cbi8vIEJhY2tncm91bmQgcGFsZXR0ZSBmb3IgZGFyayB0aGVtZXMuXG4kbWF0LWRhcmstdGhlbWUtYmFja2dyb3VuZDogKFxuICBzdGF0dXMtYmFyOiBibGFjayxcbiAgYXBwLWJhcjogICAgbWFwX2dldCgkbWF0LWdyZXksIDkwMCksXG4gIGJhY2tncm91bmQ6ICMzMDMwMzAsXG4gIGhvdmVyOiAgICAgIHJnYmEod2hpdGUsIDAuMDQpLCAvLyBUT0RPKGthcmEpOiBjaGVjayBzdHlsZSB3aXRoIE1hdGVyaWFsIERlc2lnbiBVWFxuICBjYXJkOiAgICAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlhbG9nOiAgICAgbWFwX2dldCgkbWF0LWdyZXksIDgwMCksXG4gIGRpc2FibGVkLWJ1dHRvbjogcmdiYSh3aGl0ZSwgMC4xMiksXG4gIHJhaXNlZC1idXR0b246IG1hcC1nZXQoJG1hdC1ncmV5LCA4MDApLFxuICBmb2N1c2VkLWJ1dHRvbjogJGxpZ2h0LWZvY3VzZWQsXG4gIHNlbGVjdGVkLWJ1dHRvbjogbWFwX2dldCgkbWF0LWdyZXksIDkwMCksXG4gIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbjogbWFwX2dldCgkbWF0LWdyZXksIDgwMCksXG4gIGRpc2FibGVkLWJ1dHRvbi10b2dnbGU6IGJsYWNrLFxuICB1bnNlbGVjdGVkLWNoaXA6IG1hcF9nZXQoJG1hdC1ncmV5LCA3MDApLFxuICBkaXNhYmxlZC1saXN0LW9wdGlvbjogYmxhY2ssXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGxpZ2h0IHRoZW1lcy5cbiRtYXQtbGlnaHQtdGhlbWUtZm9yZWdyb3VuZDogKFxuICBiYXNlOiAgICAgICAgICAgICAgYmxhY2ssXG4gIGRpdmlkZXI6ICAgICAgICAgICAkZGFyay1kaXZpZGVycyxcbiAgZGl2aWRlcnM6ICAgICAgICAgICRkYXJrLWRpdmlkZXJzLFxuICBkaXNhYmxlZDogICAgICAgICAgJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgZGlzYWJsZWQtYnV0dG9uOiAgIHJnYmEoYmxhY2ssIDAuMjYpLFxuICBkaXNhYmxlZC10ZXh0OiAgICAgJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgZWxldmF0aW9uOiAgICAgICAgIGJsYWNrLFxuICBoaW50LXRleHQ6ICAgICAgICAgJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgc2Vjb25kYXJ5LXRleHQ6ICAgICRkYXJrLXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiAgICAgICAgICAgICAgcmdiYShibGFjaywgMC41NCksXG4gIGljb25zOiAgICAgICAgICAgICByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgdGV4dDogICAgICAgICAgICAgIHJnYmEoYmxhY2ssIDAuODcpLFxuICBzbGlkZXItbWluOiAgICAgICAgcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1vZmY6ICAgICAgICByZ2JhKGJsYWNrLCAwLjI2KSxcbiAgc2xpZGVyLW9mZi1hY3RpdmU6IHJnYmEoYmxhY2ssIDAuMzgpLFxuKTtcblxuLy8gRm9yZWdyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiRtYXQtZGFyay10aGVtZS1mb3JlZ3JvdW5kOiAoXG4gIGJhc2U6ICAgICAgICAgICAgICB3aGl0ZSxcbiAgZGl2aWRlcjogICAgICAgICAgICRsaWdodC1kaXZpZGVycyxcbiAgZGl2aWRlcnM6ICAgICAgICAgICRsaWdodC1kaXZpZGVycyxcbiAgZGlzYWJsZWQ6ICAgICAgICAgICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246ICAgcmdiYSh3aGl0ZSwgMC4zKSxcbiAgZGlzYWJsZWQtdGV4dDogICAgICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246ICAgICAgICAgYmxhY2ssXG4gIGhpbnQtdGV4dDogICAgICAgICAkbGlnaHQtZGlzYWJsZWQtdGV4dCxcbiAgc2Vjb25kYXJ5LXRleHQ6ICAgICRsaWdodC1zZWNvbmRhcnktdGV4dCxcbiAgaWNvbjogICAgICAgICAgICAgIHdoaXRlLFxuICBpY29uczogICAgICAgICAgICAgd2hpdGUsXG4gIHRleHQ6ICAgICAgICAgICAgICB3aGl0ZSxcbiAgc2xpZGVyLW1pbjogICAgICAgIHdoaXRlLFxuICBzbGlkZXItb2ZmOiAgICAgICAgcmdiYSh3aGl0ZSwgMC4zKSxcbiAgc2xpZGVyLW9mZi1hY3RpdmU6IHJnYmEod2hpdGUsIDAuMyksXG4pO1xuXG5cblxuLy8gRm9yIGEgZ2l2ZW4gaHVlIGluIGEgcGFsZXR0ZSwgcmV0dXJuIHRoZSBjb250cmFzdCBjb2xvciBmcm9tIHRoZSBtYXAgb2YgY29udHJhc3QgcGFsZXR0ZXMuXG4vLyBAcGFyYW0gJGNvbG9yLW1hcFxuLy8gQHBhcmFtICRodWVcbkBmdW5jdGlvbiBtYXQtY29udHJhc3QoJHBhbGV0dGUsICRodWUpIHtcbiAgQHJldHVybiBtYXAtZ2V0KG1hcC1nZXQoJHBhbGV0dGUsIGNvbnRyYXN0KSwgJGh1ZSk7XG59XG5cblxuLy8gQ3JlYXRlcyBhIG1hcCBvZiBodWVzIHRvIGNvbG9ycyBmb3IgYSB0aGVtZS4gVGhpcyBpcyB1c2VkIHRvIGRlZmluZSBhIHRoZW1lIHBhbGV0dGUgaW4gdGVybXNcbi8vIG9mIHRoZSBNYXRlcmlhbCBEZXNpZ24gaHVlcy5cbi8vIEBwYXJhbSAkY29sb3ItbWFwXG4vLyBAcGFyYW0gJHByaW1hcnlcbi8vIEBwYXJhbSAkbGlnaHRlclxuQGZ1bmN0aW9uIG1hdC1wYWxldHRlKCRiYXNlLXBhbGV0dGUsICRkZWZhdWx0OiA1MDAsICRsaWdodGVyOiAxMDAsICRkYXJrZXI6IDcwMCwgJHRleHQ6ICRkZWZhdWx0KSB7XG4gICRyZXN1bHQ6IG1hcF9tZXJnZSgkYmFzZS1wYWxldHRlLCAoXG4gICAgZGVmYXVsdDogbWFwLWdldCgkYmFzZS1wYWxldHRlLCAkZGVmYXVsdCksXG4gICAgbGlnaHRlcjogbWFwLWdldCgkYmFzZS1wYWxldHRlLCAkbGlnaHRlciksXG4gICAgZGFya2VyOiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRkYXJrZXIpLFxuICAgIHRleHQ6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJHRleHQpLFxuXG4gICAgZGVmYXVsdC1jb250cmFzdDogbWF0LWNvbnRyYXN0KCRiYXNlLXBhbGV0dGUsICRkZWZhdWx0KSxcbiAgICBsaWdodGVyLWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGxpZ2h0ZXIpLFxuICAgIGRhcmtlci1jb250cmFzdDogbWF0LWNvbnRyYXN0KCRiYXNlLXBhbGV0dGUsICRkYXJrZXIpXG4gICkpO1xuXG4gIC8vIEZvciBlYWNoIGh1ZSBpbiB0aGUgcGFsZXR0ZSwgYWRkIGEgXCItY29udHJhc3RcIiBjb2xvciB0byB0aGUgbWFwLlxuICBAZWFjaCAkaHVlLCAkY29sb3IgaW4gJGJhc2UtcGFsZXR0ZSB7XG4gICAgJHJlc3VsdDogbWFwX21lcmdlKCRyZXN1bHQsIChcbiAgICAgICcjeyRodWV9LWNvbnRyYXN0JzogbWF0LWNvbnRyYXN0KCRiYXNlLXBhbGV0dGUsICRodWUpXG4gICAgKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cblxuLy8gR2V0cyBhIGNvbG9yIGZyb20gYSB0aGVtZSBwYWxldHRlICh0aGUgb3V0cHV0IG9mIG1hdC1wYWxldHRlKS5cbi8vIFRoZSBodWUgY2FuIGJlIG9uZSBvZiB0aGUgc3RhbmRhcmQgdmFsdWVzICg1MDAsIEE0MDAsIGV0Yy4pLCBvbmUgb2YgdGhlIHRocmVlIHByZWNvbmZpZ3VyZWRcbi8vIGh1ZXMgKGRlZmF1bHQsIGxpZ2h0ZXIsIGRhcmtlciksIG9yIGFueSBvZiB0aGUgYWZvcmVtZW50aW9uZWQgcHJlZml4ZWQgd2l0aCBcIi1jb250cmFzdFwiLlxuLy9cbi8vIEBwYXJhbSAkY29sb3ItbWFwIFRoZSB0aGVtZSBwYWxldHRlIChvdXRwdXQgb2YgbWF0LXBhbGV0dGUpLlxuLy8gQHBhcmFtICRodWUgVGhlIGh1ZSBmcm9tIHRoZSBwYWxldHRlIHRvIHVzZS4gSWYgdGhpcyBpcyBhIHZhbHVlIGJldHdlZW4gMCBhbmQgMSwgaXQgd2lsbFxuLy8gICAgIGJlIHRyZWF0ZWQgYXMgb3BhY2l0eS5cbi8vIEBwYXJhbSAkb3BhY2l0eSBUaGUgYWxwaGEgY2hhbm5lbCB2YWx1ZSBmb3IgdGhlIGNvbG9yLlxuQGZ1bmN0aW9uIG1hdC1jb2xvcigkcGFsZXR0ZSwgJGh1ZTogZGVmYXVsdCwgJG9wYWNpdHk6IG51bGwpIHtcbiAgLy8gSWYgaHVlS2V5IGlzIGEgbnVtYmVyIGJldHdlZW4gemVybyBhbmQgb25lLCB0aGVuIGl0IGFjdHVhbGx5IGNvbnRhaW5zIGFuXG4gIC8vIG9wYWNpdHkgdmFsdWUsIHNvIHJlY2FsbCB0aGlzIGZ1bmN0aW9uIHdpdGggdGhlIGRlZmF1bHQgaHVlIGFuZCB0aGF0IGdpdmVuIG9wYWNpdHkuXG4gIEBpZiB0eXBlLW9mKCRodWUpID09IG51bWJlciBhbmQgJGh1ZSA+PSAwIGFuZCAkaHVlIDw9IDEge1xuICAgIEByZXR1cm4gbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LCAkaHVlKTtcbiAgfVxuXG4gICRjb2xvcjogbWFwLWdldCgkcGFsZXR0ZSwgJGh1ZSk7XG5cbiAgQGlmICh0eXBlLW9mKCRjb2xvcikgIT0gY29sb3IpIHtcbiAgICAvLyBJZiB0aGUgJGNvbG9yIHJlc29sdmVkIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSBhIGNvbG9yIChlLmcuIGEgQ1NTIHZhcmlhYmxlKSxcbiAgICAvLyB3ZSBjYW4ndCBhcHBseSB0aGUgb3BhY2l0eSBhbnl3YXkgc28gd2UgcmV0dXJuIHRoZSB2YWx1ZSBhcyBpcywgb3RoZXJ3aXNlIFNhc3MgY2FuXG4gICAgLy8gdGhyb3cgYW4gZXJyb3Igb3Igb3V0cHV0IHNvbWV0aGluZyBpbnZhbGlkLlxuICAgIEByZXR1cm4gJGNvbG9yO1xuICB9XG5cbiAgQHJldHVybiByZ2JhKCRjb2xvciwgaWYoJG9wYWNpdHkgPT0gbnVsbCwgb3BhY2l0eSgkY29sb3IpLCAkb3BhY2l0eSkpO1xufVxuXG5cbi8vIENyZWF0ZXMgYSBjb250YWluZXIgb2JqZWN0IGZvciBhIGxpZ2h0IHRoZW1lIHRvIGJlIGdpdmVuIHRvIGluZGl2aWR1YWwgY29tcG9uZW50IHRoZW1lIG1peGlucy5cbkBmdW5jdGlvbiBtYXQtbGlnaHQtdGhlbWUoJHByaW1hcnksICRhY2NlbnQsICR3YXJuOiBtYXQtcGFsZXR0ZSgkbWF0LXJlZCkpIHtcbiAgQHJldHVybiAoXG4gICAgcHJpbWFyeTogJHByaW1hcnksXG4gICAgYWNjZW50OiAkYWNjZW50LFxuICAgIHdhcm46ICR3YXJuLFxuICAgIGlzLWRhcms6IGZhbHNlLFxuICAgIGZvcmVncm91bmQ6ICRtYXQtbGlnaHQtdGhlbWUtZm9yZWdyb3VuZCxcbiAgICBiYWNrZ3JvdW5kOiAkbWF0LWxpZ2h0LXRoZW1lLWJhY2tncm91bmQsXG4gICk7XG59XG5cblxuLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIGEgZGFyayB0aGVtZSB0byBiZSBnaXZlbiB0byBpbmRpdmlkdWFsIGNvbXBvbmVudCB0aGVtZSBtaXhpbnMuXG5AZnVuY3Rpb24gbWF0LWRhcmstdGhlbWUoJHByaW1hcnksICRhY2NlbnQsICR3YXJuOiBtYXQtcGFsZXR0ZSgkbWF0LXJlZCkpIHtcbiAgQHJldHVybiAoXG4gICAgcHJpbWFyeTogJHByaW1hcnksXG4gICAgYWNjZW50OiAkYWNjZW50LFxuICAgIHdhcm46ICR3YXJuLFxuICAgIGlzLWRhcms6IHRydWUsXG4gICAgZm9yZWdyb3VuZDogJG1hdC1kYXJrLXRoZW1lLWZvcmVncm91bmQsXG4gICAgYmFja2dyb3VuZDogJG1hdC1kYXJrLXRoZW1lLWJhY2tncm91bmQsXG4gICk7XG59XG5cblxuXG4kbWF0LXJpcHBsZS1jb2xvci1vcGFjaXR5OiAwLjE7XG5cbkBtaXhpbiBtYXQtcmlwcGxlKCkge1xuXG4gIC8vIFRoZSBob3N0IGVsZW1lbnQgb2YgYW4gbWF0LXJpcHBsZSBkaXJlY3RpdmUgc2hvdWxkIGFsd2F5cyBoYXZlIGEgcG9zaXRpb24gb2YgXCJhYnNvbHV0ZVwiIG9yXG4gIC8vIFwicmVsYXRpdmVcIiBzbyB0aGF0IHRoZSByaXBwbGVzIGluc2lkZSBhcmUgY29ycmVjdGx5IHBvc2l0aW9uZWQgcmVsYXRpdmVseSB0byB0aGUgY29udGFpbmVyLlxuICAubWF0LXJpcHBsZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC8vIEJ5IGRlZmF1bHQsIGV2ZXJ5IHJpcHBsZSBjb250YWluZXIgc2hvdWxkIGhhdmUgcG9zaXRpb246IHJlbGF0aXZlIGluIGZhdm9yIG9mIGNyZWF0aW5nIGFuXG4gICAgLy8gZWFzeSBBUEkgZm9yIGRldmVsb3BlcnMgdXNpbmcgdGhlIE1hdFJpcHBsZSBkaXJlY3RpdmUuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWQge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIHRyYW5zaXRpb246IG9wYWNpdHksIHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcblxuICAgIC8vIEluIGhpZ2ggY29udHJhc3QgbW9kZSB0aGUgcmlwcGxlIGlzIG9wYXF1ZSwgY2F1c2luZyBpdCB0byBvYnN0cnVjdCB0aGUgY29udGVudC5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vKiBUaGVtZSBmb3IgdGhlIHJpcHBsZSBlbGVtZW50cy4qL1xuQG1peGluIG1hdC1yaXBwbGUtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXBfZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRmb3JlZ3JvdW5kLWJhc2U6IG1hcF9nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuXG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIC8vIElmIHRoZSByaXBwbGUgY29sb3IgaXMgcmVzb2x2ZXMgdG8gYSBjb2xvciAqdHlwZSosIHdlIGNhbiB1c2UgaXQgZGlyZWN0bHksIG90aGVyd2lzZVxuICAgIC8vIChlLmcuIGl0IHJlc29sdmVzIHRvIGEgQ1NTIHZhcmlhYmxlKSB3ZSBmYWxsIGJhY2sgdG8gdXNpbmcgdGhlIGNvbG9yIGFuZCBzZXR0aW5nIGFuIG9wYWNpdHkuXG4gICAgQGlmICh0eXBlLW9mKCRmb3JlZ3JvdW5kLWJhc2UpID09IGNvbG9yKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRmb3JlZ3JvdW5kLWJhc2UsICRtYXQtcmlwcGxlLWNvbG9yLW9wYWNpdHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9yZWdyb3VuZC1iYXNlO1xuICAgICAgb3BhY2l0eTogJG1hdC1yaXBwbGUtY29sb3Itb3BhY2l0eTtcbiAgICB9XG4gIH1cbn1cblxuXG5cbi8vIFV0aWxpdHkgZm9yIGZldGNoaW5nIGEgbmVzdGVkIHZhbHVlIGZyb20gYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgJG5hbWUpIHtcbiAgQHJldHVybiBtYXAtZ2V0KG1hcC1nZXQoJGNvbmZpZywgJGxldmVsKSwgJG5hbWUpO1xufVxuXG4vLyBHZXRzIHRoZSBmb250IHNpemUgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgZm9udC1zaXplKTtcbn1cblxuLy8gR2V0cyB0aGUgbGluZSBoZWlnaHQgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBsaW5lLWhlaWdodCk7XG59XG5cbi8vIEdldHMgdGhlIGZvbnQgd2VpZ2h0IGZvciBhIGxldmVsIGluc2lkZSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIG1hdC1mb250LXdlaWdodCgkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgZm9udC13ZWlnaHQpO1xufVxuXG4vLyBHZXRzIHRoZSBsZXR0ZXIgc3BhY2luZyBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtbGV0dGVyLXNwYWNpbmcoJGNvbmZpZywgJGxldmVsKSB7XG4gIEByZXR1cm4gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGxldHRlci1zcGFjaW5nKTtcbn1cblxuLy8gR2V0cyB0aGUgZm9udC1mYW1pbHkgZnJvbSBhIHR5cG9ncmFwaHkgY29uZmlnIGFuZCByZW1vdmVzIHRoZSBxdW90ZXMgYXJvdW5kIGl0LlxuQGZ1bmN0aW9uIG1hdC1mb250LWZhbWlseSgkY29uZmlnLCAkbGV2ZWw6IG51bGwpIHtcbiAgJGZvbnQtZmFtaWx5OiBtYXAtZ2V0KCRjb25maWcsIGZvbnQtZmFtaWx5KTtcblxuICBAaWYgJGxldmVsICE9IG51bGwge1xuICAgICRmb250LWZhbWlseTogX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGZvbnQtZmFtaWx5KTtcbiAgfVxuXG4gIC8vIEd1YXJkIGFnYWluc3QgdW5xdW90aW5nIG5vbi1zdHJpbmcgdmFsdWVzLCBiZWNhdXNlIGl0J3MgZGVwcmVjYXRlZC5cbiAgQHJldHVybiBpZih0eXBlLW9mKCRmb250LWZhbWlseSkgPT0gc3RyaW5nLCB1bnF1b3RlKCRmb250LWZhbWlseSksICRmb250LWZhbWlseSk7XG59XG5cbi8vIE91dHB1dHMgdGhlIHNob3J0aGFuZCBgZm9udGAgQ1NTIHByb3BlcnR5LCBiYXNlZCBvbiBhIHNldCBvZiB0eXBvZ3JhcGh5IHZhbHVlcy4gRmFsbHMgYmFjayB0b1xuLy8gdGhlIGluZGl2aWR1YWwgcHJvcGVydGllcyBpZiBhIHZhbHVlIHRoYXQgaXNuJ3QgYWxsb3dlZCBpbiB0aGUgc2hvcnRoYW5kIGlzIHBhc3NlZCBpbi5cbkBtaXhpbiBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZCgkZm9udC1zaXplLCAkZm9udC13ZWlnaHQsICRsaW5lLWhlaWdodCwgJGZvbnQtZmFtaWx5KSB7XG4gIC8vIElmIGFueSBvZiB0aGUgdmFsdWVzIGFyZSBzZXQgdG8gYGluaGVyaXRgLCB3ZSBjYW4ndCB1c2UgdGhlIHNob3J0aGFuZFxuICAvLyBzbyB3ZSBmYWxsIGJhY2sgdG8gcGFzc2luZyBpbiB0aGUgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzLlxuICBAaWYgKCRmb250LXNpemUgPT0gaW5oZXJpdCBvclxuICAgICAgICRmb250LXdlaWdodCA9PSBpbmhlcml0IG9yXG4gICAgICAgJGxpbmUtaGVpZ2h0ID09IGluaGVyaXQgb3JcbiAgICAgICAkZm9udC1mYW1pbHkgPT0gaW5oZXJpdCBvclxuICAgICAgICRmb250LXNpemUgPT0gbnVsbCBvclxuICAgICAgICRmb250LXdlaWdodCA9PSBudWxsIG9yXG4gICAgICAgJGxpbmUtaGVpZ2h0ID09IG51bGwgb3JcbiAgICAgICAkZm9udC1mYW1pbHkgPT0gbnVsbCkge1xuXG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBPdGhlcndpc2UgdXNlIHRoZSBzaG9ydGhhbmQgYGZvbnRgLCBiZWNhdXNlIGl0J3MgdGhlIGxlYXN0IGFtb3VudCBvZiBieXRlcy4gTm90ZVxuICAgIC8vIHRoYXQgd2UgbmVlZCB0byB1c2UgaW50ZXJwb2xhdGlvbiBmb3IgYGZvbnQtc2l6ZS9saW5lLWhlaWdodGAgaW4gb3JkZXIgdG8gcHJldmVudFxuICAgIC8vIFNhc3MgZnJvbSBkaXZpZGluZyB0aGUgdHdvIHZhbHVlcy5cbiAgICBmb250OiAkZm9udC13ZWlnaHQgI3skZm9udC1zaXplfS8jeyRsaW5lLWhlaWdodH0gJGZvbnQtZmFtaWx5O1xuICB9XG59XG5cbi8vIENvbnZlcnRzIGEgdHlwb2dyYXBoeSBsZXZlbCBpbnRvIENTUyBzdHlsZXMuXG5AbWl4aW4gbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsICRsZXZlbCkge1xuICAkZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsICRsZXZlbCk7XG4gICRmb250LXdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsICRsZXZlbCk7XG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsICRsZXZlbCk7XG4gICRmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsICRsZXZlbCk7XG5cbiAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktZm9udC1zaG9ydGhhbmQoJGZvbnQtc2l6ZSwgJGZvbnQtd2VpZ2h0LCAkbGluZS1oZWlnaHQsICRmb250LWZhbWlseSk7XG4gIGxldHRlci1zcGFjaW5nOiBtYXQtbGV0dGVyLXNwYWNpbmcoJGNvbmZpZywgJGxldmVsKTtcbn1cblxuXG5AbWl4aW4gbWF0LW9wdGlvbi10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1vcHRpb24ge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJjpob3Zlcjpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpLFxuICAgICY6Zm9jdXM6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICB9XG5cbiAgICAvLyBJbiBtdWx0aXBsZSBtb2RlIHRoZXJlIGlzIGEgY2hlY2tib3ggdG8gc2hvdyB0aGF0IHRoZSBvcHRpb24gaXMgc2VsZWN0ZWQuXG4gICAgJi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgIH1cblxuICAgICYubWF0LWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIH1cblxuICAgICYubWF0LW9wdGlvbi1kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gIH1cblxuICAubWF0LWFjY2VudCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtd2FybiAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1vcHRpb24tdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtb3B0aW9uIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LW9wdGdyb3VwLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtb3B0Z3JvdXAtZGlzYWJsZWQgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaGludC10ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LW9wdGdyb3VwLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxufVxuXG5cblxuQG1peGluIG1hdC1wc2V1ZG8tY2hlY2tib3gtdGhlbWUoJHRoZW1lKSB7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuXG4gIC8vIE5PVEUodHJhdmlza2F1Zm1hbik6IFdoaWxlIHRoZSBzcGVjIGNhbGxzIGZvciB0cmFuc2x1Y2VudCBibGFja3Mvd2hpdGVzIGZvciBkaXNhYmxlZCBjb2xvcnMsXG4gIC8vIHRoaXMgZG9lcyBub3Qgd29yayB3ZWxsIHdpdGggZWxlbWVudHMgbGF5ZXJlZCBvbiB0b3Agb2Ygb25lIGFub3RoZXIuIFRvIGdldCBhcm91bmQgdGhpcyB3ZVxuICAvLyBibGVuZCB0aGUgY29sb3JzIHRvZ2V0aGVyIGJhc2VkIG9uIHRoZSBiYXNlIGNvbG9yIGFuZCB0aGUgdGhlbWUgYmFja2dyb3VuZC5cbiAgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyazogIzY4Njg2ODtcbiAgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQ6ICNiMGIwYjA7XG4gICRkaXNhYmxlZC1jb2xvcjogaWYoJGlzLWRhcmstdGhlbWUsICR3aGl0ZS0zMHBjdC1vcGFjaXR5LW9uLWRhcmssICRibGFjay0yNnBjdC1vcGFjaXR5LW9uLWxpZ2h0KTtcbiAgJGNvbG9yZWQtYm94LXNlbGVjdG9yOiAnLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCwgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSc7XG5cbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gge1xuICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpLCBzZWNvbmRhcnktdGV4dCk7XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcbiAgICB9XG4gIH1cblxuICAubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgY29sb3I6ICRkaXNhYmxlZC1jb2xvcjtcbiAgfVxuXG4gIC8vIERlZmF1bHQgdG8gdGhlIGFjY2VudCBjb2xvci4gTm90ZSB0aGF0IHRoZSBwc2V1ZG8gY2hlY2tib3hlcyBhcmUgbWVhbnQgdG8gaW5oZXJpdCB0aGVcbiAgLy8gdGhlbWUgZnJvbSB0aGVpciBwYXJlbnQsIHJhdGhlciB0aGFuIGltcGxlbWVudGluZyB0aGVpciBvd24gdGhlbWluZywgd2hpY2ggaXMgd2h5IHdlXG4gIC8vIGRvbid0IGF0dGFjaCB0byB0aGUgYG1hdC0qYCBjbGFzc2VzLlxuICAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLFxuICAubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIGFjY2VudCkpO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIHByaW1hcnkpKTtcbiAgfVxuXG4gIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCB3YXJuKSk7XG4gIH1cblxuICAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICAmLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZDogJGRpc2FibGVkLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gUmVwcmVzZW50cyBhIHR5cG9ncmFwaHkgbGV2ZWwgZnJvbSB0aGUgTWF0ZXJpYWwgZGVzaWduIHNwZWMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktbGV2ZWwoXG4gICRmb250LXNpemUsXG4gICRsaW5lLWhlaWdodDogJGZvbnQtc2l6ZSxcbiAgJGZvbnQtd2VpZ2h0OiA0MDAsXG4gICRmb250LWZhbWlseTogbnVsbCxcbiAgJGxldHRlci1zcGFjaW5nOiBudWxsKSB7XG5cbiAgQHJldHVybiAoXG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLFxuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQsXG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodCxcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LFxuICAgIGxldHRlci1zcGFjaW5nOiAkbGV0dGVyLXNwYWNpbmdcbiAgKTtcbn1cblxuLy8gUmVwcmVzZW50cyBhIGNvbGxlY3Rpb24gb2YgdHlwb2dyYXBoeSBsZXZlbHMuXG4vLyBEZWZhdWx0cyBjb21lIGZyb20gaHR0cHM6Ly9tYXRlcmlhbC5pby9ndWlkZWxpbmVzL3N0eWxlL3R5cG9ncmFwaHkuaHRtbFxuLy8gTm90ZTogVGhlIHNwZWMgZG9lc24ndCBtZW50aW9uIGxldHRlciBzcGFjaW5nLiBUaGUgdmFsdWVzIGhlcmUgY29tZSBmcm9tXG4vLyBleWViYWxsaW5nIGl0IHVudGlsIGl0IGxvb2tlZCBleGFjdGx5IGxpa2UgdGhlIHNwZWMgZXhhbXBsZXMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktY29uZmlnKFxuICAkZm9udC1mYW1pbHk6ICAgJ1JvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmJyxcbiAgJGRpc3BsYXktNDogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDExMnB4LCAxMTJweCwgMzAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjA1ZW0pLFxuICAkZGlzcGxheS0zOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNTZweCwgNTZweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW0pLFxuICAkZGlzcGxheS0yOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoNDVweCwgNDhweCwgNDAwLCAkbGV0dGVyLXNwYWNpbmc6IC0wLjAwNWVtKSxcbiAgJGRpc3BsYXktMTogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDM0cHgsIDQwcHgsIDQwMCksXG4gICRoZWFkbGluZTogICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgyNHB4LCAzMnB4LCA0MDApLFxuICAkdGl0bGU6ICAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMjBweCwgMzJweCwgNTAwKSxcbiAgJHN1YmhlYWRpbmctMjogIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE2cHgsIDI4cHgsIDQwMCksXG4gICRzdWJoZWFkaW5nLTE6ICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNXB4LCAyNHB4LCA0MDApLFxuICAkYm9keS0yOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMjRweCwgNTAwKSxcbiAgJGJvZHktMTogICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE0cHgsIDIwcHgsIDQwMCksXG4gICRjYXB0aW9uOiAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxMnB4LCAyMHB4LCA0MDApLFxuICAkYnV0dG9uOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMTRweCwgNTAwKSxcbiAgLy8gTGluZS1oZWlnaHQgbXVzdCBiZSB1bml0LWxlc3MgZnJhY3Rpb24gb2YgdGhlIGZvbnQtc2l6ZS5cbiAgJGlucHV0OiAgICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKGluaGVyaXQsIDEuMTI1LCA0MDApXG4pIHtcblxuICAvLyBEZWNsYXJlIGFuIGluaXRpYWwgbWFwIHdpdGggYWxsIG9mIHRoZSBsZXZlbHMuXG4gICRjb25maWc6IChcbiAgICBkaXNwbGF5LTQ6ICAgICAgJGRpc3BsYXktNCxcbiAgICBkaXNwbGF5LTM6ICAgICAgJGRpc3BsYXktMyxcbiAgICBkaXNwbGF5LTI6ICAgICAgJGRpc3BsYXktMixcbiAgICBkaXNwbGF5LTE6ICAgICAgJGRpc3BsYXktMSxcbiAgICBoZWFkbGluZTogICAgICAgJGhlYWRsaW5lLFxuICAgIHRpdGxlOiAgICAgICAgICAkdGl0bGUsXG4gICAgc3ViaGVhZGluZy0yOiAgICRzdWJoZWFkaW5nLTIsXG4gICAgc3ViaGVhZGluZy0xOiAgICRzdWJoZWFkaW5nLTEsXG4gICAgYm9keS0yOiAgICAgICAgICRib2R5LTIsXG4gICAgYm9keS0xOiAgICAgICAgICRib2R5LTEsXG4gICAgY2FwdGlvbjogICAgICAgICRjYXB0aW9uLFxuICAgIGJ1dHRvbjogICAgICAgICAkYnV0dG9uLFxuICAgIGlucHV0OiAgICAgICAgICAkaW5wdXQsXG4gICk7XG5cbiAgLy8gTG9vcCB0aHJvdWdoIHRoZSBsZXZlbHMgYW5kIHNldCB0aGUgYGZvbnQtZmFtaWx5YCBvZiB0aGUgb25lcyB0aGF0IGRvbid0IGhhdmUgb25lIHRvIHRoZSBiYXNlLlxuICAvLyBOb3RlIHRoYXQgU2FzcyBjYW4ndCBtb2RpZnkgbWFwcyBpbiBwbGFjZSwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIG1lcmdlIGFuZCByZS1hc3NpZ24uXG4gIEBlYWNoICRrZXksICRsZXZlbCBpbiAkY29uZmlnIHtcbiAgICBAaWYgbWFwLWdldCgkbGV2ZWwsIGZvbnQtZmFtaWx5KSA9PSBudWxsIHtcbiAgICAgICRuZXctbGV2ZWw6IG1hcC1tZXJnZSgkbGV2ZWwsIChmb250LWZhbWlseTogJGZvbnQtZmFtaWx5KSk7XG4gICAgICAkY29uZmlnOiBtYXAtbWVyZ2UoJGNvbmZpZywgKCRrZXk6ICRuZXctbGV2ZWwpKTtcbiAgICB9XG4gIH1cblxuICAvLyBBZGQgdGhlIGJhc2UgZm9udCBmYW1pbHkgdG8gdGhlIGNvbmZpZy5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJGNvbmZpZywgKGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHkpKTtcbn1cblxuLy8gQWRkcyB0aGUgYmFzZSB0eXBvZ3JhcGh5IHN0eWxlcywgYmFzZWQgb24gYSBjb25maWcuXG5AbWl4aW4gbWF0LWJhc2UtdHlwb2dyYXBoeSgkY29uZmlnLCAkc2VsZWN0b3I6ICcubWF0LXR5cG9ncmFwaHknKSB7XG4gIC5tYXQtaDEsIC5tYXQtaGVhZGxpbmUsICN7JHNlbGVjdG9yfSBoMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGhlYWRsaW5lKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oMiwgLm1hdC10aXRsZSwgI3skc2VsZWN0b3J9IGgyIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gIH1cblxuICAubWF0LWgzLCAubWF0LXN1YmhlYWRpbmctMiwgI3skc2VsZWN0b3J9IGgzIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oNCwgLm1hdC1zdWJoZWFkaW5nLTEsICN7JHNlbGVjdG9yfSBoNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgfVxuXG4gIC8vIE5vdGU6IHRoZSBzcGVjIGRvZXNuJ3QgaGF2ZSBhbnl0aGluZyB0aGF0IHdvdWxkIGNvcnJlc3BvbmQgdG8gaDUgYW5kIGg2LCBidXQgd2UgYWRkIHRoZXNlIGZvclxuICAvLyBjb25zaXN0ZW5jeS4gVGhlIGZvbnQgc2l6ZXMgY29tZSBmcm9tIHRoZSBDaHJvbWUgdXNlciBhZ2VudCBzdHlsZXMgd2hpY2ggaGF2ZSBoNSBhdCAwLjgzZW1cbiAgLy8gYW5kIGg2IGF0IDAuNjdlbS5cbiAgLm1hdC1oNSwgI3skc2VsZWN0b3J9IGg1IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZChcbiAgICAgICAvLyBjYWxjIGlzIHVzZWQgaGVyZSB0byBzdXBwb3J0IGNzcyB2YXJpYWJsZXNcbiAgICAgIGNhbGMoI3ttYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSl9ICogMC44MyksXG4gICAgICBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSlcbiAgICApO1xuXG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgfVxuXG4gIC5tYXQtaDYsICN7JHNlbGVjdG9yfSBoNiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktZm9udC1zaG9ydGhhbmQoXG4gICAgICAgLy8gY2FsYyBpcyB1c2VkIGhlcmUgdG8gc3VwcG9ydCBjc3MgdmFyaWFibGVzXG4gICAgICBjYWxjKCN7bWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpfSAqIDAuNjcpLFxuICAgICAgbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSksXG4gICAgICBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTEpXG4gICAgKTtcblxuICAgIG1hcmdpbjogMCAwIDEycHg7XG4gIH1cblxuICAubWF0LWJvZHktc3Ryb25nLCAubWF0LWJvZHktMiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMik7XG4gIH1cblxuICAubWF0LWJvZHksIC5tYXQtYm9keS0xLCAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuXG4gICAgcCB7XG4gICAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc21hbGwsIC5tYXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGNhcHRpb24pO1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTQsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktNCk7XG4gICAgbWFyZ2luOiAwIDAgNTZweDtcbiAgfVxuXG4gIC5tYXQtZGlzcGxheS0zLCAjeyRzZWxlY3Rvcn0gLm1hdC1kaXNwbGF5LTMge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBkaXNwbGF5LTMpO1xuICAgIG1hcmdpbjogMCAwIDY0cHg7XG4gIH1cblxuICAubWF0LWRpc3BsYXktMiwgI3skc2VsZWN0b3J9IC5tYXQtZGlzcGxheS0yIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgZGlzcGxheS0yKTtcbiAgICBtYXJnaW46IDAgMCA2NHB4O1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTEsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktMSk7XG4gICAgbWFyZ2luOiAwIDAgNjRweDtcbiAgfVxufVxuXG5cblxuXG5AbWl4aW4gbWF0LWF1dG9jb21wbGV0ZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgLy8gU2VsZWN0ZWQgb3B0aW9ucyBpbiBhdXRvY29tcGxldGVzIHNob3VsZCBub3QgYmUgZ3JheSwgYnV0IHdlXG4gICAgLy8gb25seSB3YW50IHRvIG92ZXJyaWRlIHRoZSBiYWNrZ3JvdW5kIGZvciBzZWxlY3RlZCBvcHRpb25zIGlmXG4gICAgLy8gdGhleSBhcmUgKm5vdCogaW4gaG92ZXIgb3IgZm9jdXMgc3RhdGUuIFRoaXMgY2hhbmdlIGhhcyB0byBiZVxuICAgIC8vIG1hZGUgaGVyZSBiZWNhdXNlIGJhc2Ugb3B0aW9uIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlXG4gICAgLy8gYXV0b2NvbXBsZXRlIGFuZCB0aGUgc2VsZWN0LlxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAgICY6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbkBtaXhpbiBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cbi8vIFRoaXMgY29udGFpbnMgYWxsIG9mIHRoZSBzdHlsZXMgZm9yIHRoZSBiYWRnZVxuLy8gcmF0aGVyIHRoYW4ganVzdCB0aGUgY29sb3IvdGhlbWUgYmVjYXVzZSBvZlxuLy8gbm8gc3R5bGUgc2hlZXQgc3VwcG9ydCBmb3IgZGlyZWN0aXZlcy5cblxuXG5cblxuXG4kbWF0LWJhZGdlLWZvbnQtc2l6ZTogMTJweDtcbiRtYXQtYmFkZ2UtZm9udC13ZWlnaHQ6IDYwMDtcbiRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplOiAyMnB4ICFkZWZhdWx0O1xuJG1hdC1iYWRnZS1zbWFsbC1zaXplOiAkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSAtIDY7XG4kbWF0LWJhZGdlLWxhcmdlLXNpemU6ICRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplICsgNjtcblxuLy8gTWl4aW4gZm9yIGJ1aWxkaW5nIG9mZnNldCBnaXZlbiBkaWZmZXJlbnQgc2l6ZXNcbkBtaXhpbiBfbWF0LWJhZGdlLXNpemUoJHNpemUpIHtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJHNpemU7XG4gIH1cblxuICAmLm1hdC1iYWRnZS1hYm92ZSB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIHRvcDogLSRzaXplIC8gMjtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1iZWxvdyB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGJvdHRvbTogLSRzaXplIC8gMjtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBsZWZ0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICByaWdodDogLSRzaXplO1xuICAgIH1cbiAgfVxuXG4gIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2Utb3ZlcmxhcCB7XG4gICAgJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGxlZnQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIHJpZ2h0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJhZGdlLXRoZW1lKCR0aGVtZSkge1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdCB7XG4gICAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtYWNjZW50IHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlLXdhcm4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1oaWRkZW4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtZGlzYWJsZWQge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAkYXBwLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2JhY2tncm91bmQnKTtcbiAgICAgICRiYWRnZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24pO1xuXG4gICAgICAvLyBUaGUgZGlzYWJsZWQgY29sb3IgdXN1YWxseSBoYXMgc29tZSBraW5kIG9mIG9wYWNpdHksIGJ1dCBiZWNhdXNlIHRoZSBiYWRnZSBpcyBvdmVybGF5ZWRcbiAgICAgIC8vIG9uIHRvcCBvZiBzb21ldGhpbmcgZWxzZSwgaXQgd29uJ3QgbG9vayBnb29kIGlmIGl0J3Mgb3BhcXVlLiBJZiBpdCBpcyBhIGNvbG9yICp0eXBlKixcbiAgICAgIC8vIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZCB1c2luZ1xuICAgICAgLy8gdGhlIHZhbHVlIHRvIGRldGVybWluZSB0aGUgcGVyY2VudGFnZSBvZiB0aGUgYmFja2dyb3VuZCB0byBwdXQgaW50byBmb3JlZ3JvdW5kIHdoZW5cbiAgICAgIC8vIG1peGluZyB0aGUgY29sb3JzIHRvZ2V0aGVyLlxuICAgICAgQGlmICh0eXBlLW9mKCRiYWRnZS1jb2xvcikgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGFwcC1iYWNrZ3JvdW5kKSA9PSBjb2xvcikge1xuICAgICAgICAkYmFkZ2Utb3BhY2l0eTogb3BhY2l0eSgkYmFkZ2UtY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBtaXgoJGFwcC1iYWNrZ3JvdW5kLCByZ2JhKCRiYWRnZS1jb2xvciwgMSksICgxIC0gJGJhZGdlLW9wYWNpdHkpICogMTAwJSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRiYWRnZS1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4gIC5tYXQtYmFkZ2UtY29udGVudC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIFRoZSBhY3RpdmUgY2xhc3MgaXMgYWRkZWQgYWZ0ZXIgdGhlIGVsZW1lbnQgaXMgYWRkZWRcbiAgLy8gc28gaXQgY2FuIGFuaW1hdGUgc2NhbGUgdG8gZGVmYXVsdFxuICAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gICAgLy8gU2NhbGUgdG8gYG5vbmVgIGluc3RlYWQgb2YgYDFgIHRvIGF2b2lkIGJsdXJyeSB0ZXh0IGluIHNvbWUgYnJvd3NlcnMuXG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1zbWFsbCB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2Utc21hbGwtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1tZWRpdW0ge1xuICAgIEBpbmNsdWRlIF9tYXQtYmFkZ2Utc2l6ZSgkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1sYXJnZSB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2UtbGFyZ2Utc2l6ZSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXdlaWdodDogJG1hdC1iYWRnZS1mb250LXdlaWdodDtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplO1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgLy8gU2V0IHRoZSBmb250IHNpemUgdG8gNzUlIG9mIHRoZSBvcmlnaW5hbC5cbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMC43NTtcbiAgfVxuXG4gIC5tYXQtYmFkZ2UtbGFyZ2UgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMjtcbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMTYsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cblxuJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5OiAwLjE7XG5cbi8vIEFwcGxpZXMgYSBmb2N1cyBzdHlsZSB0byBhbiBtYXQtYnV0dG9uIGVsZW1lbnQgZm9yIGVhY2ggb2YgdGhlIHN1cHBvcnRlZCBwYWxldHRlcy5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LWNvbG9yKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAmLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gIH1cblxuICAmLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICB9XG5cbiAgJi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4pO1xuICB9XG5cbiAgJltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtYnV0dG9uLXJpcHBsZS1jb2xvcigkdGhlbWUsICRodWUsICRvcGFjaXR5OiAkX21hdC1idXR0b24tcmlwcGxlLW9wYWNpdHkpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgJi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksICRodWUsICRvcGFjaXR5KTtcbiAgfVxuXG4gICYubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgJGh1ZSwgJG9wYWNpdHkpO1xuICB9XG5cbiAgJi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4sICRodWUsICRvcGFjaXR5KTtcbiAgfVxufVxuXG4vLyBBcHBsaWVzIGEgcHJvcGVydHkgdG8gYW4gbWF0LWJ1dHRvbiBlbGVtZW50IGZvciBlYWNoIG9mIHRoZSBzdXBwb3J0ZWQgcGFsZXR0ZXMuXG5AbWl4aW4gX21hdC1idXR0b24tdGhlbWUtcHJvcGVydHkoJHRoZW1lLCAkcHJvcGVydHksICRodWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgJi5tYXQtcHJpbWFyeSB7XG4gICAgI3skcHJvcGVydHl9OiBtYXQtY29sb3IoJHByaW1hcnksICRodWUpO1xuICB9XG4gICYubWF0LWFjY2VudCB7XG4gICAgI3skcHJvcGVydHl9OiBtYXQtY29sb3IoJGFjY2VudCwgJGh1ZSk7XG4gIH1cbiAgJi5tYXQtd2FybiB7XG4gICAgI3skcHJvcGVydHl9OiBtYXQtY29sb3IoJHdhcm4sICRodWUpO1xuICB9XG5cbiAgJi5tYXQtcHJpbWFyeSwgJi5tYXQtYWNjZW50LCAmLm1hdC13YXJuLCAmW2Rpc2FibGVkXSB7XG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgJHBhbGV0dGU6IGlmKCRwcm9wZXJ0eSA9PSAnY29sb3InLCAkZm9yZWdyb3VuZCwgJGJhY2tncm91bmQpO1xuICAgICAgI3skcHJvcGVydHl9OiBtYXQtY29sb3IoJHBhbGV0dGUsIGRpc2FibGVkLWJ1dHRvbik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWJ1dHRvbiwgLm1hdC1pY29uLWJ1dHRvbiwgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gICAgLy8gQnV0dG9ucyB3aXRob3V0IGEgYmFja2dyb3VuZCBjb2xvciBzaG91bGQgaW5oZXJpdCB0aGUgZm9udCBjb2xvci4gVGhpcyBpcyBuZWNlc3NhcnkgdG9cbiAgICAvLyBlbnN1cmUgdGhhdCB0aGUgYnV0dG9uIGlzIHJlYWRhYmxlIG9uIGN1c3RvbSBiYWNrZ3JvdW5kIGNvbG9ycy4gSXQncyB3cm9uZyB0byBhbHdheXMgYXNzdW1lXG4gICAgLy8gdGhhdCB0aG9zZSBidXR0b25zIGFyZSBhbHdheXMgcGxhY2VkIGluc2lkZSBvZiBjb250YWluZXJzIHdpdGggdGhlIGRlZmF1bHQgYmFja2dyb3VuZFxuICAgIC8vIGNvbG9yIG9mIHRoZSB0aGVtZSAoZS5nLiB0aGVtZWQgdG9vbGJhcnMpLlxuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tdGhlbWUtcHJvcGVydHkoJHRoZW1lLCAnY29sb3InLCB0ZXh0KTtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LWNvbG9yKCR0aGVtZSk7XG5cbiAgICAvLyBTZXR1cCB0aGUgcmlwcGxlIGNvbG9yIHRvIGJlIGJhc2VkIG9uIHRoZSB0ZXh0IGNvbG9yLiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgcmlwcGxlc1xuICAgIC8vIGFyZSBtYXRjaGluZyB3aXRoIHRoZSBjdXJyZW50IHRoZW1lIHBhbGV0dGUgYW5kIGFyZSBpbiBjb250cmFzdCB0byB0aGUgYmFja2dyb3VuZCBjb2xvclxuICAgIC8vIChlLmcgaW4gdGhlbWVkIHRvb2xiYXJzKS5cbiAgICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIG9wYWNpdHk6ICRfbWF0LWJ1dHRvbi1yaXBwbGUtb3BhY2l0eTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kOiBtYXBfZ2V0KCRmb3JlZ3JvdW5kLCBiYXNlKTtcbiAgfVxuXG4gIC8vIE5vdGU6IHRoaXMgbmVlZHMgYSBiaXQgZXh0cmEgc3BlY2lmaWNpdHksIGJlY2F1c2Ugd2UncmUgbm90IGd1YXJhbnRlZWQgdGhlIGluY2x1c2lvblxuICAvLyBvcmRlciBvZiB0aGUgdGhlbWUgc3R5bGVzIGFuZCB0aGUgYnV0dG9uIHJlc2V0IG1heSBlbmQgdXAgcmVzZXR0aW5nIHRoaXMgYXMgd2VsbC5cbiAgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSkge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxuXG4gIC5tYXQtZmxhdC1idXR0b24sIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLm1hdC1mYWIsIC5tYXQtbWluaS1mYWIge1xuICAgIC8vIERlZmF1bHQgZm9udCBhbmQgYmFja2dyb3VuZCBjb2xvciB3aGVuIG5vdCB1c2luZyBhbnkgY29sb3IgcGFsZXR0ZS5cbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHJhaXNlZC1idXR0b24pO1xuXG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tdGhlbWUtcHJvcGVydHkoJHRoZW1lLCAnY29sb3InLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi10aGVtZS1wcm9wZXJ0eSgkdGhlbWUsICdiYWNrZ3JvdW5kLWNvbG9yJywgZGVmYXVsdCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tcmlwcGxlLWNvbG9yKCR0aGVtZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cblxuICAubWF0LXN0cm9rZWQtYnV0dG9uLCAubWF0LWZsYXQtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigwLCAkdGhlbWUpO1xuICB9XG5cbiAgLm1hdC1yYWlzZWQtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigyLCAkdGhlbWUpO1xuXG4gICAgJjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDgsICR0aGVtZSk7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJHRoZW1lKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWZhYiwgLm1hdC1taW5pLWZhYiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNiwgJHRoZW1lKTtcblxuICAgICY6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigxMiwgJHRoZW1lKTtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigwLCAkdGhlbWUpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJ1dHRvbi10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1idXR0b24sIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLm1hdC1pY29uLWJ1dHRvbiwgLm1hdC1zdHJva2VkLWJ1dHRvbixcbiAgLm1hdC1mbGF0LWJ1dHRvbiwgLm1hdC1mYWIsIC5tYXQtbWluaS1mYWIge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJ1dHRvbik7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIG1hdC1idXR0b24tdG9nZ2xlLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZGl2aWRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcblxuICAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSxcbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigyLCAkdGhlbWUpO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGZvY3VzZWQtYnV0dG9uKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcblxuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZm9jdXNlZC1idXR0b24sIDEpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCAkZGl2aWRlci1jb2xvcjtcbiAgfVxuXG4gIFtkaXI9J3J0bCddIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggJGRpdmlkZXItY29sb3I7XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbCB7XG4gICAgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgYm9yZGVyLXRvcDogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHNlbGVjdGVkLWJ1dHRvbik7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuXG4gICAgJi5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtYnV0dG9uKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpc2FibGVkLWJ1dHRvbi10b2dnbGUpO1xuXG4gICAgJi5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgfVxuXG4gICAgJi5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggJGRpdmlkZXItY29sb3I7XG4gIH1cbn1cblxuQG1peGluIG1hdC1idXR0b24tdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1jYXJkLXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtY2FyZCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMSwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgLy8gTmVlZHMgZXh0cmEgc3BlY2lmaWNpdHkgdG8gYmUgYWJsZSB0byBvdmVycmlkZSB0aGUgZWxldmF0aW9uIHNlbGVjdG9ycy5cbiAgICAmLm1hdC1jYXJkLWZsYXQge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJHRoZW1lKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhcmQtc3VidGl0bGUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNhcmQtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtY2FyZCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtY2FyZC10aXRsZSB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBoZWFkbGluZSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCB0aXRsZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYXJkLWhlYWRlciAubWF0LWNhcmQtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCB0aXRsZSk7XG4gIH1cblxuICAubWF0LWNhcmQtc3VidGl0bGUsXG4gIC5tYXQtY2FyZC1jb250ZW50IHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIG1hdC1jaGVja2JveC10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cblxuICAvLyBUaGUgY29sb3Igb2YgdGhlIGNoZWNrYm94J3MgY2hlY2ttYXJrIC8gbWl4ZWRtYXJrLlxuICAkY2hlY2tib3gtbWFyay1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcblxuICAvLyBOT1RFKHRyYXZpc2thdWZtYW4pOiBXaGlsZSB0aGUgc3BlYyBjYWxscyBmb3IgdHJhbnNsdWNlbnQgYmxhY2tzL3doaXRlcyBmb3IgZGlzYWJsZWQgY29sb3JzLFxuICAvLyB0aGlzIGRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGVsZW1lbnRzIGxheWVyZWQgb24gdG9wIG9mIG9uZSBhbm90aGVyLiBUbyBnZXQgYXJvdW5kIHRoaXMgd2VcbiAgLy8gYmxlbmQgdGhlIGNvbG9ycyB0b2dldGhlciBiYXNlZCBvbiB0aGUgYmFzZSBjb2xvciBhbmQgdGhlIHRoZW1lIGJhY2tncm91bmQuXG4gICR3aGl0ZS0zMHBjdC1vcGFjaXR5LW9uLWRhcms6ICM2ODY4Njg7XG4gICRibGFjay0yNnBjdC1vcGFjaXR5LW9uLWxpZ2h0OiAjYjBiMGIwO1xuICAkZGlzYWJsZWQtY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrLCAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodCk7XG5cbiAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrIHtcbiAgICBmaWxsOiAkY2hlY2tib3gtbWFyay1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICAgIC8vICFpbXBvcnRhbnQgaXMgbmVlZGVkIGhlcmUgYmVjYXVzZSBhIHN0cm9rZSBtdXN0IGJlIHNldCBhcyBhblxuICAgIC8vIGF0dHJpYnV0ZSBvbiB0aGUgU1ZHIGluIG9yZGVyIGZvciBsaW5lIGFuaW1hdGlvbiB0byB3b3JrIHByb3Blcmx5LlxuICAgIHN0cm9rZTogJGNoZWNrYm94LW1hcmstY29sb3IgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0KGJsYWNrLW9uLXdoaXRlKSB7XG4gICAgICAvLyBIYXZpbmcgdGhlIG9uZSBhYm92ZSBiZSAhaW1wb3J0YW50IGVuZHMgdXAgb3ZlcnJpZGluZyB0aGUgYnJvd3NlcidzIGF1dG9tYXRpY1xuICAgICAgLy8gY29sb3IgaW52ZXJzaW9uIHNvIHdlIG5lZWQgdG8gcmUtaW52ZXJ0IGl0IG91cnNlbHZlcyBmb3IgYmxhY2stb24td2hpdGUuXG4gICAgICBzdHJva2U6ICMwMDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAubWF0LWNoZWNrYm94LW1peGVkbWFyayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNoZWNrYm94LW1hcmstY29sb3I7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUsIC5tYXQtY2hlY2tib3gtY2hlY2tlZCB7XG4gICAgJi5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQge1xuICAgICYubWF0LWNoZWNrYm94LWNoZWNrZWQsXG4gICAgJi5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgICAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1jaGVja2JveC1jaGVja2VkKSB7XG4gICAgICAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgY2RrLWhpZ2gtY29udHJhc3Qge1xuICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoaXMgb25lIGlzIG1vdmVkIGRvd24gaGVyZSBzbyBpdCBjYW4gdGFyZ2V0IGJvdGhcbiAgLy8gdGhlIHRoZW1lIGNvbG9ycyBhbmQgdGhlIGRpc2FibGVkIHN0YXRlLlxuICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdCB7XG4gICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIC8vIE5lZWRzIHRvIGJlIHJlbW92ZWQgYmVjYXVzZSBpdCBoaWRlcyB0aGUgY2hlY2tib3ggb3V0bGluZS5cbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gU3dpdGNoIHRoaXMgdG8gYSBzb2xpZCBjb2xvciBzaW5jZSB3ZSdyZSB1c2luZyBgb3BhY2l0eWBcbiAgLy8gdG8gY29udHJvbCBob3cgb3BhcXVlIHRoZSByaXBwbGUgc2hvdWxkIGJlLlxuICAubWF0LWNoZWNrYm94IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hcF9nZXQobWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpLCBiYXNlKTtcbiAgfVxuXG4gIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCksXG4gIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKSB7XG4gICAgJi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHdhcm4pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoZWNrYm94LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWNoZWNrYm94IHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLy8gVE9ETyhrYXJhKTogUmVtb3ZlIHRoaXMgc3R5bGUgd2hlbiBmaXhpbmcgdmVydGljYWwgYmFzZWxpbmVcbiAgLm1hdC1jaGVja2JveC1sYXlvdXQgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gICAgbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuICB9XG59XG5cblxuXG5cblxuXG4kbWF0LWNoaXAtcmVtb3ZlLWZvbnQtc2l6ZTogMThweDtcblxuQG1peGluIG1hdC1jaGlwcy1jb2xvcigkZm9yZWdyb3VuZCwgJGJhY2tncm91bmQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGNvbG9yOiAkZm9yZWdyb3VuZDtcblxuICAubWF0LWNoaXAtcmVtb3ZlIHtcbiAgICBjb2xvcjogJGZvcmVncm91bmQ7XG4gICAgb3BhY2l0eTogMC40O1xuICB9XG59XG5cbkBtaXhpbiBtYXQtY2hpcHMtdGhlbWUtY29sb3IoJHBhbGV0dGUpIHtcbiAgQGluY2x1ZGUgbWF0LWNoaXBzLWNvbG9yKG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCksIG1hdC1jb2xvcigkcGFsZXR0ZSkpO1xuXG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCwgMC4xKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLXRoZW1lKCR0aGVtZSkge1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAkdW5zZWxlY3RlZC1iYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHVuc2VsZWN0ZWQtY2hpcCk7XG4gICR1bnNlbGVjdGVkLWZvcmVncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIHtcbiAgICBAaW5jbHVkZSBtYXQtY2hpcHMtY29sb3IoJHVuc2VsZWN0ZWQtZm9yZWdyb3VuZCwgJHVuc2VsZWN0ZWQtYmFja2dyb3VuZCk7XG5cbiAgICAmOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpIHtcbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMywgJHRoZW1lKTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1jaGlwLXJlbW92ZTpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtY2hpcC1kaXNhYmxlZCB7XG4gICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkIHtcbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jaGlwcy10aGVtZS1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2hpcHMtdGhlbWUtY29sb3IoJHdhcm4pO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2hpcHMtdGhlbWUtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtY2hpcHMtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtY2hpcCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMik7XG4gICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuXG4gICAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb24sXG4gICAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbiB7XG4gICAgICBmb250LXNpemU6ICRtYXQtY2hpcC1yZW1vdmUtZm9udC1zaXplO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdGFibGUtdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC10YWJsZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICB9XG5cbiAgLm1hdC10YWJsZSB0aGVhZCwgLm1hdC10YWJsZSB0Ym9keSwgLm1hdC10YWJsZSB0Zm9vdCxcbiAgbWF0LWhlYWRlci1yb3csIG1hdC1yb3csIG1hdC1mb290ZXItcm93LFxuICBbbWF0LWhlYWRlci1yb3ddLCBbbWF0LXJvd10sIFttYXQtZm9vdGVyLXJvd10sXG4gIC5tYXQtdGFibGUtc3RpY2t5IHtcbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICB9XG5cbiAgbWF0LXJvdywgbWF0LWhlYWRlci1yb3csIG1hdC1mb290ZXItcm93LFxuICB0aC5tYXQtaGVhZGVyLWNlbGwsIHRkLm1hdC1jZWxsLCB0ZC5tYXQtZm9vdGVyLWNlbGwge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWhlYWRlci1jZWxsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWNlbGwsIC5tYXQtZm9vdGVyLWNlbGwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdGFibGUtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdGFibGUge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWhlYWRlci1jZWxsIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuICB9XG5cbiAgLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgfVxufVxuXG5cblxuXG5cblxuXG4kbWF0LWRhdGVwaWNrZXItc2VsZWN0ZWQtdG9kYXktYm94LXNoYWRvdy13aWR0aDogMXB4O1xuJG1hdC1kYXRlcGlja2VyLXNlbGVjdGVkLWZhZGUtYW1vdW50OiAwLjY7XG4kbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQ6IDAuMjtcbiRtYXQtY2FsZW5kYXItYm9keS1mb250LXNpemU6IDEzcHggIWRlZmF1bHQ7XG4kbWF0LWNhbGVuZGFyLXdlZWtkYXktdGFibGUtZm9udC1zaXplOiAxMXB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gX21hdC1kYXRlcGlja2VyLWNvbG9yKCRwYWxldHRlKSB7XG4gIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gICAgJGJhY2tncm91bmQ6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGJhY2tncm91bmQpID09IGNvbG9yKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBmYWRlLW91dCgkYmFja2dyb3VuZCwgJG1hdC1kYXRlcGlja2VyLXNlbGVjdGVkLWZhZGUtYW1vdW50KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gSWYgd2UgY291bGRuJ3QgcmVzb2x2ZSB0byBiYWNrZ3JvdW5kIHRvIGEgY29sb3IgKGUuZy4gaXQncyBhIENTUyB2YXJpYWJsZSksXG4gICAgICAvLyBmYWxsIGJhY2sgdG8gZmFkaW5nIHRoZSBjb250ZW50IG91dCB2aWEgYG9wYWNpdHlgLlxuICAgICAgb3BhY2l0eTogJG1hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgJG1hdC1kYXRlcGlja2VyLXNlbGVjdGVkLXRvZGF5LWJveC1zaGFkb3ctd2lkdGhcbiAgICAgICAgICAgICAgICBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtZGF0ZXBpY2tlci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LWNhbGVuZGFyLWFycm93IHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGljb24pO1xuICB9XG5cbiAgLy8gVGhlIHByZXYvbmV4dCBidXR0b25zIG5lZWQgYSBiaXQgbW9yZSBzcGVjaWZpY2l0eSB0b1xuICAvLyBhdm9pZCBiZWluZyBvdmVyd3JpdHRlbiBieSB0aGUgLm1hdC1pY29uLWJ1dHRvbi5cbiAgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZSxcbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1uZXh0LWJ1dHRvbixcbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1wcmV2aW91cy1idXR0b24ge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGljb24pO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlci1kaXZpZGVyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIsXG4gIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlLFxuICAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlIHtcbiAgICAmID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICAgIC8vIE5vdGU6IHRob3VnaCBpdCdzIG5vdCB0ZXh0LCB0aGUgYm9yZGVyIGlzIGEgaGludCBhYm91dCB0aGUgZmFjdCB0aGF0IHRoaXMgaXMgdG9kYXkncyBkYXRlLFxuICAgIC8vIHNvIHdlIHVzZSB0aGUgaGludCBjb2xvci5cbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaGludC10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gICAgJGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGNvbG9yKSA9PSBjb2xvcikge1xuICAgICAgYm9yZGVyLWNvbG9yOiBmYWRlLW91dCgkY29sb3IsICRtYXQtZGF0ZXBpY2tlci10b2RheS1mYWRlLWFtb3VudCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIElmIHRoZSBjb2xvciBkaWRuJ3QgcmVzb2x2ZSB0byBhIGNvbG9yIHZhbHVlLCBidXQgc29tZXRoaW5nIGxpa2UgYSBDU1MgdmFyaWFibGUsIHdlIGNhbid0XG4gICAgICAvLyBmYWRlIGl0IG91dCBzbyB3ZSBmYWxsIGJhY2sgdG8gcmVkdWNpbmcgdGhlIGVsZW1lbnQgb3BhY2l0eS4gTm90ZSB0aGF0IHdlIGRvbid0IHVzZSB0aGVcbiAgICAgIC8vICRtYXQtZGF0ZXBpY2tlci10b2RheS1mYWRlLWFtb3VudCwgYmVjYXVzZSBoaW50IHRleHQgdXN1YWxseSBoYXMgc29tZSBvcGFjaXR5IGFwcGxpZWRcbiAgICAgIC8vIHRvIGl0IGFscmVhZHkgYW5kIHdlIGRvbid0IHdhbnQgdGhlbSB0byBzdGFjayBvbiB0b3Agb2YgZWFjaCBvdGhlci5cbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItY29sb3IobWFwLWdldCgkdGhlbWUsIHByaW1hcnkpKTtcblxuICAubWF0LWRhdGVwaWNrZXItY29udGVudCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KSk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItY29sb3IobWFwLWdldCgkdGhlbWUsIHdhcm4pKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMCwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KSwgdGV4dCk7XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KSwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCB3YXJuKSwgdGV4dCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZGF0ZXBpY2tlci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1jYWxlbmRhciB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keSB7XG4gICAgZm9udC1zaXplOiAkbWF0LWNhbGVuZGFyLWJvZHktZm9udC1zaXplO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsLFxuICAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b24ge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYnV0dG9uKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIgdGgge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6ICRtYXQtY2FsZW5kYXItd2Vla2RheS10YWJsZS1mb250LXNpemU7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWRpYWxvZy10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWRpYWxvZy1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDI0LCAkdGhlbWUpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlhbG9nKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRpYWxvZy10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1kaWFsb2ctdGl0bGUge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCB0aXRsZSk7XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtZXhwYW5zaW9uLXBhbmVsLXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigyLCAkdGhlbWUpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cblxuICAubWF0LWFjdGlvbi1yb3cge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgICAmOm5vdChbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddKSB7XG4gICAgICAmLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAgICAgJi5jZGstcHJvZ3JhbS1mb2N1c2VkLFxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIERpc2FibGUgdGhlIGhvdmVyIG9uIHRvdWNoIGRldmljZXMgc2luY2UgaXQgY2FuIGFwcGVhciBsaWtlIGl0IGlzIHN0dWNrLiBXZSBjYW4ndCB1c2VcbiAgLy8gYEBtZWRpYSAoaG92ZXIpYCBhYm92ZSwgYmVjYXVzZSB0aGUgZGVza3RvcCBzdXBwb3J0IGJyb3dzZXIgc3VwcG9ydCBpc24ndCBncmVhdC5cbiAgQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKTpub3QoW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSlcbiAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24sXG4gIC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPSd0cnVlJ10ge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLWJ1dHRvbik7XG5cbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsXG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWV4cGFuc2lvbi1wYW5lbC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgc3ViaGVhZGluZy0xKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgYm9keS0xKTtcbiAgfVxufVxuXG5cblxuXG4vLyBUaGlzIG1peGluIHdpbGwgZW5zdXJlIHRoYXQgbGluZXMgdGhhdCBvdmVyZmxvdyB0aGUgY29udGFpbmVyIHdpbGwgaGlkZSB0aGUgb3ZlcmZsb3cgYW5kXG4vLyB0cnVuY2F0ZSBuZWF0bHkgd2l0aCBhbiBlbGxpcHNpcy5cbkBtaXhpbiBtYXQtdHJ1bmNhdGUtbGluZSgpIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi8vIE1peGluIHRvIHByb3ZpZGUgYWxsIG1hdC1saW5lIHN0eWxlcywgY2hhbmdpbmcgc2Vjb25kYXJ5IGZvbnQgc2l6ZSBiYXNlZCBvbiB3aGV0aGVyIHRoZSBsaXN0XG4vLyBpcyBpbiBkZW5zZSBtb2RlLlxuQG1peGluIG1hdC1saW5lLWJhc2UoJHNlY29uZGFyeS1mb250LXNpemUpIHtcbiAgLm1hdC1saW5lIHtcbiAgICBAaW5jbHVkZSBtYXQtdHJ1bmNhdGUtbGluZSgpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAvLyBhbGwgbGluZXMgYnV0IHRoZSB0b3AgbGluZSBzaG91bGQgaGF2ZSBzbWFsbGVyIHRleHRcbiAgICAmOm50aC1jaGlsZChuKzIpIHtcbiAgICAgIGZvbnQtc2l6ZTogJHNlY29uZGFyeS1mb250LXNpemU7XG4gICAgfVxuICB9XG59XG5cbi8vIFRoaXMgbWl4aW4gbm9ybWFsaXplcyBkZWZhdWx0IGVsZW1lbnQgc3R5bGVzLCBlLmcuIGZvbnQgd2VpZ2h0IGZvciBoZWFkaW5nIHRleHQuXG5AbWl4aW4gbWF0LW5vcm1hbGl6ZS10ZXh0KCkge1xuICAmID4gKiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gIH1cbn1cblxuLy8gVGhpcyBtaXhpbiBwcm92aWRlcyBiYXNlIHN0eWxlcyBmb3IgdGhlIHdyYXBwZXIgYXJvdW5kIG1hdC1saW5lIGVsZW1lbnRzIGluIGEgbGlzdC5cbkBtaXhpbiBtYXQtbGluZS13cmFwcGVyLWJhc2UoKSB7XG4gIEBpbmNsdWRlIG1hdC1ub3JtYWxpemUtdGV4dCgpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIC8vIE11c3QgcmVtb3ZlIHdyYXBwZXIgd2hlbiBsaW5lcyBhcmUgZW1wdHkgb3IgaXQgdGFrZXMgdXAgaG9yaXpvbnRhbFxuICAvLyBzcGFjZSBhbmQgcHVzaGVzIG90aGVyIGVsZW1lbnRzIHRvIHRoZSByaWdodC5cbiAgJjplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5cblxuLy8gSW5jbHVkZSB0aGlzIGVtcHR5IG1peGluIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBvdGhlciBjb21wb25lbnRzLlxuQG1peGluIG1hdC1ncmlkLWxpc3QtdGhlbWUoJHRoZW1lKSB7IH1cblxuQG1peGluIG1hdC1ncmlkLWxpc3QtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtZ3JpZC10aWxlLWhlYWRlcixcbiAgLm1hdC1ncmlkLXRpbGUtZm9vdGVyIHtcbiAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbikpO1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cbi8vIEluY2x1ZGUgdGhpcyBlbXB0eSBtaXhpbiBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgb3RoZXIgY29tcG9uZW50cy5cbkBtaXhpbiBtYXQtaWNvbi10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1pY29uIHtcbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtaWNvbi10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cbi8vIFJlbmRlcnMgYSBncmFkaWVudCBmb3Igc2hvd2luZyB0aGUgZGFzaGVkIGxpbmUgd2hlbiB0aGUgaW5wdXQgaXMgZGlzYWJsZWQuXG4vLyBVbmxpa2UgdXNpbmcgYSBib3JkZXIsIGEgZ3JhZGllbnQgYWxsb3dzIHVzIHRvIGFkanVzdCB0aGUgc3BhY2luZyBvZiB0aGUgZG90dGVkIGxpbmVcbi8vIHRvIG1hdGNoIHRoZSBNYXRlcmlhbCBEZXNpZ24gc3BlYy5cbkBtaXhpbiBtYXQtY29udHJvbC1kaXNhYmxlZC11bmRlcmxpbmUoJGNvbG9yKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJGNvbG9yIDAlLCAkY29sb3IgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cblxuLy8gRmlndXJlcyBvdXQgdGhlIGNvbG9yIG9mIHRoZSBwbGFjZWhvbGRlciBmb3IgYSBmb3JtIGNvbnRyb2wuXG4vLyBVc2VkIHByaW1hcmlseSB0byBwcmV2ZW50IHRoZSB2YXJpb3VzIGZvcm0gY29udHJvbHMgZnJvbVxuLy8gYmVjb21pbmcgb3V0IG9mIHN5bmMgc2luY2UgdGhlc2UgY29sb3JzIGFyZW4ndCBpbiBhIHBhbGV0dGUuXG5AZnVuY3Rpb24gX21hdC1jb250cm9sLXBsYWNlaG9sZGVyLWNvbG9yKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuICBAcmV0dXJuIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjUsIDAuNDIpKTtcbn1cblxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBtYXRlcmlhbC9uby1wcmVmaXhlcyAqL1xuQG1peGluIHVzZXItc2VsZWN0KCR2YWx1ZSkge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiAkdmFsdWU7XG4gIC1tb3otdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgLW1zLXVzZXItc2VsZWN0OiAkdmFsdWU7XG4gIHVzZXItc2VsZWN0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBpbnB1dC1wbGFjZWhvbGRlciB7XG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGN1cnNvci1ncmFiIHtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWI7XG4gIGN1cnNvcjogZ3JhYjtcbn1cblxuQG1peGluIGN1cnNvci1ncmFiYmluZyB7XG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZztcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cblxuQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZhbHVlKSB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogJHZhbHVlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiAkdmFsdWU7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cblxuXG5AbWl4aW4gbWF0LWlucHV0LXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWlucHV0LWVsZW1lbnQ6ZGlzYWJsZWQsXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICB9XG5cbiAgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcblxuICAgIEBpbmNsdWRlIGlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiBfbWF0LWNvbnRyb2wtcGxhY2Vob2xkZXItY29sb3IoJHRoZW1lKTtcbiAgICB9XG5cbiAgICAvLyBPbiBkYXJrIHRoZW1lcyB3ZSBzZXQgdGhlIG5hdGl2ZSBgc2VsZWN0YCBjb2xvciB0byBzb21lIHNoYWRlIG9mIHdoaXRlLFxuICAgIC8vIGhvd2V2ZXIgdGhlIGNvbG9yIHByb3BhZ2F0ZXMgdG8gYWxsIG9mIHRoZSBgb3B0aW9uYCBlbGVtZW50cywgd2hpY2ggYXJlXG4gICAgLy8gYWx3YXlzIG9uIGEgd2hpdGUgYmFja2dyb3VuZCBpbnNpZGUgdGhlIGRyb3Bkb3duLCBjYXVzaW5nIHRoZW0gdG8gYmxlbmQgaW4uXG4gICAgLy8gU2luY2Ugd2UgY2FuJ3QgY2hhbmdlIGJhY2tncm91bmQgb2YgdGhlIGRyb3Bkb3duLCB3ZSBuZWVkIHRvIGV4cGxpY2l0bHlcbiAgICAvLyByZXNldCB0aGUgY29sb3Igb2YgdGhlIG9wdGlvbnMgdG8gc29tZXRoaW5nIGRhcmsuXG4gICAgQGlmIChtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyaykpIHtcbiAgICAgIG9wdGlvbiB7XG4gICAgICAgIGNvbG9yOiAkZGFyay1wcmltYXJ5LXRleHQ7XG4gICAgICB9XG5cbiAgICAgIG9wdGlvbjpkaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiAkZGFyay1kaXNhYmxlZC10ZXh0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtYWNjZW50IC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgY2FyZXQtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtd2FybiAubWF0LWlucHV0LWVsZW1lbnQsXG4gIC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgY2FyZXQtY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtaW5wdXQtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcblxuICAvLyBUaGUgYW1vdW50IG9mIHNwYWNlIGJldHdlZW4gdGhlIHRvcCBvZiB0aGUgbGluZSBhbmQgdGhlIHRvcCBvZiB0aGUgYWN0dWFsIHRleHRcbiAgLy8gKGFzIGEgZnJhY3Rpb24gb2YgdGhlIGZvbnQtc2l6ZSkuXG4gICRsaW5lLXNwYWNpbmc6ICgkbGluZS1oZWlnaHQgLSAxKSAvIDI7XG5cbiAgLy8gPGlucHV0PiBlbGVtZW50cyBzZWVtIHRvIGhhdmUgdGhlaXIgaGVpZ2h0IHNldCBzbGlnaHRseSB0b28gbGFyZ2Ugb24gU2FmYXJpIGNhdXNpbmcgdGhlIHRleHQgdG9cbiAgLy8gYmUgbWlzYWxpZ25lZCB3LnIudC4gdGhlIHBsYWNlaG9sZGVyLiBBZGRpbmcgdGhpcyBtYXJnaW4gY29ycmVjdHMgaXQuXG4gIGlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBtYXJnaW4tdG9wOiAtJGxpbmUtc3BhY2luZyAqIDFlbTtcbiAgfVxufVxuXG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWxpc3QtdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1saXN0LWJhc2Uge1xuICAgIC5tYXQtbGlzdC1pdGVtIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtbGlzdC1vcHRpb24ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdWJoZWFkZXIge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtbGlzdC1pdGVtLWRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpc2FibGVkLWxpc3Qtb3B0aW9uKTtcbiAgfVxuXG4gIC5tYXQtbGlzdC1vcHRpb24sXG4gIC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW0sXG4gIC5tYXQtYWN0aW9uLWxpc3QgLm1hdC1saXN0LWl0ZW0ge1xuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnaG92ZXInKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1saXN0LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAkZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcblxuICAubWF0LWxpc3QtaXRlbSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgfVxuXG4gIC5tYXQtbGlzdC1vcHRpb24ge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gIH1cblxuICAvLyBEZWZhdWx0IGxpc3RcbiAgLm1hdC1saXN0LWJhc2Uge1xuICAgIC5tYXQtbGlzdC1pdGVtIHtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTIpO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSkpO1xuICAgIH1cblxuICAgIC5tYXQtbGlzdC1vcHRpb24ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMik7XG4gICAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKSk7XG4gICAgfVxuXG4gICAgLm1hdC1zdWJoZWFkZXIge1xuICAgICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTIpO1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMik7XG4gICAgICBmb250LXdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVuc2UgbGlzdFxuICAubWF0LWxpc3QtYmFzZVtkZW5zZV0ge1xuICAgIC5tYXQtbGlzdC1pdGVtIHtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbikpO1xuICAgIH1cblxuICAgIC5tYXQtc3ViaGVhZGVyIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgICBmb250LXdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtbWVudS10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LW1lbnUtcGFuZWwge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDQsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW0ge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsICd0ZXh0Jyk7XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAmLCAmOjphZnRlciB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsICdkaXNhYmxlZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbi1uby1jb2xvcixcbiAgLm1hdC1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2VyOjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgfVxuXG4gIC5tYXQtbWVudS1pdGVtOmhvdmVyLFxuICAubWF0LW1lbnUtaXRlbS5jZGstcHJvZ3JhbS1mb2N1c2VkLFxuICAubWF0LW1lbnUtaXRlbS5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgLm1hdC1tZW51LWl0ZW0taGlnaGxpZ2h0ZWQge1xuICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2hvdmVyJyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtbWVudS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1tZW51LWl0ZW0ge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIG1hdC1wYWdpbmF0b3ItdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG5cbiAgLm1hdC1wYWdpbmF0b3Ige1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtcGFnaW5hdG9yLFxuICAubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuICAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQge1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsICdpY29uJyk7XG4gICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnaWNvbicpO1xuICB9XG5cbiAgLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4gIC5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsICdpY29uJyk7XG4gIH1cblxuICAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuICAgIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCxcbiAgICAubWF0LXBhZ2luYXRvci1maXJzdCxcbiAgICAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnZGlzYWJsZWQnKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wYWdpbmF0b3ItdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtcGFnaW5hdG9yLFxuICAubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3MtYmFyLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgICBmaWxsOiBtYXQtY29sb3IoJHByaW1hcnksIGxpZ2h0ZXIpO1xuICB9XG5cbiAgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGxpZ2h0ZXIpO1xuICB9XG5cbiAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IHtcbiAgICAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgICAgIGZpbGw6IG1hdC1jb2xvcigkYWNjZW50LCBsaWdodGVyKTtcbiAgICB9XG5cbiAgICAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIGxpZ2h0ZXIpO1xuICAgIH1cblxuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiB7XG4gICAgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gICAgICBmaWxsOiBtYXQtY29sb3IoJHdhcm4sIGxpZ2h0ZXIpO1xuICAgIH1cblxuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIGxpZ2h0ZXIpO1xuICAgIH1cblxuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3MtYmFyLXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXByb2dyZXNzLXNwaW5uZXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciwgLm1hdC1zcGlubmVyIHtcbiAgICBjaXJjbGUge1xuICAgICAgc3Ryb2tlOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCBjaXJjbGUge1xuICAgICAgc3Ryb2tlOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiBjaXJjbGUge1xuICAgICAgc3Ryb2tlOiBtYXQtY29sb3IoJHdhcm4pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXByb2dyZXNzLXNwaW5uZXItdHlwb2dyYXBoeSgkY29uZmlnKSB7IH1cblxuXG5cblxuXG5AbWl4aW4gX21hdC1yYWRpby1jb2xvcigkcGFsZXR0ZSkge1xuICAmLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG4gIH1cblxuICAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbiAgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksXG4gICYubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSxcbiAgJjphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXJhZGlvLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcmFkaW8tY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXJhZGlvLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC1yYWRpby1jb2xvcigkd2Fybik7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBuZWVkcyBleHRyYSBzcGVjaWZpY2l0eSwgYmVjYXVzZSB0aGUgY2xhc3NlcyBhYm92ZSBhcmUgY29tYmluZWRcbiAgICAvLyAoZS5nLiBgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudGApIHdoaWNoIGluY3JlYXNlcyB0aGVpciBzcGVjaWZpY2l0eSBhIGxvdC5cbiAgICAvLyBUT0RPOiBjb25zaWRlciBtYWtpbmcgdGhlIHNlbGVjdG9ycyBpbnRvIGRlc2NlbmRhbnRzIChgLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8tYnV0dG9uYCkuXG4gICAgJi5tYXQtcmFkaW8tZGlzYWJsZWQge1xuICAgICAgJi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSxcbiAgICAgIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudCxcbiAgICAgIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZCk7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTd2l0Y2ggdGhpcyB0byBhIHNvbGlkIGNvbG9yIHNpbmNlIHdlJ3JlIHVzaW5nIGBvcGFjaXR5YFxuICAgIC8vIHRvIGNvbnRyb2wgaG93IG9wYXF1ZSB0aGUgcmlwcGxlIHNob3VsZCBiZS5cbiAgICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcF9nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXJhZGlvLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxufVxuXG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtc2VsZWN0LXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IF9tYXQtY29udHJvbC1wbGFjZWhvbGRlci1jb2xvcigkdGhlbWUpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtdmFsdWUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDQsICR0aGVtZSk7XG5cbiAgICAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKSB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyLCAwLjEyKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQge1xuICAgICYubWF0LWZvY3VzZWQge1xuICAgICAgJi5tYXQtcHJpbWFyeSAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuICAgICAgfVxuXG4gICAgICAmLm1hdC1hY2NlbnQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICAgICAgfVxuXG4gICAgICAmLm1hdC13YXJuIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1pbnZhbGlkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc2VsZWN0LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG5cbiAgLm1hdC1zZWxlY3Qge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBoZWlnaHQ6ICRsaW5lLWhlaWdodCAqIDFlbTtcbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIG1hdC1zaWRlbmF2LXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAkZHJhd2VyLWJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlhbG9nKTtcbiAgJGRyYXdlci1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjogIG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYmFja2dyb3VuZCk7XG4gICRkcmF3ZXItcHVzaC1iYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpYWxvZyk7XG4gICRkcmF3ZXItc2lkZS1ib3JkZXI6IHNvbGlkIDFweCBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuXG4gIC5tYXQtZHJhd2VyLWNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRyYXdlci1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZHJhd2VyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJhd2VyLWJhY2tncm91bmQtY29sb3I7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmLm1hdC1kcmF3ZXItcHVzaCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJhd2VyLXB1c2gtYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LWRyYXdlci1zaWRlKSB7XG4gICAgICAvLyBUaGUgZWxldmF0aW9uIG9mIHotMTYgaXMgbm90ZWQgaW4gdGhlIGRlc2lnbiBzcGVjaWZpY2F0aW9ucy5cbiAgICAgIC8vIFNlZSBodHRwczovL21hdGVyaWFsLmlvL2Rlc2lnbi9jb21wb25lbnRzL25hdmlnYXRpb24tZHJhd2VyLmh0bWxcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDE2LCAkdGhlbWUpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZHJhd2VyLXNpZGUge1xuICAgIGJvcmRlci1yaWdodDogJGRyYXdlci1zaWRlLWJvcmRlcjtcblxuICAgICYubWF0LWRyYXdlci1lbmQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICRkcmF3ZXItc2lkZS1ib3JkZXI7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgW2Rpcj0ncnRsJ10gLm1hdC1kcmF3ZXItc2lkZSB7XG4gICAgYm9yZGVyLWxlZnQ6ICRkcmF3ZXItc2lkZS1ib3JkZXI7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuXG4gICAgJi5tYXQtZHJhd2VyLWVuZCB7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIGJvcmRlci1yaWdodDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3duIHtcbiAgICAkb3BhY2l0eTogMC42O1xuICAgICRiYWNrZHJvcC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkLCAkb3BhY2l0eSk7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGJhY2tkcm9wLWNvbG9yKSA9PSBjb2xvcikge1xuICAgICAgLy8gV2UgdXNlIGludmVydCgpIGhlcmUgdG8gaGF2ZSB0aGUgZGFya2VuIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGV4cGVjdGVkIHRvIGJlIHVzZWQuIElmIHRoZVxuICAgICAgLy8gYmFja2dyb3VuZCBpcyBsaWdodCwgd2UgdXNlIGEgZGFyayBiYWNrZHJvcC4gSWYgdGhlIGJhY2tncm91bmQgaXMgZGFyayxcbiAgICAgIC8vIHdlIHVzZSBhIGxpZ2h0IGJhY2tkcm9wLlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW52ZXJ0KCRiYWNrZHJvcC1jb2xvcik7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIElmIHdlIGNvdWxkbid0IHJlc29sdmUgdGhlIGJhY2tkcm9wIGNvbG9yIHRvIGEgY29sb3IgdmFsdWUsIGZhbGwgYmFjayB0byB1c2luZ1xuICAgICAgLy8gYG9wYWNpdHlgIHRvIG1ha2UgaXQgb3BhcXVlIHNpbmNlIGl0cyBlbmQgdmFsdWUgY291bGQgYmUgYSBzb2xpZCBjb2xvci5cbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZHJvcC1jb2xvcjtcbiAgICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNpZGVuYXYtdHlwb2dyYXBoeSgkY29uZmlnKSB7IH1cblxuXG5cblxuXG5cbkBtaXhpbiBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUpIHtcbiAgJi5tYXQtY2hlY2tlZCB7XG4gICAgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cblxuICAgIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gICAgICAvLyBPcGFjaXR5IGlzIGRldGVybWluZWQgZnJvbSB0aGUgc3BlY3MgZm9yIHRoZSBzZWxlY3Rpb24gY29udHJvbHMuXG4gICAgICAvLyBTZWU6IGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbXBvbmVudHMvc2VsZWN0aW9uLWNvbnRyb2xzLmh0bWwjc3BlY3NcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgJHRodW1iLWNoZWNrZWQtaHVlLCAwLjU0KTtcbiAgICB9XG5cbiAgICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIC8vIFNldCBubyBvcGFjaXR5IGZvciB0aGUgcmlwcGxlcyBiZWNhdXNlIHRoZSByaXBwbGUgb3BhY2l0eSB3aWxsIGJlIGFkanVzdGVkIGR5bmFtaWNhbGx5XG4gICAgICAvLyBiYXNlZCBvbiB0aGUgdHlwZSBvZiBpbnRlcmFjdGlvbiB3aXRoIHRoZSBzbGlkZS10b2dnbGUgKGUuZy4gZm9yIGhvdmVyLCBmb2N1cylcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgJHRodW1iLWNoZWNrZWQtaHVlKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbGlkZS10b2dnbGUtdGhlbWUoJHRoZW1lKSB7XG4gICRpcy1kYXJrOiBtYXBfZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC8vIENvbG9yIGh1ZXMgYXJlIGJhc2VkIG9uIHRoZSBzcGVjcyB3aGljaCBicmllZmx5IHNob3cgdGhlIGh1ZXMgdGhhdCBhcmUgYXBwbGllZCB0byBhIHN3aXRjaC5cbiAgLy8gVGhlIDIwMTggc3BlY3Mgbm8gbG9uZ2VyIGRlc2NyaWJlIGhvdyBkYXJrIHN3aXRjaGVzIHNob3VsZCBsb29rIGxpa2UuIER1ZSB0byB0aGUgbGFjayBvZlxuICAvLyBpbmZvcm1hdGlvbiBmb3IgZGFyayB0aGVtZWQgc3dpdGNoZXMsIHdlIHBhcnRpYWxseSBrZWVwIHRoZSBvbGQgYmVoYXZpb3IgdGhhdCBpcyBiYXNlZCBvblxuICAvLyB0aGUgcHJldmlvdXMgc3BlY2lmaWNhdGlvbnMuIEZvciB0aGUgY2hlY2tlZCBjb2xvciB3ZSBhbHdheXMgdXNlIHRoZSBgZGVmYXVsdGAgaHVlIGJlY2F1c2VcbiAgLy8gdGhhdCBmb2xsb3dzIE1EQyBhbmQgYWxzbyBtYWtlcyBpdCBlYXNpZXIgZm9yIHBlb3BsZSB0byBjcmVhdGUgYSBjdXN0b20gdGhlbWUgd2l0aG91dCBuZWVkaW5nXG4gIC8vIHRvIHNwZWNpZnkgZWFjaCBodWUgaW5kaXZpZHVhbGx5LlxuICAkdGh1bWItdW5jaGVja2VkLWh1ZTogaWYoJGlzLWRhcmssIDQwMCwgNTApO1xuICAkdGh1bWItY2hlY2tlZC1odWU6IGRlZmF1bHQ7XG5cbiAgJGJhci11bmNoZWNrZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAkcmlwcGxlLXVuY2hlY2tlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlKTtcblxuICAubWF0LXNsaWRlLXRvZ2dsZSB7XG4gICAgQGluY2x1ZGUgX21hdC1zbGlkZS10b2dnbGUtY2hlY2tlZCgkYWNjZW50LCAkdGh1bWItY2hlY2tlZC1odWUpO1xuXG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCRwcmltYXJ5LCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC1zbGlkZS10b2dnbGUtY2hlY2tlZCgkd2FybiwgJHRodW1iLWNoZWNrZWQtaHVlKTtcbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LWNoZWNrZWQpIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgLy8gU2V0IG5vIG9wYWNpdHkgZm9yIHRoZSByaXBwbGVzIGJlY2F1c2UgdGhlIHJpcHBsZSBvcGFjaXR5IHdpbGwgYmUgYWRqdXN0ZWQgZHluYW1pY2FsbHlcbiAgICAgIC8vIGJhc2VkIG9uIHRoZSB0eXBlIG9mIGludGVyYWN0aW9uIHdpdGggdGhlIHNsaWRlLXRvZ2dsZSAoZS5nLiBmb3IgaG92ZXIsIGZvY3VzKVxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJpcHBsZS11bmNoZWNrZWQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDEsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRtYXQtZ3JleSwgJHRodW1iLXVuY2hlY2tlZC1odWUpO1xuICB9XG5cbiAgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFyLXVuY2hlY2tlZC1jb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1zbGlkZS10b2dnbGUtY29udGVudCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRwYWxldHRlKSB7XG4gIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4gIC5tYXQtc2xpZGVyLXRodW1iLFxuICAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc2xpZGVyLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAkbWF0LXNsaWRlci1vZmYtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW9mZik7XG4gICRtYXQtc2xpZGVyLW9mZi1mb2N1c2VkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1vZmYtYWN0aXZlKTtcbiAgJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW9mZik7XG4gICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1taW4pO1xuICAkbWF0LXNsaWRlci1sYWJlbGVkLW1pbi12YWx1ZS10aHVtYi1sYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItZm9jdXMtcmluZy1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIGRlZmF1bHQsIDAuMik7XG4gICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctbWluLXZhbHVlLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UsIDAuMTIpO1xuICAkbWF0LXNsaWRlci10aWNrLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UsIDAuNyk7XG4gICRtYXQtc2xpZGVyLXRpY2stc2l6ZTogMnB4O1xuXG4gIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLW9mZi1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtcHJpbWFyeSB7XG4gICAgQGluY2x1ZGUgX21hdC1zbGlkZXItaW5uZXItY29udGVudC10aGVtZSgkcHJpbWFyeSk7XG4gIH1cblxuICAubWF0LWFjY2VudCB7XG4gICAgQGluY2x1ZGUgX21hdC1zbGlkZXItaW5uZXItY29udGVudC10aGVtZSgkYWNjZW50KTtcbiAgfVxuXG4gIC5tYXQtd2FybiB7XG4gICAgQGluY2x1ZGUgX21hdC1zbGlkZXItaW5uZXItY29udGVudC10aGVtZSgkd2Fybik7XG4gIH1cblxuICAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1mb2N1cy1yaW5nLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1zbGlkZXI6aG92ZXIsXG4gIC5jZGstZm9jdXNlZCB7XG4gICAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtZm9jdXNlZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlci1kaXNhYmxlZCB7XG4gICAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCxcbiAgICAubWF0LXNsaWRlci10cmFjay1maWxsLFxuICAgIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWRpc2FibGVkLWNvbG9yO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLW1pbi12YWx1ZSB7XG4gICAgLm1hdC1zbGlkZXItZm9jdXMtcmluZyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1mb2N1cy1yaW5nLW1pbi12YWx1ZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyB7XG4gICAgICAubWF0LXNsaWRlci10aHVtYixcbiAgICAgIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItY29sb3I7XG4gICAgICB9XG5cbiAgICAgICYuY2RrLWZvY3VzZWQge1xuICAgICAgICAubWF0LXNsaWRlci10aHVtYixcbiAgICAgICAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWxhYmVsLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykge1xuICAgICAgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgICBib3JkZXItY29sb3I6ICRtYXQtc2xpZGVyLW9mZi1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmLmNkay1mb2N1c2VkIHtcbiAgICAgICAgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWZvY3VzZWQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlci1oYXMtdGlja3MgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItdGljay1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGlja3Mge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRtYXQtc2xpZGVyLXRpY2stY29sb3IsXG4gICAgICAgICRtYXQtc2xpZGVyLXRpY2stY29sb3IgJG1hdC1zbGlkZXItdGljay1zaXplLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG4gICAgLy8gRmlyZWZveCBkb2Vzbid0IGRyYXcgdGhlIGdyYWRpZW50IGNvcnJlY3RseSB3aXRoICd0byByaWdodCdcbiAgICAvLyAoc2VlIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTQzMTkpLlxuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgwLjAwMDFkZWcsICRtYXQtc2xpZGVyLXRpY2stY29sb3IsXG4gICAgICAgICRtYXQtc2xpZGVyLXRpY2stY29sb3IgJG1hdC1zbGlkZXItdGljay1zaXplLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICRtYXQtc2xpZGVyLXRpY2stY29sb3IsXG4gICAgICAgICRtYXQtc2xpZGVyLXRpY2stY29sb3IgJG1hdC1zbGlkZXItdGljay1zaXplLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbGlkZXItdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC1zdGVwcGVyLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtc3RlcC1oZWFkZXIge1xuICAgICYuY2RrLWtleWJvYXJkLWZvY3VzZWQsXG4gICAgJi5jZGstcHJvZ3JhbS1mb2N1c2VkLFxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuXG4gICAgLy8gT24gdG91Y2ggZGV2aWNlcyB0aGUgOmhvdmVyIHN0YXRlIHdpbGwgbGluZ2VyIG9uIHRoZSBlbGVtZW50IGFmdGVyIGEgdGFwLlxuICAgIC8vIFJlc2V0IGl0IHZpYSBgQG1lZGlhYCBhZnRlciB0aGUgZGVjbGFyYXRpb24sIGJlY2F1c2UgdGhlIG1lZGlhIHF1ZXJ5IGlzbid0XG4gICAgLy8gc3VwcG9ydGVkIGJ5IGFsbCBicm93c2VycyB5ZXQuXG4gICAgQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWxhYmVsLFxuICAgIC5tYXQtc3RlcC1vcHRpb25hbCB7XG4gICAgICAvLyBUT0RPKGpvc2VwaHBlcnJvdHQpOiBVcGRhdGUgdG8gdXNpbmcgYSBjb3JyZWN0ZWQgZGlzYWJsZWQtdGV4dCBjb250cmFzdFxuICAgICAgLy8gaW5zdGVhZCBvZiBzZWNvbmRhcnktdGV4dC5cbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtaWNvbiB7XG4gICAgICAvLyBUT0RPKGpvc2VwaHBlcnJvdHQpOiBVcGRhdGUgdG8gdXNpbmcgYSBjb3JyZWN0ZWQgZGlzYWJsZWQtdGV4dCBjb250cmFzdFxuICAgICAgLy8gaW5zdGVhZCBvZiBzZWNvbmRhcnktdGV4dC5cbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4gICAgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSxcbiAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lcnJvciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1hY3RpdmUge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLCAubWF0LXN0ZXBwZXItdmVydGljYWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gIH1cblxuICAubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3JlIHtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxuXG4gIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YmVmb3JlLFxuICAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmFmdGVyLFxuICAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5lIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc3RlcHBlci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1zdGVwcGVyLXZlcnRpY2FsLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtc3RlcC1sYWJlbCB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9O1xuICB9XG5cbiAgLm1hdC1zdGVwLXN1Yi1sYWJlbC1lcnJvciB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgfVxuXG4gIC5tYXQtc3RlcC1sYWJlbC1lcnJvciB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMik7XG4gIH1cblxuICAubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWQge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gICAgfTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNvcnQtdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1zb3J0LWhlYWRlci1hcnJvdyB7XG4gICAgJHRhYmxlLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgICAkdGV4dC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG5cbiAgICAvLyBCZWNhdXNlIHRoZSBhcnJvdyBpcyBtYWRlIHVwIG9mIG11bHRpcGxlIGVsZW1lbnRzIHRoYXQgYXJlIHN0YWNrZWQgb24gdG9wIG9mIGVhY2ggb3RoZXIsXG4gICAgLy8gd2UgY2FuJ3QgdXNlIHRoZSBzZW1pLXRyYXNwYXJlbnQgY29sb3IgZnJvbSB0aGUgdGhlbWUgZGlyZWN0bHkuIElmIHRoZSB2YWx1ZSBpcyBhIGNvbG9yXG4gICAgLy8gKnR5cGUqLCB3ZSBjb252ZXJ0IGl0IGludG8gYSBzb2xpZCBjb2xvciBieSB0YWtpbmcgdGhlIG9wYWNpdHkgZnJvbSB0aGUgcmdiYSB2YWx1ZSBhbmRcbiAgICAvLyB1c2luZyB0aGUgdmFsdWUgdG8gZGV0ZXJtaW5lIHRoZSBwZXJjZW50YWdlIG9mIHRoZSBiYWNrZ3JvdW5kIHRvIHB1dCBpbnRvIGZvcmVncm91bmRcbiAgICAvLyB3aGVuIG1peGluZyB0aGUgY29sb3JzIHRvZ2V0aGVyLiBPdGhlcndpc2UsIGlmIGl0IHJlc29sdmVzIHRvIHNvbWV0aGluZyBkaWZmZXJlbnRcbiAgICAvLyAoZS5nLiBpdCByZXNvbHZlcyB0byBhIENTUyB2YXJpYWJsZSksIHdlIHVzZSB0aGUgY29sb3IgZGlyZWN0bHkuXG4gICAgQGlmICh0eXBlLW9mKCR0YWJsZS1iYWNrZ3JvdW5kKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkdGV4dC1jb2xvcikgPT0gY29sb3IpIHtcbiAgICAgICR0ZXh0LW9wYWNpdHk6IG9wYWNpdHkoJHRleHQtY29sb3IpO1xuICAgICAgY29sb3I6IG1peCgkdGFibGUtYmFja2dyb3VuZCwgcmdiYSgkdGV4dC1jb2xvciwgMSksICgxIC0gJHRleHQtb3BhY2l0eSkgKiAxMDAlKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNvcnQtdHlwb2dyYXBoeSgkY29uZmlnKSB7IH1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXRhYnMtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkaGVhZGVyLWJvcmRlcjogMXB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC10YWItbmF2LWJhcixcbiAgLm1hdC10YWItaGVhZGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVhZGVyLWJvcmRlcjtcbiAgfVxuXG4gIC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciB7XG4gICAgLm1hdC10YWItbmF2LWJhcixcbiAgICAubWF0LXRhYi1oZWFkZXIge1xuICAgICAgYm9yZGVyLXRvcDogJGhlYWRlci1ib3JkZXI7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1saW5rIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LXRhYi1kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cblxuICAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAvLyBSZW1vdmUgaGVhZGVyIGJvcmRlciB3aGVuIHRoZXJlIGlzIGEgYmFja2dyb3VuZCBjb2xvclxuICAubWF0LXRhYi1ncm91cFtjbGFzcyo9J21hdC1iYWNrZ3JvdW5kLSddIC5tYXQtdGFiLWhlYWRlcixcbiAgLm1hdC10YWItbmF2LWJhcltjbGFzcyo9J21hdC1iYWNrZ3JvdW5kLSddIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gIH1cblxuICAubWF0LXRhYi1ncm91cCwgLm1hdC10YWItbmF2LWJhciB7XG4gICAgJHRoZW1lLWNvbG9yczogKFxuICAgICAgcHJpbWFyeTogJHByaW1hcnksXG4gICAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgICB3YXJuOiAkd2FyblxuICAgICk7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICR0aGVtZS1jb2xvcnMge1xuICAgICAgLy8gU2V0IHRoZSBmb3JlZ3JvdW5kIGNvbG9yIG9mIHRoZSB0YWJzXG4gICAgICAmLm1hdC0jeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtdGFiLWxhYmVsLWZvY3VzKCRjb2xvcik7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtaW5rLWJhcigkY29sb3IpO1xuXG4gICAgICAgIC8vIE92ZXJyaWRlIGluayBiYXIgd2hlbiBiYWNrZ3JvdW5kIGNvbG9yIGlzIHRoZSBzYW1lXG4gICAgICAgICYubWF0LWJhY2tncm91bmQtI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIF9tYXQtaW5rLWJhcigkY29sb3IsIGRlZmF1bHQtY29udHJhc3QpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkdGhlbWUtY29sb3JzIHtcbiAgICAgIC8vIFNldCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSB0YWJzIGFuZCBvdmVycmlkZSBmb2N1cyBjb2xvclxuICAgICAgJi5tYXQtYmFja2dyb3VuZC0jeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtdGFiLWxhYmVsLWZvY3VzKCRjb2xvcik7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtdGFicy1iYWNrZ3JvdW5kKCRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LWluay1iYXIoJGNvbG9yLCAkaHVlOiBkZWZhdWx0KSB7XG4gIC5tYXQtaW5rLWJhciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRjb2xvciwgJGh1ZSk7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtdGFiLWxhYmVsLWZvY3VzKCR0YWItZm9jdXMtY29sb3IpIHtcbiAgLm1hdC10YWItbGFiZWwsXG4gIC5tYXQtdGFiLWxpbmsge1xuICAgICYuY2RrLWtleWJvYXJkLWZvY3VzZWQsXG4gICAgJi5jZGstcHJvZ3JhbS1mb2N1c2VkIHtcbiAgICAgICY6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkdGFiLWZvY3VzLWNvbG9yLCBsaWdodGVyLCAwLjMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC10YWJzLWJhY2tncm91bmQoJGJhY2tncm91bmQtY29sb3IpIHtcbiAgLy8gU2V0IGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSB0YWIgZ3JvdXBcbiAgLm1hdC10YWItaGVhZGVyLCAubWF0LXRhYi1saW5rcywgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZC1jb2xvcik7XG4gIH1cblxuICAvLyBTZXQgbGFiZWxzIHRvIGNvbnRyYXN0IGFnYWluc3QgYmFja2dyb3VuZFxuICAubWF0LXRhYi1sYWJlbCwgLm1hdC10YWItbGluayB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZC1jb2xvciwgZGVmYXVsdC1jb250cmFzdCk7XG5cbiAgICAmLm1hdC10YWItZGlzYWJsZWQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZC1jb2xvciwgZGVmYXVsdC1jb250cmFzdCwgMC40KTtcbiAgICB9XG4gIH1cblxuICAvLyBTZXQgcGFnaW5hdGlvbiBjaGV2cm9ucyB0byBjb250cmFzdCBiYWNrZ3JvdW5kXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjQpO1xuICB9XG5cbiAgLy8gU2V0IHJpcHBsZXMgY29sb3IgdG8gYmUgdGhlIGNvbnRyYXN0IGNvbG9yIG9mIHRoZSBuZXcgYmFja2dyb3VuZC4gT3RoZXJ3aXNlIHRoZSByaXBwbGVcbiAgLy8gY29sb3Igd2lsbCBiZSBiYXNlZCBvbiB0aGUgYXBwIGJhY2tncm91bmQgY29sb3IuXG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZC1jb2xvciwgZGVmYXVsdC1jb250cmFzdCwgMC4xMik7XG4gIH1cbn1cblxuQG1peGluIG1hdC10YWJzLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRhYi1ncm91cCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1saW5rIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYnV0dG9uKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBfbWF0LXRvb2xiYXItY29sb3IoJHBhbGV0dGUpIHtcbiAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG59XG5cbkBtaXhpbiBfbWF0LXRvb2xiYXItZm9ybS1maWVsZC1vdmVycmlkZXMge1xuICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lLFxuICAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuICAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAubWF0LXNlbGVjdC12YWx1ZSxcbiAgLm1hdC1zZWxlY3QtYXJyb3csXG4gIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cblxuICAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sYmFyLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXRvb2xiYXIge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYXBwLWJhcik7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdG9vbGJhci1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdG9vbGJhci1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdG9vbGJhci1jb2xvcigkd2Fybik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWZvcm0tZmllbGQtb3ZlcnJpZGVzO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdG9vbGJhci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC10b29sYmFyLFxuICAubWF0LXRvb2xiYXIgaDEsXG4gIC5tYXQtdG9vbGJhciBoMixcbiAgLm1hdC10b29sYmFyIGgzLFxuICAubWF0LXRvb2xiYXIgaDQsXG4gIC5tYXQtdG9vbGJhciBoNSxcbiAgLm1hdC10b29sYmFyIGg2IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG5cblxuXG5cbiRtYXQtdG9vbHRpcC10YXJnZXQtaGVpZ2h0OiAyMnB4O1xuJG1hdC10b29sdGlwLWZvbnQtc2l6ZTogMTBweDtcbiRtYXQtdG9vbHRpcC12ZXJ0aWNhbC1wYWRkaW5nOiAoJG1hdC10b29sdGlwLXRhcmdldC1oZWlnaHQgLSAkbWF0LXRvb2x0aXAtZm9udC1zaXplKSAvIDI7XG5cbiRtYXQtdG9vbHRpcC1oYW5kc2V0LXRhcmdldC1oZWlnaHQ6IDMwcHg7XG4kbWF0LXRvb2x0aXAtaGFuZHNldC1mb250LXNpemU6IDE0cHg7XG4kbWF0LXRvb2x0aXAtaGFuZHNldC12ZXJ0aWNhbC1wYWRkaW5nOlxuICAgICgkbWF0LXRvb2x0aXAtaGFuZHNldC10YXJnZXQtaGVpZ2h0IC0gJG1hdC10b29sdGlwLWhhbmRzZXQtZm9udC1zaXplKSAvIDI7XG5cbkBtaXhpbiBtYXQtdG9vbHRpcC10aGVtZSgkdGhlbWUpIHtcbiAgLm1hdC10b29sdGlwIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJG1hdC1ncmV5LCA3MDAsIDAuOSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sdGlwLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRvb2x0aXAge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gICAgZm9udC1zaXplOiAkbWF0LXRvb2x0aXAtZm9udC1zaXplO1xuICAgIHBhZGRpbmctdG9wOiAkbWF0LXRvb2x0aXAtdmVydGljYWwtcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJG1hdC10b29sdGlwLXZlcnRpY2FsLXBhZGRpbmc7XG4gIH1cblxuICAubWF0LXRvb2x0aXAtaGFuZHNldCB7XG4gICAgZm9udC1zaXplOiAkbWF0LXRvb2x0aXAtaGFuZHNldC1mb250LXNpemU7XG4gICAgcGFkZGluZy10b3A6ICRtYXQtdG9vbHRpcC1oYW5kc2V0LXZlcnRpY2FsLXBhZGRpbmc7XG4gICAgcGFkZGluZy1ib3R0b206ICRtYXQtdG9vbHRpcC1oYW5kc2V0LXZlcnRpY2FsLXBhZGRpbmc7XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXNuYWNrLWJhci10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG5cbiAgLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgICAvLyBVc2UgdGhlIHByaW1hcnkgdGV4dCBvbiB0aGUgZGFyayB0aGVtZSwgZXZlbiB0aG91Z2ggdGhlIGxpZ2h0ZXIgb25lIHVzZXNcbiAgICAvLyBhIHNlY29uZGFyeSwgYmVjYXVzZSB0aGUgY29udHJhc3Qgb24gdGhlIGxpZ2h0IHByaW1hcnkgdGV4dCBpcyBwb29yLlxuICAgIGNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJGRhcmstcHJpbWFyeS10ZXh0LCAkbGlnaHQtc2Vjb25kYXJ5LXRleHQpO1xuICAgIGJhY2tncm91bmQ6IGlmKCRpcy1kYXJrLXRoZW1lLCBtYXAtZ2V0KCRtYXQtZ3JleSwgNTApLCAjMzIzMjMyKTtcblxuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDYsICR0aGVtZSk7XG4gIH1cblxuICAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICAgIGNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgaW5oZXJpdCwgbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNuYWNrLWJhci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1zaW1wbGUtc25hY2tiYXIge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IGluaGVyaXQ7XG4gICAgICBzaXplOiBpbmhlcml0O1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYnV0dG9uKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBmaWxsIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1maWxsLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuXG4gICRmaWxsLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgaWYoJGlzLWRhcmstdGhlbWUsIDAuMSwgMC4wNCkpO1xuICAkZmlsbC1kaXNhYmxlZC1iYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjA1LCAwLjAyKSk7XG4gICR1bmRlcmxpbmUtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNSwgMC40MikpO1xuICAkbGFiZWwtZGlzYWJsZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpbGwtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmaWxsLWRpc2FibGVkLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCB7XG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBjb2xvcjogJGxhYmVsLWRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuXG4gICAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVXNlZCB0byBtYWtlIGluc3RhbmNlcyBvZiB0aGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nIG1peGluIG5lZ2xpZ2libHkgZGlmZmVyZW50LFxuLy8gYW5kIHByZXZlbnQgR29vZ2xlJ3MgQ1NTIE9wdGltaXplciBmcm9tIGNvbGxhcHNpbmcgdGhlIGRlY2xhcmF0aW9ucy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBzb21lXG4vLyBvZiB0aGUgc2VsZWN0b3JzIGNvbnRhaW4gcHNldWRvLWNsYXNzZXMgbm90IHJlY29nbml6ZWQgaW4gYWxsIGJyb3dzZXJzLiBJZiBhIGJyb3dzZXIgZW5jb3VudGVyc1xuLy8gYW4gdW5rbm93biBwc2V1ZG8tY2xhc3MgaXQgd2lsbCBkaXNjYXJkIHRoZSBlbnRpcmUgcnVsZSBzZXQuXG4kbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGU6IDA7XG5cbi8vIEFwcGxpZXMgYSBmbG9hdGluZyBsYWJlbCBhYm92ZSB0aGUgZm9ybSBmaWVsZCBjb250cm9sIGl0c2VsZi5cbkBtaXhpbiBfbWF0LWZvcm0tZmllbGQtZmlsbC1sYWJlbC1mbG9hdGluZygkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZyArICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZSlcbiAgICAgICAgICAgICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1maWxsLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBwYWRkaW5nIG9uIHRvcCBvZiB0aGUgaW5maXguXG4gICRpbmZpeC1wYWRkaW5nLXRvcDogMC4yNWVtO1xuICAvLyBUaGUgcGFkZGluZyBiZWxvdyB0aGUgaW5maXguXG4gICRpbmZpeC1wYWRkaW5nLWJvdHRvbTogMC43NWVtO1xuICAvLyBUaGUgbWFyZ2luIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtaW5maXggdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsLlxuICAkaW5maXgtbWFyZ2luLXRvcDogMWVtICogJGxpbmUtaGVpZ2h0ICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgYW1vdW50IHdlIG9mZnNldCB0aGUgbGFiZWwgZnJvbSB0aGUgaW5wdXQgdGV4dCBpbiB0aGUgZmlsbCBhcHBlYXJhbmNlLlxuICAkZmlsbC1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldDogLTAuNWVtO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwge1xuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZy10b3AgMCAkaW5maXgtcGFkZGluZy1ib3R0b20gMDtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgdG9wOiAkaW5maXgtbWFyZ2luLXRvcCArICRpbmZpeC1wYWRkaW5nLXRvcDtcbiAgICAgIG1hcmdpbi10b3A6ICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0O1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWZpbGwtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZy10b3AgKyAkZmlsbC1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNlcnZlci1zaWRlIHJlbmRlcmVkIG1hdElucHV0IHdpdGggYSBsYWJlbCBhdHRyaWJ1dGUgYnV0IGxhYmVsIG5vdCBzaG93blxuICAgICAgLy8gKHVzZWQgYXMgYSBwdXJlIENTUyBzdGFuZC1pbiBmb3IgbWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0KS5cbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtZmlsbC1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLXRvcCArICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuLy8gVGhlbWUgc3R5bGVzIHRoYXQgb25seSBhcHBseSB0byB0aGUgbGVnYWN5IGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1sZWdhY3ktdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG5cbiAgJGxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgJHVuZGVybGluZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC43LCAwLjQyKSk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcbiAgICB9XG5cbiAgICAubWF0LWhpbnQge1xuICAgICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jb250cm9sLWRpc2FibGVkLXVuZGVybGluZSgkdW5kZXJsaW5lLWNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVXNlZCB0byBtYWtlIGluc3RhbmNlcyBvZiB0aGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nIG1peGluIG5lZ2xpZ2libHkgZGlmZmVyZW50LFxuLy8gYW5kIHByZXZlbnQgR29vZ2xlJ3MgQ1NTIE9wdGltaXplciBmcm9tIGNvbGxhcHNpbmcgdGhlIGRlY2xhcmF0aW9ucy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBzb21lXG4vLyBvZiB0aGUgc2VsZWN0b3JzIGNvbnRhaW4gcHNldWRvLWNsYXNzZXMgbm90IHJlY29nbml6ZWQgaW4gYWxsIGJyb3dzZXJzLiBJZiBhIGJyb3dzZXIgZW5jb3VudGVyc1xuLy8gYW4gdW5rbm93biBwc2V1ZG8tY2xhc3MgaXQgd2lsbCBkaXNjYXJkIHRoZSBlbnRpcmUgcnVsZSBzZXQuXG4kbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmcoJGZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCkge1xuICAvLyBXZSB1c2UgcGVyc3BlY3RpdmUgdG8gZml4IHRoZSB0ZXh0IGJsdXJyaW5lc3MgYXMgZGVzY3JpYmVkIGhlcmU6XG4gIC8vIGh0dHA6Ly93d3cudXNlcmFnZW50bWFuLmNvbS9ibG9nLzIwMTQvMDUvMDQvZml4aW5nLXR5cG9ncmFwaHktaW5zaWRlLW9mLTItZC1jc3MtdHJhbnNmb3Jtcy9cbiAgLy8gVGhpcyByZXN1bHRzIGluIGEgc21hbGwgaml0dGVyIGFmdGVyIHRoZSBsYWJlbCBmbG9hdHMgb24gRmlyZWZveCwgd2hpY2ggdGhlXG4gIC8vIHRyYW5zbGF0ZVogZml4ZXMuXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZykgc2NhbGUoJGZvbnQtc2NhbGUpIHBlcnNwZWN0aXZlKDEwMHB4KVxuICB0cmFuc2xhdGVaKDAuMDAxcHggKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSk7XG4gIC8vIFRoZSB0cmlja3MgYWJvdmUgdXNlZCB0byBzbW9vdGggb3V0IHRoZSBhbmltYXRpb24gb24gY2hyb21lIGFuZCBmaXJlZm94IGFjdHVhbGx5IG1ha2UgdGhpbmdzXG4gIC8vIHdvcnNlIG9uIElFLCBzbyB3ZSBkb24ndCBpbmNsdWRlIHRoZW0gaW4gdGhlIElFIHZlcnNpb24uXG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSlcbiAgICAgICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcblxuICB3aWR0aDogMTAwJSAvICRmb250LXNjYWxlICsgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG4vLyBTYW1lIGFzIG1peGluIGFib3ZlLCBidXQgb21pdHMgdGhlIHRyYW5zbGF0ZVogZm9yIHByaW50aW5nIHB1cnBvc2VzLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmctcHJpbnQoJGZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCkge1xuICAvLyBUaGlzIHJlc3VsdHMgaW4gYSBzbWFsbCBqaXR0ZXIgYWZ0ZXIgdGhlIGxhYmVsIGZsb2F0cyBvbiBGaXJlZm94LCB3aGljaCB0aGVcbiAgLy8gdHJhbnNsYXRlWiBmaXhlcy5cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUpXG4gICAgICAgICAgICAgICAgICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIC8vIFRoZSB0cmlja3MgYWJvdmUgdXNlZCB0byBzbW9vdGggb3V0IHRoZSBhbmltYXRpb24gb24gY2hyb21lIGFuZCBmaXJlZm94IGFjdHVhbGx5IG1ha2UgdGhpbmdzXG4gIC8vIHdvcnNlIG9uIElFLCBzbyB3ZSBkb24ndCBpbmNsdWRlIHRoZW0gaW4gdGhlIElFIHZlcnNpb24uXG4gICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuICAvLyBUaGUgYW1vdW50IHRvIHNjYWxlIHRoZSBmb250IGZvciB0aGUgZmxvYXRpbmcgbGFiZWwgYW5kIHN1YnNjcmlwdC5cbiAgJHN1YnNjcmlwdC1mb250LXNjYWxlOiAwLjc1O1xuICAvLyBUaGUgYW1vdW50IG9mIHNwYWNlIGJldHdlZW4gdGhlIHRvcCBvZiB0aGUgbGluZSBhbmQgdGhlIHRvcCBvZiB0aGUgYWN0dWFsIHRleHRcbiAgLy8gKGFzIGEgZnJhY3Rpb24gb2YgdGhlIGZvbnQtc2l6ZSkuXG4gICRsaW5lLXNwYWNpbmc6ICgkbGluZS1oZWlnaHQgLSAxKSAvIDI7XG4gIC8vIFRoZSBwYWRkaW5nIG9uIHRoZSBpbmZpeC4gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCBzZWVtIHRvIG1lYXN1cmUgZnJvbSB0aGUgZWRnZVxuICAvLyBvZiB0aGUgdGV4dCBpdHNlbGYsIG5vdCB0aGUgZWRnZSBvZiB0aGUgbGluZTsgdGhlcmVmb3JlIHdlIHN1YnRyYWN0IG9mZiB0aGUgbGluZSBzcGFjaW5nLlxuICAkaW5maXgtcGFkZGluZzogMC41ZW0gLSAkbGluZS1zcGFjaW5nO1xuICAvLyBUaGUgbWFyZ2luIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtaW5maXggdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsLlxuICAkaW5maXgtbWFyZ2luLXRvcDogMWVtICogJGxpbmUtaGVpZ2h0ICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgc3BhY2UgYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSAubWF0LWZvcm0tZmllbGQtZmxleCBhcmVhIGFuZCB0aGUgc3Vic2NyaXB0IHdyYXBwZXIuXG4gIC8vIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLCBidXQgdGhpcyBtYXJnaW4gaXMgYXBwbGllZCB0byBhbiBlbGVtZW50IHdpdGggdGhlIHN1YnNjcmlwdFxuICAvLyB0ZXh0IGZvbnQgc2l6ZSwgc28gd2UgbmVlZCB0byBkaXZpZGUgYnkgdGhlIHNjYWxlIGZhY3RvciB0byBtYWtlIGl0IGhhbGYgb2YgdGhlIG9yaWdpbmFsIHRleHRcbiAgLy8gc2l6ZS4gV2UgYWdhaW4gbmVlZCB0byBzdWJ0cmFjdCBvZmYgdGhlIGxpbmUgc3BhY2luZyBzaW5jZSB0aGUgbW9ja3MgbWVhc3VyZSB0byB0aGUgZWRnZSBvZiB0aGVcbiAgLy8gdGV4dCwgbm90IHRoZSAgZWRnZSBvZiB0aGUgbGluZS5cbiAgJHN1YnNjcmlwdC1tYXJnaW4tdG9wOiAwLjVlbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZSAtICgkbGluZS1zcGFjaW5nICogMik7XG4gIC8vIFRoZSBwYWRkaW5nIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtd3JhcHBlciB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgc3Vic2NyaXB0LCBzaW5jZSBpdCdzXG4gIC8vIGFic29sdXRlbHkgcG9zaXRpb25lZC4gVGhpcyBpcyBhIGNvbWJpbmF0aW9uIG9mIHRoZSBzdWJzY3JpcHQncyBtYXJnaW4gYW5kIGxpbmUtaGVpZ2h0LCBidXQgd2VcbiAgLy8gbmVlZCB0byBtdWx0aXBseSBieSB0aGUgc3Vic2NyaXB0IGZvbnQgc2NhbGUgZmFjdG9yIHNpbmNlIHRoZSB3cmFwcGVyIGhhcyBhIGxhcmdlciBmb250IHNpemUuXG4gICR3cmFwcGVyLXBhZGRpbmctYm90dG9tOiAoJHN1YnNjcmlwdC1tYXJnaW4tdG9wICsgJGxpbmUtaGVpZ2h0KSAqICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgcGFkZGluZzogJGluZml4LXBhZGRpbmcgMDtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCB7XG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gICAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuXG4gICAgICAvLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wIHdpbGwgcmVseSBvbiBBdXRvZmlsbE1vbml0b3IgaW5zdGVhZC5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNlcnZlci1zaWRlIHJlbmRlcmVkIG1hdElucHV0IHdpdGggYSBsYWJlbCBhdHRyaWJ1dGUgYnV0IGxhYmVsIG5vdCBzaG93blxuICAgICAgLy8gKHVzZWQgYXMgYSBwdXJlIENTUyBzdGFuZC1pbiBmb3IgbWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0KS5cbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgdG9wOiAkaW5maXgtbWFyZ2luLXRvcCArICRpbmZpeC1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgLy8gV2Ugd2FudCB0aGUgdW5kZXJsaW5lIHRvIHN0YXJ0IGF0IHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQgYm94LCBub3QgdGhlIHBhZGRpbmcgYm94LFxuICAgICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQuXG4gICAgICBib3R0b206ICR3cmFwcGVyLXBhZGRpbmctYm90dG9tO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgICBtYXJnaW4tdG9wOiAkc3Vic2NyaXB0LW1hcmdpbi10b3A7XG5cbiAgICAgIC8vIFdlIHdhbnQgdGhlIHN1YnNjcmlwdCB0byBzdGFydCBhdCB0aGUgZW5kIG9mIHRoZSBjb250ZW50IGJveCwgbm90IHRoZSBwYWRkaW5nIGJveCxcbiAgICAgIC8vIHNvIHdlIG1vdmUgaXQgdXAgYnkgdGhlIHBhZGRpbmcgYW1vdW50IChhZGp1c3RlZCBmb3IgdGhlIHNtYWxsZXIgZm9udCBzaXplKTtcbiAgICAgIHRvcDogY2FsYygxMDAlIC0gI3skd3JhcHBlci1wYWRkaW5nLWJvdHRvbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZX0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIHRyYW5zbGF0ZVogY2F1c2VzIHRoZSBsYWJlbCB0byBub3QgYXBwZWFyIHdoaWxlIHByaW50aW5nLCBzbyB3ZSBvdmVycmlkZSBpdCB0byBub3RcbiAgLy8gYXBwbHkgdHJhbnNsYXRlWiB3aGlsZSBwcmludGluZ1xuICBAbWVkaWEgcHJpbnQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSB7XG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCB7XG4gICAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmctcHJpbnQoXG4gICAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wIHdpbGwgcmVseSBvbiBBdXRvZmlsbE1vbml0b3IgaW5zdGVhZC5cbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNlcnZlci1zaWRlIHJlbmRlcmVkIG1hdElucHV0IHdpdGggYSBsYWJlbCBhdHRyaWJ1dGUgYnV0IGxhYmVsIG5vdCBzaG93blxuICAgICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmctcHJpbnQoXG4gICAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuLy8gVGhlbWUgc3R5bGVzIHRoYXQgb25seSBhcHBseSB0byB0aGUgb3V0bGluZSBhcHBlYXJhbmNlIG9mIHRoZSBmb3JtLWZpZWxkLlxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG5cbiAgJGxhYmVsLWRpc2FibGVkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAkb3V0bGluZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC4zLCAwLjEyKSk7XG4gICRvdXRsaW5lLWNvbG9yLWhvdmVyOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAxLCAwLjg3KSk7XG4gICRvdXRsaW5lLWNvbG9yLXByaW1hcnk6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICRvdXRsaW5lLWNvbG9yLWFjY2VudDogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAkb3V0bGluZS1jb2xvci13YXJuOiBtYXQtY29sb3IoJHdhcm4pO1xuICAkb3V0bGluZS1jb2xvci1kaXNhYmxlZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC4xNSwgMC4wNikpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUge1xuICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICBjb2xvcjogJG91dGxpbmUtY29sb3ItaG92ZXI7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9jdXNlZCB7XG4gICAgICAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1wcmltYXJ5O1xuICAgICAgfVxuXG4gICAgICAmLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3ItYWNjZW50O1xuICAgICAgfVxuXG4gICAgICAmLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLXdhcm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2xhc3MgcmVwZWF0ZWQgc28gdGhhdCBydWxlIGlzIHNwZWNpZmljIGVub3VnaCB0byBvdmVycmlkZSBmb2N1c2VkIGFjY2VudCBjb2xvciBjYXNlLlxuICAgICYubWF0LWZvcm0tZmllbGQtaW52YWxpZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLXdhcm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCB7XG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBjb2xvcjogJGxhYmVsLWRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuXG4gICAgICAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1kaXNhYmxlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVXNlZCB0byBtYWtlIGluc3RhbmNlcyBvZiB0aGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nIG1peGluIG5lZ2xpZ2libHkgZGlmZmVyZW50LFxuLy8gYW5kIHByZXZlbnQgR29vZ2xlJ3MgQ1NTIE9wdGltaXplciBmcm9tIGNvbGxhcHNpbmcgdGhlIGRlY2xhcmF0aW9ucy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBzb21lXG4vLyBvZiB0aGUgc2VsZWN0b3JzIGNvbnRhaW4gcHNldWRvLWNsYXNzZXMgbm90IHJlY29nbml6ZWQgaW4gYWxsIGJyb3dzZXJzLiBJZiBhIGJyb3dzZXIgZW5jb3VudGVyc1xuLy8gYW4gdW5rbm93biBwc2V1ZG8tY2xhc3MgaXQgd2lsbCBkaXNjYXJkIHRoZSBlbnRpcmUgcnVsZSBzZXQuXG4kbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGU6IDA7XG5cbi8vIEFwcGxpZXMgYSBmbG9hdGluZyBsYWJlbCBhYm92ZSB0aGUgZm9ybSBmaWVsZCBjb250cm9sIGl0c2VsZi5cbkBtaXhpbiBfbWF0LWZvcm0tZmllbGQtb3V0bGluZS1sYWJlbC1mbG9hdGluZygkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZyArICRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZSlcbiAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuICB3aWR0aDogMTAwJSAvICRmb250LXNjYWxlICsgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtb3V0bGluZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuICAvLyBUaGUgYW1vdW50IHRvIHNjYWxlIHRoZSBmb250IGZvciB0aGUgZmxvYXRpbmcgbGFiZWwgYW5kIHN1YnNjcmlwdC5cbiAgJHN1YnNjcmlwdC1mb250LXNjYWxlOiAwLjc1O1xuICAvLyBUaGUgcGFkZGluZyBhYm92ZSBhbmQgYmVsb3cgdGhlIGluZml4LlxuICAkaW5maXgtcGFkZGluZzogMWVtO1xuICAvLyBUaGUgbWFyZ2luIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtaW5maXggdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsLlxuICAkaW5maXgtbWFyZ2luLXRvcDogMWVtICogJGxpbmUtaGVpZ2h0ICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgc3BhY2UgYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSAubWF0LWZvcm0tZmllbGQtZmxleCBhcmVhIGFuZCB0aGUgc3Vic2NyaXB0IHdyYXBwZXIuXG4gIC8vIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLCBidXQgdGhpcyBtYXJnaW4gaXMgYXBwbGllZCB0byBhbiBlbGVtZW50IHdpdGggdGhlIHN1YnNjcmlwdFxuICAvLyB0ZXh0IGZvbnQgc2l6ZSwgc28gd2UgbmVlZCB0byBkaXZpZGUgYnkgdGhlIHNjYWxlIGZhY3RvciB0byBtYWtlIGl0IGhhbGYgb2YgdGhlIG9yaWdpbmFsIHRleHRcbiAgLy8gc2l6ZS5cbiAgJHN1YnNjcmlwdC1tYXJnaW4tdG9wOiAwLjVlbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgYW1vdW50IHdlIG9mZnNldCB0aGUgbGFiZWwgZnJvbSB0aGUgaW5wdXQgdGV4dCBpbiB0aGUgb3V0bGluZSBhcHBlYXJhbmNlLlxuICAkb3V0bGluZS1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldDogLTAuMjVlbTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIHtcbiAgICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgcGFkZGluZzogJGluZml4LXBhZGRpbmcgMCAkaW5maXgtcGFkZGluZyAwO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gICAgICBtYXJnaW4tdG9wOiAkb3V0bGluZS1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldDtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCB7XG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gICAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcgKyAkb3V0bGluZS1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNlcnZlci1zaWRlIHJlbmRlcmVkIG1hdElucHV0IHdpdGggYSBsYWJlbCBhdHRyaWJ1dGUgYnV0IGxhYmVsIG5vdCBzaG93blxuICAgICAgLy8gKHVzZWQgYXMgYSBwdXJlIENTUyBzdGFuZC1pbiBmb3IgbWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0KS5cbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtb3V0bGluZS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nICsgJG91dGxpbmUtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBzdGFuZGFyZCBhcHBlYXJhbmNlIG9mIHRoZSBmb3JtLWZpZWxkLlxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtc3RhbmRhcmQtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG5cbiAgJHVuZGVybGluZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC43LCAwLjQyKSk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgQGluY2x1ZGUgbWF0LWNvbnRyb2wtZGlzYWJsZWQtdW5kZXJsaW5lKCR1bmRlcmxpbmUtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtc3RhbmRhcmQtdHlwb2dyYXBoeSgkY29uZmlnKSB7fVxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IGFwcGx5IHRvIGFsbCBhcHBlYXJhbmNlcyBvZiB0aGUgZm9ybS1maWVsZC5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG5cbiAgLy8gTGFiZWwgY29sb3JzLiBSZXF1aXJlZCBpcyB1c2VkIGZvciB0aGUgYCpgIHN0YXIgc2hvd24gaW4gdGhlIGxhYmVsLlxuICAkbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNikpO1xuICAkZm9jdXNlZC1sYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcbiAgJHJlcXVpcmVkLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG5cbiAgLy8gVW5kZXJsaW5lIGNvbG9ycy5cbiAgJHVuZGVybGluZS1jb2xvci1iYXNlOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAxLCAwLjg3KSk7XG4gICR1bmRlcmxpbmUtY29sb3ItYWNjZW50OiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICR1bmRlcmxpbmUtY29sb3Itd2FybjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgJHVuZGVybGluZS1mb2N1c2VkLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtaGludCB7XG4gICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIGNvbG9yOiAkZm9jdXNlZC1sYWJlbC1jb2xvcjtcblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci1hY2NlbnQ7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgICBjb2xvcjogJHJlcXVpcmVkLWxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvci1iYXNlO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIHtcbiAgICAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtZm9jdXNlZC1jb2xvcjtcblxuICAgICAgJi5tYXQtYWNjZW50IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvci1hY2NlbnQ7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1mb2N1c2VkLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsaW5nIGZvciB0aGUgZXJyb3Igc3RhdGUgb2YgdGhlIGZvcm0gZmllbGQuIE5vdGUgdGhhdCB3aGlsZSB0aGUgc2FtZSBjYW4gYmVcbiAgLy8gYWNoaWV2ZWQgd2l0aCB0aGUgbmctKiBjbGFzc2VzLCB3ZSB1c2UgdGhpcyBhcHByb2FjaCBpbiBvcmRlciB0byBlbnN1cmUgdGhhdCB0aGUgc2FtZVxuICAvLyBsb2dpYyBpcyB1c2VkIHRvIHN0eWxlIHRoZSBlcnJvciBzdGF0ZSBhbmQgdG8gc2hvdyB0aGUgZXJyb3IgbWVzc2FnZXMuXG4gIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIHtcbiAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcblxuICAgICAgJi5tYXQtYWNjZW50LFxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gICAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbiAgICAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZXJyb3Ige1xuICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gIH1cblxuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1sZWdhY3ktdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtc3RhbmRhcmQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtZmlsbC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoZW1lKCR0aGVtZSk7XG59XG5cbi8vIFVzZWQgdG8gbWFrZSBpbnN0YW5jZXMgb2YgdGhlIF9tYXQtZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZyBtaXhpbiBuZWdsaWdpYmx5IGRpZmZlcmVudCxcbi8vIGFuZCBwcmV2ZW50IEdvb2dsZSdzIENTUyBPcHRpbWl6ZXIgZnJvbSBjb2xsYXBzaW5nIHRoZSBkZWNsYXJhdGlvbnMuIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2Ugc29tZVxuLy8gb2YgdGhlIHNlbGVjdG9ycyBjb250YWluIHBzZXVkby1jbGFzc2VzIG5vdCByZWNvZ25pemVkIGluIGFsbCBicm93c2Vycy4gSWYgYSBicm93c2VyIGVuY291bnRlcnNcbi8vIGFuIHVua25vd24gcHNldWRvLWNsYXNzIGl0IHdpbGwgZGlzY2FyZCB0aGUgZW50aXJlIHJ1bGUgc2V0LlxuJG1hdC1mb3JtLWZpZWxkLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZygkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZyArICRtYXQtZm9ybS1maWVsZC1kZWR1cGUpXG4gICAgICAgICAgICAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuICB3aWR0aDogMTAwJSAvICRmb250LXNjYWxlICsgJG1hdC1mb3JtLWZpZWxkLWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcblxuICAvLyBUaGUgYW1vdW50IHRvIHNjYWxlIHRoZSBmb250IGZvciB0aGUgZmxvYXRpbmcgbGFiZWwgYW5kIHN1YnNjcmlwdC5cbiAgJHN1YnNjcmlwdC1mb250LXNjYWxlOiAwLjc1O1xuICAvLyBUaGUgYW1vdW50IHRvIHNjYWxlIHRoZSBmb250IGZvciB0aGUgcHJlZml4IGFuZCBzdWZmaXggaWNvbnMuXG4gICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zY2FsZTogMS41O1xuXG4gIC8vIFRoZSBwYWRkaW5nIG9uIHRoZSBpbmZpeC4gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUuXG4gICRpbmZpeC1wYWRkaW5nOiAwLjVlbTtcbiAgLy8gVGhlIG1hcmdpbiBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLWluZml4IHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBmbG9hdGluZyBsYWJlbC5cbiAgJGluZml4LW1hcmdpbi10b3A6IDFlbSAqICRsaW5lLWhlaWdodCAqICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gRm9udCBzaXplIHRvIHVzZSBmb3IgdGhlIGxhYmVsIGFuZCBzdWJzY3JpcHQgdGV4dC5cbiAgJHN1YnNjcmlwdC1mb250LXNpemU6ICRzdWJzY3JpcHQtZm9udC1zY2FsZSAqIDEwMCU7XG4gIC8vIEZvbnQgc2l6ZSB0byB1c2UgZm9yIHRoZSBmb3IgdGhlIHByZWZpeCBhbmQgc3VmZml4IGljb25zLlxuICAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2l6ZTogJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlICogMTAwJTtcbiAgLy8gVGhlIHNwYWNlIGJldHdlZW4gdGhlIGJvdHRvbSBvZiB0aGUgLm1hdC1mb3JtLWZpZWxkLWZsZXggYXJlYSBhbmQgdGhlIHN1YnNjcmlwdCB3cmFwcGVyLlxuICAvLyBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZSwgYnV0IHRoaXMgbWFyZ2luIGlzIGFwcGxpZWQgdG8gYW4gZWxlbWVudCB3aXRoIHRoZSBzdWJzY3JpcHRcbiAgLy8gdGV4dCBmb250IHNpemUsIHNvIHdlIG5lZWQgdG8gZGl2aWRlIGJ5IHRoZSBzY2FsZSBmYWN0b3IgdG8gbWFrZSBpdCBoYWxmIG9mIHRoZSBvcmlnaW5hbCB0ZXh0XG4gIC8vIHNpemUuXG4gICRzdWJzY3JpcHQtbWFyZ2luLXRvcDogMC41ZW0gLyAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBwYWRkaW5nIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtd3JhcHBlciB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgc3Vic2NyaXB0LCBzaW5jZSBpdCdzXG4gIC8vIGFic29sdXRlbHkgcG9zaXRpb25lZC4gVGhpcyBpcyBhIGNvbWJpbmF0aW9uIG9mIHRoZSBzdWJzY3JpcHQncyBtYXJnaW4gYW5kIGxpbmUtaGVpZ2h0LCBidXQgd2VcbiAgLy8gbmVlZCB0byBtdWx0aXBseSBieSB0aGUgc3Vic2NyaXB0IGZvbnQgc2NhbGUgZmFjdG9yIHNpbmNlIHRoZSB3cmFwcGVyIGhhcyBhIGxhcmdlciBmb250IHNpemUuXG4gICR3cmFwcGVyLXBhZGRpbmctYm90dG9tOiAoJHN1YnNjcmlwdC1tYXJnaW4tdG9wICsgJGxpbmUtaGVpZ2h0KSAqICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcblxuICAubWF0LWZvcm0tZmllbGQge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBpbnB1dCk7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgcGFkZGluZy1ib3R0b206ICR3cmFwcGVyLXBhZGRpbmctYm90dG9tO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXByZWZpeCxcbiAgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCB7XG4gICAgLy8gQWxsb3cgaWNvbnMgaW4gYSBwcmVmaXggb3Igc3VmZml4IHRvIGFkYXB0IHRvIHRoZSBjb3JyZWN0IHNpemUuXG4gICAgLm1hdC1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNpemU7XG4gICAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgIH1cblxuICAgIC8vIEFsbG93IGljb24gYnV0dG9ucyBpbiBhIHByZWZpeCBvciBzdWZmaXggdG8gYWRhcHQgdG8gdGhlIGNvcnJlY3Qgc2l6ZS5cbiAgICAubWF0LWljb24tYnV0dG9uIHtcbiAgICAgIGhlaWdodDogJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlICogMWVtO1xuICAgICAgd2lkdGg6ICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zY2FsZSAqIDFlbTtcblxuICAgICAgLm1hdC1pY29uIHtcbiAgICAgICAgaGVpZ2h0OiAkbGluZS1oZWlnaHQgKiAxZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwO1xuICAgIC8vIFRocm93cyBvZmYgdGhlIGJhc2VsaW5lIGlmIHdlIGRvIGl0IGFzIGEgcmVhbCBtYXJnaW4sIHNvIHdlIGRvIGl0IGFzIGEgYm9yZGVyIGluc3RlYWQuXG4gICAgYm9yZGVyLXRvcDogJGluZml4LW1hcmdpbi10b3Agc29saWQgdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAmLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgfVxuXG4gICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgLy8gKHVzZWQgYXMgYSBwdXJlIENTUyBzdGFuZC1pbiBmb3IgbWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0KS5cbiAgICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICAgIHRvcDogLSRpbmZpeC1tYXJnaW4tdG9wO1xuICAgIHBhZGRpbmctdG9wOiAkaW5maXgtbWFyZ2luLXRvcDtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdG9wOiAkaW5maXgtbWFyZ2luLXRvcCArICRpbmZpeC1wYWRkaW5nO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgLy8gV2Ugd2FudCB0aGUgdW5kZXJsaW5lIHRvIHN0YXJ0IGF0IHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQgYm94LCBub3QgdGhlIHBhZGRpbmcgYm94LFxuICAgIC8vIHNvIHdlIG1vdmUgaXQgdXAgYnkgdGhlIHBhZGRpbmcgYW1vdW50LlxuICAgIGJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIge1xuICAgIGZvbnQtc2l6ZTogJHN1YnNjcmlwdC1mb250LXNpemU7XG4gICAgbWFyZ2luLXRvcDogJHN1YnNjcmlwdC1tYXJnaW4tdG9wO1xuXG4gICAgLy8gV2Ugd2FudCB0aGUgc3Vic2NyaXB0IHRvIHN0YXJ0IGF0IHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQgYm94LCBub3QgdGhlIHBhZGRpbmcgYm94LFxuICAgIC8vIHNvIHdlIG1vdmUgaXQgdXAgYnkgdGhlIHBhZGRpbmcgYW1vdW50IChhZGp1c3RlZCBmb3IgdGhlIHNtYWxsZXIgZm9udCBzaXplKTtcbiAgICB0b3A6IGNhbGMoMTAwJSAtICN7JHdyYXBwZXItcGFkZGluZy1ib3R0b20gLyAkc3Vic2NyaXB0LWZvbnQtc2NhbGV9KTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1maWxsLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXRyZWUtdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC10cmVlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LXRyZWUtbm9kZSxcbiAgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRyZWUtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdHJlZSB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtdHJlZS1ub2RlLFxuICAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKTtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgfVxufVxuXG5cblxuLy8gSW5jbHVkZXMgYWxsIG9mIHRoZSB0eXBvZ3JhcGhpYyBzdHlsZXMuXG5AbWl4aW4gYW5ndWxhci1tYXRlcmlhbC10eXBvZ3JhcGh5KCRjb25maWc6IG51bGwpIHtcbiAgQGlmICRjb25maWcgPT0gbnVsbCB7XG4gICAgJGNvbmZpZzogbWF0LXR5cG9ncmFwaHktY29uZmlnKCk7XG4gIH1cblxuICBAaW5jbHVkZSBtYXQtYmFkZ2UtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJhc2UtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWF1dG9jb21wbGV0ZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYm90dG9tLXNoZWV0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1idXR0b24tdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWNhcmQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWNoZWNrYm94LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdGFibGUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWRpYWxvZy10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWljb24tdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWlucHV0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1tZW51LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wYWdpbmF0b3ItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLWJhci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcmFkaW8tdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNlbGVjdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc2lkZW5hdi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZXItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXN0ZXBwZXItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNvcnQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXRhYnMtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2xiYXItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWxpc3QtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LW9wdGlvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtb3B0Z3JvdXAtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdHJlZS10eXBvZ3JhcGh5KCRjb25maWcpO1xufVxuXG5cbi8vIE1peGluIHRoYXQgcmVuZGVycyBhbGwgb2YgdGhlIGNvcmUgc3R5bGVzIHRoYXQgYXJlIG5vdCB0aGVtZS1kZXBlbmRlbnQuXG5AbWl4aW4gbWF0LWNvcmUoJHR5cG9ncmFwaHktY29uZmlnOiBudWxsKSB7XG4gIEBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeS1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcmlwcGxlKCk7XG4gIEBpbmNsdWRlIGNkay1hMTF5KCk7XG4gIEBpbmNsdWRlIGNkay1vdmVybGF5KCk7XG4gIEBpbmNsdWRlIGNkay10ZXh0LWZpZWxkKCk7XG59XG5cbi8vIE1peGluIHRoYXQgcmVuZGVycyBhbGwgb2YgdGhlIGNvcmUgc3R5bGVzIHRoYXQgZGVwZW5kIG9uIHRoZSB0aGVtZS5cbkBtaXhpbiBtYXQtY29yZS10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LXJpcHBsZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtb3B0aW9uLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1vcHRncm91cC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcHNldWRvLWNoZWNrYm94LXRoZW1lKCR0aGVtZSk7XG5cbiAgLy8gUHJvdmlkZXMgZXh0ZXJuYWwgQ1NTIGNsYXNzZXMgZm9yIGVhY2ggZWxldmF0aW9uIHZhbHVlLiBFYWNoIENTUyBjbGFzcyBpcyBmb3JtYXR0ZWQgYXNcbiAgLy8gYG1hdC1lbGV2YXRpb24teiR6VmFsdWVgIHdoZXJlIGAkelZhbHVlYCBjb3JyZXNwb25kcyB0byB0aGUgei1zcGFjZSB0byB3aGljaCB0aGUgZWxlbWVudCBpc1xuICAvLyBlbGV2YXRlZC5cbiAgQGZvciAkelZhbHVlIGZyb20gMCB0aHJvdWdoIDI0IHtcbiAgICAuI3skX21hdC1lbGV2YXRpb24tcHJlZml4fSN7JHpWYWx1ZX0ge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oJHpWYWx1ZSwgJHRoZW1lKTtcbiAgICB9XG4gIH1cblxuICAvLyBXcmFwcGVyIGVsZW1lbnQgdGhhdCBwcm92aWRlcyB0aGUgdGhlbWUgYmFja2dyb3VuZCB3aGVuIHRoZSB1c2VyJ3MgY29udGVudCBpc24ndFxuICAvLyBpbnNpZGUgb2YgYSBgbWF0LXNpZGVuYXYtY29udGFpbmVyYC4gTm90ZSB0aGF0IHdlIG5lZWQgdG8gZXhjbHVkZSB0aGUgYW1wZXJzYW5kXG4gIC8vIHNlbGVjdG9yIGluIGNhc2UgdGhlIG1peGluIGlzIGluY2x1ZGVkIGF0IHRoZSB0b3AgbGV2ZWwuXG4gIC5tYXQtYXBwLWJhY2tncm91bmQje2lmKCYsICcsICYubWF0LWFwcC1iYWNrZ3JvdW5kJywgJycpfSB7XG4gICAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC8vIE1hcmtlciB0aGF0IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHVzZXIgaGFzIGFkZGVkIGEgdGhlbWUgdG8gdGhlaXIgcGFnZS5cbiAgQGF0LXJvb3Qge1xuICAgIC5tYXQtdGhlbWUtbG9hZGVkLW1hcmtlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWRpdmlkZXItdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1kaXZpZGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cbn1cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuLy8gQ3JlYXRlIGEgdGhlbWUuXG5AbWl4aW4gYW5ndWxhci1tYXRlcmlhbC10aGVtZSgkdGhlbWUpIHtcbiAgQGluY2x1ZGUgbWF0LWNvcmUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWF1dG9jb21wbGV0ZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYmFkZ2UtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWJvdHRvbS1zaGVldC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1idXR0b24tdG9nZ2xlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1jYXJkLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1jaGVja2JveC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtY2hpcHMtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRhYmxlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1kYXRlcGlja2VyLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1kaWFsb2ctdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWRpdmlkZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWV4cGFuc2lvbi1wYW5lbC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZ3JpZC1saXN0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1pY29uLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1pbnB1dC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtbGlzdC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtbWVudS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcGFnaW5hdG9yLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1iYXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLXNwaW5uZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXJhZGlvLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1zZWxlY3QtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNpZGVuYXYtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNsaWRlLXRvZ2dsZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2xpZGVyLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1zdGVwcGVyLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1zb3J0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC10YWJzLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC10b29sYmFyLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC10b29sdGlwLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC10cmVlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1zbmFjay1iYXItdGhlbWUoJHRoZW1lKTtcbn1cbiJdfQ== */\"","import { Component, OnInit, Output, EventEmitter, ViewChild, OnDestroy, Input, AfterViewInit, ViewEncapsulation } from '@angular/core';\r\nimport { FormBuilder, FormGroup, FormArray } from '@angular/forms';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { DemoService } from '../../../shared/demo.service';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { request } from 'http';\r\nimport { RequestMetadata, PagedResult } from '../../../../../lib/ng-crud-table';\r\nimport { MatTableDataSource, MatSort } from '@angular/material';\r\nimport { DataSource } from '@angular/cdk/table';\r\nimport { MatDialog, MatDialogConfig, PageEvent, MatPaginator } from '@angular/material';\r\nimport { CommonFilter } from 'src/app/shared/models/Common/common-filter';\r\nimport { parse } from 'querystring';\r\nimport { NWSTAT_VQUAD } from 'src/app/shared/models/NWSTAT_VQUAD';\r\nimport { NWSTAT_VQUAD_CENTRALIPS } from 'src/app/shared/models/NWSTAT_VQUAD_CENTRALIPS';\r\nimport { environment } from 'src/environments/environment';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { ConfirmDialogComponent } from 'src/app/shared/components/confirm-dialog/confirm-dialog.component';\r\nimport { RemoteCommandType } from 'src/app/shared/models/Remote Operations/remote-operations';\r\nimport { DEVICE_CALL_STATUS } from 'src/app/shared/models/Remote Operations/network-status';\r\nimport { getDateValue, iterateAndWait } from 'lib/common/utils';\r\nimport { tap, delay } from 'rxjs/operators';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { url } from 'inspector';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\nimport { VMobilescrparamsComponent } from '../v-mobilescrparams/v-mobilescrparams.component';\r\nimport { Subscription } from 'rxjs';\r\n//import { MatRadioChange } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'app-v-mobile',\r\n templateUrl: './v-mobile.component.html',\r\n styleUrls: ['./v-mobile.component.scss'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n\r\n trigger('fadeInOut', [\r\n state('in', style({ opacity: 100 })),\r\n transition('* => void', [\r\n animate(300, style({ opacity: 0 }))\r\n ])\r\n ]),\r\n\r\n\r\n //https://www.kdechant.com/blog/angular-animations-fade-in-and-fade-out\r\n // the fade-in/fade-out animation.\r\n trigger('simpleFadeAnimation', [\r\n\r\n // the \"in\" style determines the \"resting\" state of the element when it is visible.\r\n state('in', style({ opacity: 1 })),\r\n\r\n // fade in when created. this could also be written as transition('void => *')\r\n transition(':enter', [\r\n style({ opacity: 0 }),\r\n animate(600)\r\n ]),\r\n\r\n // fade out when destroyed. this could also be written as transition('void => *')\r\n transition(':leave',\r\n animate(600, style({ opacity: 0 })))\r\n ]),\r\n\r\n ],\r\n})\r\nexport class VMobileComponent implements OnInit, AfterViewInit, OnDestroy {//, OnDestroy {\r\n baseUrl: string;\r\n url: string;\r\n rsltType: string = \"vMobile\";\r\n title: string;\r\n staticScreen = true;\r\n isLoading = false;\r\n isSubLoading = {};\r\n data2: any;\r\n goToPage = null;\r\n centralIP1: string;\r\n centralIP2: string;\r\n centralIP3: string;\r\n centralIP4: string;\r\n centralIPsForm: FormGroup;\r\n centralIPsList = [];\r\n vquadID: number = 0;\r\n vquadScriptID: number = 0;\r\n isProfile: boolean = true;\r\n isProfileCheck: boolean = true;\r\n showConnectedNode: boolean = false;\r\n\r\n private commonFilter: CommonFilter;\r\n //private nwstatVQUAD: NWSTAT_VQUAD;\r\n\r\n //private generalFilterArray: Array;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n //dataSource = new MatTableDataSource();\r\n\r\n dataSource = new MatTableDataSource([]);//any[]; //new MatTableDataSource(); //[];\r\n dataSource2 = [];\r\n\r\n //'select', 'RowExpand', 'Edit', 'Add', 'NodeIP_Abs'\r\n //'select', \r\n columnsToDisplay = ['RowExpand', 'NodeIP_Abs', 'NodeVersion_Abs', 'GPS_Lat_Abs', 'GPS_Long_Abs', 'DeviceType_Abs'\r\n , 'ConsoleIP_Abs', 'ListenerIP_Abs',\r\n 'DBTimestamp_Abs'];\r\n\r\n //https://www.dotnetcurry.com/angularjs/1424/angular-interpolation-property-data-binding\r\n //https://www.codementor.io/@adekunleoyaniyi/interpolation-vs-property-binding-in-angular2-eu1tzbyn4?utm_content=68092897&utm_medium=social&utm_source=twitter\r\n //https://stackoverflow.com/questions/47457134/angular-how-can-i-write-a-condition-in-interpolation\r\n //https://stackoverflow.com/questions/52749244/angular-6-function-call-within-html-interpolation-returns-undefined/52749481\r\n SetIPType(LocalIPType_Abs) {\r\n return LocalIPType_Abs == \"0\" ? \"Auto Get Local IP\" : (LocalIPType_Abs == \"1\" ? \"Get Local IP from ..\\\\Profiles\\\\LocalIP.ini\" : \"Use this as Local IP\");\r\n }\r\n isDisabled = {};\r\n onSelectionChanged(matSelected, index) {\r\n //console.log(matSelected.value)\r\n if (matSelected.value == \"2\")\r\n this.isDisabled[index] = false;\r\n else\r\n this.isDisabled[index] = true;\r\n }\r\n GetCentralIPLabel(CentralIPIndex_Abs) {\r\n\r\n return CentralIPIndex_Abs == \"0\" ? \"Primary IP\" : (CentralIPIndex_Abs == \"1\" ? \"Secondary IPs\" : \"\");\r\n }\r\n GetCentralIPInput(CentralIPIndex_Abs) {\r\n\r\n return CentralIPIndex_Abs == \"0\" ? \"Primary IP\" : \"Secondary IP\" + CentralIPIndex_Abs;\r\n }\r\n GetCentralIPLabelClass(CentralIPIndex_Abs) {\r\n\r\n return CentralIPIndex_Abs == \"0\" ? \"PrimaryIPNew\" : (CentralIPIndex_Abs == \"1\" ? \"SecondaryIPNew\" : \"\");\r\n }\r\n SetNodeStatus(NodeTimestamp_Abs, NodeStatus_Abs) {\r\n if (NodeStatus_Abs == '1') {\r\n return 2;\r\n }\r\n\r\n let timeDiffinSec = parseInt(NodeTimestamp_Abs);\r\n //console.log(timeDiffinSec)\r\n if (timeDiffinSec > 60 || timeDiffinSec < -60)\r\n return 1;\r\n else\r\n return 0;\r\n }\r\n SetLatestTSFormat(column) {\r\n return getDateValue(column, \"DBTimestamp_Abs\");\r\n }\r\n //https://medium.com/showpad-engineering/why-you-should-never-use-function-calls-in-angular-template-expressions-e1a50f9c0496\r\n SetNodeStatusClass(ID_Abs) {\r\n let className = \"click\";\r\n //https://stackoverflow.com/a/54805140 - Not used\r\n for (const key in this.scrpitStatuses) {\r\n if (this.scrpitStatuses[key]) {\r\n //debugger;\r\n if (this.scrpitStatuses[key].NodeID == ID_Abs) {\r\n className = this.scrpitStatuses[key].DevicesRunning > 0 ? \"greenTick\" : \"blueTick\";// \"blink\" \"blink click\" : \"click\";\r\n break;\r\n }\r\n }\r\n }\r\n return className;\r\n }\r\n //CheckMac(ChkMAC_Abs) {\r\n // return ChkMAC_Abs == \"GrabMAC\" ? \"ON\" : \"OFF\";\r\n //}\r\n //CheckBTName(ChkBTName_Abs) {\r\n // return ChkBTName_Abs == \"UseBTName\" ? \"ON\" : \"OFF\";\r\n //}\r\n //BackCheckMac(ChkMAC_Abs) {\r\n // return ChkMAC_Abs == \"ON\" ? \"GrabMAC\" : \"\";\r\n //}\r\n //BackCheckBTName(ChkBTName_Abs) {\r\n // return ChkBTName_Abs == \"ON\" ? \"UseBTName\" : \"\";\r\n //}\r\n\r\n SetScriptStatus(ScriptStatus_Abs) {\r\n if (ScriptStatus_Abs == '2')\r\n return 1;\r\n else\r\n return 0;\r\n }\r\n\r\n\r\n vquadScriptColumns = ['DeviceName_Abs', 'ScriptName_Abs', 'Call_Status_Abs', 'GlobalDevice', 'StartStop', 'ScriptStatus_Abs'];//, 'Edit'\r\n\r\n expandedElement: PeriodicElement | null;\r\n\r\n\r\n tableDef: Array = [\r\n {\r\n key: 'ID_Abs',\r\n header: 'ID'\r\n },\r\n {\r\n key: 'NodeIP_Abs',\r\n header: 'Computer Name'\r\n }, {\r\n key: 'NodeVersion_Abs',\r\n header: 'Version'\r\n }, {\r\n key: 'NodeTimestamp_Abs',\r\n header: 'NodeTimestamp'\r\n },\r\n {\r\n key: 'NodeTimezone_Abs',\r\n header: 'NodeTimezone'\r\n }, {\r\n key: 'NodeAlias_Abs',\r\n header: 'vMobile Name'\r\n }, {\r\n key: 'GPS_Lat_Abs',\r\n header: 'Latitude'\r\n }, {\r\n key: 'GPS_Long_Abs',\r\n header: 'Longitutde'\r\n },\r\n {\r\n key: 'DeviceType_Abs',\r\n header: 'Device Type'\r\n }, {\r\n key: 'NodeIPAddr_Abs',\r\n header: 'IP Address'\r\n }, {\r\n key: 'NodeLocation_Abs',\r\n header: 'Location'\r\n }, {\r\n key: 'DualUTAInfo_Abs',\r\n header: 'Dual UTA'\r\n }, {\r\n key: 'DBTimestamp_Abs',\r\n header: 'Latest Timestamp'\r\n }, {\r\n key: 'NodeStatus_Abs',\r\n header: 'vMobile Status'\r\n },\r\n {\r\n key: 'ChkBTName_Abs',\r\n header: 'Use BT Name'\r\n },\r\n {\r\n key: 'ChkMAC_Abs',\r\n header: 'Grab Mac'\r\n },\r\n {\r\n key: 'CentralIP_Abs',\r\n header: 'CentralDB IP Addresses'\r\n },\r\n\r\n ]\r\n\r\n // MatPaginator Inputs\r\n length = 100;\r\n pageSize = 20;\r\n pageSizeOptions: number[] = [1, 10, 25, 100];\r\n pageIndex = 0;\r\n\r\n // MatPaginator Output\r\n pageEvent: PageEvent;\r\n //mySubscription: any;\r\n\r\n AutoRefreshInfo: any;\r\n interval;\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(private commonFilterService: CommonFilterService, private http: HttpClient, private demoService: DemoService, private dialog: MatDialog, private _formBuilder: FormBuilder, private router: Router) {\r\n\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n this.commonFilterService.setNonFiltersScreen(true);\r\n\r\n this.centralIPsForm = this._formBuilder.group({\r\n dummyCentralIPsArray: this._formBuilder.array(this.centralIPsList)\r\n });\r\n\r\n //Do Refresh\r\n const _broadSubRefresh = this.commonFilterService.componentMethodCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log(res)\r\n this.LoadNSvMobileData();\r\n }\r\n );\r\n this.subscriptions.push(_broadSubRefresh);\r\n\r\n //Do Auto-refresh - start/stop\r\n const _broadSubAutoRefresh = this.commonFilterService.componentMethodWithArgCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.AutoRefreshInfo = res;\r\n //console.log(res)\r\n if (this.AutoRefreshInfo.AutoRefStop) {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n }\r\n }\r\n else {\r\n this.interval = setInterval(() => {\r\n //console.log(this.AutoRefreshInfo.AutoRefStop);\r\n\r\n this.LoadNSvMobileData();\r\n }, this.AutoRefreshInfo.AutoRefSelected);\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAutoRefresh);\r\n }\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n //ngOnDestroy() {\r\n // if (this.mySubscription) {\r\n // this.mySubscription.unsubscribe();\r\n // }\r\n //}\r\n ngAfterViewInit() {\r\n //setTimeout(() => this.dataSource.paginator = this.paginator);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n get dummyCentralIPsArray(): FormArray {\r\n return this.centralIPsForm.get('dummyCentralIPsArray') as FormArray;\r\n }\r\n\r\n //https://javascript.developreference.com/article/11284307/Angular+6+-+How+to+reload+current+page%3F\r\n //https://stackoverflow.com/questions/57325155/how-to-reload-whole-page-without-refresh-in-angular-7-8\r\n //https://blogs.ibs.com/2018/07/10/angular-refreshing-a-route-with-parameters/\r\n //https://www.youtube.com/watch?v=LEI9yrTIrCM\r\n //https://dzone.com/articles/refresh-angular-component-without-reload-or-naviga\r\n //https://medium.com/engineering-on-the-incline/reloading-current-route-on-click-angular-5-1a1bfc740ab2\r\n //https://www.quora.com/How-do-I-auto-reload-my-Angular-2-4-app-after-clicking-a-certain-button\r\n OnReloadRoute() {\r\n //this.router.navigateByUrl('statistics/nsvquad');\r\n this.commonFilterService.basicRefresh();\r\n }\r\n ngOnInit() {\r\n //this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n // return false;\r\n //};\r\n //this.mySubscription = this.router.events.subscribe((event) => {\r\n // if (event instanceof NavigationEnd) {\r\n // // Trick the Router into believing it's last link wasn't previously loaded\r\n // this.router.navigated = false;\r\n\r\n // // if you need to scroll back to top, here is the right place\r\n // window.scrollTo(0, 0);\r\n // }\r\n //});\r\n\r\n\r\n //debugger;\r\n\r\n /////////////////// Call function\r\n\r\n //let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n //let options = {\r\n // headers: headers\r\n //};\r\n\r\n //this.url = environment.urlAddress + '/api/' + requestMeta.rsltType + '/Post' + requestMeta.rsltType;\r\n //this.url = this.url + 'vMobileData' + '/Post' + 'vMobileNS';\r\n\r\n //return this.http.get(this.url, { params })\r\n //https://www.techiediaries.com/angular-http-client/\r\n //https://stackoverflow.com/questions/50330342/how-to-send-post-in-angular5-with-multiple-params\r\n //https://weblog.west-wind.com/posts/2012/May/08/Passing-multiple-POST-parameters-to-Web-API-Controller-Methods\r\n //https://www.dotnetcurry.com/aspnet/1278/aspnet-webapi-pass-multiple-parameters-action-method\r\n\r\n this.LoadNSvMobileData();\r\n //this.GetData().subscribe((res: any) => {\r\n // //console.log(res);\r\n // let rows: any[] = JSON.parse(res) as any[];\r\n // //console.log(rows);\r\n // this.dataSource = rows;\r\n\r\n //});\r\n\r\n }\r\n\r\n\r\n updateManualPage() {\r\n //debugger;\r\n // this.manualPage = index;\r\n this.paginator.pageIndex = this.goToPage - 1;\r\n this.LoadNSvMobileData(this.paginator);\r\n }\r\n\r\n\r\n //load default data\r\n currentPage: number;\r\n scrpitStatuses: Array = [];\r\n\r\n radioChange($event) {//: MatRadioChange) {\r\n //console.log($event.source.name, $event.value);\r\n\r\n //if ($event.source.name === 'radioOpt1') {\r\n // // Do whatever you want here\r\n //}\r\n\r\n this.LoadNSvMobileData();\r\n }\r\n\r\n @Input() StatusvMobileID: number = 0;\r\n vMobileOrvMobileOption: string = \"1\";\r\n showNodeStatus = false;\r\n LoadNSvMobileData(event?: PageEvent) {\r\n if (this.prevRowIndex !== -1)\r\n this.UndoRow(this.prevRowData, this.prevRowIndex);\r\n //debugger;\r\n this.isLoading = true;\r\n this.commonFilter = new CommonFilter();\r\n this.commonFilter.ShowNodeConnected = this.showConnectedNode;\r\n this.commonFilter.TimestampType = parseInt(this.vMobileOrvMobileOption);\r\n if (event != undefined) {\r\n\r\n this.currentPage = +event.pageIndex + +1;\r\n //this.url = this.baseUrl + 'NwStat_vMobile/GetvMobiles_New?perPage=' + event.pageSize + '&pageNumber=' + this.currentPage;\r\n this.url = this.baseUrl + 'NwStat_vMobile/GetvMobiles_New';\r\n this.commonFilter.PerPage = event.pageSize.toString();\r\n this.commonFilter.PageNumber = this.currentPage.toString();\r\n\r\n } else {\r\n this.url = this.baseUrl + 'NwStat_vMobile/GetvMobiles_New';\r\n this.commonFilter.PerPage = this.pageSize.toString();\r\n this.commonFilter.PageNumber = \"1\";\r\n }\r\n //console.log(this.StatusvMobileID)\r\n if (this.StatusvMobileID != 0) {\r\n this.url = this.baseUrl + 'NwStat_vMobile/GetvMobileByID_New';\r\n this.commonFilter.ResultOrFileType = this.StatusvMobileID;\r\n }\r\n\r\n this.GetData(this.commonFilter).subscribe((res: any) => {\r\n if (res !== 'null') {\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //debugger\r\n this.length = rows.length;\r\n this.scrpitStatuses = [];\r\n for (const index in rows) {\r\n //rows[index].ChkBTName_Abs = this.CheckBTName(rows[index].ChkBTName_Abs);\r\n //rows[index].ChkMAC_Abs = this.CheckMac(rows[index].ChkMAC_Abs);\r\n this.GetvMobileScriptsRunningCntData(rows[index].ID_Abs).subscribe((cnt: number) => {\r\n let scriptStatInfo = { NodeID: rows[index].ID_Abs, DevicesRunning: cnt }\r\n this.scrpitStatuses.push(scriptStatInfo)\r\n });\r\n }\r\n\r\n this.dataSource.data = rows;\r\n }\r\n this.isLoading = false;\r\n //this.length = rows.length;\r\n });\r\n\r\n //https://stackoverflow.com/questions/45318164/how-to-use-paginator-from-material-angular\r\n return event;\r\n }\r\n\r\n /// expanded bind\r\n isStartStop = {};\r\n currNodeID = -1;\r\n currElemRowIndex = -1;\r\n CallFunc(nodeID: number, elemRowIndex, column) {\r\n if (this.expandedElement === column) {\r\n if (this.prevSubRowIndex !== -1)\r\n this.UndoScriptRow(this.prevSubRowData, this.prevSubRowIndex);\r\n\r\n this.isSubLoading[elemRowIndex] = true;\r\n //console.log(nodeID);\r\n this.currNodeID = nodeID;\r\n this.currElemRowIndex = elemRowIndex;\r\n\r\n this.GetvMobileScriptNamesList(nodeID).subscribe((res: any) => {\r\n //console.log(\"Next\")\r\n let rows: any[] = JSON.parse(res) as any[];\r\n if (rows.length == 0)//fresh node to be asked to send scripts info for the first time\r\n this.GetLatestScriptsListOnExpand(nodeID);\r\n //console.log(rows)\r\n this.selectProfilesScriptsList = rows;\r\n });\r\n\r\n this.GetvMobileScriptData(nodeID).subscribe((res: any) => {\r\n //console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //console.log(rows);\r\n for (const key in rows) {\r\n if (rows[key]) {\r\n if (rows[key].ScriptStatus_Abs == 2)\r\n this.isStartStop[rows[key].DeviceIndex_Abs - 1] = true;\r\n else\r\n this.isStartStop[rows[key].DeviceIndex_Abs - 1] = false;\r\n }\r\n }\r\n this.dataSource2 = rows;\r\n this.isSubLoading[elemRowIndex] = false;\r\n //this.dataSource2 = ELEMENT_DATA;\r\n //console.log(element);\r\n });\r\n }\r\n }\r\n\r\n //// open dilaog box\r\n //https://blog.angular-university.io/angular-material-dialog/\r\n //https://iknowthatnow.com/2018/05/11/angular-material-dialog/\r\n //https://stackoverflow.com/questions/51815455/how-to-pass-data-from-angular-material-dialog-to-parent-component\r\n scrparams: string[];\r\n successMsgGlobalStartVar: boolean = false;\r\n OpenGlobalStartVarDialog(devID: number, devIndex, NodeTimestamp_Abs, NodeStatus_Abs) {\r\n\r\n //console.log('test');\r\n //console.log(nodeID);\r\n //this.GetBTFXO(nodeID).subscribe((res: any) => {\r\n //console.log(res);\r\n // let rows: any[] = JSON.parse(res) as any[];\r\n // //console.log(rows[0]);\r\n // this.btfxo = rows[0].BTName_Abs;\r\n\r\n //});\r\n\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"55%\";\r\n let nodeStatus = this.SetNodeStatus(NodeTimestamp_Abs, NodeStatus_Abs) === 0;\r\n let finalEditStatus = false;\r\n if (nodeStatus)\r\n finalEditStatus = this.isStartStop[devIndex - 1];\r\n //console.log(devIndex)\r\n dailogConfig.data = { pageValue: devID, devRowEditable: finalEditStatus };\r\n\r\n const dialogRef = this.dialog.open(VMobilescrparamsComponent, dailogConfig);\r\n\r\n dialogRef.afterClosed().subscribe(\r\n data => { this.successMsgGlobalStartVar = data; }\r\n );\r\n }\r\n\r\n\r\n GetDataBCK() {\r\n\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers\r\n };\r\n\r\n return this.http.post(this.url, options)\r\n .toPromise()\r\n .then(function (res) {\r\n //.subscribe(function (res) {\r\n //debugger;\r\n\r\n let rows: any[] = JSON.parse(res) as VQUADDATA[];\r\n let filteredData = res;//rows;\r\n //console.log(filteredData);\r\n //console.log(rows);\r\n\r\n return rows;\r\n });\r\n //.bind(this))\r\n //.catch(this.handleError.bind(this));\r\n }\r\n\r\n GetData(commFilter: CommonFilter) {\r\n\r\n //debugger;\r\n\r\n // this.url = this.baseUrl + 'NwStat_vMobile/GetvMobiles_New';\r\n //JSON.stringify({ commonFilter: commFilter, generalFilterArray: generalFilterArr })\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n //var body = {\r\n // PageNumber: this.commonFilter.PageNumber, PerPage: this.commonFilter.PerPage\r\n //}\r\n //return this.http.post(this.url, \"\", { headers: headerOptions }); for post 3 agrument and for get 2 arguments // JSON.stringify({ commonFilter: this.commonFilter })\r\n return this.http.post(this.url, commFilter, options);\r\n // return this.http.get(this.url, options);\r\n\r\n }\r\n\r\n GetvMobileScriptData(nodeID: number) {\r\n //let params = new HttpParams()\r\n // .set('TSType', TSType)\r\n // .set('PageNumber', '1')\r\n // .set('TSBetween', TSBetween)\r\n // .set('Sort', 'descending');\r\n\r\n this.url = this.baseUrl + 'NwStat_vMobile/GetScriptsByNodeID_New?nodeID=' + nodeID;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(this.url, { headers: headerOptions });\r\n //.map((data: Response) => {\r\n // return data.json() as EachVqtPolqa[];\r\n //}).toPromise().then(x => {\r\n // this.eachVqtPolqaList = x;\r\n //})\r\n }\r\n GetvMobileScriptsRunningCntData(nodeID: number) {\r\n //let params = new HttpParams()\r\n // .set('TSType', TSType)\r\n // .set('PageNumber', '1')\r\n // .set('TSBetween', TSBetween)\r\n // .set('Sort', 'descending');\r\n\r\n this.url = this.baseUrl + 'NwStat_vMobile/GetScriptsRunningCntByNodeID?nodeID=' + nodeID;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(this.url, { headers: headerOptions });\r\n //.map((data: Response) => {\r\n // return data.json() as EachVqtPolqa[];\r\n //}).toPromise().then(x => {\r\n // this.eachVqtPolqaList = x;\r\n //})\r\n }\r\n\r\n GetBTFXO(nodeID: number) {\r\n\r\n this.url = this.baseUrl + 'NwStat_vMobile/GetBtFxosByNodeID_New?nodeID=' + nodeID;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(this.url, { headers: headerOptions });\r\n\r\n }\r\n\r\n parentEvent(title) {\r\n //debugger;\r\n\r\n this.title = title;\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n\r\n //Edit Node network info\r\n isEditable = {};\r\n EditRow(rowData: any, rowIndex) {\r\n if (this.prevRowIndex !== -1)\r\n this.UndoRow(this.prevRowData, this.prevRowIndex);\r\n this.prevRowData = rowData;\r\n this.prevRowIndex = rowIndex;\r\n\r\n this.isEditable[rowIndex] = true;\r\n this.vquadID = rowData.ID_Abs;\r\n\r\n //this.centralIPsList = [];\r\n //let cntIPs = 0;\r\n //for (const key in rowData.CentralIP_Abs) {\r\n // if (rowData.CentralIP_Abs[key] !== 'null')\r\n // this.centralIPsList.push(rowData.CentralIP_Abs[key]);\r\n // else\r\n // this.centralIPsList.push(\"\");\r\n // cntIPs++;\r\n //}\r\n //for (var i = cntIPs; i < 4; i++)\r\n // this.centralIPsList.push(\"\");\r\n\r\n //// if receiving data at a later point, use below instead - IMP\r\n //this.centralIPsForm.setControl('dummyCentralIPsArray', this._formBuilder.array(this.centralIPsList));\r\n\r\n //this.dataSource = this.dataSource.filter((value, key) => {\r\n // if (value.ID_Abs == rowData) {\r\n // this.editRow = true;\r\n // }\r\n // else\r\n // this.editRow = false;\r\n // return true;\r\n //});\r\n }\r\n\r\n //Update node info in DB for DataImport to send \r\n UpdateRow(rowData: any, rowIndex) {\r\n this.isEditable[rowIndex] = false;\r\n //console.log(rowData);\r\n this.vquadID = 0;\r\n\r\n //let newCentralIPList: { [id: number]: string; } = {};//[];\r\n //for (var i = 0; i < 4; i++)\r\n // newCentralIPList[i] = this.dummyCentralIPsArray.value[i];//this.centralIPsList[i];\r\n\r\n //rowData.CentralIP_Abs = newCentralIPList;\r\n ////console.log(rowData.CentralIP_Abs)\r\n this.UpdatevMobileData(rowData).subscribe((res: any) => {\r\n\r\n //rowData.ChkBTName_Abs = this.CheckBTName(rowData.ChkBTName_Abs);\r\n //rowData.ChkMAC_Abs = this.CheckMac(rowData.ChkMAC_Abs);\r\n });\r\n\r\n //this.dataSource = this.dataSource.filter((value, key) => {\r\n // if (value.ID_Abs == rowData.ID_Abs) {\r\n // value.ID_Abs = rowData.ID_Abs;\r\n // value.NodeAlias_Abs = rowData.NodeAlias_Abs;\r\n // value.GPS_Lat_Abs = rowData.GPS_Lat_Abs;\r\n // value.GPS_Long_Abs = rowData.GPS_Long_Abs;\r\n // value.NodeLocation_Abs = rowData.NodeLocation_Abs;\r\n // value.NodeIPAddr_Abs = rowData.NodeIPAddr_Abs;\r\n // value.CentralIP_Abs = rowData.CentralIP_Abs;\r\n // value.ChkBTName_Abs = rowData.ChkBTName_Abs;\r\n // value.ChkMAC_Abs = rowData.ChkMAC_Abs;\r\n // }\r\n // return true;\r\n //});\r\n this.isLoading = true;\r\n setTimeout(() => { this.isLoading = false; this.OnReloadRoute(); }, 8000);\r\n }\r\n //change disconnected node to OOS\r\n changeToOOSRow(rowData: any) {//, rowIndex) {\r\n\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"40%\";\r\n dailogConfig.data = { title: \"Confirm Action\", message: \"Are you sure you want to change status to Out of Service?\" };\r\n\r\n this.dialog.open(ConfirmDialogComponent, dailogConfig).afterClosed().subscribe(dialogResult => {\r\n if (dialogResult) {\r\n //this.isEditable[rowIndex] = !this.isEditable[rowIndex];\r\n // console.log(rowData);\r\n this.vquadID = 0;\r\n\r\n rowData.NodeStatus_Abs = 1;\r\n\r\n this.UpdateOOSvMobileData(rowData).subscribe((res: any) => {\r\n });\r\n\r\n //this.dataSource = this.dataSource.filter((value, key) => {\r\n // if (value.ID_Abs == rowData.ID_Abs) {\r\n // value.ID_Abs = rowData.ID_Abs;\r\n // value.NodeAlias_Abs = rowData.NodeAlias_Abs;\r\n // value.GPS_Lat_Abs = rowData.GPS_Lat_Abs;\r\n // value.GPS_Long_Abs = rowData.GPS_Long_Abs;\r\n // value.NodeLocation_Abs = rowData.NodeLocation_Abs;\r\n // value.NodeIPAddr_Abs = rowData.NodeIPAddr_Abs;\r\n // value.CentralIP_Abs = rowData.CentralIP_Abs;\r\n // value.ChkBTName_Abs = rowData.ChkBTName_Abs;\r\n // value.ChkMAC_Abs = rowData.ChkMAC_Abs;\r\n // }\r\n // return true;\r\n //});\r\n this.isLoading = true;\r\n setTimeout(() => { this.isLoading = false; this.OnReloadRoute(); }, 3000);\r\n }\r\n });\r\n\r\n }\r\n\r\n //Cancel editing node\r\n prevRowData: any;\r\n prevRowIndex = -1;\r\n UndoRow(rowData: any, rowIndex) {\r\n this.isEditable[rowIndex] = false;\r\n\r\n this.vquadID = 0;\r\n\r\n this.dataSource.data = this.dataSource.data.filter((value, key) => {\r\n if (value.ID_Abs == rowData.ID_Abs) {\r\n value.ID_Abs = rowData.ID_Abs;\r\n //value.NodeAlias_Abs = rowData.NodeAlias_Abs;\r\n value.GPS_Lat_Abs = rowData.GPS_Lat_Abs;\r\n value.GPS_Long_Abs = rowData.GPS_Long_Abs;\r\n value.NodeLocation_Abs = rowData.NodeLocation_Abs;\r\n //value.NodeIPAddr_Abs = rowData.NodeIPAddr_Abs;\r\n //value.CentralIP_Abs = rowData.CentralIP_Abs;\r\n //value.ChkBTName_Abs = rowData.ChkBTName_Abs;\r\n //value.ChkMAC_Abs = rowData.ChkMAC_Abs;\r\n }\r\n return true;\r\n });\r\n\r\n }\r\n\r\n UpdatevMobileData(rowData: any) {\r\n //debugger;\r\n //console.log(rowData)\r\n this.url = this.baseUrl + 'NwStat_vMobile/UpdateNwStat_vMobile';\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n //var body = {\r\n // PageNumber: this.commonFilter.PageNumber, PerPage: this.commonFilter.PerPage\r\n //}\r\n //return this.http.post(this.url, \"\", { headers: headerOptions }); for post 3 agrument and for get 2 arguments // JSON.stringify({ commonFilter: this.commonFilter })\r\n return this.http.post(this.url, rowData, options);\r\n\r\n }\r\n UpdateOOSvMobileData(rowData: any) {\r\n //debugger;\r\n\r\n this.url = this.baseUrl + 'NwStat_vMobile/UpdateNwStatOOS_vMobile';\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n //var body = {\r\n // PageNumber: this.commonFilter.PageNumber, PerPage: this.commonFilter.PerPage\r\n //}\r\n //return this.http.post(this.url, \"\", { headers: headerOptions }); for post 3 agrument and for get 2 arguments // JSON.stringify({ commonFilter: this.commonFilter })\r\n return this.http.post(this.url, rowData, options);\r\n\r\n }\r\n\r\n /// ////////////// vMobile Script\r\n //Edit script row\r\n isSubEditable = {};\r\n selectProfilesScriptsList = [];\r\n currScriptName = \"\";\r\n //currScriptWebviewerName = \"\";\r\n //prevScriptName = \"\";\r\n //prevScriptWebviewerName = \"\";\r\n scriptOption: string = \"1\";\r\n selectedNodeIDScriptRef = -1;\r\n ScriptEditRow(rowData: any, rowIndex, elemRowIndex) {\r\n this.isSubLoading[elemRowIndex] = true;\r\n if (this.prevSubRowIndex !== -1)\r\n this.UndoScriptRow(this.prevSubRowData, this.prevSubRowIndex);\r\n this.prevSubRowData = rowData;\r\n this.prevSubRowIndex = rowIndex;\r\n\r\n this.isSubEditable[rowIndex] = true;\r\n this.vquadScriptID = rowData.ID_Abs;\r\n\r\n //this.currScriptWebviewerName = rowData.Script_Webviewer_Abs;\r\n this.currScriptName = \"\";\r\n this.scriptOption = \"2\";//User defined\r\n if (rowData.ScriptName_Abs !== null) {// && rowData.Script_Webviewer_Abs === null) {\r\n this.currScriptName = rowData.ScriptName_Abs;\r\n //this.currScriptWebviewerName = \"\";\r\n this.scriptOption = \"1\";//Profiles\r\n }\r\n //this.prevScriptWebviewerName = this.currScriptWebviewerName;\r\n //this.prevScriptName = this.currScriptName;\r\n\r\n //https://stackoverflow.com/questions/58220642/delay-inside-after-subscribe-in-angular\r\n //https://www.learnrxjs.io/learn-rxjs/operators/utility/delay\r\n //this.UpdateScriptInfoCmd(rowData.NodeID_Abs).pipe(delay(3000)).subscribe((res: any) => {\r\n //this.iterateAndWait();\r\n //});\r\n if (this.selectedNodeIDScriptRef != rowData.NodeID_Abs) {\r\n this.selectedNodeIDScriptRef = rowData.NodeID_Abs;//when a new node's script info request needed\r\n\r\n //this.UpdateScriptInfoCmd(rowData.NodeID_Abs).pipe(\r\n // tap(() => { }),\r\n // delay(5000),\r\n //).subscribe(() => {\r\n //console.log(\"Started\")\r\n //this.UpdateScriptInfoCmd(rowData.NodeID_Abs).subscribe(() => {\r\n //console.log(\"Done\")\r\n this.GetvMobileScriptNamesList(rowData.NodeID_Abs).subscribe((res: any) => {\r\n //console.log(\"Next\")\r\n let rows: any[] = JSON.parse(res) as any[];\r\n if (rows.length == 0)//fresh node to be asked to send scripts info for the first time\r\n this.GetLatestScriptsList(rowData, elemRowIndex);\r\n //console.log(rows)\r\n this.selectProfilesScriptsList = rows;\r\n this.isSubLoading[elemRowIndex] = false;\r\n });\r\n //});\r\n }\r\n else {//get script list from db without requested node for latest script info again\r\n this.GetvMobileScriptNamesList(rowData.NodeID_Abs).subscribe((res: any) => {\r\n //console.log(\"Next\")\r\n let rows: any[] = JSON.parse(res) as any[];\r\n if (rows.length == 0)//fresh node to be asked to send scripts info for the first time\r\n this.GetLatestScriptsList(rowData, elemRowIndex);\r\n //console.log(rows)\r\n this.selectProfilesScriptsList = rows;\r\n this.isSubLoading[elemRowIndex] = false;\r\n });\r\n }\r\n\r\n //this.dataSource2 = this.dataSource.filter((value, key) => {\r\n // if (value.ID_Abs == rowData.ID_Abs) {\r\n // this.scriptEditRow = true; \r\n // }\r\n // else {\r\n // this.scriptEditRow = false;\r\n // }\r\n // return true;\r\n //});\r\n }\r\n GetLatestScriptsList(rowData, elemRowIndex, refreshClicked?) {\r\n this.isSubLoading[elemRowIndex] = true;\r\n this.UpdateScriptInfoCmd(rowData.NodeID_Abs).subscribe(() => {\r\n this.GetvMobileScriptNamesList(rowData.NodeID_Abs, refreshClicked).subscribe((res: any) => {\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //console.log(rows)\r\n this.selectProfilesScriptsList = rows;\r\n this.isSubLoading[elemRowIndex] = false;\r\n });\r\n });\r\n }\r\n GetLatestScriptsListOnExpand(nodeID) {\r\n this.UpdateScriptInfoCmd(nodeID).subscribe(() => {\r\n this.GetvMobileScriptNamesList(nodeID).subscribe((res: any) => {\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //console.log(rows)\r\n this.selectProfilesScriptsList = rows;\r\n });\r\n });\r\n }\r\n\r\n //changeControl(control: string) {\r\n // if (control == \"profile\") \r\n // this.isProfile = true;\r\n // else\r\n // this.isProfile = false;\r\n //}\r\n\r\n //Set flag to get script file names list saved under AppInfo table under respective node ID\\\r\n UpdateScriptInfoCmd(nodeID: number) {\r\n\r\n this.url = this.baseUrl + 'NwStat_vMobile/UpdateNwStat_vMobileScriptInfoCmd?nodeID=' + nodeID;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n //return this.http.post(this.url, \"\", { headers: headerOptions }); for post 3 agrument and for get 2 arguments // JSON.stringify({ commonFilter: this.commonFilter })\r\n return this.http.get(this.url, options);\r\n }\r\n\r\n GetvMobileScriptNamesList(nodeID: number, refreshClicked?) {\r\n //let params = new HttpParams()\r\n // .set('TSType', TSType)\r\n // .set('PageNumber', '1')\r\n // .set('TSBetween', TSBetween)\r\n // .set('Sort', 'descending');\r\n\r\n if (refreshClicked) { }\r\n else\r\n refreshClicked = false;\r\n this.url = this.baseUrl + 'NwStat_vMobile/GetScriptsNamesByNodeID_New?nodeID=' + nodeID + '&refreshClicked=' + refreshClicked;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(this.url, { headers: headerOptions });\r\n //.map((data: Response) => {\r\n // return data.json() as EachVqtPolqa[];\r\n //}).toPromise().then(x => {\r\n // this.eachVqtPolqaList = x;\r\n //})\r\n }\r\n\r\n\r\n //Update script info in DB for remote control\r\n UpdateScriptRow(rowData: any, rowIndex, elemRowIndex) {\r\n this.isSubEditable[rowIndex] = false;\r\n this.vquadScriptID = 0;\r\n //console.log(rowData);\r\n\r\n //Load Script operation\r\n //vMobileTestScripts\\Bluetooth\\Bluetooth_Bidirectional_RTD^Stopped;^;^;^;^;^;^;^;^;^;^;^\r\n let loadScript = false;\r\n if (this.currScriptName != rowData.ScriptName_Abs) {// && this.scriptOption === \"1\") {\r\n loadScript = true;\r\n //rowData.Script_Webviewer_Abs = \"\";\r\n rowData.ScriptName_Abs = this.currScriptName;//\"C:\\\\\\\\Program Files (x86)\\\\\\\\GL Communications Inc\\\\\\\\vMobile\\\\\\\\Profiles\\\\\\\\\" + this.currScriptName;\r\n }\r\n //else if (this.currScriptWebviewerName != rowData.Script_Webviewer_Abs && this.scriptOption === \"2\") {\r\n // loadScript = true;\r\n // rowData.ScriptName_Abs = \"\";\r\n // //https://stackoverflow.com/a/38129176\r\n // rowData.Script_Webviewer_Abs = this.currScriptWebviewerName.replace(/\\\\/g, \"\\\\\\\\\");\r\n //}\r\n //console.log(rowData)\r\n if ((loadScript == true && (this.currScriptName.length !== 0 && this.scriptOption === \"1\")) || this.successMsgGlobalStartVar === true) {// || (this.currScriptWebviewerName.length !== 0 && this.scriptOption === \"2\")\r\n //this.isSubLoading[elemRowIndex] = true;\r\n this.InsertRemoteOperation(rowData, RemoteCommandType.START_SCRIPT).subscribe((res: any) => {\r\n //this.isSubLoading[elemRowIndex] = false;\r\n });\r\n }\r\n\r\n this.UpdatevMobileScriptData(rowData).subscribe((res: any) => {\r\n });\r\n\r\n this.dataSource2 = this.dataSource2.filter((value, key) => {\r\n if (value.ID_Abs == rowData.ID_Abs) {\r\n value.ID_Abs = rowData.ID_Abs;\r\n value.ScriptName_Abs = this.currScriptName;\r\n //value.Script_Webviewer_Abs = this.currScriptWebviewerName != null ? (this.currScriptWebviewerName.length > 0 ? this.currScriptWebviewerName : null) : null;\r\n value.GlobalDevice = rowData.GlobalDevice;\r\n }\r\n return true;\r\n });\r\n //this.isSubLoading = true;\r\n //setTimeout(() => { this.isSubLoading = false; this.CallFunc(this.currNodeID, this.currElemRowIndex); }, 6000); \r\n\r\n }\r\n //Cancel back to script original row\r\n prevSubRowData: any;\r\n prevSubRowIndex = -1;\r\n UndoScriptRow(rowData: any, rowIndex) {\r\n this.isSubEditable[rowIndex] = false;\r\n this.vquadScriptID = 0;\r\n this.dataSource2 = this.dataSource2.filter((value, key) => {\r\n if (value.ID_Abs == rowData.ID_Abs) {\r\n value.ID_Abs = rowData.ID_Abs;\r\n value.ScriptName_Abs = rowData.ScriptName_Abs;//this.currScriptName;\r\n //value.Script_Webviewer_Abs = rowData.Script_Webviewer_Abs;//this.currScriptWebviewerName != null ? (this.currScriptWebviewerName.length > 0 ? this.currScriptWebviewerName : null) : null; \r\n value.GlobalDevice = rowData.GlobalDevice;\r\n }\r\n return true;\r\n });\r\n }\r\n\r\n UpdatevMobileScriptData(rowData: any) {\r\n this.url = this.baseUrl + 'NwStat_vMobile/UpdateNwStat_vMobileScripts';\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, rowData, options);\r\n }\r\n\r\n callStatusClass(Call_Status_Abs: string) {\r\n if (Call_Status_Abs == null)\r\n return 'td_expanded IdleOrDisconn';\r\n\r\n let callStatus: string = Call_Status_Abs;\r\n if (callStatus.indexOf('Idle') != -1 || callStatus.indexOf('Disconn') != -1)\r\n return 'td_expanded IdleOrDisconn';\r\n else\r\n return 'td_expanded Connected';\r\n }\r\n\r\n ////https://stackoverflow.com/questions/36006894/angular2-get-clicked-element-id\r\n //StartStop(event, elem) {\r\n // var target = event.target || event.srcElement || event.currentTarget;\r\n // var idAttr = target.attributes.id;\r\n // var value = idAttr.nodeValue;\r\n //}\r\n StartStop(elem, elemRowIndex) {\r\n this.isStartStop[elem.DeviceIndex_Abs - 1] = !this.isStartStop[elem.DeviceIndex_Abs - 1];\r\n //console.log(this.isStartStop[elem.DeviceIndex_Abs - 1])\r\n let remoteCmd = RemoteCommandType.STOP_SCRIPT;\r\n elem.ScriptStatus_Abs = '2';//IMP for script stat icon chnage\r\n if (!this.isStartStop[elem.DeviceIndex_Abs - 1]) {\r\n remoteCmd = RemoteCommandType.START_SCRIPT;\r\n elem.ScriptStatus_Abs = '1';\r\n }\r\n this.isSubLoading[elemRowIndex] = true;\r\n this.InsertRemoteOperation(elem, remoteCmd).subscribe((res: any) => {\r\n this.isSubLoading[elemRowIndex] = false;\r\n });\r\n }\r\n InsertRemoteOperation(rowData: any, remoteCmd: RemoteCommandType) {\r\n this.url = this.baseUrl + 'NwStat_vMobile/InsertNwStat_vMobileScriptsRemoteOperation';\r\n let body = JSON.stringify({ nwstat_vMobileScripts_Abs: rowData, remoteCmd: remoteCmd });\r\n //console.log(body);\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, body, options);\r\n }\r\n\r\n ///////////////////// checkbox selection\r\n selection = new SelectionModel(true, []);\r\n\r\n //** Whether the number of selected elements matches the total number of rows. */\r\n isAllSelected() {\r\n\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data != null ? this.dataSource.data.length : 0;\r\n return numSelected === numRows;\r\n }\r\n\r\n //** Selects all rows if they are not all selected; otherwise clear selection. */\r\n delButton: boolean;\r\n masterToggle() {\r\n this.isAllSelected() ?\r\n this.selection.clear() :\r\n this.dataSource.data.forEach(row => this.selection.select(row));\r\n\r\n this.delbuttonSet(1);\r\n }\r\n delbuttonSet(type, row?) {\r\n if (type == 2)\r\n this.selection.toggle(row);\r\n\r\n if (this.selection.selected.length > 0)\r\n this.delButton = true;\r\n else\r\n this.delButton = false;\r\n }\r\n\r\n //** The label for the checkbox on the passed row */\r\n //checkboxLabel(id: number, row?: any): string {\r\n\r\n // if (id == 1) {\r\n // if (!row) {\r\n // id = 0;\r\n // return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n\r\n // }\r\n // id = 0;\r\n // return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`;\r\n // }\r\n // else {\r\n // this.selection.deselect();\r\n // this.selection.clear();\r\n // }\r\n //}\r\n checkboxLabel(row?: any): string {\r\n\r\n if (!row) {\r\n return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n }\r\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`;\r\n }\r\n selectedRow: string;\r\n DeleteNSvMobile(rowData?: any) {\r\n //DeleteNSvMobile(ID_Abs) {\r\n this.selectedRow = '';\r\n if (rowData)\r\n this.selectedRow += rowData.ID_Abs + ',';\r\n else {\r\n this.dataSource.data.filter((value, key) => {\r\n if (this.selection.isSelected(value)) {\r\n this.selectedRow += value.ID_Abs + ',';\r\n }\r\n });\r\n }\r\n //this.selectedRow = ID_Abs + ',';\r\n\r\n if (this.selectedRow != '') {\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"40%\";\r\n dailogConfig.data = { title: \"Confirm Action\", message: \"Are you sure, you want to delete selected records?\" };\r\n\r\n this.dialog.open(ConfirmDialogComponent, dailogConfig).afterClosed().subscribe(dialogResult => {\r\n if (dialogResult) {\r\n this.DeletevMobileData(this.selectedRow).subscribe((res: any) => {\r\n //this.LoadNSvMobileData();\r\n this.isLoading = true;\r\n setTimeout(() => { this.isLoading = false; this.OnReloadRoute(); }, 8000);\r\n });\r\n }\r\n });\r\n\r\n //if (confirm(\"Are you sure, you want to delete selected records?\")) {\r\n // this.DeletevMobileData(this.selectedRow).subscribe((res: any) => {\r\n // this.LoadNSvMobileData();\r\n // });\r\n //}\r\n }\r\n\r\n }\r\n\r\n DeletevMobileData(nsvMobileID: string) {\r\n this.url = this.baseUrl + 'NwStat_vMobile/DeleteNwStat_vMobile?nsVquaIDs=' + nsvMobileID;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, options);\r\n }\r\n ///////////////////////////////////// end checkbox\r\n\r\n ShowNodeConnected() {\r\n this.showConnectedNode = !this.showConnectedNode;\r\n this.LoadNSvMobileData();\r\n }\r\n\r\n}\r\n\r\nexport interface VQUADDATA {\r\n ID: string;\r\n vMobile_Timestamp: string;\r\n GPS_Position: string;\r\n Call_Control_Event: string;\r\n description: string;\r\n}\r\nconst Dummy_Data: VQUADDATA[] =\r\n [\r\n {\r\n \"ID\": \"101\",\r\n \"vMobile_Timestamp\": \"2fdsfdsf\",\r\n \"GPS_Position\": \"gfd\",\r\n \"Call_Control_Event\": \"inner1\",\r\n \"description\": \"a\"\r\n },\r\n {\r\n \"ID\": \"201\",\r\n \"vMobile_Timestamp\": \"453gf7\",\r\n \"GPS_Position\": \"fgdf\",\r\n \"Call_Control_Event\": \"inner1\",\r\n \"description\": \"a\"\r\n\r\n },\r\n {\r\n \"ID\": \"301\",\r\n \"vMobile_Timestamp\": \"gg5\",\r\n \"GPS_Position\": \"hgh\",\r\n \"Call_Control_Event\": \"Speech Analysis event\",\r\n \"description\": \"a\"\r\n\r\n }\r\n ];\r\n\r\nexport interface PeriodicElement {\r\n name: string;\r\n position: number;\r\n weight: number;\r\n symbol: string;\r\n description: string;\r\n}\r\nconst ELEMENT_DATA: PeriodicElement[] = [\r\n {\r\n position: 1,\r\n name: 'Hydrogen',\r\n weight: 1.0079,\r\n symbol: 'H',\r\n description: `Hydrogen is a chemical element with symbol H and atomic number 1. With a standard\r\n atomic weight of 1.008, hydrogen is the lightest element on the periodic table.`\r\n }, {\r\n position: 2,\r\n name: 'Helium',\r\n weight: 4.0026,\r\n symbol: 'He',\r\n description: `Helium is a chemical element with symbol He and atomic number 2. It is a\r\n colorless, odorless, tasteless, non-toxic, inert, monatomic gas, the first in the noble gas\r\n group in the periodic table. Its boiling point is the lowest among all the elements.`\r\n }, {\r\n position: 3,\r\n name: 'Lithium',\r\n weight: 6.941,\r\n symbol: 'Li',\r\n description: `Lithium is a chemical element with symbol Li and atomic number 3. It is a soft,\r\n silvery-white alkali metal. Under standard conditions, it is the lightest metal and the\r\n lightest solid element.`\r\n }\r\n];\r\n","module.exports = \".example-chip-list {\\n width: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc3RhdGlzdGljcy9uZXR3b3JrLXN0YXR1cy92LW1vYmlsZXNjcnBhcmFtcy9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvc3JjXFxhcHBcXHN0YXRpc3RpY3NcXG5ldHdvcmstc3RhdHVzXFx2LW1vYmlsZXNjcnBhcmFtc1xcdi1tb2JpbGVzY3JwYXJhbXMuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3N0YXRpc3RpY3MvbmV0d29yay1zdGF0dXMvdi1tb2JpbGVzY3JwYXJhbXMvdi1tb2JpbGVzY3JwYXJhbXMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFBO0FDQ0YiLCJmaWxlIjoic3JjL2FwcC9zdGF0aXN0aWNzL25ldHdvcmstc3RhdHVzL3YtbW9iaWxlc2NycGFyYW1zL3YtbW9iaWxlc2NycGFyYW1zLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmV4YW1wbGUtY2hpcC1saXN0IHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG4iLCIuZXhhbXBsZS1jaGlwLWxpc3Qge1xuICB3aWR0aDogMTAwJTtcbn0iXX0= */\"","import { Component, OnInit, Optional, Inject, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MatChipInputEvent } from '@angular/material/chips';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { KeyValue } from '@angular/common';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\n\r\n@Component({\r\n selector: 'app-v-mobilescrparams',\r\n templateUrl: './v-mobilescrparams.component.html',\r\n styleUrls: ['./v-mobilescrparams.component.scss']\r\n})\r\nexport class VMobilescrparamsComponent implements OnInit {\r\n fromPage: string[];\r\n devRowEditable: boolean = false;\r\n title: string;\r\n baseUrl: string;\r\n url: string;\r\n\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n\r\n visible = true;\r\n selectable = true;\r\n removable = true;\r\n addOnBlur = true;\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA];\r\n\r\n CVIP: string[] = [];\r\n add(event: MatChipInputEvent): void {\r\n const input = event.input;\r\n const value = event.value;\r\n\r\n // Add our fruit\r\n if ((value || '').trim()) {\r\n this.CVIP.push(value.trim());\r\n }\r\n\r\n // Reset the input value\r\n if (input) {\r\n input.value = '';\r\n }\r\n }\r\n\r\n remove(chip: string): void {\r\n const index = this.CVIP.indexOf(chip);\r\n\r\n if (index >= 0) {\r\n this.CVIP.splice(index, 1);\r\n }\r\n }\r\n\r\n //https://www.w3schools.com/js/js_json_objects.asp\r\n //https://www.w3schools.com/js/js_json_arrays.asp\r\n GlobalDeviceHeaders = {\r\n \"Remote IP (CVIP): (Use % between IPs)\": { \"key\": \"CVIP\", \"value\": \"\" },//{ \"CVIP\": [\"CVIP1\", \"CVIP2\"] }, Multiple values - Mat chips\r\n \"Global Device1 (GD1): (Ex: 1..8, ?, ?+1, R1..8, R? remote)\": { \"key\": \"GD1\", \"value\": \"\" },\r\n \"Global Device2 (GD2): (Ex: 1..8, ?, ?+1, R1..8, R? remote)\": { \"key\": \"GD2\", \"value\": \"\" },\r\n \"Global Phone1:\": { \"key\": \"GP1\", \"value\": \"\" },\r\n \"Global Phone2:\": { \"key\": \"GP2\", \"value\": \"\" }\r\n };\r\n\r\n //https://stackoverflow.com/questions/48402215/loop-through-array-of-json-object-with-ngfor-angular-4\r\n StartVariableHeaders = {\r\n \"Place Call (PC): (Use % between numbers)\": [{ \"key\": \"PC\", \"value\": \"\" }],\r\n \"Call ID (CI): (Use % between numbers)\": [{ \"key\": \"CI\", \"value\": \"\" }],\r\n //\"Call Type (CTO + CTT)\": [{ \"key\": \"CTO\", \"value\": \"\" }, { \"key\": \"CTT\", \"value\": \"\" }],\r\n //\"Transmit Digits (TD): (Use % between numbers)\": [{ \"key\": \"TD\", \"value\": \"\" }],\r\n //\"Set Sample Rate (SR)\": [{ \"key\": \"SR\", \"value\": \"\" }],\r\n //\"Variable INI File (VF)\": [{ \"key\": \"VF\", \"value\": \"\" }]\r\n };\r\n trackByFn(index: any, item: any) {\r\n return index;\r\n }\r\n dummyData = [{ CD: \"jdfhksdhfsd\", PC: \"sfsdkfjhsdkjfh\" }];\r\n\r\n\r\n constructor(private http: HttpClient, public dialogBox: MatDialogRef, @Optional() @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n\r\n this.fromPage = data.pageValue;//device ID\r\n //console.log(data.pageValue)\r\n this.devRowEditable = data.devRowEditable;\r\n\r\n //console.log(data.devRowEditable);\r\n\r\n this.BindScrParams(data.pageValue);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n\r\n Close() {\r\n this.dialogBox.close(this.successMsg);\r\n }\r\n scrParamsData: any[];\r\n successMsg: boolean = false;\r\n BindScrParams(devID: number) {\r\n this.successMsg = false;\r\n this.GetScrParams(devID).subscribe((res: any) => {\r\n // console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //debugger;\r\n //console.log(rows);\r\n this.scrParamsData = rows;\r\n for (var obj of rows) {\r\n //for (const key in this.GlobalDeviceHeaders) {\r\n // if (this.GlobalDeviceHeaders[key]) {\r\n // if (this.GlobalDeviceHeaders[key].key == obj.ParameterName_Abs) {\r\n // this.GlobalDeviceHeaders[key].value = obj.ParameterValue_Abs;\r\n // break;\r\n // }\r\n // }\r\n //}\r\n\r\n for (const key in this.StartVariableHeaders) {\r\n if (this.StartVariableHeaders[key]) {\r\n let valueArr = this.StartVariableHeaders[key];\r\n for (const subKey in valueArr) {\r\n if (valueArr[subKey]) {\r\n if (valueArr[subKey].key == obj.ParameterName_Abs) {\r\n valueArr[subKey].value = obj.ParameterValue_Abs;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n //console.log(this.GlobalDeviceHeaders);\r\n //console.log(this.StartVariableHeaders);\r\n });\r\n }\r\n UpdateScrParam() {\r\n if (!this.devRowEditable)\r\n this.Close();\r\n else {\r\n //https://stackoverflow.com/questions/37673454/javascript-iterate-key-value-from-json\r\n //console.log(this.GlobalDeviceHeaders[\"Remote IP (CVIP): (Use % between IPs)\"][\"key\"])\r\n //console.log(this.StartVariableHeaders)\r\n this.scrParamsData = [];\r\n //for (const key in this.GlobalDeviceHeaders) {\r\n // if (this.GlobalDeviceHeaders[key]) {\r\n // this.scrParamsData.push({ DevID_Abs: this.fromPage, ParameterName_Abs: this.GlobalDeviceHeaders[key].key, ParameterValue_Abs: this.GlobalDeviceHeaders[key].value })\r\n // }\r\n //}\r\n for (const key in this.StartVariableHeaders) {\r\n if (this.StartVariableHeaders[key]) {\r\n let valueArr = this.StartVariableHeaders[key];\r\n //console.log(valueArr)\r\n for (const subKey in valueArr) {\r\n //console.log(valueArr[subKey])\r\n if (valueArr[subKey]) {\r\n //console.log(valueArr[subKey].key)\r\n this.scrParamsData.push({ DevID_Abs: this.fromPage, ParameterName_Abs: valueArr[subKey].key, ParameterValue_Abs: valueArr[subKey].value })\r\n }\r\n }\r\n }\r\n }\r\n //console.log(this.scrParamsData)\r\n this.UpdatevMobileScrParamData(this.scrParamsData).subscribe((res: any) => {\r\n this.Close();\r\n this.successMsg = true;\r\n });\r\n }\r\n }\r\n\r\n parentEvent(title) {\r\n //debugger;\r\n\r\n this.title = title;\r\n this.childTitleEvent.emit(this.title);\r\n }\r\n\r\n GetScrParams(devID: number) {\r\n\r\n this.url = environment.urlAddress + '/api/' + 'NwStat_vMobile/GetScrParamsByDevID_New?devID=' + devID;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(this.url, { headers: headerOptions });\r\n\r\n }\r\n\r\n\r\n UpdatevMobileScrParamData(scrParamsData: any) {\r\n this.url = this.baseUrl + 'NwStat_vMobile/UpdateNwStat_vMobileScrParam';\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, scrParamsData, options);\r\n }\r\n\r\n\r\n //https://stackoverflow.com/questions/52793944/angular-keyvalue-pipe-sort-properties-iterate-in-order\r\n //https://stackoverflow.com/questions/54091011/disable-the-default-keyvalue-pipe-sort-in-angular\r\n //https://stackoverflow.com/questions/53883433/how-to-disable-automatic-keyvalue-sorting-angular-6\r\n // Preserve original property order\r\n originalOrder = (a: KeyValue, b: KeyValue): number => {\r\n return 0;\r\n }\r\n\r\n // Order by ascending property value\r\n valueAscOrder = (a: KeyValue, b: KeyValue): number => {\r\n return a.value.localeCompare(b.value);\r\n }\r\n\r\n // Order by descending property key\r\n keyDescOrder = (a: KeyValue, b: KeyValue): number => {\r\n return a.key > b.key ? -1 : (b.key > a.key ? 1 : 0);\r\n }\r\n}\r\n","import { Component, OnInit, Output, EventEmitter, ViewChild, Input, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { FormBuilder, FormGroup, FormArray } from '@angular/forms';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { MatDialog, MatDialogConfig, PageEvent, MatPaginator, MatSort, MatTableDataSource } from '@angular/material';\r\nimport { DemoService } from '../../../shared/demo.service';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { CommonFilter } from 'src/app/shared/models/Common/common-filter';\r\nimport { ConfirmDialogComponent } from 'src/app/shared/components/confirm-dialog/confirm-dialog.component';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { getDateValue, iterateAndWait } from 'lib/common/utils';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-vqt',\r\n templateUrl: './vqt.component.html',\r\n //styleUrls: ['./vqt.component.scss']\r\n styleUrls: ['../vquad/vquad.component.scss']\r\n})\r\nexport class VQTComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n selectedRow: string;\r\n baseUrl: string;\r\n title: string;\r\n staticScreen = true;\r\n isLoading = false;\r\n url: string;\r\n currentPage: number;\r\n // MatPaginator Inputs\r\n length = 100;\r\n pageSize = 20;\r\n pageSizeOptions: number[] = [1, 10, 25, 100];\r\n pageIndex = 0;\r\n\r\n pageEvent: PageEvent; // MatPaginator Output\r\n private commonFilter: CommonFilter;\r\n dataSource = new MatTableDataSource([]);//[];\r\n\r\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n\r\n centralIPsForm: FormGroup;\r\n centralIPsList = [];\r\n vqtID: number = 0;\r\n\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n columnsToDisplay = ['NodeIP_Abs', 'NodeVersion_Abs', 'NodeTimestamp_Abs', 'CentralIP_Abs', 'TestName_Abs', 'VqtNodeStatus_Abs', 'select'];\r\n\r\n GetCentralIPLabel(CentralIPIndex_Abs) {\r\n\r\n return CentralIPIndex_Abs == \"0\" ? \"Primary IP\" : (CentralIPIndex_Abs == \"1\" ? \"Secondary IPs\" : \"\");\r\n }\r\n GetCentralIPInput(CentralIPIndex_Abs) {\r\n\r\n return CentralIPIndex_Abs == \"0\" ? \"Primary IP\" : \"Secondary IP\" + CentralIPIndex_Abs;\r\n }\r\n GetCentralIPLabelClass(CentralIPIndex_Abs) {\r\n\r\n return CentralIPIndex_Abs == \"0\" ? \"PrimaryIPNew\" : (CentralIPIndex_Abs == \"1\" ? \"SecondaryIPNew\" : \"\");\r\n }\r\n\r\n //mySubscription: any;\r\n AutoRefreshInfo: any;\r\n interval;\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(private commonFilterService: CommonFilterService, private http: HttpClient, private demoService: DemoService, private dialog: MatDialog, private _formBuilder: FormBuilder, private router: Router) {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n\r\n this.commonFilterService.setNonFiltersScreen(true);\r\n\r\n this.centralIPsForm = this._formBuilder.group({\r\n dummyCentralIPsArray: this._formBuilder.array(this.centralIPsList)\r\n });\r\n\r\n //Do Refresh\r\n const _broadSubRefresh = this.commonFilterService.componentMethodCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log(res)\r\n this.LoadNSVQTData();\r\n }\r\n );\r\n this.subscriptions.push(_broadSubRefresh);\r\n\r\n //Do Auto-refresh - start/stop\r\n const _broadSubAutoRefresh = this.commonFilterService.componentMethodWithArgCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.AutoRefreshInfo = res;\r\n //console.log(res)\r\n if (this.AutoRefreshInfo.AutoRefStop) {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n }\r\n }\r\n else {\r\n this.interval = setInterval(() => {\r\n //console.log(this.AutoRefreshInfo.AutoRefStop);\r\n\r\n this.LoadNSVQTData();\r\n }, this.AutoRefreshInfo.AutoRefSelected);\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAutoRefresh);\r\n }\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n //ngOnDestroy() {\r\n // if (this.mySubscription) {\r\n // this.mySubscription.unsubscribe();\r\n // }\r\n //}\r\n ngAfterViewInit() {\r\n //setTimeout(() => this.dataSource.paginator = this.paginator);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n get dummyCentralIPsArray(): FormArray {\r\n return this.centralIPsForm.get('dummyCentralIPsArray') as FormArray;\r\n }\r\n\r\n OnReloadRoute() {\r\n this.router.navigateByUrl('statistics/nsvqt');\r\n }\r\n ngOnInit() {\r\n\r\n //this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n // return false;\r\n //};\r\n //this.mySubscription = this.router.events.subscribe((event) => {\r\n // if (event instanceof NavigationEnd) {\r\n // // Trick the Router into believing it's last link wasn't previously loaded\r\n // this.router.navigated = false;\r\n\r\n // // if you need to scroll back to top, here is the right place\r\n // window.scrollTo(0, 0);\r\n // }\r\n //});\r\n\r\n this.LoadNSVQTData();\r\n }\r\n\r\n @Input() StatusVqtID: number = 0;\r\n LoadNSVQTData(event?: PageEvent) {\r\n this.isLoading = true;\r\n this.commonFilter = new CommonFilter();\r\n if (event != undefined) {\r\n\r\n this.currentPage = +event.pageIndex + +1;\r\n this.url = this.baseUrl + 'NwStat_VQT/GetAllNwStat_VQT';\r\n this.commonFilter.PerPage = event.pageSize.toString();\r\n this.commonFilter.PageNumber = this.currentPage.toString();\r\n\r\n } else {\r\n this.url = this.baseUrl + 'NwStat_VQT/GetAllNwStat_VQT';\r\n this.commonFilter.PerPage = this.pageSize.toString();\r\n this.commonFilter.PageNumber = \"1\";\r\n }\r\n //console.log(this.StatusVqtID)\r\n if (this.StatusVqtID != 0) {\r\n this.url = this.baseUrl + 'NwStat_VQuad/GetAllNwStat_VQTByID';\r\n this.commonFilter.ResultOrFileType = this.StatusVqtID;\r\n }\r\n\r\n this.GetAllData(this.commonFilter).subscribe((res: any) => {\r\n //console.log(res)\r\n if (res !== 'null') {\r\n let rows: any[] = JSON.parse(res) as any[];\r\n this.length = rows.length;\r\n this.dataSource.data = rows;\r\n }\r\n this.isLoading = false;\r\n },\r\n err => {\r\n this.isLoading = false;\r\n });\r\n\r\n return event;\r\n }\r\n\r\n parentEvent(title) {\r\n this.title = title;\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n\r\n GetAllData(commFilter: CommonFilter) {\r\n \r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, commFilter, options);\r\n }\r\n\r\n ///////////////////// checkbox selection\r\n selection = new SelectionModel(true, []);\r\n\r\n //** Whether the number of selected elements matches the total number of rows. */\r\n isAllSelected() {\r\n\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data != null ? this.dataSource.data.length : 0;\r\n return numSelected === numRows;\r\n }\r\n\r\n //** Selects all rows if they are not all selected; otherwise clear selection. */\r\n delButton: boolean;\r\n masterToggle() {\r\n this.isAllSelected() ?\r\n this.selection.clear() :\r\n this.dataSource.data.forEach(row => this.selection.select(row));\r\n this.delbuttonSet(1);\r\n }\r\n delbuttonSet(type, row?) {\r\n if (type == 2)\r\n this.selection.toggle(row);\r\n\r\n if (this.selection.selected.length > 0)\r\n this.delButton = true;\r\n else\r\n this.delButton = false;\r\n }\r\n\r\n //** The label for the checkbox on the passed row */\r\n checkboxLabel(row?: any): string {\r\n if (!row) {\r\n return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n }\r\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`;\r\n }\r\n\r\n\r\n DeleteNSVQT(rowData?: any) {\r\n this.selectedRow = '';\r\n if (rowData)\r\n this.selectedRow += rowData.ID_Abs + ',';\r\n //this.dataSource.data.filter((value, key) => {\r\n // if (this.selection.isSelected(value)) {\r\n // \r\n // this.selectedRow = this.selectedRow + value.ID_Abs + ',';\r\n // }\r\n //});\r\n\r\n if (this.selectedRow != '') {\r\n\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"40%\";\r\n dailogConfig.data = { title: \"Confirm Action\", message: \"Are you sure, you want to delete selected records?\" };\r\n\r\n this.dialog.open(ConfirmDialogComponent, dailogConfig).afterClosed().subscribe(dialogResult => {\r\n if (dialogResult) {\r\n this.DeleteVQTData(this.selectedRow).subscribe((res: any) => {\r\n this.LoadNSVQTData();\r\n });\r\n }\r\n });\r\n\r\n //if (confirm(\"Are you sure, you want to delete selected records?\")) {\r\n // this.DeleteMobileData(this.selectedRow).subscribe((res: any) => {\r\n // this.LoadNSMobileData();\r\n // });\r\n //}\r\n }\r\n\r\n }\r\n\r\n DeleteVQTData(nsVQTIDs: string) {\r\n this.url = this.baseUrl + 'NwStat_VQT/DeleteVQTByID?nsVQTIDs=' + nsVQTIDs;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, options);\r\n }\r\n ///////////////////////////////////// end checkbox\r\n\r\n\r\n //Edit Node network info\r\n isEditable = {};\r\n EditRow(rowData: any, rowIndex) {\r\n if (this.prevRowIndex === -1) {\r\n this.prevRowData = rowData;\r\n this.prevRowIndex = rowIndex;\r\n }\r\n else {\r\n this.UndoRow(this.prevRowData, this.prevRowIndex);\r\n this.prevRowData = null;\r\n this.prevRowIndex = -1;\r\n }\r\n this.isEditable[rowIndex] = !this.isEditable[rowIndex];\r\n this.vqtID = rowData.ID_Abs;\r\n\r\n this.centralIPsList = [];\r\n let cntIPs = 0;\r\n for (const key in rowData.CentralIP_Abs) {\r\n if (rowData.CentralIP_Abs[key] !== 'null')\r\n this.centralIPsList.push(rowData.CentralIP_Abs[key]);\r\n else\r\n this.centralIPsList.push(\"\");\r\n cntIPs++;\r\n }\r\n for (var i = cntIPs; i < 4; i++)\r\n this.centralIPsList.push(\"\");\r\n\r\n // if receiving data at a later point, use below instead\r\n this.centralIPsForm.setControl('dummyCentralIPsArray', this._formBuilder.array(this.centralIPsList));\r\n\r\n //this.dataSource = this.dataSource.filter((value, key) => {\r\n // if (value.ID_Abs == rowData) {\r\n // this.editRow = true;\r\n // }\r\n // else\r\n // this.editRow = false;\r\n // return true;\r\n //});\r\n }\r\n\r\n //Update node info in DB for DataImport to send \r\n UpdateRow(rowData: any, rowIndex) {\r\n this.isEditable[rowIndex] = !this.isEditable[rowIndex];\r\n //console.log(rowData);\r\n this.vqtID = 0;\r\n\r\n //https://stackoverflow.com/questions/15877362/declare-and-initialize-a-dictionary-in-typescript\r\n //https://stackoverflow.com/a/45157258 - Not needed but can be used in array as number type key and value\r\n let newCentralIPList: { [id: number]: string; } = {};//[];\r\n for (var i = 0; i < 4; i++)\r\n newCentralIPList[i] = this.dummyCentralIPsArray.value[i];//this.centralIPsList[i];\r\n\r\n rowData.CentralIP_Abs = newCentralIPList;\r\n //console.log(rowData.CentralIP_Abs)\r\n this.UpdateVQTData(rowData).subscribe((res: any) => {\r\n });\r\n\r\n //this.dataSource = this.dataSource.filter((value, key) => {\r\n // if (value.ID_Abs == rowData.ID_Abs) {\r\n // value.ID_Abs = rowData.ID_Abs;\r\n // value.NodeAlias_Abs = rowData.NodeAlias_Abs;\r\n // value.GPS_Lat_Abs = rowData.GPS_Lat_Abs;\r\n // value.GPS_Long_Abs = rowData.GPS_Long_Abs;\r\n // value.NodeIPAddr_Abs = rowData.NodeIPAddr_Abs;\r\n // value.CentralIP_Abs = rowData.CentralIP_Abs;\r\n // value.TestName_Abs = rowData.TestName_Abs;\r\n // }\r\n // return true;\r\n //});\r\n this.isLoading = true;\r\n setTimeout(() => { this.isLoading = false; this.OnReloadRoute(); }, 3000); \r\n }\r\n //change disconnected node to OOS\r\n changeToOOSRow(rowData: any) {//, rowIndex) {\r\n\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"40%\";\r\n dailogConfig.data = { title: \"Confirm Action\", message: \"Are you sure you want to change status to Out of Service?\" };\r\n\r\n this.dialog.open(ConfirmDialogComponent, dailogConfig).afterClosed().subscribe(dialogResult => {\r\n if (dialogResult) {\r\n //this.isEditable[rowIndex] = !this.isEditable[rowIndex];\r\n // console.log(rowData);\r\n this.vqtID = 0;\r\n\r\n rowData.NodeStatus_Abs = 1;\r\n\r\n this.UpdateOOSVQTData(rowData).subscribe((res: any) => {\r\n });\r\n\r\n this.dataSource.data = this.dataSource.data.filter((value, key) => {\r\n if (value.ID_Abs == rowData.ID_Abs) {\r\n value.ID_Abs = rowData.ID_Abs;\r\n value.NodeAlias_Abs = rowData.NodeAlias_Abs;\r\n value.GPS_Lat_Abs = rowData.GPS_Lat_Abs;\r\n value.GPS_Long_Abs = rowData.GPS_Long_Abs;\r\n value.NodeIPAddr_Abs = rowData.NodeIPAddr_Abs;\r\n value.TestName_Abs = rowData.TestName_Abs;\r\n }\r\n return true;\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n //Cancel editing node\r\n prevRowData: any;\r\n prevRowIndex = -1;\r\n UndoRow(rowData: any, rowIndex) {\r\n this.isEditable[rowIndex] = !this.isEditable[rowIndex];\r\n this.vqtID = 0;\r\n\r\n this.dataSource.data = this.dataSource.data.filter((value, key) => {\r\n if (value.ID_Abs == rowData.ID_Abs) {\r\n value.ID_Abs = rowData.ID_Abs;\r\n value.NodeAlias_Abs = rowData.NodeAlias_Abs;\r\n value.GPS_Lat_Abs = rowData.GPS_Lat_Abs;\r\n value.GPS_Long_Abs = rowData.GPS_Long_Abs;\r\n value.NodeIPAddr_Abs = rowData.NodeIPAddr_Abs;\r\n value.TestName_Abs = rowData.TestName_Abs;\r\n }\r\n return true;\r\n });\r\n\r\n }\r\n\r\n UpdateVQTData(rowData: any) {\r\n //debugger;\r\n //console.log(rowData)\r\n this.url = this.baseUrl + 'NwStat_VQT/UpdateNwStat_VQT';\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n //var body = {\r\n // PageNumber: this.commonFilter.PageNumber, PerPage: this.commonFilter.PerPage\r\n //}\r\n //return this.http.post(this.url, \"\", { headers: headerOptions }); for post 3 agrument and for get 2 arguments // JSON.stringify({ commonFilter: this.commonFilter })\r\n return this.http.post(this.url, rowData, options);\r\n\r\n }\r\n UpdateOOSVQTData(rowData: any) {\r\n //debugger;\r\n\r\n this.url = this.baseUrl + 'NwStat_VQT/UpdateNwStatOOS_VQT';\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n //var body = {\r\n // PageNumber: this.commonFilter.PageNumber, PerPage: this.commonFilter.PerPage\r\n //}\r\n //return this.http.post(this.url, \"\", { headers: headerOptions }); for post 3 agrument and for get 2 arguments // JSON.stringify({ commonFilter: this.commonFilter })\r\n return this.http.post(this.url, rowData, options);\r\n\r\n }\r\n}\r\n \r\n","module.exports = \"/*https://stackblitz.com/edit/angular-nested-mat-table?file=app%2Ftable-expandable-rows-example.ts*/\\n.outerTable {\\n /*width: 2000px !important;*/\\n}\\n.divFlow {\\n height: 760px;\\n max-height: 800px;\\n overflow: auto;\\n}\\n.outerTable th,\\n.innerTable th {\\n background: #1976D2;\\n color: white;\\n font-weight: bold;\\n text-align: center !important;\\n font-size: 12px;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n /*font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\\n font-family: Cambria, Cochin, Georgia, Times, Times New Roman, serif;*/\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n /*width:120px;*/\\n}\\n.outerTable td,\\n.innerTable td {\\n text-align: left !important;\\n font-size: 12px;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n /*font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\\n font-family: Cambria, Cochin, Georgia, Times, Times New Roman, serif;*/\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n}\\n/*elumalai*/\\n.outerTable tr,\\n.innerTable tr {\\n background-color: #FAFAFA;\\n}\\n.innerTable {\\n width: 100%;\\n}\\n.innerTable tr:nth-child(even) {\\n background: #C9DFF4;\\n}\\n.innerTable tr:nth-child(odd) {\\n background: #FFF;\\n}\\ntr.example-detail-row {\\n height: 0;\\n}\\n/*elumalai*/\\ntr.example-element-row:not(.example-expanded-row):hover {\\n background: #EBF3FE;\\n /*#777;*/\\n color: blueviolet;\\n}\\n/*elumalai*/\\ntr.example-element-row:not(.example-expanded-row):active {\\n /*background: #efefef;*/\\n background: #EBF3FE;\\n color: blueviolet;\\n}\\n/*.outerTable tr.example-element-row:not(.example-detail-row):nth-child(even) {\\n background: #C9DFF4;\\n}\\n\\n.outerTable tr.example-element-row:not(.example-detail-row):nth-child(odd) {\\n background: #FFF;\\n}*/\\n.example-element-row td {\\n border-bottom-width: 0;\\n}\\n.example-element-detail {\\n overflow: hidden;\\n /*display: flex;*/\\n}\\n/*https://www.freakyjolly.com/expand-collapse-single-or-multiple-rows-in-angular-98-material-table-multiple-single/*/\\n/*.example-element-detail {\\n overflow: hidden;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background-color: #e1e1e1;\\n box-shadow: inset 2px 3px 8px #c1c1c1;\\n border-radius: 8px;\\n}*/\\n.inner-table {\\n width: 1100px;\\n}\\n/*.inner-table mat-form-field {\\n margin-top: 15px;\\n width: 100%;\\n}\\n\\n.outerTable mat-form-field {\\n margin-top: 15px;\\n width: 70%;\\n}*/\\n.divHearder {\\n margin-left: 200px;\\n font-size: large;\\n margin-right: 100px;\\n}\\n.highlight {\\n color: blueviolet;\\n font-variant: all-petite-caps;\\n}\\n/*https://stackoverflow.com/questions/46632098/accessing-primary-color-which-is-defined-custom-theme-inside-components-scss\\n https://medium.com/@tomastrajan/the-complete-guide-to-angular-material-themes-4d165a9d24d1\\n*/\\n/*https: //stackblitz.com/edit/angular-material-theme-secrets?embed=1&file=src%2Ftheme.scss&source=post_page---------------------------*/\\n/*@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic&subset=latin-ext');\\n@import url('https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic&subset=latin-ext');*/\\n/*@import '../css/GoogleFontsOpenSans.css';\\n@import '../css/GoogleFontsRoboto.css';*/\\n/* Theme for the ripple elements.*/\\n/* stylelint-disable material/no-prefixes */\\n/* stylelint-enable */\\n.mat-badge-content {\\n font-weight: 600;\\n font-size: 12px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-badge-small .mat-badge-content {\\n font-size: 9px;\\n}\\n.mat-badge-large .mat-badge-content {\\n font-size: 24px;\\n}\\n.mat-h1, .mat-headline, .mat-typography h1 {\\n font: 400 24px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h2, .mat-title, .mat-typography h2 {\\n font: 500 20px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h3, .mat-subheading-2, .mat-typography h3 {\\n font: 400 16px/28px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h4, .mat-subheading-1, .mat-typography h4 {\\n font: 400 15px/24px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h5, .mat-typography h5 {\\n font: 400 calc(14px * 0.83)/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n.mat-h6, .mat-typography h6 {\\n font: 400 calc(14px * 0.67)/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n.mat-body-strong, .mat-body-2 {\\n font: 500 14px/24px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-body, .mat-body-1, .mat-typography {\\n font: 400 14px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-body p, .mat-body-1 p, .mat-typography p {\\n margin: 0 0 12px;\\n}\\n.mat-small, .mat-caption {\\n font: 400 12px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-display-4, .mat-typography .mat-display-4 {\\n font: 300 112px/112px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n letter-spacing: -0.05em;\\n margin: 0 0 56px;\\n}\\n.mat-display-3, .mat-typography .mat-display-3 {\\n font: 400 56px/56px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n letter-spacing: -0.02em;\\n margin: 0 0 64px;\\n}\\n.mat-display-2, .mat-typography .mat-display-2 {\\n font: 400 45px/48px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n letter-spacing: -0.005em;\\n margin: 0 0 64px;\\n}\\n.mat-display-1, .mat-typography .mat-display-1 {\\n font: 400 34px/40px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 64px;\\n}\\n.mat-bottom-sheet-container {\\n font: 400 14px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-button, .mat-raised-button, .mat-icon-button, .mat-stroked-button,\\n.mat-flat-button, .mat-fab, .mat-mini-fab {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-button-toggle {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-card {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-card-title {\\n font-size: 24px;\\n font-weight: 500;\\n}\\n.mat-card-header .mat-card-title {\\n font-size: 20px;\\n}\\n.mat-card-subtitle,\\n.mat-card-content {\\n font-size: 14px;\\n}\\n.mat-checkbox {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-checkbox-layout .mat-checkbox-label {\\n line-height: 24px;\\n}\\n.mat-chip {\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-chip .mat-chip-trailing-icon.mat-icon,\\n.mat-chip .mat-chip-remove.mat-icon {\\n font-size: 18px;\\n}\\n.mat-table {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-header-cell {\\n font-size: 12px;\\n font-weight: 500;\\n}\\n.mat-cell, .mat-footer-cell {\\n font-size: 14px;\\n}\\n.mat-calendar {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-calendar-body {\\n font-size: 13px;\\n}\\n.mat-calendar-body-label,\\n.mat-calendar-period-button {\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-calendar-table-header th {\\n font-size: 11px;\\n font-weight: 400;\\n}\\n.mat-dialog-title {\\n font: 500 20px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-expansion-panel-header {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 15px;\\n font-weight: 400;\\n}\\n.mat-expansion-panel-content {\\n font: 400 14px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-form-field {\\n font-size: inherit;\\n font-weight: 400;\\n line-height: 1.125;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-form-field-wrapper {\\n padding-bottom: 1.34375em;\\n}\\n.mat-form-field-prefix .mat-icon,\\n.mat-form-field-suffix .mat-icon {\\n font-size: 150%;\\n line-height: 1.125;\\n}\\n.mat-form-field-prefix .mat-icon-button,\\n.mat-form-field-suffix .mat-icon-button {\\n height: 1.5em;\\n width: 1.5em;\\n}\\n.mat-form-field-prefix .mat-icon-button .mat-icon,\\n.mat-form-field-suffix .mat-icon-button .mat-icon {\\n height: 1.125em;\\n line-height: 1.125;\\n}\\n.mat-form-field-infix {\\n padding: 0.5em 0;\\n border-top: 0.84375em solid transparent;\\n}\\n.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.34375em) scale(0.75);\\n transform: translateY(-1.34375em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.34374em) scale(0.75);\\n transform: translateY(-1.34374em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-form-field-label-wrapper {\\n top: -0.84375em;\\n padding-top: 0.84375em;\\n}\\n.mat-form-field-label {\\n top: 1.34375em;\\n}\\n.mat-form-field-underline {\\n bottom: 1.34375em;\\n}\\n.mat-form-field-subscript-wrapper {\\n font-size: 75%;\\n margin-top: 0.6666666667em;\\n top: calc(100% - 1.7916666667em);\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-wrapper {\\n padding-bottom: 1.25em;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-infix {\\n padding: 0.4375em 0;\\n}\\n.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);\\n -ms-transform: translateY(-1.28125em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);\\n -ms-transform: translateY(-1.28124em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);\\n -ms-transform: translateY(-1.28123em) scale(0.75);\\n width: 133.3333533333%;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-label {\\n top: 1.28125em;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-underline {\\n bottom: 1.25em;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {\\n margin-top: 0.5416666667em;\\n top: calc(100% - 1.6666666667em);\\n}\\n@media print {\\n .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.28122em) scale(0.75);\\n transform: translateY(-1.28122em) scale(0.75);\\n }\\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28121em) scale(0.75);\\n }\\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.2812em) scale(0.75);\\n transform: translateY(-1.2812em) scale(0.75);\\n }\\n}\\n.mat-form-field-appearance-fill .mat-form-field-infix {\\n padding: 0.25em 0 0.75em 0;\\n}\\n.mat-form-field-appearance-fill .mat-form-field-label {\\n top: 1.09375em;\\n margin-top: -0.5em;\\n}\\n.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-0.59375em) scale(0.75);\\n transform: translateY(-0.59375em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-0.59374em) scale(0.75);\\n transform: translateY(-0.59374em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-form-field-appearance-outline .mat-form-field-infix {\\n padding: 1em 0 1em 0;\\n}\\n.mat-form-field-appearance-outline .mat-form-field-label {\\n top: 1.84375em;\\n margin-top: -0.25em;\\n}\\n.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.59375em) scale(0.75);\\n transform: translateY(-1.59375em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.59374em) scale(0.75);\\n transform: translateY(-1.59374em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-grid-tile-header,\\n.mat-grid-tile-footer {\\n font-size: 14px;\\n}\\n.mat-grid-tile-header .mat-line,\\n.mat-grid-tile-footer .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-grid-tile-header .mat-line:nth-child(n+2),\\n.mat-grid-tile-footer .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\ninput.mat-input-element {\\n margin-top: -0.0625em;\\n}\\n.mat-menu-item {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 400;\\n}\\n.mat-paginator,\\n.mat-paginator-page-size .mat-select-trigger {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n}\\n.mat-radio-button {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-select {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-select-trigger {\\n height: 1.125em;\\n}\\n.mat-slide-toggle-content {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-slider-thumb-label-text {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n.mat-stepper-vertical, .mat-stepper-horizontal {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-step-label {\\n font-size: 14px;\\n font-weight: 400;\\n}\\n.mat-step-sub-label-error {\\n font-weight: normal;\\n}\\n.mat-step-label-error {\\n font-size: 14px;\\n}\\n.mat-step-label-selected {\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-tab-group {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-tab-label, .mat-tab-link {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-toolbar,\\n.mat-toolbar h1,\\n.mat-toolbar h2,\\n.mat-toolbar h3,\\n.mat-toolbar h4,\\n.mat-toolbar h5,\\n.mat-toolbar h6 {\\n font: 500 20px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0;\\n}\\n.mat-tooltip {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 10px;\\n padding-top: 6px;\\n padding-bottom: 6px;\\n}\\n.mat-tooltip-handset {\\n font-size: 14px;\\n padding-top: 8px;\\n padding-bottom: 8px;\\n}\\n.mat-list-item {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-list-option {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-list-base .mat-list-item {\\n font-size: 16px;\\n}\\n.mat-list-base .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n.mat-list-base .mat-list-option {\\n font-size: 16px;\\n}\\n.mat-list-base .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n.mat-list-base .mat-subheader {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-list-base[dense] .mat-list-item {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-list-option {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-subheader {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n.mat-option {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n}\\n.mat-optgroup-label {\\n font: 500 14px/24px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-simple-snackbar {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n}\\n.mat-simple-snackbar-action {\\n line-height: 1;\\n font-family: inherit;\\n font-size: inherit;\\n font-weight: 500;\\n}\\n.mat-tree {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-tree-node,\\n.mat-nested-tree-node {\\n font-weight: 400;\\n font-size: 14px;\\n}\\n.mat-ripple {\\n overflow: hidden;\\n position: relative;\\n}\\n.mat-ripple.mat-ripple-unbounded {\\n overflow: visible;\\n}\\n.mat-ripple-element {\\n position: absolute;\\n border-radius: 50%;\\n pointer-events: none;\\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\\n -ms-transform: scale(0);\\n transform: scale(0);\\n}\\n@media (-ms-high-contrast: active) {\\n .mat-ripple-element {\\n display: none;\\n }\\n}\\n.cdk-visually-hidden {\\n border: 0;\\n clip: rect(0 0 0 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n outline: 0;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n}\\n.cdk-overlay-container, .cdk-global-overlay-wrapper {\\n pointer-events: none;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n}\\n.cdk-overlay-container {\\n position: fixed;\\n z-index: 1000;\\n}\\n.cdk-overlay-container:empty {\\n display: none;\\n}\\n.cdk-global-overlay-wrapper {\\n display: -ms-flexbox;\\n display: flex;\\n position: absolute;\\n z-index: 1000;\\n}\\n.cdk-overlay-pane {\\n position: absolute;\\n pointer-events: auto;\\n box-sizing: border-box;\\n z-index: 1000;\\n display: -ms-flexbox;\\n display: flex;\\n max-width: 100%;\\n max-height: 100%;\\n}\\n.cdk-overlay-backdrop {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n z-index: 1000;\\n pointer-events: auto;\\n -webkit-tap-highlight-color: transparent;\\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\\n opacity: 0;\\n}\\n.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\\n opacity: 1;\\n}\\n@media screen and (-ms-high-contrast: active) {\\n .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\\n opacity: 0.6;\\n }\\n}\\n.cdk-overlay-dark-backdrop {\\n background: rgba(0, 0, 0, 0.32);\\n}\\n.cdk-overlay-transparent-backdrop, .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {\\n opacity: 0;\\n}\\n.cdk-overlay-connected-position-bounding-box {\\n position: absolute;\\n z-index: 1000;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n min-width: 1px;\\n min-height: 1px;\\n}\\n.cdk-global-scrollblock {\\n position: fixed;\\n width: 100%;\\n overflow-y: scroll;\\n}\\n@-webkit-keyframes cdk-text-field-autofill-start {\\n /*!*/\\n}\\n@keyframes cdk-text-field-autofill-start {\\n /*!*/\\n}\\n@-webkit-keyframes cdk-text-field-autofill-end {\\n /*!*/\\n}\\n@keyframes cdk-text-field-autofill-end {\\n /*!*/\\n}\\n.cdk-text-field-autofill-monitored:-webkit-autofill {\\n -webkit-animation-name: cdk-text-field-autofill-start;\\n animation-name: cdk-text-field-autofill-start;\\n}\\n.cdk-text-field-autofill-monitored:not(:-webkit-autofill) {\\n -webkit-animation-name: cdk-text-field-autofill-end;\\n animation-name: cdk-text-field-autofill-end;\\n}\\ntextarea.cdk-textarea-autosize {\\n resize: none;\\n}\\ntextarea.cdk-textarea-autosize-measuring {\\n height: auto !important;\\n overflow: hidden !important;\\n padding: 2px 0 !important;\\n box-sizing: content-box !important;\\n}\\n.mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.mat-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-option:hover:not(.mat-option-disabled), .mat-option:focus:not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.mat-option.mat-active {\\n background: rgba(0, 0, 0, 0.04);\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-option.mat-option-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #64b5f6;\\n}\\n.mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: yellow;\\n}\\n.mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #f44336;\\n}\\n.mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-optgroup-disabled .mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-pseudo-checkbox {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-pseudo-checkbox::after {\\n color: #fafafa;\\n}\\n.mat-pseudo-checkbox-disabled {\\n color: #b0b0b0;\\n}\\n.mat-pseudo-checkbox-checked,\\n.mat-pseudo-checkbox-indeterminate,\\n.mat-accent .mat-pseudo-checkbox-checked,\\n.mat-accent .mat-pseudo-checkbox-indeterminate {\\n background: yellow;\\n}\\n.mat-primary .mat-pseudo-checkbox-checked,\\n.mat-primary .mat-pseudo-checkbox-indeterminate {\\n background: #64b5f6;\\n}\\n.mat-warn .mat-pseudo-checkbox-checked,\\n.mat-warn .mat-pseudo-checkbox-indeterminate {\\n background: #f44336;\\n}\\n.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\\n.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\\n background: #b0b0b0;\\n}\\n.mat-elevation-z0 {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z1 {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z2 {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z3 {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z4 {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z5 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z6 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z7 {\\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z8 {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z9 {\\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z10 {\\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z11 {\\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z12 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z13 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z14 {\\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z15 {\\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z16 {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z17 {\\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z18 {\\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z19 {\\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z20 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z21 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z22 {\\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z23 {\\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z24 {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n}\\n.mat-app-background {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-theme-loaded-marker {\\n display: none;\\n}\\n.mat-autocomplete-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-autocomplete-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\\n background: white;\\n}\\n.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-badge-content {\\n color: rgba(0, 0, 0, 0.87);\\n background: #64b5f6;\\n}\\n@media (-ms-high-contrast: active) {\\n .mat-badge-content {\\n outline: solid 1px;\\n border-radius: 0;\\n }\\n}\\n.mat-badge-accent .mat-badge-content {\\n background: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-badge-warn .mat-badge-content {\\n color: white;\\n background: #f44336;\\n}\\n.mat-badge {\\n position: relative;\\n}\\n.mat-badge-hidden .mat-badge-content {\\n display: none;\\n}\\n.mat-badge-disabled .mat-badge-content {\\n background: #b9b9b9;\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-badge-content {\\n position: absolute;\\n text-align: center;\\n display: inline-block;\\n border-radius: 50%;\\n transition: transform 200ms ease-in-out;\\n -ms-transform: scale(0.6);\\n transform: scale(0.6);\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n pointer-events: none;\\n}\\n.ng-animate-disabled .mat-badge-content,\\n.mat-badge-content._mat-animation-noopable {\\n transition: none;\\n}\\n.mat-badge-content.mat-badge-active {\\n -ms-transform: none;\\n transform: none;\\n}\\n.mat-badge-small .mat-badge-content {\\n width: 16px;\\n height: 16px;\\n line-height: 16px;\\n}\\n.mat-badge-small.mat-badge-above .mat-badge-content {\\n top: -8px;\\n}\\n.mat-badge-small.mat-badge-below .mat-badge-content {\\n bottom: -8px;\\n}\\n.mat-badge-small.mat-badge-before .mat-badge-content {\\n left: -16px;\\n}\\n[dir=rtl] .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -16px;\\n}\\n.mat-badge-small.mat-badge-after .mat-badge-content {\\n right: -16px;\\n}\\n[dir=rtl] .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -16px;\\n}\\n.mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -8px;\\n}\\n[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -8px;\\n}\\n.mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -8px;\\n}\\n[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -8px;\\n}\\n.mat-badge-medium .mat-badge-content {\\n width: 22px;\\n height: 22px;\\n line-height: 22px;\\n}\\n.mat-badge-medium.mat-badge-above .mat-badge-content {\\n top: -11px;\\n}\\n.mat-badge-medium.mat-badge-below .mat-badge-content {\\n bottom: -11px;\\n}\\n.mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: -22px;\\n}\\n[dir=rtl] .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -22px;\\n}\\n.mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: -22px;\\n}\\n[dir=rtl] .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -22px;\\n}\\n.mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -11px;\\n}\\n[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -11px;\\n}\\n.mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -11px;\\n}\\n[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -11px;\\n}\\n.mat-badge-large .mat-badge-content {\\n width: 28px;\\n height: 28px;\\n line-height: 28px;\\n}\\n.mat-badge-large.mat-badge-above .mat-badge-content {\\n top: -14px;\\n}\\n.mat-badge-large.mat-badge-below .mat-badge-content {\\n bottom: -14px;\\n}\\n.mat-badge-large.mat-badge-before .mat-badge-content {\\n left: -28px;\\n}\\n[dir=rtl] .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -28px;\\n}\\n.mat-badge-large.mat-badge-after .mat-badge-content {\\n right: -28px;\\n}\\n[dir=rtl] .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -28px;\\n}\\n.mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -14px;\\n}\\n[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -14px;\\n}\\n.mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -14px;\\n}\\n[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -14px;\\n}\\n.mat-bottom-sheet-container {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-button, .mat-icon-button, .mat-stroked-button {\\n color: inherit;\\n background: transparent;\\n}\\n.mat-button.mat-primary, .mat-icon-button.mat-primary, .mat-stroked-button.mat-primary {\\n color: #64b5f6;\\n}\\n.mat-button.mat-accent, .mat-icon-button.mat-accent, .mat-stroked-button.mat-accent {\\n color: yellow;\\n}\\n.mat-button.mat-warn, .mat-icon-button.mat-warn, .mat-stroked-button.mat-warn {\\n color: #f44336;\\n}\\n.mat-button.mat-primary[disabled], .mat-button.mat-accent[disabled], .mat-button.mat-warn[disabled], .mat-button[disabled][disabled], .mat-icon-button.mat-primary[disabled], .mat-icon-button.mat-accent[disabled], .mat-icon-button.mat-warn[disabled], .mat-icon-button[disabled][disabled], .mat-stroked-button.mat-primary[disabled], .mat-stroked-button.mat-accent[disabled], .mat-stroked-button.mat-warn[disabled], .mat-stroked-button[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-button.mat-primary .mat-button-focus-overlay, .mat-icon-button.mat-primary .mat-button-focus-overlay, .mat-stroked-button.mat-primary .mat-button-focus-overlay {\\n background-color: #64b5f6;\\n}\\n.mat-button.mat-accent .mat-button-focus-overlay, .mat-icon-button.mat-accent .mat-button-focus-overlay, .mat-stroked-button.mat-accent .mat-button-focus-overlay {\\n background-color: yellow;\\n}\\n.mat-button.mat-warn .mat-button-focus-overlay, .mat-icon-button.mat-warn .mat-button-focus-overlay, .mat-stroked-button.mat-warn .mat-button-focus-overlay {\\n background-color: #f44336;\\n}\\n.mat-button[disabled] .mat-button-focus-overlay, .mat-icon-button[disabled] .mat-button-focus-overlay, .mat-stroked-button[disabled] .mat-button-focus-overlay {\\n background-color: transparent;\\n}\\n.mat-button .mat-ripple-element, .mat-icon-button .mat-ripple-element, .mat-stroked-button .mat-ripple-element {\\n opacity: 0.1;\\n background-color: currentColor;\\n}\\n.mat-button-focus-overlay {\\n background: black;\\n}\\n.mat-stroked-button:not([disabled]) {\\n border-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-flat-button, .mat-raised-button, .mat-fab, .mat-mini-fab {\\n color: rgba(0, 0, 0, 0.87);\\n background-color: white;\\n}\\n.mat-flat-button.mat-primary, .mat-raised-button.mat-primary, .mat-fab.mat-primary, .mat-mini-fab.mat-primary {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-flat-button.mat-accent, .mat-raised-button.mat-accent, .mat-fab.mat-accent, .mat-mini-fab.mat-accent {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-flat-button.mat-warn, .mat-raised-button.mat-warn, .mat-fab.mat-warn, .mat-mini-fab.mat-warn {\\n color: white;\\n}\\n.mat-flat-button.mat-primary[disabled], .mat-flat-button.mat-accent[disabled], .mat-flat-button.mat-warn[disabled], .mat-flat-button[disabled][disabled], .mat-raised-button.mat-primary[disabled], .mat-raised-button.mat-accent[disabled], .mat-raised-button.mat-warn[disabled], .mat-raised-button[disabled][disabled], .mat-fab.mat-primary[disabled], .mat-fab.mat-accent[disabled], .mat-fab.mat-warn[disabled], .mat-fab[disabled][disabled], .mat-mini-fab.mat-primary[disabled], .mat-mini-fab.mat-accent[disabled], .mat-mini-fab.mat-warn[disabled], .mat-mini-fab[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-flat-button.mat-primary, .mat-raised-button.mat-primary, .mat-fab.mat-primary, .mat-mini-fab.mat-primary {\\n background-color: #64b5f6;\\n}\\n.mat-flat-button.mat-accent, .mat-raised-button.mat-accent, .mat-fab.mat-accent, .mat-mini-fab.mat-accent {\\n background-color: yellow;\\n}\\n.mat-flat-button.mat-warn, .mat-raised-button.mat-warn, .mat-fab.mat-warn, .mat-mini-fab.mat-warn {\\n background-color: #f44336;\\n}\\n.mat-flat-button.mat-primary[disabled], .mat-flat-button.mat-accent[disabled], .mat-flat-button.mat-warn[disabled], .mat-flat-button[disabled][disabled], .mat-raised-button.mat-primary[disabled], .mat-raised-button.mat-accent[disabled], .mat-raised-button.mat-warn[disabled], .mat-raised-button[disabled][disabled], .mat-fab.mat-primary[disabled], .mat-fab.mat-accent[disabled], .mat-fab.mat-warn[disabled], .mat-fab[disabled][disabled], .mat-mini-fab.mat-primary[disabled], .mat-mini-fab.mat-accent[disabled], .mat-mini-fab.mat-warn[disabled], .mat-mini-fab[disabled][disabled] {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-flat-button.mat-primary .mat-ripple-element, .mat-raised-button.mat-primary .mat-ripple-element, .mat-fab.mat-primary .mat-ripple-element, .mat-mini-fab.mat-primary .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.mat-flat-button.mat-accent .mat-ripple-element, .mat-raised-button.mat-accent .mat-ripple-element, .mat-fab.mat-accent .mat-ripple-element, .mat-mini-fab.mat-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.mat-flat-button.mat-warn .mat-ripple-element, .mat-raised-button.mat-warn .mat-ripple-element, .mat-fab.mat-warn .mat-ripple-element, .mat-mini-fab.mat-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.mat-stroked-button:not([class*=mat-elevation-z]), .mat-flat-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-raised-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-fab:not([class*=mat-elevation-z]), .mat-mini-fab:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.mat-fab[disabled]:not([class*=mat-elevation-z]), .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-button-toggle-standalone,\\n.mat-button-toggle-group {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.mat-button-toggle-group-appearance-standard {\\n box-shadow: none;\\n}\\n.mat-button-toggle {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-button-toggle .mat-button-toggle-focus-overlay {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n background: white;\\n}\\n.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\\n background-color: black;\\n}\\n.mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: none;\\n border-top: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.mat-button-toggle-checked {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-button-toggle-checked.mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-button-toggle-disabled {\\n color: rgba(0, 0, 0, 0.26);\\n background-color: #eeeeee;\\n}\\n.mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\\n background: white;\\n}\\n.mat-button-toggle-disabled.mat-button-toggle-checked {\\n background-color: #bdbdbd;\\n}\\n.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.mat-button-toggle-group-appearance-standard {\\n border: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.mat-card {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-card:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-card-subtitle {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-checkbox-frame {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-checkbox-checkmark {\\n fill: #fafafa;\\n}\\n.mat-checkbox-checkmark-path {\\n stroke: #fafafa !important;\\n}\\n@media (-ms-high-contrast: black-on-white) {\\n .mat-checkbox-checkmark-path {\\n stroke: #000 !important;\\n }\\n}\\n.mat-checkbox-mixedmark {\\n background-color: #fafafa;\\n}\\n.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .mat-checkbox-checked.mat-primary .mat-checkbox-background {\\n background-color: #64b5f6;\\n}\\n.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .mat-checkbox-checked.mat-accent .mat-checkbox-background {\\n background-color: yellow;\\n}\\n.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .mat-checkbox-checked.mat-warn .mat-checkbox-background {\\n background-color: #f44336;\\n}\\n.mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: #b0b0b0;\\n}\\n.mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\\n border-color: #b0b0b0;\\n}\\n.mat-checkbox-disabled .mat-checkbox-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n@media (-ms-high-contrast: active) {\\n .mat-checkbox-disabled {\\n opacity: 0.5;\\n }\\n}\\n@media (-ms-high-contrast: active) {\\n .mat-checkbox-background {\\n background: none;\\n }\\n}\\n.mat-checkbox .mat-ripple-element {\\n background-color: black;\\n}\\n.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\\n.mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\\n background: #64b5f6;\\n}\\n.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\\n.mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\\n background: yellow;\\n}\\n.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\\n.mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\\n background: #f44336;\\n}\\n.mat-chip.mat-standard-chip {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-chip.mat-standard-chip .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\\n opacity: 0.54;\\n}\\n.mat-chip.mat-standard-chip.mat-chip-disabled {\\n opacity: 0.4;\\n}\\n.mat-chip.mat-standard-chip::after {\\n background: black;\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\\n background-color: #64b5f6;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\\n background-color: #f44336;\\n color: white;\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\\n background-color: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.mat-table {\\n background: white;\\n}\\n.mat-table thead, .mat-table tbody, .mat-table tfoot,\\nmat-header-row, mat-row, mat-footer-row,\\n[mat-header-row], [mat-row], [mat-footer-row],\\n.mat-table-sticky {\\n background: inherit;\\n}\\nmat-row, mat-header-row, mat-footer-row,\\nth.mat-header-cell, td.mat-cell, td.mat-footer-cell {\\n border-bottom-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-header-cell {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-cell, .mat-footer-cell {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-calendar-arrow {\\n border-top-color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-datepicker-toggle,\\n.mat-datepicker-content .mat-calendar-next-button,\\n.mat-datepicker-content .mat-calendar-previous-button {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-calendar-table-header {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-calendar-table-header-divider::after {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n.mat-calendar-body-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-calendar-body-cell-content {\\n color: rgba(0, 0, 0, 0.87);\\n border-color: transparent;\\n}\\n.mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n.mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.18);\\n}\\n.mat-calendar-body-selected {\\n background-color: #64b5f6;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(100, 181, 246, 0.4);\\n}\\n.mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n.mat-datepicker-content {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-datepicker-content.mat-accent .mat-calendar-body-selected {\\n background-color: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(255, 255, 0, 0.4);\\n}\\n.mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n.mat-datepicker-content.mat-warn .mat-calendar-body-selected {\\n background-color: #f44336;\\n color: white;\\n}\\n.mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(244, 67, 54, 0.4);\\n}\\n.mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.mat-datepicker-content-touch {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-datepicker-toggle-active {\\n color: #64b5f6;\\n}\\n.mat-datepicker-toggle-active.mat-accent {\\n color: yellow;\\n}\\n.mat-datepicker-toggle-active.mat-warn {\\n color: #f44336;\\n}\\n.mat-dialog-container {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-divider {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-divider-vertical {\\n border-right-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-expansion-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-expansion-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-action-row {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused, .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused, .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n@media (hover: none) {\\n .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\\n background: white;\\n }\\n}\\n.mat-expansion-panel-header-title {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-expansion-panel-header-description,\\n.mat-expansion-indicator::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-expansion-panel-header[aria-disabled=true] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\\n.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\\n color: inherit;\\n}\\n.mat-form-field-label {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n.mat-hint {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n.mat-form-field.mat-focused .mat-form-field-label {\\n color: #64b5f6;\\n}\\n.mat-form-field.mat-focused .mat-form-field-label.mat-accent {\\n color: yellow;\\n}\\n.mat-form-field.mat-focused .mat-form-field-label.mat-warn {\\n color: #f44336;\\n}\\n.mat-focused .mat-form-field-required-marker {\\n color: yellow;\\n}\\n.mat-form-field-ripple {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-form-field.mat-focused .mat-form-field-ripple {\\n background-color: #64b5f6;\\n}\\n.mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\\n background-color: yellow;\\n}\\n.mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\\n background-color: #f44336;\\n}\\n.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\\n color: #64b5f6;\\n}\\n.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\\n color: yellow;\\n}\\n.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n.mat-form-field.mat-form-field-invalid .mat-form-field-label {\\n color: #f44336;\\n}\\n.mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\\n.mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\\n color: #f44336;\\n}\\n.mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\\n.mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\\n background-color: #f44336;\\n}\\n.mat-error {\\n color: #f44336;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-form-field-appearance-legacy .mat-hint {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.mat-form-field-appearance-standard .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.mat-form-field-appearance-fill .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.02);\\n}\\n.mat-form-field-appearance-fill .mat-form-field-underline::before {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\\n background-color: transparent;\\n}\\n.mat-form-field-appearance-outline .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-form-field-appearance-outline .mat-form-field-outline-thick {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\\n color: #64b5f6;\\n}\\n.mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\\n color: yellow;\\n}\\n.mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n.mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.06);\\n}\\n.mat-icon.mat-primary {\\n color: #64b5f6;\\n}\\n.mat-icon.mat-accent {\\n color: yellow;\\n}\\n.mat-icon.mat-warn {\\n color: #f44336;\\n}\\n.mat-form-field-type-mat-native-select .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-input-element:disabled,\\n.mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-input-element {\\n caret-color: #64b5f6;\\n}\\n.mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-input-element:-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-input-element::-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-input-element::placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-input-element::-webkit-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-input-element:-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-accent .mat-input-element {\\n caret-color: yellow;\\n}\\n.mat-warn .mat-input-element,\\n.mat-form-field-invalid .mat-input-element {\\n caret-color: #f44336;\\n}\\n.mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n.mat-list-base .mat-list-item {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-list-base .mat-list-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-list-base .mat-subheader {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-list-item-disabled {\\n background-color: #eeeeee;\\n}\\n.mat-list-option:hover, .mat-list-option:focus,\\n.mat-nav-list .mat-list-item:hover,\\n.mat-nav-list .mat-list-item:focus,\\n.mat-action-list .mat-list-item:hover,\\n.mat-action-list .mat-list-item:focus {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.mat-menu-panel {\\n background: white;\\n}\\n.mat-menu-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-menu-item {\\n background: transparent;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-menu-item[disabled], .mat-menu-item[disabled]::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-menu-item .mat-icon-no-color,\\n.mat-menu-item-submenu-trigger::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-menu-item:hover:not([disabled]),\\n.mat-menu-item.cdk-program-focused:not([disabled]),\\n.mat-menu-item.cdk-keyboard-focused:not([disabled]),\\n.mat-menu-item-highlighted:not([disabled]) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.mat-paginator {\\n background: white;\\n}\\n.mat-paginator,\\n.mat-paginator-page-size .mat-select-trigger {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-paginator-decrement,\\n.mat-paginator-increment {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n border-right: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n.mat-paginator-first,\\n.mat-paginator-last {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n.mat-icon-button[disabled] .mat-paginator-decrement,\\n.mat-icon-button[disabled] .mat-paginator-increment,\\n.mat-icon-button[disabled] .mat-paginator-first,\\n.mat-icon-button[disabled] .mat-paginator-last {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-progress-bar-background {\\n fill: #bbdefb;\\n}\\n.mat-progress-bar-buffer {\\n background-color: #bbdefb;\\n}\\n.mat-progress-bar-fill::after {\\n background-color: #64b5f6;\\n}\\n.mat-progress-bar.mat-accent .mat-progress-bar-background {\\n fill: #ffff8d;\\n}\\n.mat-progress-bar.mat-accent .mat-progress-bar-buffer {\\n background-color: #ffff8d;\\n}\\n.mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\\n background-color: yellow;\\n}\\n.mat-progress-bar.mat-warn .mat-progress-bar-background {\\n fill: #ffcdd2;\\n}\\n.mat-progress-bar.mat-warn .mat-progress-bar-buffer {\\n background-color: #ffcdd2;\\n}\\n.mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\\n background-color: #f44336;\\n}\\n.mat-progress-spinner circle, .mat-spinner circle {\\n stroke: #64b5f6;\\n}\\n.mat-progress-spinner.mat-accent circle, .mat-spinner.mat-accent circle {\\n stroke: yellow;\\n}\\n.mat-progress-spinner.mat-warn circle, .mat-spinner.mat-warn circle {\\n stroke: #f44336;\\n}\\n.mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #64b5f6;\\n}\\n.mat-radio-button.mat-primary .mat-radio-inner-circle,\\n.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\\n background-color: #64b5f6;\\n}\\n.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\\n border-color: yellow;\\n}\\n.mat-radio-button.mat-accent .mat-radio-inner-circle,\\n.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\\n background-color: yellow;\\n}\\n.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #f44336;\\n}\\n.mat-radio-button.mat-warn .mat-radio-inner-circle,\\n.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\\n background-color: #f44336;\\n}\\n.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\\n.mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\\n.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-radio-button.mat-radio-disabled .mat-radio-label-content {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-radio-button .mat-ripple-element {\\n background-color: black;\\n}\\n.mat-select-value {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-select-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-select-disabled .mat-select-value {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-select-arrow {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-select-panel {\\n background: white;\\n}\\n.mat-select-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n.mat-form-field.mat-focused.mat-primary .mat-select-arrow {\\n color: #64b5f6;\\n}\\n.mat-form-field.mat-focused.mat-accent .mat-select-arrow {\\n color: yellow;\\n}\\n.mat-form-field.mat-focused.mat-warn .mat-select-arrow {\\n color: #f44336;\\n}\\n.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\\n color: #f44336;\\n}\\n.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-drawer-container {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-drawer {\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-drawer.mat-drawer-push {\\n background-color: white;\\n}\\n.mat-drawer:not(.mat-drawer-side) {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.mat-drawer-side {\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.mat-drawer-side.mat-drawer-end {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n[dir=rtl] .mat-drawer-side {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n[dir=rtl] .mat-drawer-side.mat-drawer-end {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.mat-drawer-backdrop.mat-drawer-shown {\\n background-color: rgba(0, 0, 0, 0.6);\\n}\\n.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\\n background-color: yellow;\\n}\\n.mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(255, 255, 0, 0.54);\\n}\\n.mat-slide-toggle.mat-checked .mat-ripple-element {\\n background-color: yellow;\\n}\\n.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\\n background-color: #64b5f6;\\n}\\n.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(100, 181, 246, 0.54);\\n}\\n.mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\\n background-color: #64b5f6;\\n}\\n.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\\n background-color: #f44336;\\n}\\n.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(244, 67, 54, 0.54);\\n}\\n.mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\\n background-color: #f44336;\\n}\\n.mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\\n background-color: black;\\n}\\n.mat-slide-toggle-thumb {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n background-color: #fafafa;\\n}\\n.mat-slide-toggle-bar {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-primary .mat-slider-track-fill,\\n.mat-primary .mat-slider-thumb,\\n.mat-primary .mat-slider-thumb-label {\\n background-color: #64b5f6;\\n}\\n.mat-primary .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-accent .mat-slider-track-fill,\\n.mat-accent .mat-slider-thumb,\\n.mat-accent .mat-slider-thumb-label {\\n background-color: yellow;\\n}\\n.mat-accent .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-warn .mat-slider-track-fill,\\n.mat-warn .mat-slider-thumb,\\n.mat-warn .mat-slider-thumb-label {\\n background-color: #f44336;\\n}\\n.mat-warn .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.mat-slider-focus-ring {\\n background-color: rgba(255, 255, 0, 0.2);\\n}\\n.mat-slider:hover .mat-slider-track-background,\\n.cdk-focused .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-slider-disabled .mat-slider-track-background,\\n.mat-slider-disabled .mat-slider-track-fill,\\n.mat-slider-disabled .mat-slider-thumb {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-slider-disabled:hover .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-slider-min-value .mat-slider-focus-ring {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\\n.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\\n.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n background-color: transparent;\\n}\\n.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-slider-has-ticks .mat-slider-wrapper::after {\\n border-color: rgba(0, 0, 0, 0.7);\\n}\\n.mat-slider-horizontal .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to right, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n.mat-slider-vertical .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n.mat-step-header.cdk-keyboard-focused, .mat-step-header.cdk-program-focused, .mat-step-header:hover {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n@media (hover: none) {\\n .mat-step-header:hover {\\n background: none;\\n }\\n}\\n.mat-step-header .mat-step-label,\\n.mat-step-header .mat-step-optional {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-step-header .mat-step-icon {\\n background-color: rgba(0, 0, 0, 0.54);\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-step-header .mat-step-icon-selected,\\n.mat-step-header .mat-step-icon-state-done,\\n.mat-step-header .mat-step-icon-state-edit {\\n background-color: #64b5f6;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-step-header .mat-step-icon-state-error {\\n background-color: transparent;\\n color: #f44336;\\n}\\n.mat-step-header .mat-step-label.mat-step-label-active {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-step-header .mat-step-label.mat-step-label-error {\\n color: #f44336;\\n}\\n.mat-stepper-horizontal, .mat-stepper-vertical {\\n background-color: white;\\n}\\n.mat-stepper-vertical-line::before {\\n border-left-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-horizontal-stepper-header::before,\\n.mat-horizontal-stepper-header::after,\\n.mat-stepper-horizontal-line {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-sort-header-arrow {\\n color: #757575;\\n}\\n.mat-tab-nav-bar,\\n.mat-tab-header {\\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\\n}\\n.mat-tab-group-inverted-header .mat-tab-nav-bar,\\n.mat-tab-group-inverted-header .mat-tab-header {\\n border-top: 1px solid rgba(0, 0, 0, 0.12);\\n border-bottom: none;\\n}\\n.mat-tab-label, .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-label.mat-tab-disabled, .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-tab-group[class*=mat-background-] .mat-tab-header,\\n.mat-tab-nav-bar[class*=mat-background-] {\\n border-bottom: none;\\n border-top: none;\\n}\\n.mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(187, 222, 251, 0.3);\\n}\\n.mat-tab-group.mat-primary .mat-ink-bar, .mat-tab-nav-bar.mat-primary .mat-ink-bar {\\n background-color: #64b5f6;\\n}\\n.mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 255, 141, 0.3);\\n}\\n.mat-tab-group.mat-accent .mat-ink-bar, .mat-tab-nav-bar.mat-accent .mat-ink-bar {\\n background-color: yellow;\\n}\\n.mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n.mat-tab-group.mat-warn .mat-ink-bar, .mat-tab-nav-bar.mat-warn .mat-ink-bar {\\n background-color: #f44336;\\n}\\n.mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\\n background-color: white;\\n}\\n.mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(187, 222, 251, 0.3);\\n}\\n.mat-tab-group.mat-background-primary .mat-tab-header, .mat-tab-group.mat-background-primary .mat-tab-links, .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\\n background-color: #64b5f6;\\n}\\n.mat-tab-group.mat-background-primary .mat-tab-label, .mat-tab-group.mat-background-primary .mat-tab-link, .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n.mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n.mat-tab-group.mat-background-primary .mat-ripple-element, .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 255, 141, 0.3);\\n}\\n.mat-tab-group.mat-background-accent .mat-tab-header, .mat-tab-group.mat-background-accent .mat-tab-links, .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\\n background-color: yellow;\\n}\\n.mat-tab-group.mat-background-accent .mat-tab-label, .mat-tab-group.mat-background-accent .mat-tab-link, .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n.mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n.mat-tab-group.mat-background-accent .mat-ripple-element, .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n.mat-tab-group.mat-background-warn .mat-tab-header, .mat-tab-group.mat-background-warn .mat-tab-links, .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\\n background-color: #f44336;\\n}\\n.mat-tab-group.mat-background-warn .mat-tab-label, .mat-tab-group.mat-background-warn .mat-tab-link, .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\\n color: white;\\n}\\n.mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.mat-tab-group.mat-background-warn .mat-ripple-element, .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.mat-toolbar {\\n background: whitesmoke;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-toolbar.mat-primary {\\n background: #64b5f6;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-toolbar.mat-accent {\\n background: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-toolbar.mat-warn {\\n background: #f44336;\\n color: white;\\n}\\n.mat-toolbar .mat-form-field-underline,\\n.mat-toolbar .mat-form-field-ripple,\\n.mat-toolbar .mat-focused .mat-form-field-ripple {\\n background-color: currentColor;\\n}\\n.mat-toolbar .mat-form-field-label,\\n.mat-toolbar .mat-focused .mat-form-field-label,\\n.mat-toolbar .mat-select-value,\\n.mat-toolbar .mat-select-arrow,\\n.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\\n color: inherit;\\n}\\n.mat-toolbar .mat-input-element {\\n caret-color: currentColor;\\n}\\n.mat-tooltip {\\n background: rgba(97, 97, 97, 0.9);\\n}\\n.mat-tree {\\n background: white;\\n}\\n.mat-tree-node,\\n.mat-nested-tree-node {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-snack-bar-container {\\n color: rgba(255, 255, 255, 0.7);\\n background: #323232;\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-simple-snackbar-action {\\n color: yellow;\\n}\\n.unicorn-dark-theme .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.unicorn-dark-theme .mat-option {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-option:hover:not(.mat-option-disabled), .unicorn-dark-theme .mat-option:focus:not(.mat-option-disabled) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.unicorn-dark-theme .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.unicorn-dark-theme .mat-option.mat-active {\\n background: rgba(255, 255, 255, 0.04);\\n color: white;\\n}\\n.unicorn-dark-theme .mat-option.mat-option-disabled {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-optgroup-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-optgroup-disabled .mat-optgroup-label {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-pseudo-checkbox {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-pseudo-checkbox::after {\\n color: #303030;\\n}\\n.unicorn-dark-theme .mat-pseudo-checkbox-disabled {\\n color: #686868;\\n}\\n.unicorn-dark-theme .mat-pseudo-checkbox-checked,\\n.unicorn-dark-theme .mat-pseudo-checkbox-indeterminate,\\n.unicorn-dark-theme .mat-accent .mat-pseudo-checkbox-checked,\\n.unicorn-dark-theme .mat-accent .mat-pseudo-checkbox-indeterminate {\\n background: #ffd740;\\n}\\n.unicorn-dark-theme .mat-primary .mat-pseudo-checkbox-checked,\\n.unicorn-dark-theme .mat-primary .mat-pseudo-checkbox-indeterminate {\\n background: #607d8b;\\n}\\n.unicorn-dark-theme .mat-warn .mat-pseudo-checkbox-checked,\\n.unicorn-dark-theme .mat-warn .mat-pseudo-checkbox-indeterminate {\\n background: #ff5722;\\n}\\n.unicorn-dark-theme .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\\n.unicorn-dark-theme .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\\n background: #686868;\\n}\\n.unicorn-dark-theme .mat-elevation-z0 {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z1 {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z2 {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z3 {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z4 {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z5 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z6 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z7 {\\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z8 {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z9 {\\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z10 {\\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z11 {\\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z12 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z13 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z14 {\\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z15 {\\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z16 {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z17 {\\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z18 {\\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z19 {\\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z20 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z21 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z22 {\\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z23 {\\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z24 {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-app-background, .unicorn-dark-theme.mat-app-background {\\n background-color: #303030;\\n color: white;\\n}\\n.mat-theme-loaded-marker {\\n display: none;\\n}\\n.unicorn-dark-theme .mat-autocomplete-panel {\\n background: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-badge-content {\\n color: white;\\n background: #607d8b;\\n}\\n@media (-ms-high-contrast: active) {\\n .unicorn-dark-theme .mat-badge-content {\\n outline: solid 1px;\\n border-radius: 0;\\n }\\n}\\n.unicorn-dark-theme .mat-badge-accent .mat-badge-content {\\n background: #ffd740;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-badge-warn .mat-badge-content {\\n color: white;\\n background: #ff5722;\\n}\\n.unicorn-dark-theme .mat-badge {\\n position: relative;\\n}\\n.unicorn-dark-theme .mat-badge-hidden .mat-badge-content {\\n display: none;\\n}\\n.unicorn-dark-theme .mat-badge-disabled .mat-badge-content {\\n background: #6e6e6e;\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-badge-content {\\n position: absolute;\\n text-align: center;\\n display: inline-block;\\n border-radius: 50%;\\n transition: transform 200ms ease-in-out;\\n -ms-transform: scale(0.6);\\n transform: scale(0.6);\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n pointer-events: none;\\n}\\n.unicorn-dark-theme .ng-animate-disabled .mat-badge-content,\\n.unicorn-dark-theme .mat-badge-content._mat-animation-noopable {\\n transition: none;\\n}\\n.unicorn-dark-theme .mat-badge-content.mat-badge-active {\\n -ms-transform: none;\\n transform: none;\\n}\\n.unicorn-dark-theme .mat-badge-small .mat-badge-content {\\n width: 16px;\\n height: 16px;\\n line-height: 16px;\\n}\\n.unicorn-dark-theme .mat-badge-small.mat-badge-above .mat-badge-content {\\n top: -8px;\\n}\\n.unicorn-dark-theme .mat-badge-small.mat-badge-below .mat-badge-content {\\n bottom: -8px;\\n}\\n.unicorn-dark-theme .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: -16px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -16px;\\n}\\n.unicorn-dark-theme .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: -16px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -16px;\\n}\\n.unicorn-dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -8px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -8px;\\n}\\n.unicorn-dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -8px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -8px;\\n}\\n.unicorn-dark-theme .mat-badge-medium .mat-badge-content {\\n width: 22px;\\n height: 22px;\\n line-height: 22px;\\n}\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-above .mat-badge-content {\\n top: -11px;\\n}\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-below .mat-badge-content {\\n bottom: -11px;\\n}\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: -22px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -22px;\\n}\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: -22px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -22px;\\n}\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -11px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -11px;\\n}\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -11px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -11px;\\n}\\n.unicorn-dark-theme .mat-badge-large .mat-badge-content {\\n width: 28px;\\n height: 28px;\\n line-height: 28px;\\n}\\n.unicorn-dark-theme .mat-badge-large.mat-badge-above .mat-badge-content {\\n top: -14px;\\n}\\n.unicorn-dark-theme .mat-badge-large.mat-badge-below .mat-badge-content {\\n bottom: -14px;\\n}\\n.unicorn-dark-theme .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: -28px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -28px;\\n}\\n.unicorn-dark-theme .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: -28px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -28px;\\n}\\n.unicorn-dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -14px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -14px;\\n}\\n.unicorn-dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -14px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -14px;\\n}\\n.unicorn-dark-theme .mat-bottom-sheet-container {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n background: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-button, .unicorn-dark-theme .mat-icon-button, .unicorn-dark-theme .mat-stroked-button {\\n color: inherit;\\n background: transparent;\\n}\\n.unicorn-dark-theme .mat-button.mat-primary, .unicorn-dark-theme .mat-icon-button.mat-primary, .unicorn-dark-theme .mat-stroked-button.mat-primary {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-button.mat-accent, .unicorn-dark-theme .mat-icon-button.mat-accent, .unicorn-dark-theme .mat-stroked-button.mat-accent {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-button.mat-warn, .unicorn-dark-theme .mat-icon-button.mat-warn, .unicorn-dark-theme .mat-stroked-button.mat-warn {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-button.mat-primary[disabled], .unicorn-dark-theme .mat-button.mat-accent[disabled], .unicorn-dark-theme .mat-button.mat-warn[disabled], .unicorn-dark-theme .mat-button[disabled][disabled], .unicorn-dark-theme .mat-icon-button.mat-primary[disabled], .unicorn-dark-theme .mat-icon-button.mat-accent[disabled], .unicorn-dark-theme .mat-icon-button.mat-warn[disabled], .unicorn-dark-theme .mat-icon-button[disabled][disabled], .unicorn-dark-theme .mat-stroked-button.mat-primary[disabled], .unicorn-dark-theme .mat-stroked-button.mat-accent[disabled], .unicorn-dark-theme .mat-stroked-button.mat-warn[disabled], .unicorn-dark-theme .mat-stroked-button[disabled][disabled] {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-button.mat-primary .mat-button-focus-overlay, .unicorn-dark-theme .mat-icon-button.mat-primary .mat-button-focus-overlay, .unicorn-dark-theme .mat-stroked-button.mat-primary .mat-button-focus-overlay {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-button.mat-accent .mat-button-focus-overlay, .unicorn-dark-theme .mat-icon-button.mat-accent .mat-button-focus-overlay, .unicorn-dark-theme .mat-stroked-button.mat-accent .mat-button-focus-overlay {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-button.mat-warn .mat-button-focus-overlay, .unicorn-dark-theme .mat-icon-button.mat-warn .mat-button-focus-overlay, .unicorn-dark-theme .mat-stroked-button.mat-warn .mat-button-focus-overlay {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-button[disabled] .mat-button-focus-overlay, .unicorn-dark-theme .mat-icon-button[disabled] .mat-button-focus-overlay, .unicorn-dark-theme .mat-stroked-button[disabled] .mat-button-focus-overlay {\\n background-color: transparent;\\n}\\n.unicorn-dark-theme .mat-button .mat-ripple-element, .unicorn-dark-theme .mat-icon-button .mat-ripple-element, .unicorn-dark-theme .mat-stroked-button .mat-ripple-element {\\n opacity: 0.1;\\n background-color: currentColor;\\n}\\n.unicorn-dark-theme .mat-button-focus-overlay {\\n background: white;\\n}\\n.unicorn-dark-theme .mat-stroked-button:not([disabled]) {\\n border-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-flat-button, .unicorn-dark-theme .mat-raised-button, .unicorn-dark-theme .mat-fab, .unicorn-dark-theme .mat-mini-fab {\\n color: white;\\n background-color: #424242;\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-primary, .unicorn-dark-theme .mat-raised-button.mat-primary, .unicorn-dark-theme .mat-fab.mat-primary, .unicorn-dark-theme .mat-mini-fab.mat-primary {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-accent, .unicorn-dark-theme .mat-raised-button.mat-accent, .unicorn-dark-theme .mat-fab.mat-accent, .unicorn-dark-theme .mat-mini-fab.mat-accent {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-warn, .unicorn-dark-theme .mat-raised-button.mat-warn, .unicorn-dark-theme .mat-fab.mat-warn, .unicorn-dark-theme .mat-mini-fab.mat-warn {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-primary[disabled], .unicorn-dark-theme .mat-flat-button.mat-accent[disabled], .unicorn-dark-theme .mat-flat-button.mat-warn[disabled], .unicorn-dark-theme .mat-flat-button[disabled][disabled], .unicorn-dark-theme .mat-raised-button.mat-primary[disabled], .unicorn-dark-theme .mat-raised-button.mat-accent[disabled], .unicorn-dark-theme .mat-raised-button.mat-warn[disabled], .unicorn-dark-theme .mat-raised-button[disabled][disabled], .unicorn-dark-theme .mat-fab.mat-primary[disabled], .unicorn-dark-theme .mat-fab.mat-accent[disabled], .unicorn-dark-theme .mat-fab.mat-warn[disabled], .unicorn-dark-theme .mat-fab[disabled][disabled], .unicorn-dark-theme .mat-mini-fab.mat-primary[disabled], .unicorn-dark-theme .mat-mini-fab.mat-accent[disabled], .unicorn-dark-theme .mat-mini-fab.mat-warn[disabled], .unicorn-dark-theme .mat-mini-fab[disabled][disabled] {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-primary, .unicorn-dark-theme .mat-raised-button.mat-primary, .unicorn-dark-theme .mat-fab.mat-primary, .unicorn-dark-theme .mat-mini-fab.mat-primary {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-accent, .unicorn-dark-theme .mat-raised-button.mat-accent, .unicorn-dark-theme .mat-fab.mat-accent, .unicorn-dark-theme .mat-mini-fab.mat-accent {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-warn, .unicorn-dark-theme .mat-raised-button.mat-warn, .unicorn-dark-theme .mat-fab.mat-warn, .unicorn-dark-theme .mat-mini-fab.mat-warn {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-primary[disabled], .unicorn-dark-theme .mat-flat-button.mat-accent[disabled], .unicorn-dark-theme .mat-flat-button.mat-warn[disabled], .unicorn-dark-theme .mat-flat-button[disabled][disabled], .unicorn-dark-theme .mat-raised-button.mat-primary[disabled], .unicorn-dark-theme .mat-raised-button.mat-accent[disabled], .unicorn-dark-theme .mat-raised-button.mat-warn[disabled], .unicorn-dark-theme .mat-raised-button[disabled][disabled], .unicorn-dark-theme .mat-fab.mat-primary[disabled], .unicorn-dark-theme .mat-fab.mat-accent[disabled], .unicorn-dark-theme .mat-fab.mat-warn[disabled], .unicorn-dark-theme .mat-fab[disabled][disabled], .unicorn-dark-theme .mat-mini-fab.mat-primary[disabled], .unicorn-dark-theme .mat-mini-fab.mat-accent[disabled], .unicorn-dark-theme .mat-mini-fab.mat-warn[disabled], .unicorn-dark-theme .mat-mini-fab[disabled][disabled] {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-primary .mat-ripple-element, .unicorn-dark-theme .mat-raised-button.mat-primary .mat-ripple-element, .unicorn-dark-theme .mat-fab.mat-primary .mat-ripple-element, .unicorn-dark-theme .mat-mini-fab.mat-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-accent .mat-ripple-element, .unicorn-dark-theme .mat-raised-button.mat-accent .mat-ripple-element, .unicorn-dark-theme .mat-fab.mat-accent .mat-ripple-element, .unicorn-dark-theme .mat-mini-fab.mat-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-warn .mat-ripple-element, .unicorn-dark-theme .mat-raised-button.mat-warn .mat-ripple-element, .unicorn-dark-theme .mat-fab.mat-warn .mat-ripple-element, .unicorn-dark-theme .mat-mini-fab.mat-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.unicorn-dark-theme .mat-stroked-button:not([class*=mat-elevation-z]), .unicorn-dark-theme .mat-flat-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-raised-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-fab:not([class*=mat-elevation-z]), .unicorn-dark-theme .mat-mini-fab:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .unicorn-dark-theme .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-fab[disabled]:not([class*=mat-elevation-z]), .unicorn-dark-theme .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-button-toggle-standalone,\\n.unicorn-dark-theme .mat-button-toggle-group {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.unicorn-dark-theme .mat-button-toggle-group-appearance-standard {\\n box-shadow: none;\\n}\\n.unicorn-dark-theme .mat-button-toggle {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-button-toggle .mat-button-toggle-focus-overlay {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-button-toggle-appearance-standard {\\n color: white;\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: none;\\n border-top: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-button-toggle-checked {\\n background-color: #212121;\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-button-toggle-disabled {\\n color: rgba(255, 255, 255, 0.3);\\n background-color: black;\\n}\\n.unicorn-dark-theme .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-button-toggle-disabled.mat-button-toggle-checked {\\n background-color: #424242;\\n}\\n.unicorn-dark-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.unicorn-dark-theme .mat-button-toggle-group-appearance-standard {\\n border: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-card {\\n background: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-card:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-card-subtitle {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-checkbox-frame {\\n border-color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-checkbox-checkmark {\\n fill: #303030;\\n}\\n.unicorn-dark-theme .mat-checkbox-checkmark-path {\\n stroke: #303030 !important;\\n}\\n@media (-ms-high-contrast: black-on-white) {\\n .unicorn-dark-theme .mat-checkbox-checkmark-path {\\n stroke: #000 !important;\\n }\\n}\\n.unicorn-dark-theme .mat-checkbox-mixedmark {\\n background-color: #303030;\\n}\\n.unicorn-dark-theme .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .unicorn-dark-theme .mat-checkbox-checked.mat-primary .mat-checkbox-background {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .unicorn-dark-theme .mat-checkbox-checked.mat-accent .mat-checkbox-background {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .unicorn-dark-theme .mat-checkbox-checked.mat-warn .mat-checkbox-background {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .unicorn-dark-theme .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: #686868;\\n}\\n.unicorn-dark-theme .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\\n border-color: #686868;\\n}\\n.unicorn-dark-theme .mat-checkbox-disabled .mat-checkbox-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n@media (-ms-high-contrast: active) {\\n .unicorn-dark-theme .mat-checkbox-disabled {\\n opacity: 0.5;\\n }\\n}\\n@media (-ms-high-contrast: active) {\\n .unicorn-dark-theme .mat-checkbox-background {\\n background: none;\\n }\\n}\\n.unicorn-dark-theme .mat-checkbox .mat-ripple-element {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\\n.unicorn-dark-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\\n background: #607d8b;\\n}\\n.unicorn-dark-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\\n.unicorn-dark-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\\n background: #ffd740;\\n}\\n.unicorn-dark-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\\n.unicorn-dark-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\\n background: #ff5722;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip {\\n background-color: #616161;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\\n opacity: 0.54;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-disabled {\\n opacity: 0.4;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip::after {\\n background: white;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\\n background-color: #607d8b;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\\n background-color: #ff5722;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\\n background-color: #ffd740;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.unicorn-dark-theme .mat-table {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-table thead, .unicorn-dark-theme .mat-table tbody, .unicorn-dark-theme .mat-table tfoot,\\n.unicorn-dark-theme mat-header-row, .unicorn-dark-theme mat-row, .unicorn-dark-theme mat-footer-row,\\n.unicorn-dark-theme [mat-header-row], .unicorn-dark-theme [mat-row], .unicorn-dark-theme [mat-footer-row],\\n.unicorn-dark-theme .mat-table-sticky {\\n background: inherit;\\n}\\n.unicorn-dark-theme mat-row, .unicorn-dark-theme mat-header-row, .unicorn-dark-theme mat-footer-row,\\n.unicorn-dark-theme th.mat-header-cell, .unicorn-dark-theme td.mat-cell, .unicorn-dark-theme td.mat-footer-cell {\\n border-bottom-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-header-cell {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-cell, .unicorn-dark-theme .mat-footer-cell {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-calendar-arrow {\\n border-top-color: white;\\n}\\n.unicorn-dark-theme .mat-datepicker-toggle,\\n.unicorn-dark-theme .mat-datepicker-content .mat-calendar-next-button,\\n.unicorn-dark-theme .mat-datepicker-content .mat-calendar-previous-button {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-calendar-table-header {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-calendar-table-header-divider::after {\\n background: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-calendar-body-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-calendar-body-cell-content {\\n color: white;\\n border-color: transparent;\\n}\\n.unicorn-dark-theme .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.unicorn-dark-theme .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.unicorn-dark-theme .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n background-color: rgba(255, 255, 255, 0.04);\\n}\\n.unicorn-dark-theme .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-calendar-body-selected {\\n background-color: #607d8b;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(96, 125, 139, 0.4);\\n}\\n.unicorn-dark-theme .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.unicorn-dark-theme .mat-datepicker-content {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n background-color: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\\n background-color: #ffd740;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(255, 215, 64, 0.4);\\n}\\n.unicorn-dark-theme .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\\n background-color: #ff5722;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(255, 87, 34, 0.4);\\n}\\n.unicorn-dark-theme .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.unicorn-dark-theme .mat-datepicker-content-touch {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-datepicker-toggle-active {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-datepicker-toggle-active.mat-accent {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-datepicker-toggle-active.mat-warn {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-dialog-container {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n background: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-divider {\\n border-top-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-divider-vertical {\\n border-right-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-expansion-panel {\\n background: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-expansion-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-action-row {\\n border-top-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused, .unicorn-dark-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused, .unicorn-dark-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n@media (hover: none) {\\n .unicorn-dark-theme .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\\n background: #424242;\\n }\\n}\\n.unicorn-dark-theme .mat-expansion-panel-header-title {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-expansion-panel-header-description,\\n.unicorn-dark-theme .mat-expansion-indicator::after {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-expansion-panel-header[aria-disabled=true] {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\\n.unicorn-dark-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\\n color: inherit;\\n}\\n.unicorn-dark-theme .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-hint {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-label {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-focused .mat-form-field-required-marker {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-form-field-ripple {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-ripple {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-error {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-legacy .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-legacy .mat-hint {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-legacy .mat-form-field-underline {\\n background-color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-standard .mat-form-field-underline {\\n background-color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-fill .mat-form-field-flex {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\\n background-color: rgba(255, 255, 255, 0.05);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-fill .mat-form-field-underline::before {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\\n background-color: transparent;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline .mat-form-field-outline {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline .mat-form-field-outline-thick {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\\n color: rgba(255, 255, 255, 0.15);\\n}\\n.unicorn-dark-theme .mat-icon.mat-primary {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-icon.mat-accent {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-icon.mat-warn {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-input-element:disabled,\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element {\\n caret-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-input-element::-moz-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element:-ms-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element::-ms-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element::placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element::-moz-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element::-webkit-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element:-ms-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-input-element option:disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.unicorn-dark-theme .mat-accent .mat-input-element {\\n caret-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-warn .mat-input-element,\\n.unicorn-dark-theme .mat-form-field-invalid .mat-input-element {\\n caret-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-list-base .mat-list-item {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-list-base .mat-list-option {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-list-base .mat-subheader {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-list-item-disabled {\\n background-color: black;\\n}\\n.unicorn-dark-theme .mat-list-option:hover, .unicorn-dark-theme .mat-list-option:focus,\\n.unicorn-dark-theme .mat-nav-list .mat-list-item:hover,\\n.unicorn-dark-theme .mat-nav-list .mat-list-item:focus,\\n.unicorn-dark-theme .mat-action-list .mat-list-item:hover,\\n.unicorn-dark-theme .mat-action-list .mat-list-item:focus {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.unicorn-dark-theme .mat-menu-panel {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-menu-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-menu-item {\\n background: transparent;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-menu-item[disabled], .unicorn-dark-theme .mat-menu-item[disabled]::after {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-menu-item .mat-icon-no-color,\\n.unicorn-dark-theme .mat-menu-item-submenu-trigger::after {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-menu-item:hover:not([disabled]),\\n.unicorn-dark-theme .mat-menu-item.cdk-program-focused:not([disabled]),\\n.unicorn-dark-theme .mat-menu-item.cdk-keyboard-focused:not([disabled]),\\n.unicorn-dark-theme .mat-menu-item-highlighted:not([disabled]) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.unicorn-dark-theme .mat-paginator {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-paginator,\\n.unicorn-dark-theme .mat-paginator-page-size .mat-select-trigger {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-paginator-decrement,\\n.unicorn-dark-theme .mat-paginator-increment {\\n border-top: 2px solid white;\\n border-right: 2px solid white;\\n}\\n.unicorn-dark-theme .mat-paginator-first,\\n.unicorn-dark-theme .mat-paginator-last {\\n border-top: 2px solid white;\\n}\\n.unicorn-dark-theme .mat-icon-button[disabled] .mat-paginator-decrement,\\n.unicorn-dark-theme .mat-icon-button[disabled] .mat-paginator-increment,\\n.unicorn-dark-theme .mat-icon-button[disabled] .mat-paginator-first,\\n.unicorn-dark-theme .mat-icon-button[disabled] .mat-paginator-last {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-progress-bar-background {\\n fill: #cfd8dc;\\n}\\n.unicorn-dark-theme .mat-progress-bar-buffer {\\n background-color: #cfd8dc;\\n}\\n.unicorn-dark-theme .mat-progress-bar-fill::after {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-progress-bar.mat-accent .mat-progress-bar-background {\\n fill: #ffe57f;\\n}\\n.unicorn-dark-theme .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\\n background-color: #ffe57f;\\n}\\n.unicorn-dark-theme .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-progress-bar.mat-warn .mat-progress-bar-background {\\n fill: #ffccbc;\\n}\\n.unicorn-dark-theme .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\\n background-color: #ffccbc;\\n}\\n.unicorn-dark-theme .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-progress-spinner circle, .unicorn-dark-theme .mat-spinner circle {\\n stroke: #607d8b;\\n}\\n.unicorn-dark-theme .mat-progress-spinner.mat-accent circle, .unicorn-dark-theme .mat-spinner.mat-accent circle {\\n stroke: #ffd740;\\n}\\n.unicorn-dark-theme .mat-progress-spinner.mat-warn circle, .unicorn-dark-theme .mat-spinner.mat-warn circle {\\n stroke: #ff5722;\\n}\\n.unicorn-dark-theme .mat-radio-outer-circle {\\n border-color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-primary .mat-radio-inner-circle,\\n.unicorn-dark-theme .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .unicorn-dark-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .unicorn-dark-theme .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-accent .mat-radio-inner-circle,\\n.unicorn-dark-theme .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .unicorn-dark-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .unicorn-dark-theme .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-warn .mat-radio-inner-circle,\\n.unicorn-dark-theme .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .unicorn-dark-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .unicorn-dark-theme .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-radio-button .mat-ripple-element {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-select-value {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-select-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-select-disabled .mat-select-value {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-select-arrow {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-select-panel {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-select-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\\n background: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-drawer-container {\\n background-color: #303030;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-drawer {\\n background-color: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-drawer.mat-drawer-push {\\n background-color: #424242;\\n}\\n.unicorn-dark-theme .mat-drawer:not(.mat-drawer-side) {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-drawer-side {\\n border-right: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-drawer-side.mat-drawer-end {\\n border-left: solid 1px rgba(255, 255, 255, 0.12);\\n border-right: none;\\n}\\n.unicorn-dark-theme [dir=rtl] .mat-drawer-side {\\n border-left: solid 1px rgba(255, 255, 255, 0.12);\\n border-right: none;\\n}\\n.unicorn-dark-theme [dir=rtl] .mat-drawer-side.mat-drawer-end {\\n border-left: none;\\n border-right: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-drawer-backdrop.mat-drawer-shown {\\n background-color: rgba(189, 189, 189, 0.6);\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(255, 215, 64, 0.54);\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-checked .mat-ripple-element {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(96, 125, 139, 0.54);\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(255, 87, 34, 0.54);\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-slide-toggle-thumb {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n background-color: #bdbdbd;\\n}\\n.unicorn-dark-theme .mat-slide-toggle-bar {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-slider-track-background {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-primary .mat-slider-track-fill,\\n.unicorn-dark-theme .mat-primary .mat-slider-thumb,\\n.unicorn-dark-theme .mat-primary .mat-slider-thumb-label {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-primary .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-accent .mat-slider-track-fill,\\n.unicorn-dark-theme .mat-accent .mat-slider-thumb,\\n.unicorn-dark-theme .mat-accent .mat-slider-thumb-label {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-accent .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-warn .mat-slider-track-fill,\\n.unicorn-dark-theme .mat-warn .mat-slider-thumb,\\n.unicorn-dark-theme .mat-warn .mat-slider-thumb-label {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-warn .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-slider-focus-ring {\\n background-color: rgba(255, 215, 64, 0.2);\\n}\\n.unicorn-dark-theme .mat-slider:hover .mat-slider-track-background,\\n.unicorn-dark-theme .cdk-focused .mat-slider-track-background {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-slider-disabled .mat-slider-track-background,\\n.unicorn-dark-theme .mat-slider-disabled .mat-slider-track-fill,\\n.unicorn-dark-theme .mat-slider-disabled .mat-slider-thumb {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-slider-disabled:hover .mat-slider-track-background {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-slider-min-value .mat-slider-focus-ring {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\\n.unicorn-dark-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\\n.unicorn-dark-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\\n border-color: rgba(255, 255, 255, 0.3);\\n background-color: transparent;\\n}\\n.unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\\n border-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\\n border-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-slider-has-ticks .mat-slider-wrapper::after {\\n border-color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-slider-horizontal .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to right, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\\n}\\n.unicorn-dark-theme .mat-slider-vertical .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to bottom, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\\n}\\n.unicorn-dark-theme .mat-step-header.cdk-keyboard-focused, .unicorn-dark-theme .mat-step-header.cdk-program-focused, .unicorn-dark-theme .mat-step-header:hover {\\n background-color: rgba(255, 255, 255, 0.04);\\n}\\n@media (hover: none) {\\n .unicorn-dark-theme .mat-step-header:hover {\\n background: none;\\n }\\n}\\n.unicorn-dark-theme .mat-step-header .mat-step-label,\\n.unicorn-dark-theme .mat-step-header .mat-step-optional {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-step-header .mat-step-icon {\\n background-color: rgba(255, 255, 255, 0.7);\\n color: white;\\n}\\n.unicorn-dark-theme .mat-step-header .mat-step-icon-selected,\\n.unicorn-dark-theme .mat-step-header .mat-step-icon-state-done,\\n.unicorn-dark-theme .mat-step-header .mat-step-icon-state-edit {\\n background-color: #607d8b;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-step-header .mat-step-icon-state-error {\\n background-color: transparent;\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-step-header .mat-step-label.mat-step-label-active {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-step-header .mat-step-label.mat-step-label-error {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-stepper-horizontal, .unicorn-dark-theme .mat-stepper-vertical {\\n background-color: #424242;\\n}\\n.unicorn-dark-theme .mat-stepper-vertical-line::before {\\n border-left-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-horizontal-stepper-header::before,\\n.unicorn-dark-theme .mat-horizontal-stepper-header::after,\\n.unicorn-dark-theme .mat-stepper-horizontal-line {\\n border-top-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-sort-header-arrow {\\n color: #c6c6c6;\\n}\\n.unicorn-dark-theme .mat-tab-nav-bar,\\n.unicorn-dark-theme .mat-tab-header {\\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-tab-group-inverted-header .mat-tab-nav-bar,\\n.unicorn-dark-theme .mat-tab-group-inverted-header .mat-tab-header {\\n border-top: 1px solid rgba(255, 255, 255, 0.12);\\n border-bottom: none;\\n}\\n.unicorn-dark-theme .mat-tab-label, .unicorn-dark-theme .mat-tab-link {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.unicorn-dark-theme .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-tab-group[class*=mat-background-] .mat-tab-header,\\n.unicorn-dark-theme .mat-tab-nav-bar[class*=mat-background-] {\\n border-bottom: none;\\n border-top: none;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(207, 216, 220, 0.3);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-primary .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-ink-bar {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 229, 127, 0.3);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-accent .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-ink-bar {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 204, 188, 0.3);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-warn .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-ink-bar {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(207, 216, 220, 0.3);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-header, .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-links, .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-label, .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-link, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-ripple-element, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 229, 127, 0.3);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-header, .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-links, .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-label, .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-link, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-ripple-element, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 204, 188, 0.3);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-header, .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-links, .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-label, .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-link, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-ripple-element, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-toolbar {\\n background: #212121;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-toolbar.mat-primary {\\n background: #607d8b;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-toolbar.mat-accent {\\n background: #ffd740;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-toolbar.mat-warn {\\n background: #ff5722;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-toolbar .mat-form-field-underline,\\n.unicorn-dark-theme .mat-toolbar .mat-form-field-ripple,\\n.unicorn-dark-theme .mat-toolbar .mat-focused .mat-form-field-ripple {\\n background-color: currentColor;\\n}\\n.unicorn-dark-theme .mat-toolbar .mat-form-field-label,\\n.unicorn-dark-theme .mat-toolbar .mat-focused .mat-form-field-label,\\n.unicorn-dark-theme .mat-toolbar .mat-select-value,\\n.unicorn-dark-theme .mat-toolbar .mat-select-arrow,\\n.unicorn-dark-theme .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\\n color: inherit;\\n}\\n.unicorn-dark-theme .mat-toolbar .mat-input-element {\\n caret-color: currentColor;\\n}\\n.unicorn-dark-theme .mat-tooltip {\\n background: rgba(97, 97, 97, 0.9);\\n}\\n.unicorn-dark-theme .mat-tree {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-tree-node,\\n.unicorn-dark-theme .mat-nested-tree-node {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-snack-bar-container {\\n color: rgba(0, 0, 0, 0.87);\\n background: #fafafa;\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-simple-snackbar-action {\\n color: inherit;\\n}\\n/*\\n https: //stackblitz.com/edit/angular-material-theme-secrets?embed=1&file=src%2Ftheme.scss&source=post_page---------------------------\\n https://material.angular.io/guide/typography\\n https://material-ui.com/customization/color/\\n*/\\n.defaultMat {\\n /*.mat-checkbox-inner-container, {\\n height: 40px;\\n width: 40px;\\n }*/\\n /*https: //stackoverflow.com/questions/46812064/how-to-set-the-color-of-an-icon-in-angular-material\\n https: //css-tricks.com/solved-with-css-colorizing-svg-backgrounds/*/\\n /* Note: If you're using an SVG icon, you should make the class target the `` element */\\n /*.white-icon svg {\\n fill: white;\\n filter:brightness(100);\\n }*/\\n /*.mat-menu-item {\\n height:20px;\\n }\\n button.mat-menu-item {\\n height: 30px;\\n font-size: 15px;\\n }*/\\n}\\n.defaultMat .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.defaultMat .mat-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-option:hover:not(.mat-option-disabled), .defaultMat .mat-option:focus:not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.defaultMat .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.defaultMat .mat-option.mat-active {\\n background: rgba(0, 0, 0, 0.04);\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-option.mat-option-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #2196f3;\\n}\\n.defaultMat .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: yellow;\\n}\\n.defaultMat .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #f44336;\\n}\\n.defaultMat .mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-optgroup-disabled .mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-pseudo-checkbox {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-pseudo-checkbox::after {\\n color: #fafafa;\\n}\\n.defaultMat .mat-pseudo-checkbox-disabled {\\n color: #b0b0b0;\\n}\\n.defaultMat .mat-pseudo-checkbox-checked,\\n.defaultMat .mat-pseudo-checkbox-indeterminate,\\n.defaultMat .mat-accent .mat-pseudo-checkbox-checked,\\n.defaultMat .mat-accent .mat-pseudo-checkbox-indeterminate {\\n background: yellow;\\n}\\n.defaultMat .mat-primary .mat-pseudo-checkbox-checked,\\n.defaultMat .mat-primary .mat-pseudo-checkbox-indeterminate {\\n background: #2196f3;\\n}\\n.defaultMat .mat-warn .mat-pseudo-checkbox-checked,\\n.defaultMat .mat-warn .mat-pseudo-checkbox-indeterminate {\\n background: #f44336;\\n}\\n.defaultMat .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\\n.defaultMat .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\\n background: #b0b0b0;\\n}\\n.defaultMat .mat-elevation-z0 {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z1 {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z2 {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z3 {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z4 {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z5 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z6 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z7 {\\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z8 {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z9 {\\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z10 {\\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z11 {\\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z12 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z13 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z14 {\\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z15 {\\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z16 {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z17 {\\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z18 {\\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z19 {\\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z20 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z21 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z22 {\\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z23 {\\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z24 {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-app-background, .defaultMat.mat-app-background {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-theme-loaded-marker {\\n display: none;\\n}\\n.defaultMat .mat-autocomplete-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\\n background: white;\\n}\\n.defaultMat .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-badge-content {\\n color: white;\\n background: #2196f3;\\n}\\n@media (-ms-high-contrast: active) {\\n .defaultMat .mat-badge-content {\\n outline: solid 1px;\\n border-radius: 0;\\n }\\n}\\n.defaultMat .mat-badge-accent .mat-badge-content {\\n background: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-badge-warn .mat-badge-content {\\n color: white;\\n background: #f44336;\\n}\\n.defaultMat .mat-badge {\\n position: relative;\\n}\\n.defaultMat .mat-badge-hidden .mat-badge-content {\\n display: none;\\n}\\n.defaultMat .mat-badge-disabled .mat-badge-content {\\n background: #b9b9b9;\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-badge-content {\\n position: absolute;\\n text-align: center;\\n display: inline-block;\\n border-radius: 50%;\\n transition: transform 200ms ease-in-out;\\n -ms-transform: scale(0.6);\\n transform: scale(0.6);\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n pointer-events: none;\\n}\\n.defaultMat .ng-animate-disabled .mat-badge-content,\\n.defaultMat .mat-badge-content._mat-animation-noopable {\\n transition: none;\\n}\\n.defaultMat .mat-badge-content.mat-badge-active {\\n -ms-transform: none;\\n transform: none;\\n}\\n.defaultMat .mat-badge-small .mat-badge-content {\\n width: 16px;\\n height: 16px;\\n line-height: 16px;\\n}\\n.defaultMat .mat-badge-small.mat-badge-above .mat-badge-content {\\n top: -8px;\\n}\\n.defaultMat .mat-badge-small.mat-badge-below .mat-badge-content {\\n bottom: -8px;\\n}\\n.defaultMat .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: -16px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -16px;\\n}\\n.defaultMat .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: -16px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -16px;\\n}\\n.defaultMat .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -8px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -8px;\\n}\\n.defaultMat .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -8px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -8px;\\n}\\n.defaultMat .mat-badge-medium .mat-badge-content {\\n width: 22px;\\n height: 22px;\\n line-height: 22px;\\n}\\n.defaultMat .mat-badge-medium.mat-badge-above .mat-badge-content {\\n top: -11px;\\n}\\n.defaultMat .mat-badge-medium.mat-badge-below .mat-badge-content {\\n bottom: -11px;\\n}\\n.defaultMat .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: -22px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -22px;\\n}\\n.defaultMat .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: -22px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -22px;\\n}\\n.defaultMat .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -11px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -11px;\\n}\\n.defaultMat .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -11px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -11px;\\n}\\n.defaultMat .mat-badge-large .mat-badge-content {\\n width: 28px;\\n height: 28px;\\n line-height: 28px;\\n}\\n.defaultMat .mat-badge-large.mat-badge-above .mat-badge-content {\\n top: -14px;\\n}\\n.defaultMat .mat-badge-large.mat-badge-below .mat-badge-content {\\n bottom: -14px;\\n}\\n.defaultMat .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: -28px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -28px;\\n}\\n.defaultMat .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: -28px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -28px;\\n}\\n.defaultMat .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -14px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -14px;\\n}\\n.defaultMat .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -14px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -14px;\\n}\\n.defaultMat .mat-bottom-sheet-container {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-button, .defaultMat .mat-icon-button, .defaultMat .mat-stroked-button {\\n color: inherit;\\n background: transparent;\\n}\\n.defaultMat .mat-button.mat-primary, .defaultMat .mat-icon-button.mat-primary, .defaultMat .mat-stroked-button.mat-primary {\\n color: #2196f3;\\n}\\n.defaultMat .mat-button.mat-accent, .defaultMat .mat-icon-button.mat-accent, .defaultMat .mat-stroked-button.mat-accent {\\n color: yellow;\\n}\\n.defaultMat .mat-button.mat-warn, .defaultMat .mat-icon-button.mat-warn, .defaultMat .mat-stroked-button.mat-warn {\\n color: #f44336;\\n}\\n.defaultMat .mat-button.mat-primary[disabled], .defaultMat .mat-button.mat-accent[disabled], .defaultMat .mat-button.mat-warn[disabled], .defaultMat .mat-button[disabled][disabled], .defaultMat .mat-icon-button.mat-primary[disabled], .defaultMat .mat-icon-button.mat-accent[disabled], .defaultMat .mat-icon-button.mat-warn[disabled], .defaultMat .mat-icon-button[disabled][disabled], .defaultMat .mat-stroked-button.mat-primary[disabled], .defaultMat .mat-stroked-button.mat-accent[disabled], .defaultMat .mat-stroked-button.mat-warn[disabled], .defaultMat .mat-stroked-button[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-button.mat-primary .mat-button-focus-overlay, .defaultMat .mat-icon-button.mat-primary .mat-button-focus-overlay, .defaultMat .mat-stroked-button.mat-primary .mat-button-focus-overlay {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-button.mat-accent .mat-button-focus-overlay, .defaultMat .mat-icon-button.mat-accent .mat-button-focus-overlay, .defaultMat .mat-stroked-button.mat-accent .mat-button-focus-overlay {\\n background-color: yellow;\\n}\\n.defaultMat .mat-button.mat-warn .mat-button-focus-overlay, .defaultMat .mat-icon-button.mat-warn .mat-button-focus-overlay, .defaultMat .mat-stroked-button.mat-warn .mat-button-focus-overlay {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-button[disabled] .mat-button-focus-overlay, .defaultMat .mat-icon-button[disabled] .mat-button-focus-overlay, .defaultMat .mat-stroked-button[disabled] .mat-button-focus-overlay {\\n background-color: transparent;\\n}\\n.defaultMat .mat-button .mat-ripple-element, .defaultMat .mat-icon-button .mat-ripple-element, .defaultMat .mat-stroked-button .mat-ripple-element {\\n opacity: 0.1;\\n background-color: currentColor;\\n}\\n.defaultMat .mat-button-focus-overlay {\\n background: black;\\n}\\n.defaultMat .mat-stroked-button:not([disabled]) {\\n border-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-flat-button, .defaultMat .mat-raised-button, .defaultMat .mat-fab, .defaultMat .mat-mini-fab {\\n color: rgba(0, 0, 0, 0.87);\\n background-color: white;\\n}\\n.defaultMat .mat-flat-button.mat-primary, .defaultMat .mat-raised-button.mat-primary, .defaultMat .mat-fab.mat-primary, .defaultMat .mat-mini-fab.mat-primary {\\n color: white;\\n}\\n.defaultMat .mat-flat-button.mat-accent, .defaultMat .mat-raised-button.mat-accent, .defaultMat .mat-fab.mat-accent, .defaultMat .mat-mini-fab.mat-accent {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-flat-button.mat-warn, .defaultMat .mat-raised-button.mat-warn, .defaultMat .mat-fab.mat-warn, .defaultMat .mat-mini-fab.mat-warn {\\n color: white;\\n}\\n.defaultMat .mat-flat-button.mat-primary[disabled], .defaultMat .mat-flat-button.mat-accent[disabled], .defaultMat .mat-flat-button.mat-warn[disabled], .defaultMat .mat-flat-button[disabled][disabled], .defaultMat .mat-raised-button.mat-primary[disabled], .defaultMat .mat-raised-button.mat-accent[disabled], .defaultMat .mat-raised-button.mat-warn[disabled], .defaultMat .mat-raised-button[disabled][disabled], .defaultMat .mat-fab.mat-primary[disabled], .defaultMat .mat-fab.mat-accent[disabled], .defaultMat .mat-fab.mat-warn[disabled], .defaultMat .mat-fab[disabled][disabled], .defaultMat .mat-mini-fab.mat-primary[disabled], .defaultMat .mat-mini-fab.mat-accent[disabled], .defaultMat .mat-mini-fab.mat-warn[disabled], .defaultMat .mat-mini-fab[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-flat-button.mat-primary, .defaultMat .mat-raised-button.mat-primary, .defaultMat .mat-fab.mat-primary, .defaultMat .mat-mini-fab.mat-primary {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-flat-button.mat-accent, .defaultMat .mat-raised-button.mat-accent, .defaultMat .mat-fab.mat-accent, .defaultMat .mat-mini-fab.mat-accent {\\n background-color: yellow;\\n}\\n.defaultMat .mat-flat-button.mat-warn, .defaultMat .mat-raised-button.mat-warn, .defaultMat .mat-fab.mat-warn, .defaultMat .mat-mini-fab.mat-warn {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-flat-button.mat-primary[disabled], .defaultMat .mat-flat-button.mat-accent[disabled], .defaultMat .mat-flat-button.mat-warn[disabled], .defaultMat .mat-flat-button[disabled][disabled], .defaultMat .mat-raised-button.mat-primary[disabled], .defaultMat .mat-raised-button.mat-accent[disabled], .defaultMat .mat-raised-button.mat-warn[disabled], .defaultMat .mat-raised-button[disabled][disabled], .defaultMat .mat-fab.mat-primary[disabled], .defaultMat .mat-fab.mat-accent[disabled], .defaultMat .mat-fab.mat-warn[disabled], .defaultMat .mat-fab[disabled][disabled], .defaultMat .mat-mini-fab.mat-primary[disabled], .defaultMat .mat-mini-fab.mat-accent[disabled], .defaultMat .mat-mini-fab.mat-warn[disabled], .defaultMat .mat-mini-fab[disabled][disabled] {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-flat-button.mat-primary .mat-ripple-element, .defaultMat .mat-raised-button.mat-primary .mat-ripple-element, .defaultMat .mat-fab.mat-primary .mat-ripple-element, .defaultMat .mat-mini-fab.mat-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.defaultMat .mat-flat-button.mat-accent .mat-ripple-element, .defaultMat .mat-raised-button.mat-accent .mat-ripple-element, .defaultMat .mat-fab.mat-accent .mat-ripple-element, .defaultMat .mat-mini-fab.mat-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.defaultMat .mat-flat-button.mat-warn .mat-ripple-element, .defaultMat .mat-raised-button.mat-warn .mat-ripple-element, .defaultMat .mat-fab.mat-warn .mat-ripple-element, .defaultMat .mat-mini-fab.mat-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.defaultMat .mat-stroked-button:not([class*=mat-elevation-z]), .defaultMat .mat-flat-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-raised-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-fab:not([class*=mat-elevation-z]), .defaultMat .mat-mini-fab:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .defaultMat .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-fab[disabled]:not([class*=mat-elevation-z]), .defaultMat .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-button-toggle-standalone,\\n.defaultMat .mat-button-toggle-group {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.defaultMat .mat-button-toggle-group-appearance-standard {\\n box-shadow: none;\\n}\\n.defaultMat .mat-button-toggle {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-button-toggle .mat-button-toggle-focus-overlay {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n background: white;\\n}\\n.defaultMat .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\\n background-color: black;\\n}\\n.defaultMat .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: none;\\n border-top: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-button-toggle-checked {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-button-toggle-disabled {\\n color: rgba(0, 0, 0, 0.26);\\n background-color: #eeeeee;\\n}\\n.defaultMat .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\\n background: white;\\n}\\n.defaultMat .mat-button-toggle-disabled.mat-button-toggle-checked {\\n background-color: #bdbdbd;\\n}\\n.defaultMat .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.defaultMat .mat-button-toggle-group-appearance-standard {\\n border: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-card {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-card:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-card-subtitle {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-checkbox-frame {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-checkbox-checkmark {\\n fill: #fafafa;\\n}\\n.defaultMat .mat-checkbox-checkmark-path {\\n stroke: #fafafa !important;\\n}\\n@media (-ms-high-contrast: black-on-white) {\\n .defaultMat .mat-checkbox-checkmark-path {\\n stroke: #000 !important;\\n }\\n}\\n.defaultMat .mat-checkbox-mixedmark {\\n background-color: #fafafa;\\n}\\n.defaultMat .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .defaultMat .mat-checkbox-checked.mat-primary .mat-checkbox-background {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .defaultMat .mat-checkbox-checked.mat-accent .mat-checkbox-background {\\n background-color: yellow;\\n}\\n.defaultMat .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .defaultMat .mat-checkbox-checked.mat-warn .mat-checkbox-background {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .defaultMat .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: #b0b0b0;\\n}\\n.defaultMat .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\\n border-color: #b0b0b0;\\n}\\n.defaultMat .mat-checkbox-disabled .mat-checkbox-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n@media (-ms-high-contrast: active) {\\n .defaultMat .mat-checkbox-disabled {\\n opacity: 0.5;\\n }\\n}\\n@media (-ms-high-contrast: active) {\\n .defaultMat .mat-checkbox-background {\\n background: none;\\n }\\n}\\n.defaultMat .mat-checkbox .mat-ripple-element {\\n background-color: black;\\n}\\n.defaultMat .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\\n.defaultMat .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\\n background: #2196f3;\\n}\\n.defaultMat .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\\n.defaultMat .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\\n background: yellow;\\n}\\n.defaultMat .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\\n.defaultMat .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\\n background: #f44336;\\n}\\n.defaultMat .mat-chip.mat-standard-chip {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-chip.mat-standard-chip .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.defaultMat .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\\n opacity: 0.54;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-disabled {\\n opacity: 0.4;\\n}\\n.defaultMat .mat-chip.mat-standard-chip::after {\\n background: black;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\\n background-color: #2196f3;\\n color: white;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\\n background-color: #f44336;\\n color: white;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\\n background-color: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.defaultMat .mat-table {\\n background: white;\\n}\\n.defaultMat .mat-table thead, .defaultMat .mat-table tbody, .defaultMat .mat-table tfoot,\\n.defaultMat mat-header-row, .defaultMat mat-row, .defaultMat mat-footer-row,\\n.defaultMat [mat-header-row], .defaultMat [mat-row], .defaultMat [mat-footer-row],\\n.defaultMat .mat-table-sticky {\\n background: inherit;\\n}\\n.defaultMat mat-row, .defaultMat mat-header-row, .defaultMat mat-footer-row,\\n.defaultMat th.mat-header-cell, .defaultMat td.mat-cell, .defaultMat td.mat-footer-cell {\\n border-bottom-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-header-cell {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-cell, .defaultMat .mat-footer-cell {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-calendar-arrow {\\n border-top-color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-datepicker-toggle,\\n.defaultMat .mat-datepicker-content .mat-calendar-next-button,\\n.defaultMat .mat-datepicker-content .mat-calendar-previous-button {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-calendar-table-header {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-calendar-table-header-divider::after {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-calendar-body-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-calendar-body-cell-content {\\n color: rgba(0, 0, 0, 0.87);\\n border-color: transparent;\\n}\\n.defaultMat .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.defaultMat .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.defaultMat .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n.defaultMat .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.18);\\n}\\n.defaultMat .mat-calendar-body-selected {\\n background-color: #2196f3;\\n color: white;\\n}\\n.defaultMat .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(33, 150, 243, 0.4);\\n}\\n.defaultMat .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.defaultMat .mat-datepicker-content {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\\n background-color: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(255, 255, 0, 0.4);\\n}\\n.defaultMat .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\\n background-color: #f44336;\\n color: white;\\n}\\n.defaultMat .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(244, 67, 54, 0.4);\\n}\\n.defaultMat .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.defaultMat .mat-datepicker-content-touch {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-datepicker-toggle-active {\\n color: #2196f3;\\n}\\n.defaultMat .mat-datepicker-toggle-active.mat-accent {\\n color: yellow;\\n}\\n.defaultMat .mat-datepicker-toggle-active.mat-warn {\\n color: #f44336;\\n}\\n.defaultMat .mat-dialog-container {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-divider {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-divider-vertical {\\n border-right-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-expansion-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-expansion-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-action-row {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused, .defaultMat .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused, .defaultMat .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n@media (hover: none) {\\n .defaultMat .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\\n background: white;\\n }\\n}\\n.defaultMat .mat-expansion-panel-header-title {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-expansion-panel-header-description,\\n.defaultMat .mat-expansion-indicator::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-expansion-panel-header[aria-disabled=true] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\\n.defaultMat .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\\n color: inherit;\\n}\\n.defaultMat .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n.defaultMat .mat-hint {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-label {\\n color: #2196f3;\\n}\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\\n color: yellow;\\n}\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\\n color: #f44336;\\n}\\n.defaultMat .mat-focused .mat-form-field-required-marker {\\n color: yellow;\\n}\\n.defaultMat .mat-form-field-ripple {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-ripple {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\\n background-color: yellow;\\n}\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\\n color: #2196f3;\\n}\\n.defaultMat .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\\n color: yellow;\\n}\\n.defaultMat .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-label {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-error {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-hint {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.defaultMat .mat-form-field-appearance-standard .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.defaultMat .mat-form-field-appearance-fill .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.02);\\n}\\n.defaultMat .mat-form-field-appearance-fill .mat-form-field-underline::before {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\\n background-color: transparent;\\n}\\n.defaultMat .mat-form-field-appearance-outline .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-form-field-appearance-outline .mat-form-field-outline-thick {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\\n color: #2196f3;\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\\n color: yellow;\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.06);\\n}\\n.defaultMat .mat-icon.mat-primary {\\n color: #2196f3;\\n}\\n.defaultMat .mat-icon.mat-accent {\\n color: yellow;\\n}\\n.defaultMat .mat-icon.mat-warn {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-input-element:disabled,\\n.defaultMat .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-input-element {\\n caret-color: #2196f3;\\n}\\n.defaultMat .mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-input-element:-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-input-element::-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-input-element::placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-input-element::-webkit-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-input-element:-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-accent .mat-input-element {\\n caret-color: yellow;\\n}\\n.defaultMat .mat-warn .mat-input-element,\\n.defaultMat .mat-form-field-invalid .mat-input-element {\\n caret-color: #f44336;\\n}\\n.defaultMat .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n.defaultMat .mat-list-base .mat-list-item {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-list-base .mat-list-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-list-base .mat-subheader {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-list-item-disabled {\\n background-color: #eeeeee;\\n}\\n.defaultMat .mat-list-option:hover, .defaultMat .mat-list-option:focus,\\n.defaultMat .mat-nav-list .mat-list-item:hover,\\n.defaultMat .mat-nav-list .mat-list-item:focus,\\n.defaultMat .mat-action-list .mat-list-item:hover,\\n.defaultMat .mat-action-list .mat-list-item:focus {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.defaultMat .mat-menu-panel {\\n background: white;\\n}\\n.defaultMat .mat-menu-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-menu-item {\\n background: transparent;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-menu-item[disabled], .defaultMat .mat-menu-item[disabled]::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-menu-item .mat-icon-no-color,\\n.defaultMat .mat-menu-item-submenu-trigger::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-menu-item:hover:not([disabled]),\\n.defaultMat .mat-menu-item.cdk-program-focused:not([disabled]),\\n.defaultMat .mat-menu-item.cdk-keyboard-focused:not([disabled]),\\n.defaultMat .mat-menu-item-highlighted:not([disabled]) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.defaultMat .mat-paginator {\\n background: white;\\n}\\n.defaultMat .mat-paginator,\\n.defaultMat .mat-paginator-page-size .mat-select-trigger {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-paginator-decrement,\\n.defaultMat .mat-paginator-increment {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n border-right: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-paginator-first,\\n.defaultMat .mat-paginator-last {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-icon-button[disabled] .mat-paginator-decrement,\\n.defaultMat .mat-icon-button[disabled] .mat-paginator-increment,\\n.defaultMat .mat-icon-button[disabled] .mat-paginator-first,\\n.defaultMat .mat-icon-button[disabled] .mat-paginator-last {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-progress-bar-background {\\n fill: #bbdefb;\\n}\\n.defaultMat .mat-progress-bar-buffer {\\n background-color: #bbdefb;\\n}\\n.defaultMat .mat-progress-bar-fill::after {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-progress-bar.mat-accent .mat-progress-bar-background {\\n fill: #ffff8d;\\n}\\n.defaultMat .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\\n background-color: #ffff8d;\\n}\\n.defaultMat .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\\n background-color: yellow;\\n}\\n.defaultMat .mat-progress-bar.mat-warn .mat-progress-bar-background {\\n fill: #ffcdd2;\\n}\\n.defaultMat .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\\n background-color: #ffcdd2;\\n}\\n.defaultMat .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-progress-spinner circle, .defaultMat .mat-spinner circle {\\n stroke: #2196f3;\\n}\\n.defaultMat .mat-progress-spinner.mat-accent circle, .defaultMat .mat-spinner.mat-accent circle {\\n stroke: yellow;\\n}\\n.defaultMat .mat-progress-spinner.mat-warn circle, .defaultMat .mat-spinner.mat-warn circle {\\n stroke: #f44336;\\n}\\n.defaultMat .mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #2196f3;\\n}\\n.defaultMat .mat-radio-button.mat-primary .mat-radio-inner-circle,\\n.defaultMat .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .defaultMat .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .defaultMat .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\\n border-color: yellow;\\n}\\n.defaultMat .mat-radio-button.mat-accent .mat-radio-inner-circle,\\n.defaultMat .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .defaultMat .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .defaultMat .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\\n background-color: yellow;\\n}\\n.defaultMat .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #f44336;\\n}\\n.defaultMat .mat-radio-button.mat-warn .mat-radio-inner-circle,\\n.defaultMat .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .defaultMat .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .defaultMat .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\\n.defaultMat .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\\n.defaultMat .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-radio-button .mat-ripple-element {\\n background-color: black;\\n}\\n.defaultMat .mat-select-value {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-select-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-select-disabled .mat-select-value {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-select-arrow {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-select-panel {\\n background: white;\\n}\\n.defaultMat .mat-select-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\\n color: #2196f3;\\n}\\n.defaultMat .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\\n color: yellow;\\n}\\n.defaultMat .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-drawer-container {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-drawer {\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-drawer.mat-drawer-push {\\n background-color: white;\\n}\\n.defaultMat .mat-drawer:not(.mat-drawer-side) {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-drawer-side {\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-drawer-side.mat-drawer-end {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n.defaultMat [dir=rtl] .mat-drawer-side {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n.defaultMat [dir=rtl] .mat-drawer-side.mat-drawer-end {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-drawer-backdrop.mat-drawer-shown {\\n background-color: rgba(0, 0, 0, 0.6);\\n}\\n.defaultMat .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\\n background-color: yellow;\\n}\\n.defaultMat .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(255, 255, 0, 0.54);\\n}\\n.defaultMat .mat-slide-toggle.mat-checked .mat-ripple-element {\\n background-color: yellow;\\n}\\n.defaultMat .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(33, 150, 243, 0.54);\\n}\\n.defaultMat .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(244, 67, 54, 0.54);\\n}\\n.defaultMat .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\\n background-color: black;\\n}\\n.defaultMat .mat-slide-toggle-thumb {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n background-color: #fafafa;\\n}\\n.defaultMat .mat-slide-toggle-bar {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-primary .mat-slider-track-fill,\\n.defaultMat .mat-primary .mat-slider-thumb,\\n.defaultMat .mat-primary .mat-slider-thumb-label {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-primary .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.defaultMat .mat-accent .mat-slider-track-fill,\\n.defaultMat .mat-accent .mat-slider-thumb,\\n.defaultMat .mat-accent .mat-slider-thumb-label {\\n background-color: yellow;\\n}\\n.defaultMat .mat-accent .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-warn .mat-slider-track-fill,\\n.defaultMat .mat-warn .mat-slider-thumb,\\n.defaultMat .mat-warn .mat-slider-thumb-label {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-warn .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.defaultMat .mat-slider-focus-ring {\\n background-color: rgba(255, 255, 0, 0.2);\\n}\\n.defaultMat .mat-slider:hover .mat-slider-track-background,\\n.defaultMat .cdk-focused .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-slider-disabled .mat-slider-track-background,\\n.defaultMat .mat-slider-disabled .mat-slider-track-fill,\\n.defaultMat .mat-slider-disabled .mat-slider-thumb {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-slider-disabled:hover .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-slider-min-value .mat-slider-focus-ring {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\\n.defaultMat .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\\n.defaultMat .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n background-color: transparent;\\n}\\n.defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-slider-has-ticks .mat-slider-wrapper::after {\\n border-color: rgba(0, 0, 0, 0.7);\\n}\\n.defaultMat .mat-slider-horizontal .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to right, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n.defaultMat .mat-slider-vertical .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n.defaultMat .mat-step-header.cdk-keyboard-focused, .defaultMat .mat-step-header.cdk-program-focused, .defaultMat .mat-step-header:hover {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n@media (hover: none) {\\n .defaultMat .mat-step-header:hover {\\n background: none;\\n }\\n}\\n.defaultMat .mat-step-header .mat-step-label,\\n.defaultMat .mat-step-header .mat-step-optional {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-step-header .mat-step-icon {\\n background-color: rgba(0, 0, 0, 0.54);\\n color: white;\\n}\\n.defaultMat .mat-step-header .mat-step-icon-selected,\\n.defaultMat .mat-step-header .mat-step-icon-state-done,\\n.defaultMat .mat-step-header .mat-step-icon-state-edit {\\n background-color: #2196f3;\\n color: white;\\n}\\n.defaultMat .mat-step-header .mat-step-icon-state-error {\\n background-color: transparent;\\n color: #f44336;\\n}\\n.defaultMat .mat-step-header .mat-step-label.mat-step-label-active {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-step-header .mat-step-label.mat-step-label-error {\\n color: #f44336;\\n}\\n.defaultMat .mat-stepper-horizontal, .defaultMat .mat-stepper-vertical {\\n background-color: white;\\n}\\n.defaultMat .mat-stepper-vertical-line::before {\\n border-left-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-horizontal-stepper-header::before,\\n.defaultMat .mat-horizontal-stepper-header::after,\\n.defaultMat .mat-stepper-horizontal-line {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-sort-header-arrow {\\n color: #757575;\\n}\\n.defaultMat .mat-tab-nav-bar,\\n.defaultMat .mat-tab-header {\\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-tab-group-inverted-header .mat-tab-nav-bar,\\n.defaultMat .mat-tab-group-inverted-header .mat-tab-header {\\n border-top: 1px solid rgba(0, 0, 0, 0.12);\\n border-bottom: none;\\n}\\n.defaultMat .mat-tab-label, .defaultMat .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-tab-group[class*=mat-background-] .mat-tab-header,\\n.defaultMat .mat-tab-nav-bar[class*=mat-background-] {\\n border-bottom: none;\\n border-top: none;\\n}\\n.defaultMat .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(187, 222, 251, 0.3);\\n}\\n.defaultMat .mat-tab-group.mat-primary .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-primary .mat-ink-bar {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\\n background-color: white;\\n}\\n.defaultMat .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 255, 141, 0.3);\\n}\\n.defaultMat .mat-tab-group.mat-accent .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-accent .mat-ink-bar {\\n background-color: yellow;\\n}\\n.defaultMat .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n.defaultMat .mat-tab-group.mat-warn .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-warn .mat-ink-bar {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\\n background-color: white;\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(187, 222, 251, 0.3);\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-header, .defaultMat .mat-tab-group.mat-background-primary .mat-tab-links, .defaultMat .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-label, .defaultMat .mat-tab-group.mat-background-primary .mat-tab-link, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\\n color: white;\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-ripple-element, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 255, 141, 0.3);\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-header, .defaultMat .mat-tab-group.mat-background-accent .mat-tab-links, .defaultMat .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\\n background-color: yellow;\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-label, .defaultMat .mat-tab-group.mat-background-accent .mat-tab-link, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-ripple-element, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-header, .defaultMat .mat-tab-group.mat-background-warn .mat-tab-links, .defaultMat .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-label, .defaultMat .mat-tab-group.mat-background-warn .mat-tab-link, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\\n color: white;\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-ripple-element, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.defaultMat .mat-toolbar {\\n background: whitesmoke;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-toolbar.mat-primary {\\n background: #2196f3;\\n color: white;\\n}\\n.defaultMat .mat-toolbar.mat-accent {\\n background: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-toolbar.mat-warn {\\n background: #f44336;\\n color: white;\\n}\\n.defaultMat .mat-toolbar .mat-form-field-underline,\\n.defaultMat .mat-toolbar .mat-form-field-ripple,\\n.defaultMat .mat-toolbar .mat-focused .mat-form-field-ripple {\\n background-color: currentColor;\\n}\\n.defaultMat .mat-toolbar .mat-form-field-label,\\n.defaultMat .mat-toolbar .mat-focused .mat-form-field-label,\\n.defaultMat .mat-toolbar .mat-select-value,\\n.defaultMat .mat-toolbar .mat-select-arrow,\\n.defaultMat .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\\n color: inherit;\\n}\\n.defaultMat .mat-toolbar .mat-input-element {\\n caret-color: currentColor;\\n}\\n.defaultMat .mat-tooltip {\\n background: rgba(97, 97, 97, 0.9);\\n}\\n.defaultMat .mat-tree {\\n background: white;\\n}\\n.defaultMat .mat-tree-node,\\n.defaultMat .mat-nested-tree-node {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-snack-bar-container {\\n color: rgba(255, 255, 255, 0.7);\\n background: #323232;\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-simple-snackbar-action {\\n color: yellow;\\n}\\n.defaultMat .mat-badge-content {\\n font-weight: 600;\\n font-size: 12px;\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-badge-small .mat-badge-content {\\n font-size: 9px;\\n}\\n.defaultMat .mat-badge-large .mat-badge-content {\\n font-size: 24px;\\n}\\n.defaultMat .mat-h1, .defaultMat .mat-headline, .defaultMat .mat-typography h1 {\\n font: 600 24px/32px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.defaultMat .mat-h2, .defaultMat .mat-title, .defaultMat .mat-typography h2 {\\n font: 600 20px/32px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.defaultMat .mat-h3, .defaultMat .mat-subheading-2, .defaultMat .mat-typography h3 {\\n font: 600 16px/22px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.defaultMat .mat-h4, .defaultMat .mat-subheading-1, .defaultMat .mat-typography h4 {\\n font: 600 15px/24px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.defaultMat .mat-h5, .defaultMat .mat-typography h5 {\\n font: 600 calc(14px * 0.83)/30px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n.defaultMat .mat-h6, .defaultMat .mat-typography h6 {\\n font: 600 calc(14px * 0.67)/30px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n.defaultMat .mat-body-strong, .defaultMat .mat-body-2 {\\n font: 600 14px/24px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-body, .defaultMat .mat-body-1, .defaultMat .mat-typography {\\n font: 600 14px/30px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-body p, .defaultMat .mat-body-1 p, .defaultMat .mat-typography p {\\n margin: 0 0 12px;\\n}\\n.defaultMat .mat-small, .defaultMat .mat-caption {\\n font: 600 12px/20px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-display-4, .defaultMat .mat-typography .mat-display-4 {\\n font: 300 112px/112px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 56px;\\n}\\n.defaultMat .mat-display-3, .defaultMat .mat-typography .mat-display-3 {\\n font: 600 56px/56px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 64px;\\n}\\n.defaultMat .mat-display-2, .defaultMat .mat-typography .mat-display-2 {\\n font: 400 45px/48px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 64px;\\n}\\n.defaultMat .mat-display-1, .defaultMat .mat-typography .mat-display-1 {\\n font: 600 34px/40px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 64px;\\n}\\n.defaultMat .mat-bottom-sheet-container {\\n font: 600 14px/30px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-button, .defaultMat .mat-raised-button, .defaultMat .mat-icon-button, .defaultMat .mat-stroked-button,\\n.defaultMat .mat-flat-button, .defaultMat .mat-fab, .defaultMat .mat-mini-fab {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 10px;\\n font-weight: 800;\\n}\\n.defaultMat .mat-button-toggle {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-card {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-card-title {\\n font-size: 24px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-card-header .mat-card-title {\\n font-size: 20px;\\n}\\n.defaultMat .mat-card-subtitle,\\n.defaultMat .mat-card-content {\\n font-size: 14px;\\n}\\n.defaultMat .mat-checkbox {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-checkbox-layout .mat-checkbox-label {\\n line-height: 24px;\\n}\\n.defaultMat .mat-chip {\\n font-size: 14px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-chip .mat-chip-trailing-icon.mat-icon,\\n.defaultMat .mat-chip .mat-chip-remove.mat-icon {\\n font-size: 18px;\\n}\\n.defaultMat .mat-table {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-header-cell {\\n font-size: 12px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-cell, .defaultMat .mat-footer-cell {\\n font-size: 14px;\\n}\\n.defaultMat .mat-calendar {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-calendar-body {\\n font-size: 13px;\\n}\\n.defaultMat .mat-calendar-body-label,\\n.defaultMat .mat-calendar-period-button {\\n font-size: 10px;\\n font-weight: 800;\\n}\\n.defaultMat .mat-calendar-table-header th {\\n font-size: 11px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-dialog-title {\\n font: 600 20px/32px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-expansion-panel-header {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 15px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-expansion-panel-content {\\n font: 600 14px/30px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-form-field {\\n font-size: inherit;\\n font-weight: 400;\\n line-height: 1.125;\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-form-field-wrapper {\\n padding-bottom: 1.34375em;\\n}\\n.defaultMat .mat-form-field-prefix .mat-icon,\\n.defaultMat .mat-form-field-suffix .mat-icon {\\n font-size: 150%;\\n line-height: 1.125;\\n}\\n.defaultMat .mat-form-field-prefix .mat-icon-button,\\n.defaultMat .mat-form-field-suffix .mat-icon-button {\\n height: 1.5em;\\n width: 1.5em;\\n}\\n.defaultMat .mat-form-field-prefix .mat-icon-button .mat-icon,\\n.defaultMat .mat-form-field-suffix .mat-icon-button .mat-icon {\\n height: 1.125em;\\n line-height: 1.125;\\n}\\n.defaultMat .mat-form-field-infix {\\n padding: 0.5em 0;\\n border-top: 0.84375em solid transparent;\\n}\\n.defaultMat .mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.34373em) scale(0.75);\\n transform: translateY(-1.34373em) scale(0.75);\\n width: 133.3333533333%;\\n}\\n.defaultMat .mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.34372em) scale(0.75);\\n transform: translateY(-1.34372em) scale(0.75);\\n width: 133.3333633333%;\\n}\\n.defaultMat .mat-form-field-label-wrapper {\\n top: -0.84375em;\\n padding-top: 0.84375em;\\n}\\n.defaultMat .mat-form-field-label {\\n top: 1.34375em;\\n}\\n.defaultMat .mat-form-field-underline {\\n bottom: 1.34375em;\\n}\\n.defaultMat .mat-form-field-subscript-wrapper {\\n font-size: 75%;\\n margin-top: 0.6666666667em;\\n top: calc(100% - 1.7916666667em);\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-wrapper {\\n padding-bottom: 1.25em;\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-infix {\\n padding: 0.4375em 0;\\n}\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00106px);\\n -ms-transform: translateY(-1.28119em) scale(0.75);\\n width: 133.3333933333%;\\n}\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00107px);\\n -ms-transform: translateY(-1.28118em) scale(0.75);\\n width: 133.3334033333%;\\n}\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00108px);\\n -ms-transform: translateY(-1.28117em) scale(0.75);\\n width: 133.3334133333%;\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-label {\\n top: 1.28125em;\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-underline {\\n bottom: 1.25em;\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {\\n margin-top: 0.5416666667em;\\n top: calc(100% - 1.6666666667em);\\n}\\n@media print {\\n .defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.28116em) scale(0.75);\\n transform: translateY(-1.28116em) scale(0.75);\\n }\\n .defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28115em) scale(0.75);\\n }\\n .defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.28114em) scale(0.75);\\n transform: translateY(-1.28114em) scale(0.75);\\n }\\n}\\n.defaultMat .mat-form-field-appearance-fill .mat-form-field-infix {\\n padding: 0.25em 0 0.75em 0;\\n}\\n.defaultMat .mat-form-field-appearance-fill .mat-form-field-label {\\n top: 1.09375em;\\n margin-top: -0.5em;\\n}\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-0.59373em) scale(0.75);\\n transform: translateY(-0.59373em) scale(0.75);\\n width: 133.3333533333%;\\n}\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-0.59372em) scale(0.75);\\n transform: translateY(-0.59372em) scale(0.75);\\n width: 133.3333633333%;\\n}\\n.defaultMat .mat-form-field-appearance-outline .mat-form-field-infix {\\n padding: 1em 0 1em 0;\\n}\\n.defaultMat .mat-form-field-appearance-outline .mat-form-field-label {\\n top: 1.84375em;\\n margin-top: -0.25em;\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.59373em) scale(0.75);\\n transform: translateY(-1.59373em) scale(0.75);\\n width: 133.3333533333%;\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.59372em) scale(0.75);\\n transform: translateY(-1.59372em) scale(0.75);\\n width: 133.3333633333%;\\n}\\n.defaultMat .mat-grid-tile-header,\\n.defaultMat .mat-grid-tile-footer {\\n font-size: 14px;\\n}\\n.defaultMat .mat-grid-tile-header .mat-line,\\n.defaultMat .mat-grid-tile-footer .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.defaultMat .mat-grid-tile-header .mat-line:nth-child(n+2),\\n.defaultMat .mat-grid-tile-footer .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n.defaultMat input.mat-input-element {\\n margin-top: -0.0625em;\\n}\\n.defaultMat .mat-menu-item {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-paginator,\\n.defaultMat .mat-paginator-page-size .mat-select-trigger {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n}\\n.defaultMat .mat-radio-button {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-select {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-select-trigger {\\n height: 1.125em;\\n}\\n.defaultMat .mat-slide-toggle-content {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-slider-thumb-label-text {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-stepper-vertical, .defaultMat .mat-stepper-horizontal {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-step-label {\\n font-size: 14px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-step-sub-label-error {\\n font-weight: normal;\\n}\\n.defaultMat .mat-step-label-error {\\n font-size: 14px;\\n}\\n.defaultMat .mat-step-label-selected {\\n font-size: 14px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-tab-group {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-tab-label, .defaultMat .mat-tab-link {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 10px;\\n font-weight: 800;\\n}\\n.defaultMat .mat-toolbar,\\n.defaultMat .mat-toolbar h1,\\n.defaultMat .mat-toolbar h2,\\n.defaultMat .mat-toolbar h3,\\n.defaultMat .mat-toolbar h4,\\n.defaultMat .mat-toolbar h5,\\n.defaultMat .mat-toolbar h6 {\\n font: 600 20px/32px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0;\\n}\\n.defaultMat .mat-tooltip {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 10px;\\n padding-top: 6px;\\n padding-bottom: 6px;\\n}\\n.defaultMat .mat-tooltip-handset {\\n font-size: 14px;\\n padding-top: 8px;\\n padding-bottom: 8px;\\n}\\n.defaultMat .mat-list-item {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-list-option {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-list-base .mat-list-item {\\n font-size: 16px;\\n}\\n.defaultMat .mat-list-base .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.defaultMat .mat-list-base .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n.defaultMat .mat-list-base .mat-list-option {\\n font-size: 16px;\\n}\\n.defaultMat .mat-list-base .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.defaultMat .mat-list-base .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n.defaultMat .mat-list-base .mat-subheader {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-list-base[dense] .mat-list-item {\\n font-size: 12px;\\n}\\n.defaultMat .mat-list-base[dense] .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.defaultMat .mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n.defaultMat .mat-list-base[dense] .mat-list-option {\\n font-size: 12px;\\n}\\n.defaultMat .mat-list-base[dense] .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.defaultMat .mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n.defaultMat .mat-list-base[dense] .mat-subheader {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-option {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n}\\n.defaultMat .mat-optgroup-label {\\n font: 600 14px/24px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-simple-snackbar {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n}\\n.defaultMat .mat-simple-snackbar-action {\\n line-height: 1;\\n font-family: inherit;\\n font-size: inherit;\\n font-weight: 800;\\n}\\n.defaultMat .mat-tree {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-tree-node,\\n.defaultMat .mat-nested-tree-node {\\n font-weight: 600;\\n font-size: 14px;\\n}\\n.defaultMat main {\\n background-color: #F0F0F0;\\n}\\n.defaultMat .menu {\\n /*background-color: $background;\\n text-align: center;*/\\n color: black;\\n display: -ms-flexbox;\\n display: flex;\\n}\\n.defaultMat a, .defaultMat a:hover, .defaultMat a:hover span {\\n text-decoration: none;\\n outline: none;\\n}\\n.defaultMat .mat-raised-button:not([class*=mat-elevation-z]),\\n.defaultMat .mat-button,\\n.defaultMat .mat-fab:not([class*=mat-elevation-z]),\\n.defaultMat .mat-mini-fab:not([class*=mat-elevation-z]),\\n.defaultMat .mat-icon-button {\\n box-sizing: border-box;\\n border-width: 1px;\\n border-style: solid;\\n border-color: rgba(0, 0, 0, 0.12);\\n box-shadow: none;\\n}\\n.defaultMat .mat-chip {\\n box-sizing: border-box;\\n border-width: 1px;\\n border-style: solid;\\n border-color: rgba(0, 0, 0, 0.12);\\n border-radius: 10px;\\n}\\n.defaultMat .mat-raised-button.back {\\n color: white;\\n background-color: #616161;\\n}\\n.defaultMat .mat-card {\\n margin: 10px 10px 0 10px;\\n}\\n.defaultMat .mat-checkbox-layout .mat-checkbox-label {\\n line-height: 40px;\\n}\\n.defaultMat .mat-list .mat-list-item .mat-list-text h4.mat-line {\\n font-weight: 800;\\n}\\n.defaultMat .mat-list .mat-list-item .mat-list-text p.mat-line {\\n color: #82b1ff;\\n}\\n.defaultMat .mat-card:not([class*=mat-elevation-z]) {\\n box-sizing: border-box;\\n -ms-flex: 1;\\n flex: 1;\\n border-width: 1px;\\n border-style: solid;\\n border-color: rgba(0, 0, 0, 0.12);\\n box-shadow: none;\\n}\\n.defaultMat .mat-toolbar {\\n background-color: white;\\n border-width: 1px;\\n border-style: solid;\\n border-color: rgba(0, 0, 0, 0.12);\\n box-shadow: none;\\n}\\n.defaultMat .mat-card.mat-card-accent {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-card.mat-card-warn {\\n color: white;\\n}\\n.defaultMat .white-icon {\\n color: white;\\n filter: brightness(100);\\n}\\n.green-icon {\\n color: green;\\n}\\n.Start, .PrimaryIP {\\n color: #64b5f6;\\n}\\n.Stop, .SecondaryIP {\\n color: #f44336;\\n}\\n.Start {\\n background-color: darkgreen;\\n color: white;\\n}\\n.Stop {\\n background-color: red;\\n color: white;\\n}\\n::ng-deep .mainVQuadChk .mat-checkbox-frame {\\n border-color: white;\\n}\\n.IdleOrDisconn {\\n background-color: grey;\\n color: white;\\n font-variant: all-petite-caps;\\n -moz-text-align-last: center;\\n text-align-last: center;\\n}\\n.Connected {\\n background-color: yellow;\\n font-variant: all-petite-caps;\\n -moz-text-align-last: center;\\n text-align-last: center;\\n}\\n.IncomingOrAnswering {\\n background-color: blueviolet;\\n color: white;\\n font-variant: all-petite-caps;\\n -moz-text-align-last: center;\\n text-align-last: center;\\n}\\n.otherCallStats {\\n background-color: orange;\\n color: white;\\n font-variant: all-petite-caps;\\n -moz-text-align-last: center;\\n text-align-last: center;\\n}\\n.footer {\\n position: fixed;\\n left: 0;\\n bottom: 0;\\n width: 100%;\\n background-color: red;\\n color: white;\\n text-align: center;\\n}\\n/*start Radio Button*/\\n/*.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}*/\\n/*END Radio Button*/\\n/*start checkbox*/\\n/*https://www.codegrepper.com/code-examples/css/mat+radio+button+color*/\\n/*::ng-deep .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element {\\n opacity: 0.5 !important;\\n background-color: blue !important;\\n}\\n\\n::ng-deep .mat-radio-button.mat-accent .mat-radio-inner-circle {\\n background-color: blue !important;\\n}\\n\\n::ng-deep.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\\n border-color: blue !important;\\n}*/\\n.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}\\n.mat-radio-button {\\n font-size: 14px;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n}\\n:host ::ng-deep .mat-form-field-outline-start,\\n:host ::ng-deep .mat-form-field-outline-gap,\\n:host ::ng-deep .mat-form-field-outline-end {\\n background-color: white !important;\\n}\\n.smallRadio .mat-radio-container {\\n height: 12px;\\n width: 12px;\\n}\\n.smallRadio .mat-radio-outer-circle {\\n height: 12px;\\n width: 12px;\\n}\\n.smallRadio .mat-radio-inner-circle {\\n height: 12px;\\n width: 12px;\\n}\\n.smallRadio .mat-radio-button .mat-radio-ripple {\\n height: 24px;\\n width: 24px;\\n left: calc(50% - 12px);\\n top: calc(50% - 12px);\\n}\\n/*::ng-deep .mat-checkbox-layout {\\n width: 15px;\\n height: 15px;\\n}\\n\\n.checkboxsize .defaultMat .mat-checkbox-inner-container {\\n width: 15px;\\n height: 15px;\\n}\\n\\n::ng-deep .mat-checkbox .mat-checkbox-frame {\\n width: 15px;\\n height: 15px;\\n}\\n::ng-deep .mainChk .mat-checkbox-frame {\\n border-color: white;\\n}\\n\\n::ng-deep .mat-checkbox .mat-checkbox-ripple {\\n width: 15px;\\n height: 15px;\\n}\\n::ng-deep .mat-ripple-element {\\n width: 15px;\\n height: 15px;\\n display: none !important;\\n}\\n\\n::ng-deep .mat-checkbox-checked .mat-checkbox-background,\\n::ng-deep .mat-checkbox-indeterminate .mat-checkbox-background {\\n width: 15px;\\n height: 15px;\\n}\\n::ng-deep .mat-checkbox-background {\\n width: 15px;\\n height: 15px;\\n}*/\\n/*::ng-deep .mat-checkbox-checked .mat-checkbox-background {\\n background-color: blue !important;\\n top: 10px;\\n width: 20px;\\n height: 20px;\\n}*/\\n/*end checkbox*/\\n/*https: //blog.hubspot.com/website/css-fade-in\\nhttps: //stackoverflow.com/questions/30125705/css-how-to-make-an-element-fade-in-and-then-fade-out\\nhttp://css3.bradshawenterprises.com/cfimg/\\nhttps://stackblitz.com/edit/angular-material-prototype-animated-icon?file=src%2Fapp%2Fmat-animated-icon%2Fmat-animated-icon.component.scss\\n*/\\n/*https: //codepen.io/goorak7/pen/bNJZLm*/\\n.blink {\\n animation: blink 2s steps(5, start) infinite;\\n -webkit-animation: blink 1s steps(5, start) infinite;\\n}\\n@keyframes blink {\\n to {\\n visibility: hidden;\\n }\\n}\\n@-webkit-keyframes blink {\\n to {\\n visibility: hidden;\\n }\\n}\\n/*https: //css-tricks.com/animations-the-angular-way/*/\\n.click {\\n cursor: pointer;\\n}\\n/*.faIcn-rotate-90 {\\n -webkit-transform: rotate(90deg);\\n -moz-transform: rotate(90deg);\\n -ms-transform: rotate(90deg);\\n -o-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}*/\\n/*//https://stackoverflow.com/questions/53312640/how-to-change-size-of-mat-icon-on-angular-material/53312754\\n //https://stackoverflow.com/questions/48776142/change-svg-size-in-angular-material-2-mat-icon-using-vanilla-css-or-html?rq=1\\n.mat-icon {\\n font-size: 24px;\\n transform: scale(2);\\n}*/\\n/*.mat-icon-button {\\n width: 24px !important;\\n height: 24px !important;\\n line-height: 24px !important;\\n}*/\\na.disabled {\\n cursor: not-allowed;\\n pointer-events: none;\\n text-decoration: none;\\n}\\n.flex-container {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n /*justify-content: flex-end;\\n align-items: center;\\n min-height: 48px;\\n padding: 0 8px;*/\\n}\\n.divspan {\\n position: relative;\\n border-radius: 30px;\\n padding: 0px 10px 0px 10px;\\n}\\n.PrimaryIPNew {\\n background: #cff6dd;\\n color: #64b5f6;\\n font-variant: all-petite-caps;\\n}\\n.SecondaryIPNew {\\n background: #cff6dd;\\n color: #f44336;\\n font-variant: all-petite-caps;\\n}\\n.blueTick {\\n color: deepskyblue;\\n}\\n.greenTick {\\n color: green;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc3RhdGlzdGljcy9uZXR3b3JrLXN0YXR1cy92cXVhZC9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvc3JjXFxhcHBcXHN0YXRpc3RpY3NcXG5ldHdvcmstc3RhdHVzXFx2cXVhZFxcdnF1YWQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3N0YXRpc3RpY3MvbmV0d29yay1zdGF0dXMvdnF1YWQvdnF1YWQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3N0YXRpc3RpY3MvbmV0d29yay1zdGF0dXMvdnF1YWQvRDpcXFNyY3dlYlxcVlMyMDE3IFByb2plY3RzXFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3ZXJfQW5nTWF0XFxXZWJ2aWV3L3NyY1xcdGhlbWVzXFx0aGVtZS5zY3NzIiwic3JjL2FwcC9zdGF0aXN0aWNzL25ldHdvcmstc3RhdHVzL3ZxdWFkL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9ub2RlX21vZHVsZXNcXEBhbmd1bGFyXFxtYXRlcmlhbFxcX3RoZW1pbmcuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtR0FBQTtBQUVBO0VBQ0UsNEJBQUE7QUNBRjtBRElBO0VBQ0UsYUFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtBQ0RGO0FESUE7O0VBRUUsbUJBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7RUFDQSw2QkFBQTtFQUNBLGVBQUE7RUFDQSxrREFBQTtFQUNBO3dFQUFBO0VBRUEsK0JBQUE7RUFDQSxnQ0FBQTtFQUNBLGVBQUE7QUNERjtBRElBOztFQUVFLDJCQUFBO0VBQ0EsZUFBQTtFQUNBLGtEQUFBO0VBQ0E7d0VBQUE7RUFFQSwrQkFBQTtFQUNBLGdDQUFBO0FDREY7QURJQSxXQUFBO0FBQ0E7O0VBRUUseUJBQUE7QUNERjtBREtFO0VB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RUFDQSxxQkFBQTtBQ2lvTEo7QUQ3bkxFO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0EsbUJBQUE7TUFBQSxlQUFBO0VBQ0E7OztrQkFBQTtBQ21vTEo7QUQ3bkxBO0VBQ0Usa0JBQUE7RUFDQSxtQkFBQTtFQUNBLDBCQUFBO0FDZ29MRjtBRDduTEE7RUFDRSxtQkFBQTtFQUNBLGNBQUE7RUFDQSw2QkFBQTtBQ2dvTEY7QUQ3bkxBO0VBQ0UsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsNkJBQUE7QUNnb0xGO0FEN25MQTtFQUNFLGtCQUFBO0FDZ29MRjtBRDluTEE7RUFDRSxZQUFBO0FDaW9MRiIsImZpbGUiOiJzcmMvYXBwL3N0YXRpc3RpY3MvbmV0d29yay1zdGF0dXMvdnF1YWQvdnF1YWQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKmh0dHBzOi8vc3RhY2tibGl0ei5jb20vZWRpdC9hbmd1bGFyLW5lc3RlZC1tYXQtdGFibGU/ZmlsZT1hcHAlMkZ0YWJsZS1leHBhbmRhYmxlLXJvd3MtZXhhbXBsZS50cyovXHJcblxyXG4ub3V0ZXJUYWJsZSB7XHJcbiAgLyp3aWR0aDogMjAwMHB4ICFpbXBvcnRhbnQ7Ki9cclxufVxyXG5cclxuXHJcbi5kaXZGbG93IHtcclxuICBoZWlnaHQ6IDc2MHB4O1xyXG4gIG1heC1oZWlnaHQ6IDgwMHB4O1xyXG4gIG92ZXJmbG93OiBhdXRvO1xyXG59XHJcblxyXG4ub3V0ZXJUYWJsZSB0aCxcclxuLmlubmVyVGFibGUgdGgge1xyXG4gIGJhY2tncm91bmQ6ICMxOTc2RDI7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxuICAvKmZvbnQtZmFtaWx5OidTZWdvZSBVSScsIFRhaG9tYSwgR2VuZXZhLCBWZXJkYW5hLCBzYW5zLXNlcmlmO1xyXG4gIGZvbnQtZmFtaWx5OiBDYW1icmlhLCBDb2NoaW4sIEdlb3JnaWEsIFRpbWVzLCBUaW1lcyBOZXcgUm9tYW4sIHNlcmlmOyovXHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2M2YzZjNjtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M2YzZjNjtcclxuICAvKndpZHRoOjEyMHB4OyovXHJcbn1cclxuXHJcbi5vdXRlclRhYmxlIHRkLFxyXG4uaW5uZXJUYWJsZSB0ZCB7XHJcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxuICAvKmZvbnQtZmFtaWx5OiAnU2Vnb2UgVUknLCBUYWhvbWEsIEdlbmV2YSwgVmVyZGFuYSwgc2Fucy1zZXJpZjtcclxuICBmb250LWZhbWlseTogQ2FtYnJpYSwgQ29jaGluLCBHZW9yZ2lhLCBUaW1lcywgVGltZXMgTmV3IFJvbWFuLCBzZXJpZjsqL1xyXG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjNmM2YzY7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNmM2YzY7XHJcbn1cclxuXHJcbi8qZWx1bWFsYWkqL1xyXG4ub3V0ZXJUYWJsZSB0cixcclxuLmlubmVyVGFibGUgdHIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUZBRkE7XHJcbn1cclxuXHJcblxyXG4gIC5pbm5lclRhYmxlIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgLmlubmVyVGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcclxuICAgIGJhY2tncm91bmQ6ICNDOURGRjQ7XHJcbiAgfVxyXG5cclxuICAuaW5uZXJUYWJsZSB0cjpudGgtY2hpbGQob2RkKSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjRkZGO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICB0ci5leGFtcGxlLWRldGFpbC1yb3cge1xyXG4gICAgaGVpZ2h0OiAwO1xyXG4gIH1cclxuXHJcbiAgLyplbHVtYWxhaSovXHJcbiAgdHIuZXhhbXBsZS1lbGVtZW50LXJvdzpub3QoLmV4YW1wbGUtZXhwYW5kZWQtcm93KTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjRUJGM0ZFOyAvKiM3Nzc7Ki9cclxuICAgIGNvbG9yOiBibHVldmlvbGV0O1xyXG4gIH1cclxuXHJcblxyXG4gIC8qZWx1bWFsYWkqL1xyXG50ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1leHBhbmRlZC1yb3cpOmFjdGl2ZSB7XHJcbiAgLypiYWNrZ3JvdW5kOiAjZWZlZmVmOyovXHJcbiAgYmFja2dyb3VuZDogI0VCRjNGRTsgXHJcbiAgY29sb3I6IGJsdWV2aW9sZXQ7XHJcbn1cclxuICAvKi5vdXRlclRhYmxlIHRyLmV4YW1wbGUtZWxlbWVudC1yb3c6bm90KC5leGFtcGxlLWRldGFpbC1yb3cpOm50aC1jaGlsZChldmVuKSB7XHJcbiAgYmFja2dyb3VuZDogI0M5REZGNDtcclxufVxyXG5cclxuLm91dGVyVGFibGUgdHIuZXhhbXBsZS1lbGVtZW50LXJvdzpub3QoLmV4YW1wbGUtZGV0YWlsLXJvdyk6bnRoLWNoaWxkKG9kZCkge1xyXG4gIGJhY2tncm91bmQ6ICNGRkY7XHJcbn0qL1xyXG4gIC5leGFtcGxlLWVsZW1lbnQtcm93IHRkIHtcclxuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XHJcbiAgfVxyXG5cclxuICAuZXhhbXBsZS1lbGVtZW50LWRldGFpbCB7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgLypkaXNwbGF5OiBmbGV4OyovXHJcbiAgfVxyXG4gIC8qaHR0cHM6Ly93d3cuZnJlYWt5am9sbHkuY29tL2V4cGFuZC1jb2xsYXBzZS1zaW5nbGUtb3ItbXVsdGlwbGUtcm93cy1pbi1hbmd1bGFyLTk4LW1hdGVyaWFsLXRhYmxlLW11bHRpcGxlLXNpbmdsZS8qL1xyXG4gIC8qLmV4YW1wbGUtZWxlbWVudC1kZXRhaWwge1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNlMWUxZTE7XHJcbiAgYm94LXNoYWRvdzogaW5zZXQgMnB4IDNweCA4cHggI2MxYzFjMTtcclxuICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbn0qL1xyXG4gIC5pbm5lci10YWJsZSB7XHJcbiAgICB3aWR0aDogMTEwMHB4O1xyXG4gIH1cclxuXHJcbiAgLyouaW5uZXItdGFibGUgbWF0LWZvcm0tZmllbGQge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgLm91dGVyVGFibGUgbWF0LWZvcm0tZmllbGQge1xyXG4gICAgbWFyZ2luLXRvcDogMTVweDtcclxuICAgIHdpZHRoOiA3MCU7XHJcbiAgfSovXHJcblxyXG4gIC5kaXZIZWFyZGVyIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAyMDBweDtcclxuICAgIGZvbnQtc2l6ZTogbGFyZ2U7XHJcbiAgICBtYXJnaW4tcmlnaHQ6MTAwcHg7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbi5oaWdobGlnaHQge1xyXG4gIGNvbG9yOiBibHVldmlvbGV0O1xyXG4gIGZvbnQtdmFyaWFudDogYWxsLXBldGl0ZS1jYXBzO1xyXG59XHJcbiAgLypodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80NjYzMjA5OC9hY2Nlc3NpbmctcHJpbWFyeS1jb2xvci13aGljaC1pcy1kZWZpbmVkLWN1c3RvbS10aGVtZS1pbnNpZGUtY29tcG9uZW50cy1zY3NzXHJcbiAgaHR0cHM6Ly9tZWRpdW0uY29tL0B0b21hc3RyYWphbi90aGUtY29tcGxldGUtZ3VpZGUtdG8tYW5ndWxhci1tYXRlcmlhbC10aGVtZXMtNGQxNjVhOWQyNGQxXHJcbiovXHJcbiAgQGltcG9ydCAnLi4vLi4vLi4vLi4vdGhlbWVzL3RoZW1lLnNjc3MnO1xyXG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjdXN0b20tdGhlbWUsIHByaW1hcnkpO1xyXG4gICR3YXJuOiBtYXAtZ2V0KCRjdXN0b20tdGhlbWUsIHdhcm4pO1xyXG4gICRhY2NlbnQ6IG1hcC1nZXQoJGN1c3RvbS10aGVtZSwgYWNjZW50KTtcclxuXHJcblxyXG4gIC5ncmVlbi1pY29uIHtcclxuICAgIGNvbG9yOiBncmVlbjtcclxuICB9XHJcblxyXG4gIC5TdGFydCwgLlByaW1hcnlJUCB7XHJcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcclxuICB9XHJcblxyXG4gIC5TdG9wLCAuU2Vjb25kYXJ5SVAge1xyXG4gICAgY29sb3I6IG1hdC1jb2xvcigkd2Fybik7XHJcbiAgfVxyXG5cclxuLlN0YXJ0IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZ3JlZW47XHJcbiAgY29sb3I6IHdoaXRlOyBcclxufVxyXG4uU3RvcCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xyXG4gIGNvbG9yOiB3aGl0ZTsgXHJcbn1cclxuOjpuZy1kZWVwIC5tYWluVlF1YWRDaGsgLm1hdC1jaGVja2JveC1mcmFtZSB7XHJcbiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuXHJcbi5JZGxlT3JEaXNjb25uIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5O1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBmb250LXZhcmlhbnQ6IGFsbC1wZXRpdGUtY2FwcztcclxuICB0ZXh0LWFsaWduLWxhc3Q6Y2VudGVyO1xyXG59XHJcblxyXG4uQ29ubmVjdGVkIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XHJcbiAgZm9udC12YXJpYW50OiBhbGwtcGV0aXRlLWNhcHM7XHJcbiAgdGV4dC1hbGlnbi1sYXN0OiBjZW50ZXI7XHJcbn1cclxuXHJcbi5JbmNvbWluZ09yQW5zd2VyaW5nIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVldmlvbGV0O1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBmb250LXZhcmlhbnQ6IGFsbC1wZXRpdGUtY2FwcztcclxuICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcclxufVxyXG5cclxuLm90aGVyQ2FsbFN0YXRzIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGZvbnQtdmFyaWFudDogYWxsLXBldGl0ZS1jYXBzO1xyXG4gIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xyXG59XHJcblxyXG4gIC5mb290ZXIge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgbGVmdDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuICAvKnN0YXJ0IFJhZGlvIEJ1dHRvbiovXHJcbiAgLyoubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICBtYXJnaW4tbGVmdDogMTZweDtcclxufSovXHJcbiAgLypFTkQgUmFkaW8gQnV0dG9uKi9cclxuICAvKnN0YXJ0IGNoZWNrYm94Ki9cclxuXHJcbi8qaHR0cHM6Ly93d3cuY29kZWdyZXBwZXIuY29tL2NvZGUtZXhhbXBsZXMvY3NzL21hdCtyYWRpbytidXR0b24rY29sb3IqL1xyXG4vKjo6bmctZGVlcCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xyXG4gIG9wYWNpdHk6IDAuNSAhaW1wb3J0YW50O1xyXG4gIGJhY2tncm91bmQtY29sb3I6IGJsdWUgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IGJsdWUgIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgYm9yZGVyLWNvbG9yOiBibHVlICFpbXBvcnRhbnQ7XHJcbn0qL1xyXG5cclxuLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbn1cclxuXHJcbi5tYXQtcmFkaW8tYnV0dG9uIHtcclxuICBmb250LXNpemU6IDE0cHg7XHJcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbn1cclxuXHJcbjpob3N0IDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydCxcclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWdhcCwgLypGb3IgYWJvdmUgbWF0LWxhYmVsIC0gSU1QKi9cclxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWVuZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnNtYWxsUmFkaW8gLm1hdC1yYWRpby1jb250YWluZXIge1xyXG4gIGhlaWdodDogMTJweDtcclxuICB3aWR0aDogMTJweDtcclxufVxyXG5cclxuLnNtYWxsUmFkaW8gLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTJweDtcclxuICB3aWR0aDogMTJweDtcclxufVxyXG5cclxuLnNtYWxsUmFkaW8gLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xyXG4gIGhlaWdodDogMTJweDtcclxuICB3aWR0aDogMTJweDtcclxufVxyXG5cclxuLnNtYWxsUmFkaW8gLm1hdC1yYWRpby1idXR0b24gLm1hdC1yYWRpby1yaXBwbGUge1xyXG4gIGhlaWdodDogMjRweDtcclxuICB3aWR0aDogMjRweDtcclxuICBsZWZ0OiBjYWxjKDUwJSAtIDEycHgpO1xyXG4gIHRvcDogY2FsYyg1MCUgLSAxMnB4KTtcclxufVxyXG5cclxuXHJcbi8qOjpuZy1kZWVwIC5tYXQtY2hlY2tib3gtbGF5b3V0IHtcclxuICB3aWR0aDogMTVweDtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbn1cclxuXHJcbi5jaGVja2JveHNpemUgLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXIge1xyXG4gIHdpZHRoOiAxNXB4O1xyXG4gIGhlaWdodDogMTVweDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtY2hlY2tib3ggLm1hdC1jaGVja2JveC1mcmFtZSB7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG59XHJcbjo6bmctZGVlcCAubWFpbkNoayAubWF0LWNoZWNrYm94LWZyYW1lIHtcclxuICBib3JkZXItY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LXJpcHBsZSB7XHJcbiAgd2lkdGg6IDE1cHg7XHJcbiAgaGVpZ2h0OiAxNXB4O1xyXG59XHJcbjo6bmctZGVlcCAubWF0LXJpcHBsZS1lbGVtZW50IHtcclxuICB3aWR0aDogMTVweDtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCxcclxuOjpuZy1kZWVwIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xyXG4gIHdpZHRoOiAxNXB4O1xyXG4gIGhlaWdodDogMTVweDtcclxufVxyXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcclxuICB3aWR0aDogMTVweDtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbn0qL1xyXG5cclxuXHJcbiAgLyo6Om5nLWRlZXAgLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZSAhaW1wb3J0YW50O1xyXG4gIHRvcDogMTBweDtcclxuICB3aWR0aDogMjBweDtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbn0qL1xyXG5cclxuIC8qZW5kIGNoZWNrYm94Ki9cclxuXHJcblxyXG4gIC8qaHR0cHM6IC8vYmxvZy5odWJzcG90LmNvbS93ZWJzaXRlL2Nzcy1mYWRlLWluXHJcbmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zMDEyNTcwNS9jc3MtaG93LXRvLW1ha2UtYW4tZWxlbWVudC1mYWRlLWluLWFuZC10aGVuLWZhZGUtb3V0XHJcbmh0dHA6Ly9jc3MzLmJyYWRzaGF3ZW50ZXJwcmlzZXMuY29tL2NmaW1nL1xyXG5odHRwczovL3N0YWNrYmxpdHouY29tL2VkaXQvYW5ndWxhci1tYXRlcmlhbC1wcm90b3R5cGUtYW5pbWF0ZWQtaWNvbj9maWxlPXNyYyUyRmFwcCUyRm1hdC1hbmltYXRlZC1pY29uJTJGbWF0LWFuaW1hdGVkLWljb24uY29tcG9uZW50LnNjc3NcclxuKi9cclxuICAvKmh0dHBzOiAvL2NvZGVwZW4uaW8vZ29vcmFrNy9wZW4vYk5KWkxtKi9cclxuICAuYmxpbmsge1xyXG4gICAgYW5pbWF0aW9uOiBibGluayAycyBzdGVwcyg1LCBzdGFydCkgaW5maW5pdGU7XHJcbiAgICAtd2Via2l0LWFuaW1hdGlvbjogYmxpbmsgMXMgc3RlcHMoNSwgc3RhcnQpIGluZmluaXRlO1xyXG4gIH1cclxuXHJcbiAgQGtleWZyYW1lcyBibGluayB7XHJcbiAgICB0byB7XHJcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEAtd2Via2l0LWtleWZyYW1lcyBibGluayB7XHJcbiAgICB0byB7XHJcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIH1cclxuICB9XHJcbiAgLypodHRwczogLy9jc3MtdHJpY2tzLmNvbS9hbmltYXRpb25zLXRoZS1hbmd1bGFyLXdheS8qL1xyXG4gIC5jbGljayB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG4gIC8qLmZhSWNuLXJvdGF0ZS05MCB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XHJcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XHJcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcclxuICAtby10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xyXG59Ki9cclxuICAvKi8vaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTMzMTI2NDAvaG93LXRvLWNoYW5nZS1zaXplLW9mLW1hdC1pY29uLW9uLWFuZ3VsYXItbWF0ZXJpYWwvNTMzMTI3NTRcclxuICAvL2h0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ4Nzc2MTQyL2NoYW5nZS1zdmctc2l6ZS1pbi1hbmd1bGFyLW1hdGVyaWFsLTItbWF0LWljb24tdXNpbmctdmFuaWxsYS1jc3Mtb3ItaHRtbD9ycT0xXHJcbi5tYXQtaWNvbiB7XHJcbiAgZm9udC1zaXplOiAyNHB4O1xyXG4gIHRyYW5zZm9ybTogc2NhbGUoMik7XHJcbn0qL1xyXG4gIC8qLm1hdC1pY29uLWJ1dHRvbiB7XHJcbiAgd2lkdGg6IDI0cHggIWltcG9ydGFudDtcclxuICBoZWlnaHQ6IDI0cHggIWltcG9ydGFudDtcclxuICBsaW5lLWhlaWdodDogMjRweCAhaW1wb3J0YW50O1xyXG59Ki9cclxuICBhLmRpc2FibGVkIHtcclxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB9XHJcblxyXG5cclxuICAuZmxleC1jb250YWluZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIC8qanVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XHJcbiAgcGFkZGluZzogMCA4cHg7Ki9cclxuICB9XHJcblxyXG4uZGl2c3BhbiB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJvcmRlci1yYWRpdXM6IDMwcHg7XHJcbiAgcGFkZGluZzogMHB4IDEwcHggMHB4IDEwcHg7XHJcbn1cclxuXHJcbi5QcmltYXJ5SVBOZXcge1xyXG4gIGJhY2tncm91bmQ6ICNjZmY2ZGQ7XHJcbiAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XHJcbiAgZm9udC12YXJpYW50OiBhbGwtcGV0aXRlLWNhcHM7XHJcbn1cclxuXHJcbi5TZWNvbmRhcnlJUE5ldyB7XHJcbiAgYmFja2dyb3VuZDogI2NmZjZkZDtcclxuICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcclxuICBmb250LXZhcmlhbnQ6IGFsbC1wZXRpdGUtY2FwcztcclxufVxyXG5cclxuLmJsdWVUaWNre1xyXG4gIGNvbG9yOmRlZXBza3libHVlO1xyXG59XHJcbi5ncmVlblRpY2sge1xyXG4gIGNvbG9yOiBncmVlbjtcclxufVxyXG4iLCIvKmh0dHBzOi8vc3RhY2tibGl0ei5jb20vZWRpdC9hbmd1bGFyLW5lc3RlZC1tYXQtdGFibGU/ZmlsZT1hcHAlMkZ0YWJsZS1leHBhbmRhYmxlLXJvd3MtZXhhbXBsZS50cyovXG4ub3V0ZXJUYWJsZSB7XG4gIC8qd2lkdGg6IDIwMDBweCAhaW1wb3J0YW50OyovXG59XG5cbi5kaXZGbG93IHtcbiAgaGVpZ2h0OiA3NjBweDtcbiAgbWF4LWhlaWdodDogODAwcHg7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4ub3V0ZXJUYWJsZSB0aCxcbi5pbm5lclRhYmxlIHRoIHtcbiAgYmFja2dyb3VuZDogIzE5NzZEMjtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIC8qZm9udC1mYW1pbHk6J1NlZ29lIFVJJywgVGFob21hLCBHZW5ldmEsIFZlcmRhbmEsIHNhbnMtc2VyaWY7XG4gIGZvbnQtZmFtaWx5OiBDYW1icmlhLCBDb2NoaW4sIEdlb3JnaWEsIFRpbWVzLCBUaW1lcyBOZXcgUm9tYW4sIHNlcmlmOyovXG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjNmM2YzY7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzZjNmM2O1xuICAvKndpZHRoOjEyMHB4OyovXG59XG5cbi5vdXRlclRhYmxlIHRkLFxuLmlubmVyVGFibGUgdGQge1xuICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIC8qZm9udC1mYW1pbHk6ICdTZWdvZSBVSScsIFRhaG9tYSwgR2VuZXZhLCBWZXJkYW5hLCBzYW5zLXNlcmlmO1xuICBmb250LWZhbWlseTogQ2FtYnJpYSwgQ29jaGluLCBHZW9yZ2lhLCBUaW1lcywgVGltZXMgTmV3IFJvbWFuLCBzZXJpZjsqL1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYzZjNmM2O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M2YzZjNjtcbn1cblxuLyplbHVtYWxhaSovXG4ub3V0ZXJUYWJsZSB0cixcbi5pbm5lclRhYmxlIHRyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZBRkFGQTtcbn1cblxuLmlubmVyVGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmlubmVyVGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgYmFja2dyb3VuZDogI0M5REZGNDtcbn1cblxuLmlubmVyVGFibGUgdHI6bnRoLWNoaWxkKG9kZCkge1xuICBiYWNrZ3JvdW5kOiAjRkZGO1xufVxuXG50ci5leGFtcGxlLWRldGFpbC1yb3cge1xuICBoZWlnaHQ6IDA7XG59XG5cbi8qZWx1bWFsYWkqL1xudHIuZXhhbXBsZS1lbGVtZW50LXJvdzpub3QoLmV4YW1wbGUtZXhwYW5kZWQtcm93KTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNFQkYzRkU7XG4gIC8qIzc3NzsqL1xuICBjb2xvcjogYmx1ZXZpb2xldDtcbn1cblxuLyplbHVtYWxhaSovXG50ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1leHBhbmRlZC1yb3cpOmFjdGl2ZSB7XG4gIC8qYmFja2dyb3VuZDogI2VmZWZlZjsqL1xuICBiYWNrZ3JvdW5kOiAjRUJGM0ZFO1xuICBjb2xvcjogYmx1ZXZpb2xldDtcbn1cblxuLyoub3V0ZXJUYWJsZSB0ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1kZXRhaWwtcm93KTpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kOiAjQzlERkY0O1xufVxuXG4ub3V0ZXJUYWJsZSB0ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1kZXRhaWwtcm93KTpudGgtY2hpbGQob2RkKSB7XG4gIGJhY2tncm91bmQ6ICNGRkY7XG59Ki9cbi5leGFtcGxlLWVsZW1lbnQtcm93IHRkIHtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbn1cblxuLmV4YW1wbGUtZWxlbWVudC1kZXRhaWwge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKmRpc3BsYXk6IGZsZXg7Ki9cbn1cblxuLypodHRwczovL3d3dy5mcmVha3lqb2xseS5jb20vZXhwYW5kLWNvbGxhcHNlLXNpbmdsZS1vci1tdWx0aXBsZS1yb3dzLWluLWFuZ3VsYXItOTgtbWF0ZXJpYWwtdGFibGUtbXVsdGlwbGUtc2luZ2xlLyovXG4vKi5leGFtcGxlLWVsZW1lbnQtZGV0YWlsIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMWUxZTE7XG4gIGJveC1zaGFkb3c6IGluc2V0IDJweCAzcHggOHB4ICNjMWMxYzE7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn0qL1xuLmlubmVyLXRhYmxlIHtcbiAgd2lkdGg6IDExMDBweDtcbn1cblxuLyouaW5uZXItdGFibGUgbWF0LWZvcm0tZmllbGQge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm91dGVyVGFibGUgbWF0LWZvcm0tZmllbGQge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xuICB3aWR0aDogNzAlO1xufSovXG4uZGl2SGVhcmRlciB7XG4gIG1hcmdpbi1sZWZ0OiAyMDBweDtcbiAgZm9udC1zaXplOiBsYXJnZTtcbiAgbWFyZ2luLXJpZ2h0OiAxMDBweDtcbn1cblxuLmhpZ2hsaWdodCB7XG4gIGNvbG9yOiBibHVldmlvbGV0O1xuICBmb250LXZhcmlhbnQ6IGFsbC1wZXRpdGUtY2Fwcztcbn1cblxuLypodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80NjYzMjA5OC9hY2Nlc3NpbmctcHJpbWFyeS1jb2xvci13aGljaC1pcy1kZWZpbmVkLWN1c3RvbS10aGVtZS1pbnNpZGUtY29tcG9uZW50cy1zY3NzXG4gIGh0dHBzOi8vbWVkaXVtLmNvbS9AdG9tYXN0cmFqYW4vdGhlLWNvbXBsZXRlLWd1aWRlLXRvLWFuZ3VsYXItbWF0ZXJpYWwtdGhlbWVzLTRkMTY1YTlkMjRkMVxuKi9cbi8qaHR0cHM6IC8vc3RhY2tibGl0ei5jb20vZWRpdC9hbmd1bGFyLW1hdGVyaWFsLXRoZW1lLXNlY3JldHM/ZW1iZWQ9MSZmaWxlPXNyYyUyRnRoZW1lLnNjc3Mmc291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9T3BlbitTYW5zOjQwMCwzMDAsMzAwaXRhbGljLDQwMGl0YWxpYyw2MDAsNjAwaXRhbGljLDcwMCw3MDBpdGFsaWMsODAwLDgwMGl0YWxpYyZzdWJzZXQ9bGF0aW4tZXh0Jyk7XG5AaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzozMDAsNDAwLDUwMCw3MDAsNDAwaXRhbGljJmFtcDtzdWJzZXQ9bGF0aW4tZXh0Jyk7Ki9cbi8qQGltcG9ydCAnLi4vY3NzL0dvb2dsZUZvbnRzT3BlblNhbnMuY3NzJztcbkBpbXBvcnQgJy4uL2Nzcy9Hb29nbGVGb250c1JvYm90by5jc3MnOyovXG4vKiBUaGVtZSBmb3IgdGhlIHJpcHBsZSBlbGVtZW50cy4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgbWF0ZXJpYWwvbm8tcHJlZml4ZXMgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGZvbnQtc2l6ZTogOXB4O1xufVxuXG4ubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbn1cblxuLm1hdC1oMSwgLm1hdC1oZWFkbGluZSwgLm1hdC10eXBvZ3JhcGh5IGgxIHtcbiAgZm9udDogNDAwIDI0cHgvMzJweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbn1cblxuLm1hdC1oMiwgLm1hdC10aXRsZSwgLm1hdC10eXBvZ3JhcGh5IGgyIHtcbiAgZm9udDogNTAwIDIwcHgvMzJweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbn1cblxuLm1hdC1oMywgLm1hdC1zdWJoZWFkaW5nLTIsIC5tYXQtdHlwb2dyYXBoeSBoMyB7XG4gIGZvbnQ6IDQwMCAxNnB4LzI4cHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG5cbi5tYXQtaDQsIC5tYXQtc3ViaGVhZGluZy0xLCAubWF0LXR5cG9ncmFwaHkgaDQge1xuICBmb250OiA0MDAgMTVweC8yNHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxNnB4O1xufVxuXG4ubWF0LWg1LCAubWF0LXR5cG9ncmFwaHkgaDUge1xuICBmb250OiA0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTJweDtcbn1cblxuLm1hdC1oNiwgLm1hdC10eXBvZ3JhcGh5IGg2IHtcbiAgZm9udDogNDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDEycHg7XG59XG5cbi5tYXQtYm9keS1zdHJvbmcsIC5tYXQtYm9keS0yIHtcbiAgZm9udDogNTAwIDE0cHgvMjRweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1ib2R5LCAubWF0LWJvZHktMSwgLm1hdC10eXBvZ3JhcGh5IHtcbiAgZm9udDogNDAwIDE0cHgvMjBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5tYXQtYm9keSBwLCAubWF0LWJvZHktMSBwLCAubWF0LXR5cG9ncmFwaHkgcCB7XG4gIG1hcmdpbjogMCAwIDEycHg7XG59XG5cbi5tYXQtc21hbGwsIC5tYXQtY2FwdGlvbiB7XG4gIGZvbnQ6IDQwMCAxMnB4LzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtZGlzcGxheS00LCAubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTQge1xuICBmb250OiAzMDAgMTEycHgvMTEycHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wNWVtO1xuICBtYXJnaW46IDAgMCA1NnB4O1xufVxuXG4ubWF0LWRpc3BsYXktMywgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0zIHtcbiAgZm9udDogNDAwIDU2cHgvNTZweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gIG1hcmdpbjogMCAwIDY0cHg7XG59XG5cbi5tYXQtZGlzcGxheS0yLCAubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTIge1xuICBmb250OiA0MDAgNDVweC80OHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDA1ZW07XG4gIG1hcmdpbjogMCAwIDY0cHg7XG59XG5cbi5tYXQtZGlzcGxheS0xLCAubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTEge1xuICBmb250OiA0MDAgMzRweC80MHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCA2NHB4O1xufVxuXG4ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICBmb250OiA0MDAgMTRweC8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWJ1dHRvbiwgLm1hdC1yYWlzZWQtYnV0dG9uLCAubWF0LWljb24tYnV0dG9uLCAubWF0LXN0cm9rZWQtYnV0dG9uLFxuLm1hdC1mbGF0LWJ1dHRvbiwgLm1hdC1mYWIsIC5tYXQtbWluaS1mYWIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWNhcmQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtY2FyZC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1jYXJkLWhlYWRlciAubWF0LWNhcmQtdGl0bGUge1xuICBmb250LXNpemU6IDIwcHg7XG59XG5cbi5tYXQtY2FyZC1zdWJ0aXRsZSxcbi5tYXQtY2FyZC1jb250ZW50IHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubWF0LWNoZWNrYm94IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWNoZWNrYm94LWxheW91dCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG5cbi5tYXQtY2hpcCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5tYXQtY2hpcCAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbixcbi5tYXQtY2hpcCAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uIHtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4ubWF0LXRhYmxlIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWhlYWRlci1jZWxsIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LWNlbGwsIC5tYXQtZm9vdGVyLWNlbGwge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5tYXQtY2FsZW5kYXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsLFxuLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlciB0aCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLm1hdC1kaWFsb2ctdGl0bGUge1xuICBmb250OiA1MDAgMjBweC8zMnB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudCB7XG4gIGZvbnQ6IDQwMCAxNHB4LzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtZm9ybS1maWVsZCB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDEuMzQzNzVlbTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24sXG4ubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMTUwJTtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1O1xufVxuLm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24tYnV0dG9uLFxuLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9uIHtcbiAgaGVpZ2h0OiAxLjVlbTtcbiAgd2lkdGg6IDEuNWVtO1xufVxuLm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24tYnV0dG9uIC5tYXQtaWNvbixcbi5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24ge1xuICBoZWlnaHQ6IDEuMTI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgcGFkZGluZzogMC41ZW0gMDtcbiAgYm9yZGVyLXRvcDogMC44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzMzMzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzQzMzMzMyU7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAtMC44NDM3NWVtO1xuICBwYWRkaW5nLXRvcDogMC44NDM3NWVtO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMzQzNzVlbTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJvdHRvbTogMS4zNDM3NWVtO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIge1xuICBmb250LXNpemU6IDc1JTtcbiAgbWFyZ2luLXRvcDogMC42NjY2NjY2NjY3ZW07XG4gIHRvcDogY2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMS4yNWVtO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuNDM3NWVtIDA7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzMzMzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzQzMzMzMyU7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM1MzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMS4yODEyNWVtO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBib3R0b206IDEuMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIge1xuICBtYXJnaW4tdG9wOiAwLjU0MTY2NjY2NjdlbTtcbiAgdG9wOiBjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSk7XG59XG5cbkBtZWRpYSBwcmludCB7XG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KTtcbiAgfVxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KTtcbiAgfVxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSk7XG4gIH1cbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgcGFkZGluZzogMC4yNWVtIDAgMC43NWVtIDA7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMS4wOTM3NWVtO1xuICBtYXJnaW4tdG9wOiAtMC41ZW07XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzMzMzMzMyU7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzQzMzMzMyU7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgcGFkZGluZzogMWVtIDAgMWVtIDA7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMS44NDM3NWVtO1xuICBtYXJnaW4tdG9wOiAtMC4yNWVtO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzMzMzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuXG4ubWF0LWdyaWQtdGlsZS1oZWFkZXIsXG4ubWF0LWdyaWQtdGlsZS1mb290ZXIge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4ubWF0LWdyaWQtdGlsZS1oZWFkZXIgLm1hdC1saW5lLFxuLm1hdC1ncmlkLXRpbGUtZm9vdGVyIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtZ3JpZC10aWxlLWhlYWRlciAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMiksXG4ubWF0LWdyaWQtdGlsZS1mb290ZXIgLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG5pbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIG1hcmdpbi10b3A6IC0wLjA2MjVlbTtcbn1cblxuLm1hdC1tZW51LWl0ZW0ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLm1hdC1wYWdpbmF0b3IsXG4ubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1zZWxlY3Qge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBoZWlnaHQ6IDEuMTI1ZW07XG59XG5cbi5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1zdGVwcGVyLXZlcnRpY2FsLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1zdGVwLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtdGFiLWdyb3VwIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXRhYi1sYWJlbCwgLm1hdC10YWItbGluayB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LXRvb2xiYXIsXG4ubWF0LXRvb2xiYXIgaDEsXG4ubWF0LXRvb2xiYXIgaDIsXG4ubWF0LXRvb2xiYXIgaDMsXG4ubWF0LXRvb2xiYXIgaDQsXG4ubWF0LXRvb2xiYXIgaDUsXG4ubWF0LXRvb2xiYXIgaDYge1xuICBmb250OiA1MDAgMjBweC8zMnB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDA7XG59XG5cbi5tYXQtdG9vbHRpcCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBwYWRkaW5nLXRvcDogNnB4O1xuICBwYWRkaW5nLWJvdHRvbTogNnB4O1xufVxuXG4ubWF0LXRvb2x0aXAtaGFuZHNldCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cblxuLm1hdC1saXN0LWl0ZW0ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtbGlzdC1vcHRpb24ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIHtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5lIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMikge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4ubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW0ge1xuICBmb250LXNpemU6IDEycHg7XG59XG4ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5lIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtc3ViaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtb3B0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICBmb250OiA1MDAgMTRweC8yNHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXNpbXBsZS1zbmFja2JhciB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC10cmVlIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXRyZWUtbm9kZSxcbi5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1yaXBwbGUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHksIHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uY2RrLXZpc3VhbGx5LWhpZGRlbiB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBvdXRsaW5lOiAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLmNkay1vdmVybGF5LWNvbnRhaW5lciwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNkay1vdmVybGF5LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMTAwMDtcbn1cbi5jZGstb3ZlcmxheS1jb250YWluZXI6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwMDA7XG59XG5cbi5jZGstb3ZlcmxheS1wYW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgei1pbmRleDogMTAwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xufVxuXG4uY2RrLW92ZXJsYXktYmFja2Ryb3Age1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogMTAwMDtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7XG4gIG9wYWNpdHk6IDA7XG59XG4uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gIG9wYWNpdHk6IDE7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgb3BhY2l0eTogMC42O1xuICB9XG59XG5cbi5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMyKTtcbn1cblxuLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtaW4td2lkdGg6IDFweDtcbiAgbWluLWhlaWdodDogMXB4O1xufVxuXG4uY2RrLWdsb2JhbC1zY3JvbGxibG9jayB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCB7XG4gIC8qISovXG59XG5Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCB7XG4gIC8qISovXG59XG4uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQ7XG59XG5cbi5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6bm90KDotd2Via2l0LWF1dG9maWxsKSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQ7XG59XG5cbnRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZSB7XG4gIHJlc2l6ZTogbm9uZTtcbn1cblxudGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZyB7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDJweCAwICFpbXBvcnRhbnQ7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7XG59XG5cbi5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi5tYXQtb3B0aW9uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LW9wdGlvbjpob3Zlcjpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpLCAubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuLm1hdC1vcHRpb24ubWF0LWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1vcHRpb24ubWF0LW9wdGlvbi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LXByaW1hcnkgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogIzY0YjVmNjtcbn1cblxuLm1hdC1hY2NlbnQgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogeWVsbG93O1xufVxuXG4ubWF0LXdhcm4gLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LW9wdGdyb3VwLWRpc2FibGVkIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC1wc2V1ZG8tY2hlY2tib3gge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5tYXQtcHNldWRvLWNoZWNrYm94OjphZnRlciB7XG4gIGNvbG9yOiAjZmFmYWZhO1xufVxuXG4ubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCB7XG4gIGNvbG9yOiAjYjBiMGIwO1xufVxuXG4ubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSxcbi5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4ubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZDogeWVsbG93O1xufVxuXG4ubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZDogIzY0YjVmNjtcbn1cblxuLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4ubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG59XG5cbi5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxcbi5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQ6ICNiMGIwYjA7XG59XG5cbi5tYXQtZWxldmF0aW9uLXowIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoyIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejMge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16NCB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16NSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16NiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejcge1xuICBib3gtc2hhZG93OiAwcHggNHB4IDVweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDdweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMnB4IDE2cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXo4IHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16OSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTZweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejEwIHtcbiAgYm94LXNoYWRvdzogMHB4IDZweCA2cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMHB4IDE0cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA0cHggMThweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejExIHtcbiAgYm94LXNoYWRvdzogMHB4IDZweCA3cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMXB4IDE1cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA0cHggMjBweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejEyIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejEzIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxM3B4IDE5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjRweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejE0IHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA5cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNHB4IDIxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjZweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejE1IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMjhweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejE2IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoxNyB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTFweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE3cHggMjZweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MTgge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejE5IHtcbiAgYm94LXNoYWRvdzogMHB4IDlweCAxMnB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTlweCAyOXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggN3B4IDM2cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoyMCB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMHB4IDMxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggMzhweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejIxIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MjIge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxNHB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjJweCAzNXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDQycHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoyMyB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE0cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyM3B4IDM2cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejI0IHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWFwcC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtdGhlbWUtbG9hZGVkLW1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1hdXRvY29tcGxldGUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kOiAjNjRiNWY2O1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgb3V0bGluZTogc29saWQgMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cblxuLm1hdC1iYWRnZS1hY2NlbnQgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogeWVsbG93O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1iYWRnZS13YXJuIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogI2Y0NDMzNjtcbn1cblxuLm1hdC1iYWRnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1hdC1iYWRnZS1oaWRkZW4gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1hdC1iYWRnZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjYjliOWI5O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4ubWF0LWJhZGdlLWNvbnRlbnQuX21hdC1hbmltYXRpb24tbm9vcGFibGUge1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4ubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cblxuLm1hdC1iYWRnZS1zbWFsbCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbn1cbi5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLThweDtcbn1cbi5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWJlbG93IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJvdHRvbTogLThweDtcbn1cbi5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNnB4O1xufVxuLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTZweDtcbn1cbi5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLThweDtcbn1cbi5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtOHB4O1xufVxuXG4ubWF0LWJhZGdlLW1lZGl1bSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBsaW5lLWhlaWdodDogMjJweDtcbn1cbi5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xMXB4O1xufVxuLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWJlbG93IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJvdHRvbTogLTExcHg7XG59XG4ubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0yMnB4O1xufVxuW2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yMnB4O1xufVxuLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMjJweDtcbn1cbltkaXI9cnRsXSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0yMnB4O1xufVxuLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMTFweDtcbn1cbi5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTExcHg7XG59XG5bZGlyPXJ0bF0gLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTFweDtcbn1cblxuLm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBsaW5lLWhlaWdodDogMjhweDtcbn1cbi5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTE0cHg7XG59XG4ubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xNHB4O1xufVxuLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTI4cHg7XG59XG4ubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0yOHB4O1xufVxuLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTE0cHg7XG59XG4ubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTE0cHg7XG59XG5bZGlyPXJ0bF0gLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNHB4O1xufVxuXG4ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuXG4ubWF0LWJ1dHRvbiwgLm1hdC1pY29uLWJ1dHRvbiwgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5LCAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5LCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LWJ1dHRvbi5tYXQtYWNjZW50LCAubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnQsIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LWJ1dHRvbi5tYXQtd2FybiwgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiwgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAubWF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLm1hdC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAubWF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAubWF0LXN0cm9rZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLm1hdC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5tYXQtc3Ryb2tlZC1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5tYXQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5tYXQtaWNvbi1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgb3BhY2l0eTogMC4xO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG5cbi5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbn1cblxuLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSkge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZmxhdC1idXR0b24sIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLm1hdC1mYWIsIC5tYXQtbWluaS1mYWIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4ubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksIC5tYXQtZmFiLm1hdC1wcmltYXJ5LCAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAubWF0LWZhYi5tYXQtYWNjZW50LCAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4sIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiwgLm1hdC1mYWIubWF0LXdhcm4sIC5tYXQtbWluaS1mYWIubWF0LXdhcm4ge1xuICBjb2xvcjogd2hpdGU7XG59XG4ubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5tYXQtZmxhdC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAubWF0LWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLm1hdC1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LCAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAubWF0LWZhYi5tYXQtYWNjZW50LCAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4sIC5tYXQtZmFiLm1hdC13YXJuLCAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLm1hdC1mbGF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAubWF0LWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5tYXQtZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5tYXQtZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAubWF0LW1pbmktZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLm1hdC1taW5pLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5tYXQtZmFiLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAubWF0LWZhYi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLm1hdC1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLm1hdC1taW5pLWZhYi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuXG4ubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAubWF0LWZsYXQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LXJhaXNlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLm1hdC1taW5pLWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tYXQtZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5tYXQtbWluaS1mYWI6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWF0LWZhYltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSxcbi5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4ubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4ubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuXG4ubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbltkaXI9cnRsXSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4ubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xufVxuLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JkYmRiZDtcbn1cblxuLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgYm9yZGVyOiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1jYXJkIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1jYXJkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tYXQtY2FyZC5tYXQtY2FyZC1mbGF0Om5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWNhcmQtc3VidGl0bGUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1jaGVja2JveC1jaGVja21hcmsge1xuICBmaWxsOiAjZmFmYWZhO1xufVxuXG4ubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgc3Ryb2tlOiAjZmFmYWZhICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBibGFjay1vbi13aGl0ZSkge1xuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgICBzdHJva2U6ICMwMDAgIWltcG9ydGFudDtcbiAgfVxufVxuXG4ubWF0LWNoZWNrYm94LW1peGVkbWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG59XG5cbi5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLCAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLCAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cblxuLm1hdC1jaGVja2JveC1kaXNhYmxlZC5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IwYjBiMDtcbn1cbi5tYXQtY2hlY2tib3gtZGlzYWJsZWQ6bm90KC5tYXQtY2hlY2tib3gtY2hlY2tlZCkgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIGJvcmRlci1jb2xvcjogI2IwYjBiMDtcbn1cbi5tYXQtY2hlY2tib3gtZGlzYWJsZWQgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuXG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG4ubWF0LWNoZWNrYm94IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cblxuLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LFxuLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjNjRiNWY2O1xufVxuLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4ubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogeWVsbG93O1xufVxuLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LFxuLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xufVxuXG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtcmVtb3ZlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKTphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXIge1xuICBvcGFjaXR5OiAwLjU0O1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC40O1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IGJsYWNrO1xufVxuXG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LWNoaXAtcmVtb3ZlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4ubWF0LXRhYmxlIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi5tYXQtdGFibGUgdGhlYWQsIC5tYXQtdGFibGUgdGJvZHksIC5tYXQtdGFibGUgdGZvb3QsXG5tYXQtaGVhZGVyLXJvdywgbWF0LXJvdywgbWF0LWZvb3Rlci1yb3csXG5bbWF0LWhlYWRlci1yb3ddLCBbbWF0LXJvd10sIFttYXQtZm9vdGVyLXJvd10sXG4ubWF0LXRhYmxlLXN0aWNreSB7XG4gIGJhY2tncm91bmQ6IGluaGVyaXQ7XG59XG5cbm1hdC1yb3csIG1hdC1oZWFkZXItcm93LCBtYXQtZm9vdGVyLXJvdyxcbnRoLm1hdC1oZWFkZXItY2VsbCwgdGQubWF0LWNlbGwsIHRkLm1hdC1mb290ZXItY2VsbCB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtaGVhZGVyLWNlbGwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtY2FsZW5kYXItYXJyb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LWRhdGVwaWNrZXItdG9nZ2xlLFxuLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1uZXh0LWJ1dHRvbixcbi5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItcHJldmlvdXMtYnV0dG9uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG5cbi5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyLWRpdmlkZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3ZlciA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCksXG4uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCksXG4uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTgpO1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDAsIDE4MSwgMjQ2LCAwLjQpO1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAwLCAwLjQpO1xufVxuLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ0LCA2NywgNTQsIDAuNCk7XG59XG4ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggd2hpdGU7XG59XG5cbi5tYXQtZGF0ZXBpY2tlci1jb250ZW50LXRvdWNoIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gIGNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LWFjY2VudCB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuXG4ubWF0LWRpYWxvZy1jb250YWluZXIge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1kaXZpZGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWV4cGFuc2lvbi1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1hY3Rpb24tcm93IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLmNkay1rZXlib2FyZC1mb2N1c2VkLCAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkuY2RrLXByb2dyYW0tZm9jdXNlZCwgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cblxuQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICB9XG59XG4ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlLFxuLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG5cbi5tYXQtaGludCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG5cbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC13YXJuIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG5cbi5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgY29sb3I6IHllbGxvdztcbn1cblxuLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG5cbi5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogeWVsbG93O1xufVxuLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG5cbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQsXG4ubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG5cbi5tYXQtZXJyb3Ige1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtaGludCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC40MikgMCUsIHJnYmEoMCwgMCwgMCwgMC40MikgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNDIpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNDIpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMik7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtaW52YWxpZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDYpO1xufVxuXG4ubWF0LWljb24ubWF0LXByaW1hcnkge1xuICBjb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtaWNvbi5tYXQtYWNjZW50IHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5tYXQtaWNvbi5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuXG4ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCxcbi5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LWlucHV0LWVsZW1lbnQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4ubWF0LWlucHV0LWVsZW1lbnQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLm1hdC1pbnB1dC1lbGVtZW50Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuXG4ubWF0LWFjY2VudCAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogeWVsbG93O1xufVxuXG4ubWF0LXdhcm4gLm1hdC1pbnB1dC1lbGVtZW50LFxuLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICNmNDQzMzY7XG59XG5cbi5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuXG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1zdWJoZWFkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xufVxuXG4ubWF0LWxpc3Qtb3B0aW9uOmhvdmVyLCAubWF0LWxpc3Qtb3B0aW9uOmZvY3VzLFxuLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsXG4ubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5cbi5tYXQtbWVudS1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLm1hdC1tZW51LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtbWVudS1pdGVtIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRdLCAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF06OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG5cbi5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbi1uby1jb2xvcixcbi5tYXQtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1tZW51LWl0ZW06aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4ubWF0LW1lbnUtaXRlbS5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4ubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZDpub3QoW2Rpc2FibGVkXSkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuXG4ubWF0LXBhZ2luYXRvciB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4ubWF0LXBhZ2luYXRvcixcbi5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbi5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNTQpO1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LXBhZ2luYXRvci1maXJzdCxcbi5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICBib3JkZXItdG9wOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50LFxuLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4ubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgZmlsbDogI2JiZGVmYjtcbn1cblxuLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiZGVmYjtcbn1cblxuLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xufVxuXG4ubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjZmZmZjhkO1xufVxuLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZjhkO1xufVxuLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cblxuLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICNmZmNkZDI7XG59XG4ubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjZGQyO1xufVxuLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuXG4ubWF0LXByb2dyZXNzLXNwaW5uZXIgY2lyY2xlLCAubWF0LXNwaW5uZXIgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjNjRiNWY2O1xufVxuLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1hY2NlbnQgY2lyY2xlLCAubWF0LXNwaW5uZXIubWF0LWFjY2VudCBjaXJjbGUge1xuICBzdHJva2U6IHllbGxvdztcbn1cbi5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtd2FybiBjaXJjbGUsIC5tYXQtc3Bpbm5lci5tYXQtd2FybiBjaXJjbGUge1xuICBzdHJva2U6ICNmNDQzMzY7XG59XG5cbi5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICBib3JkZXItY29sb3I6IHllbGxvdztcbn1cbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQ6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4gLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSxcbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50LFxuLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cblxuLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1zZWxlY3QtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cblxuLm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1zZWxlY3QtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5tYXQtc2VsZWN0LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtcHJpbWFyeSAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogeWVsbG93O1xufVxuLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1pbnZhbGlkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LWRyYXdlci1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1kcmF3ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LWRyYXdlci5tYXQtZHJhd2VyLXB1c2gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5tYXQtZHJhd2VyOm5vdCgubWF0LWRyYXdlci1zaWRlKSB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWRyYXdlci1zaWRlIHtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cblxuW2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGUge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbltkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5kIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZHJhd2VyLWJhY2tkcm9wLm1hdC1kcmF3ZXItc2hvd24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG5cbi5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMCwgMC41NCk7XG59XG4ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDAsIDE4MSwgMjQ2LCAwLjU0KTtcbn1cbi5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC41NCk7XG59XG4ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtc2xpZGUtdG9nZ2xlOm5vdCgubWF0LWNoZWNrZWQpIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cblxuLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xufVxuXG4ubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cblxuLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4ubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWIsXG4ubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLFxuLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtd2FybiAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLFxuLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4ubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMCwgMC4yKTtcbn1cblxuLm1hdC1zbGlkZXI6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCxcbi5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCxcbi5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4ubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4ubWF0LXNsaWRlci1kaXNhYmxlZDpob3ZlciAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cblxuLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYixcbi5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYixcbi5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKSAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyIC5tYXQtc2xpZGVyLXRodW1iLCAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3Zlci5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLCAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG5cbi5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlciB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpO1xufVxuXG4ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjcpLCByZ2JhKDAsIDAsIDAsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgwLjAwMDFkZWcsIHJnYmEoMCwgMCwgMCwgMC43KSwgcmdiYSgwLCAwLCAwLCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xufVxuXG4ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cblxuLm1hdC1zdGVwLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZCwgLm1hdC1zdGVwLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLCAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbkBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwsXG4ubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1vcHRpb25hbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxcbi5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSxcbi5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NGI1ZjY7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5tYXQtc3RlcHBlci12ZXJ0aWNhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuXG4ubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YmVmb3JlLFxuLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlcixcbi5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgY29sb3I6ICM3NTc1NzU7XG59XG5cbi5tYXQtdGFiLW5hdi1iYXIsXG4ubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtdGFiLW5hdi1iYXIsXG4ubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItaGVhZGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC10YWItZ3JvdXBbY2xhc3MqPW1hdC1iYWNrZ3JvdW5kLV0gLm1hdC10YWItaGVhZGVyLFxuLm1hdC10YWItbmF2LWJhcltjbGFzcyo9bWF0LWJhY2tncm91bmQtXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxODcsIDIyMiwgMjUxLCAwLjMpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAxNDEsIDAuMyk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciwgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtaW5rLWJhciwgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjA1LCAyMTAsIDAuMyk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LWluay1iYXIsIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyLCAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE4NywgMjIyLCAyNTEsIDAuMyk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rcywgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmtzLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMTQxLCAwLjMpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlciwgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmtzLCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlciwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluaywgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIwNSwgMjEwLCAwLjMpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rcywgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluaywgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG5cbi5tYXQtdG9vbGJhciB7XG4gIGJhY2tncm91bmQ6IHdoaXRlc21va2U7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzY0YjVmNjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXRvb2xiYXIubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQ6IHllbGxvdztcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXRvb2xiYXIubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xuICBjb2xvcjogd2hpdGU7XG59XG4ubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxcbi5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuLm1hdC10b29sYmFyIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5tYXQtdG9vbGJhciAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LXZhbHVlLFxuLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LFxuLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLm1hdC10b29sYmFyIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG5cbi5tYXQtdG9vbHRpcCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoOTcsIDk3LCA5NywgMC45KTtcbn1cblxuLm1hdC10cmVlIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi5tYXQtdHJlZS1ub2RlLFxuLm1hdC1uZXN0ZWQtdHJlZS1ub2RlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtc25hY2stYmFyLWNvbnRhaW5lciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIGJhY2tncm91bmQ6ICMzMjMyMzI7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcbiAgY29sb3I6IHllbGxvdztcbn1cblxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW9wdGlvbiB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1vcHRpb246aG92ZXI6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSk6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtb3B0aW9uLm1hdC1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtb3B0aW9uLm1hdC1vcHRpb24tZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW9wdGdyb3VwLWRpc2FibGVkIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94OjphZnRlciB7XG4gIGNvbG9yOiAjMzAzMDMwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCB7XG4gIGNvbG9yOiAjNjg2ODY4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZDogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZDogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZDogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjNjg2ODY4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejEge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXozIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDVweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejYge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXo3IHtcbiAgYm94LXNoYWRvdzogMHB4IDRweCA1cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA3cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDJweCAxNnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16OCB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejkge1xuICBib3gtc2hhZG93OiAwcHggNXB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDlweCAxMnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMCB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTBweCAxNHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDE4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMSB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMiB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMyB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTNweCAxOXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxNCB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxNSB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggOXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTVweCAyMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDI4cHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxNiB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MTcge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejE4IHtcbiAgYm94LXNoYWRvdzogMHB4IDlweCAxMXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMThweCAyOHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggN3B4IDM0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxOSB7XG4gIGJveC1zaGFkb3c6IDBweCA5cHggMTJweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE5cHggMjlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDdweCAzNnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MjAge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyMSB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMXB4IDMzcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDBweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejIyIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTRweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIycHggMzVweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MnB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MjMge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyNCB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hcHAtYmFja2dyb3VuZCwgLnVuaWNvcm4tZGFyay10aGVtZS5tYXQtYXBwLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDMwO1xuICBjb2xvcjogd2hpdGU7XG59XG4ubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKSB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogIzYwN2Q4Yjtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgb3V0bGluZTogc29saWQgMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1hY2NlbnQgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogI2ZmZDc0MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2Utd2FybiAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQ6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtaGlkZGVuIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtZGlzYWJsZWQgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogIzZlNmU2ZTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSB7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudC5tYXQtYmFkZ2UtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC04cHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWJlbG93IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJvdHRvbTogLThweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMTZweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNnB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLThweDtcbn1cbltkaXI9cnRsXSAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLThweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC04cHg7XG59XG5bZGlyPXJ0bF0gLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLThweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgd2lkdGg6IDIycHg7XG4gIGhlaWdodDogMjJweDtcbiAgbGluZS1oZWlnaHQ6IDIycHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xMXB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTFweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMjJweDtcbn1cbltkaXI9cnRsXSAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yMnB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yMnB4O1xufVxuW2Rpcj1ydGxdIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMjJweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xMXB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0xMXB4O1xufVxuW2Rpcj1ydGxdIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTFweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBsaW5lLWhlaWdodDogMjhweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWJvdmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgdG9wOiAtMTRweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTRweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMjhweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0yOHB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTE0cHg7XG59XG5bZGlyPXJ0bF0gLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNHB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTE0cHg7XG59XG5bZGlyPXJ0bF0gLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTE0cHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b24sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24ubWF0LXByaW1hcnksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi5tYXQtd2FybiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ge1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIG9wYWNpdHk6IDAuMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybiB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWI6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgW2Rpcj1ydGxdIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgYm9yZGVyOiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYXJkIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhcmQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhcmQubWF0LWNhcmQtZmxhdDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gIGZpbGw6ICMzMDMwMzA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICBzdHJva2U6ICMzMDMwMzAgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7XG4gIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gICAgc3Ryb2tlOiAjMDAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDMwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC13YXJuIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZC5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjg2ODY4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6ICM2ODY4Njg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MTYxNjE7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggM3B4IDRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSAubWF0LWNoaXAtcmVtb3ZlOmhvdmVyIHtcbiAgb3BhY2l0eTogMC41NDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC40O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYmxlIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWJsZSB0aGVhZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYmxlIHRib2R5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFibGUgdGZvb3QsXG4udW5pY29ybi1kYXJrLXRoZW1lIG1hdC1oZWFkZXItcm93LCAudW5pY29ybi1kYXJrLXRoZW1lIG1hdC1yb3csIC51bmljb3JuLWRhcmstdGhlbWUgbWF0LWZvb3Rlci1yb3csXG4udW5pY29ybi1kYXJrLXRoZW1lIFttYXQtaGVhZGVyLXJvd10sIC51bmljb3JuLWRhcmstdGhlbWUgW21hdC1yb3ddLCAudW5pY29ybi1kYXJrLXRoZW1lIFttYXQtZm9vdGVyLXJvd10sXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFibGUtc3RpY2t5IHtcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgbWF0LXJvdywgLnVuaWNvcm4tZGFyay10aGVtZSBtYXQtaGVhZGVyLXJvdywgLnVuaWNvcm4tZGFyay10aGVtZSBtYXQtZm9vdGVyLXJvdyxcbi51bmljb3JuLWRhcmstdGhlbWUgdGgubWF0LWhlYWRlci1jZWxsLCAudW5pY29ybi1kYXJrLXRoZW1lIHRkLm1hdC1jZWxsLCAudW5pY29ybi1kYXJrLXRoZW1lIHRkLm1hdC1mb290ZXItY2VsbCB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaGVhZGVyLWNlbGwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNlbGwsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb290ZXItY2VsbCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYWxlbmRhci1hcnJvdyB7XG4gIGJvcmRlci10b3AtY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLW5leHQtYnV0dG9uLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbiB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlci1kaXZpZGVyOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3ZlciA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5NiwgMTI1LCAxMzksIDAuNCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ3NDA7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMTUsIDY0LCAwLjQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCA4NywgMzQsIDAuNCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQtdG91Y2gge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC1hY2NlbnQge1xuICBjb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LXdhcm4ge1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kaWFsb2ctY29udGFpbmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGl2aWRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGl2aWRlci12ZXJ0aWNhbCB7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hY3Rpb24tcm93IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLmNkay1rZXlib2FyZC1mb2N1c2VkLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKS5jZGstcHJvZ3JhbS1mb2N1c2VkLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICB9XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWV4cGFuc2lvbi1pbmRpY2F0b3I6OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWhpbnQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC13YXJuIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lcnJvciB7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtaGludCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtaW52YWxpZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24ubWF0LXByaW1hcnkge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLm1hdC1hY2NlbnQge1xuICBjb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLm1hdC13YXJuIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6ZGlzYWJsZWQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQgb3B0aW9uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudCBvcHRpb246ZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtd2FybiAubWF0LWlucHV0LWVsZW1lbnQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0ge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbGlzdC1iYXNlIC5tYXQtc3ViaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1saXN0LW9wdGlvbjpob3ZlciwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWxpc3Qtb3B0aW9uOmZvY3VzLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1tZW51LXBhbmVsIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1tZW51LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWVudS1pdGVtIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWVudS1pdGVtW2Rpc2FibGVkXTo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1lbnUtaXRlbSAubWF0LWljb24tbm8tY29sb3IsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcjo6YWZ0ZXIge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWVudS1pdGVtOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWVudS1pdGVtLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdChbZGlzYWJsZWRdKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1tZW51LWl0ZW0taGlnaGxpZ2h0ZWQ6bm90KFtkaXNhYmxlZF0pIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wYWdpbmF0b3Ige1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBhZ2luYXRvcixcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCB3aGl0ZTtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICNjZmQ4ZGM7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZmQ4ZGM7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgZmlsbDogI2ZmZTU3Zjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlNTdmO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICNmZmNjYmM7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmNjYmM7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcm9ncmVzcy1zcGlubmVyIGNpcmNsZSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNwaW5uZXIgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LWFjY2VudCBjaXJjbGUsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zcGlubmVyLm1hdC1hY2NlbnQgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXdhcm4gY2lyY2xlLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Bpbm5lci5tYXQtd2FybiBjaXJjbGUge1xuICBzdHJva2U6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeTphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICBib3JkZXItY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQ6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4gLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm46YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zZWxlY3QtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zZWxlY3QtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNlbGVjdC1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtcHJpbWFyeSAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LWFjY2VudCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtaW52YWxpZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZHJhd2VyLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDMwMzA7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kcmF3ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZHJhd2VyLm1hdC1kcmF3ZXItcHVzaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZHJhd2VyOm5vdCgubWF0LWRyYXdlci1zaWRlKSB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRyYXdlci1zaWRlIHtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZCB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSBbZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSBbZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3duIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxODksIDE4OSwgMTg5LCAwLjYpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMTUsIDY0LCAwLjU0KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5NiwgMTI1LCAxMzksIDAuNTQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgODcsIDM0LCAwLjU0KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlOm5vdCgubWF0LWNoZWNrZWQpIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmRiZGJkO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWIsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWFjY2VudCAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYixcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtd2FybiAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWIsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIxNSwgNjQsIDAuMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQ6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIC5tYXQtc2xpZGVyLXRodW1iLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWIsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyk6aG92ZXIgLm1hdC1zbGlkZXItdGh1bWIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlciB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgwLjAwMDFkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXAtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtb3B0aW9uYWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4YjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1hY3RpdmUge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcHBlci12ZXJ0aWNhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgY29sb3I6ICNjNmM2YzY7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItbmF2LWJhcixcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1sYWJlbCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIC5tYXQtdGFiLWhlYWRlcixcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhcltjbGFzcyo9bWF0LWJhY2tncm91bmQtXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwNywgMjE2LCAyMjAsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1pbmstYmFyLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjI5LCAxMjcsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFyLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LWluay1iYXIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIwNCwgMTg4LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LWluay1iYXIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDcsIDIxNiwgMjIwLCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmtzLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGlua3MsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmssIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjI5LCAxMjcsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmtzLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmssIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjA0LCAxODgsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rcywgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluaywgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdG9vbGJhciB7XG4gIGJhY2tncm91bmQ6ICMyMTIxMjE7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzYwN2Q4YjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2xiYXIubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQ6ICNmZmQ3NDA7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2xiYXIubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kOiAjZmY1NzIyO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LXZhbHVlLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtYXJyb3csXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdG9vbHRpcCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoOTcsIDk3LCA5NywgMC45KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10cmVlIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10cmVlLW5vZGUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi8qXG4gIGh0dHBzOiAvL3N0YWNrYmxpdHouY29tL2VkaXQvYW5ndWxhci1tYXRlcmlhbC10aGVtZS1zZWNyZXRzP2VtYmVkPTEmZmlsZT1zcmMlMkZ0aGVtZS5zY3NzJnNvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgaHR0cHM6Ly9tYXRlcmlhbC5hbmd1bGFyLmlvL2d1aWRlL3R5cG9ncmFwaHlcbiAgaHR0cHM6Ly9tYXRlcmlhbC11aS5jb20vY3VzdG9taXphdGlvbi9jb2xvci9cbiovXG4uZGVmYXVsdE1hdCB7XG4gIC8qLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXIsIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gIH0qL1xuICAvKmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80NjgxMjA2NC9ob3ctdG8tc2V0LXRoZS1jb2xvci1vZi1hbi1pY29uLWluLWFuZ3VsYXItbWF0ZXJpYWxcbiAgaHR0cHM6IC8vY3NzLXRyaWNrcy5jb20vc29sdmVkLXdpdGgtY3NzLWNvbG9yaXppbmctc3ZnLWJhY2tncm91bmRzLyovXG4gIC8qIE5vdGU6IElmIHlvdSdyZSB1c2luZyBhbiBTVkcgaWNvbiwgeW91IHNob3VsZCBtYWtlIHRoZSBjbGFzcyB0YXJnZXQgdGhlIGA8c3ZnPmAgZWxlbWVudCAqL1xuICAvKi53aGl0ZS1pY29uIHN2ZyB7XG4gICAgZmlsbDogd2hpdGU7XG4gICAgZmlsdGVyOmJyaWdodG5lc3MoMTAwKTtcbiAgfSovXG4gIC8qLm1hdC1tZW51LWl0ZW0ge1xuICAgIGhlaWdodDoyMHB4O1xuICB9XG4gIGJ1dHRvbi5tYXQtbWVudS1pdGVtIHtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICB9Ki9cbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uZGVmYXVsdE1hdCAubWF0LW9wdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1vcHRpb246aG92ZXI6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC1vcHRpb246Zm9jdXM6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtb3B0aW9uLm1hdC1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtb3B0aW9uLm1hdC1vcHRpb24tZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1hY2NlbnQgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LW9wdGdyb3VwLWRpc2FibGVkIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHNldWRvLWNoZWNrYm94IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXBzZXVkby1jaGVja2JveDo6YWZ0ZXIge1xuICBjb2xvcjogI2ZhZmFmYTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgY29sb3I6ICNiMGIwYjA7XG59XG4uZGVmYXVsdE1hdCAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuLmRlZmF1bHRNYXQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSxcbi5kZWZhdWx0TWF0IC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uZGVmYXVsdE1hdCAubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZDogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uZGVmYXVsdE1hdCAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5kZWZhdWx0TWF0IC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZDogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxcbi5kZWZhdWx0TWF0IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQ6ICNiMGIwYjA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoxIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoyIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXozIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXo0IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16NSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejYge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16NyB7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXo4IHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejkge1xuICBib3gtc2hhZG93OiAwcHggNXB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDlweCAxMnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MTAge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejExIHtcbiAgYm94LXNoYWRvdzogMHB4IDZweCA3cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMXB4IDE1cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA0cHggMjBweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoxMiB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MTMge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejE0IHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA5cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNHB4IDIxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjZweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoxNSB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggOXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTVweCAyMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDI4cHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MTYge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoxNyB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTFweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE3cHggMjZweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejE4IHtcbiAgYm94LXNoYWRvdzogMHB4IDlweCAxMXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMThweCAyOHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggN3B4IDM0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MTkge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDEycHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoyMCB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMHB4IDMxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggMzhweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoyMSB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMXB4IDMzcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDBweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoyMiB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDE0cHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoyMyB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE0cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyM3B4IDM2cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoyNCB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYXBwLWJhY2tncm91bmQsIC5kZWZhdWx0TWF0Lm1hdC1hcHAtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC10aGVtZS1sb2FkZWQtbWFya2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmRlZmF1bHRNYXQgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcikge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogIzIxOTZmMztcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuZGVmYXVsdE1hdCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIG91dGxpbmU6IHNvbGlkIDFweDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWFjY2VudCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiB5ZWxsb3c7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS13YXJuIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWhpZGRlbiAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjYjliOWI5O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5kZWZhdWx0TWF0IC5uZy1hbmltYXRlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudCxcbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtY29udGVudC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSB7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2Utc21hbGwgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC04cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC04cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTE2cHg7XG59XG5bZGlyPXJ0bF0gLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMTZweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAuZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTE2cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLThweDtcbn1cbltkaXI9cnRsXSAuZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC04cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLThweDtcbn1cbltkaXI9cnRsXSAuZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLThweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbWVkaXVtIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTExcHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTFweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTIycHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yMnB4O1xufVxuW2Rpcj1ydGxdIC5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTIycHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xMXB4O1xufVxuW2Rpcj1ydGxdIC5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xMXB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuZGVmYXVsdE1hdCAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xMXB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBsaW5lLWhlaWdodDogMjhweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTE0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xNHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTI4cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0yOHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTE0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTE0cHg7XG59XG5bZGlyPXJ0bF0gLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uLCAuZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24ubWF0LXByaW1hcnksIC5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksIC5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnkge1xuICBjb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50IHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLm1hdC13YXJuLCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuLCAuZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC13YXJuIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50LCAuZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBvcGFjaXR5OiAwLjE7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbiwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLCAuZGVmYXVsdE1hdCAubWF0LWZhYiwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LXByaW1hcnksIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtYWNjZW50LCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4sIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LXdhcm4sIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LXdhcm4ge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtYWNjZW50LCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4sIC5kZWZhdWx0TWF0IC5tYXQtZmFiLm1hdC13YXJuLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5kZWZhdWx0TWF0IC5tYXQtZmFiLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b246bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWI6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZhYltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUsXG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IFtkaXI9cnRsXSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1idXR0b24tdG9nZ2xlLXZlcnRpY2FsIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JkYmRiZDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJvcmRlcjogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYXJkLm1hdC1jYXJkLWZsYXQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQtc3VidGl0bGUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gIGZpbGw6ICNmYWZhZmE7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgc3Ryb2tlOiAjZmFmYWZhICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBibGFjay1vbi13aGl0ZSkge1xuICAuZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgICBzdHJva2U6ICMwMDAgIWltcG9ydGFudDtcbiAgfVxufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wcmltYXJ5IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC1wcmltYXJ5IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1kaXNhYmxlZC5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IwYjBiMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtZGlzYWJsZWQ6bm90KC5tYXQtY2hlY2tib3gtY2hlY2tlZCkgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIGJvcmRlci1jb2xvcjogI2IwYjBiMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtZGlzYWJsZWQgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtcmVtb3ZlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKTphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXIge1xuICBvcGFjaXR5OiAwLjU0O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC40O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IGJsYWNrO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMztcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWJsZSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWJsZSB0aGVhZCwgLmRlZmF1bHRNYXQgLm1hdC10YWJsZSB0Ym9keSwgLmRlZmF1bHRNYXQgLm1hdC10YWJsZSB0Zm9vdCxcbi5kZWZhdWx0TWF0IG1hdC1oZWFkZXItcm93LCAuZGVmYXVsdE1hdCBtYXQtcm93LCAuZGVmYXVsdE1hdCBtYXQtZm9vdGVyLXJvdyxcbi5kZWZhdWx0TWF0IFttYXQtaGVhZGVyLXJvd10sIC5kZWZhdWx0TWF0IFttYXQtcm93XSwgLmRlZmF1bHRNYXQgW21hdC1mb290ZXItcm93XSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFibGUtc3RpY2t5IHtcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcbn1cbi5kZWZhdWx0TWF0IG1hdC1yb3csIC5kZWZhdWx0TWF0IG1hdC1oZWFkZXItcm93LCAuZGVmYXVsdE1hdCBtYXQtZm9vdGVyLXJvdyxcbi5kZWZhdWx0TWF0IHRoLm1hdC1oZWFkZXItY2VsbCwgLmRlZmF1bHRNYXQgdGQubWF0LWNlbGwsIC5kZWZhdWx0TWF0IHRkLm1hdC1mb290ZXItY2VsbCB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWhlYWRlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNlbGwsIC5kZWZhdWx0TWF0IC5tYXQtZm9vdGVyLWNlbGwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZSxcbi5kZWZhdWx0TWF0IC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4uZGVmYXVsdE1hdCAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyLWRpdmlkZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLmRlZmF1bHRNYXQgLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmUgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLmRlZmF1bHRNYXQgLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMztcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzMywgMTUwLCAyNDMsIDAuNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRhdGVwaWNrZXItY29udGVudCB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDAsIDAuNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC40KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGF0ZXBpY2tlci1jb250ZW50LXRvdWNoIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUge1xuICBjb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC1hY2NlbnQge1xuICBjb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kaXZpZGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGl2aWRlci12ZXJ0aWNhbCB7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1hY3Rpb24tcm93IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKS5jZGsta2V5Ym9hcmQtZm9jdXNlZCwgLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLmNkay1wcm9ncmFtLWZvY3VzZWQsIC5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKTpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gIH1cbn1cbi5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbi5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaGludCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQge1xuICBjb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICBjb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKSAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQsXG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVycm9yIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1oaW50IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjQyKSAwJSwgcmdiYSgwLCAwLCAwLCAwLjQyKSAzMyUsIHRyYW5zcGFyZW50IDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0cHggMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNDIpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNDIpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZC5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWljb24ubWF0LXByaW1hcnkge1xuICBjb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaWNvbi5tYXQtYWNjZW50IHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaWNvbi5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1pbnB1dC1lbGVtZW50OmRpc2FibGVkLFxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWlucHV0LWVsZW1lbnQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWlucHV0LWVsZW1lbnQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1pbnB1dC1lbGVtZW50Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtd2FybiAubWF0LWlucHV0LWVsZW1lbnQsXG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlIC5tYXQtc3ViaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtaXRlbS1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3Qtb3B0aW9uOmhvdmVyLCAuZGVmYXVsdE1hdCAubWF0LWxpc3Qtb3B0aW9uOmZvY3VzLFxuLmRlZmF1bHRNYXQgLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi5kZWZhdWx0TWF0IC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsXG4uZGVmYXVsdE1hdCAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLmRlZmF1bHRNYXQgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LW1lbnUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbWVudS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1tZW51LWl0ZW0ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtbWVudS1pdGVtW2Rpc2FibGVkXTo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbi1uby1jb2xvcixcbi5kZWZhdWx0TWF0IC5tYXQtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbWVudS1pdGVtOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbi5kZWZhdWx0TWF0IC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLmRlZmF1bHRNYXQgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLmRlZmF1bHRNYXQgLm1hdC1tZW51LWl0ZW0taGlnaGxpZ2h0ZWQ6bm90KFtkaXNhYmxlZF0pIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcGFnaW5hdG9yIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXBhZ2luYXRvcixcbi5kZWZhdWx0TWF0IC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4uZGVmYXVsdE1hdCAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQge1xuICBib3JkZXItdG9wOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuLmRlZmF1bHRNYXQgLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50LFxuLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4uZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICNiYmRlZmI7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJkZWZiO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgZmlsbDogI2ZmZmY4ZDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmY4ZDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgZmlsbDogI2ZmY2RkMjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmNkZDI7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByb2dyZXNzLXNwaW5uZXIgY2lyY2xlLCAuZGVmYXVsdE1hdCAubWF0LXNwaW5uZXIgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1hY2NlbnQgY2lyY2xlLCAuZGVmYXVsdE1hdCAubWF0LXNwaW5uZXIubWF0LWFjY2VudCBjaXJjbGUge1xuICBzdHJva2U6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtd2FybiBjaXJjbGUsIC5kZWZhdWx0TWF0IC5tYXQtc3Bpbm5lci5tYXQtd2FybiBjaXJjbGUge1xuICBzdHJva2U6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnk6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudDphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4gLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4ubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm46YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2VsZWN0LXBhbmVsIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNlbGVjdC1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zZWxlY3QtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LWFjY2VudCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWludmFsaWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRyYXdlci1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZHJhd2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kcmF3ZXIubWF0LWRyYXdlci1wdXNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRyYXdlcjpub3QoLm1hdC1kcmF3ZXItc2lkZSkge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZHJhd2VyLXNpZGUge1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZCB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLmRlZmF1bHRNYXQgW2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGUge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi5kZWZhdWx0TWF0IFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5kIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3duIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDMzLCAxNTAsIDI0MywgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC13YXJuLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC13YXJuLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ0LCA2NywgNTQsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZTpub3QoLm1hdC1jaGVja2VkKSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5kZWZhdWx0TWF0IC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYixcbi5kZWZhdWx0TWF0IC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uZGVmYXVsdE1hdCAubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYixcbi5kZWZhdWx0TWF0IC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uZGVmYXVsdE1hdCAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWIsXG4uZGVmYXVsdE1hdCAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMCwgMC4yKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uZGVmYXVsdE1hdCAuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLFxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLWRpc2FibGVkOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYixcbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYixcbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKSAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyIC5tYXQtc2xpZGVyLXRodW1iLCAuZGVmYXVsdE1hdCAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3Zlci5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLCAuZGVmYXVsdE1hdCAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci1oYXMtdGlja3MgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGlja3Mge1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDAuMDAwMWRlZywgcmdiYSgwLCAwLCAwLCAwLjcpLCByZ2JhKDAsIDAsIDAsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1oZWFkZXIuY2RrLWtleWJvYXJkLWZvY3VzZWQsIC5kZWZhdWx0TWF0IC5tYXQtc3RlcC1oZWFkZXIuY2RrLXByb2dyYW0tZm9jdXNlZCwgLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5kZWZhdWx0TWF0IC5tYXQtc3RlcC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLFxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtb3B0aW9uYWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXNlbGVjdGVkLFxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMztcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLCAuZGVmYXVsdE1hdCAubWF0LXN0ZXBwZXItdmVydGljYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YmVmb3JlLFxuLmRlZmF1bHRNYXQgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlcixcbi5kZWZhdWx0TWF0IC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zb3J0LWhlYWRlci1hcnJvdyB7XG4gIGNvbG9yOiAjNzU3NTc1O1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhcixcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtdGFiLW5hdi1iYXIsXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItaGVhZGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1sYWJlbCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIC5tYXQtdGFiLWhlYWRlcixcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXJbY2xhc3MqPW1hdC1iYWNrZ3JvdW5kLV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE4NywgMjIyLCAyNTEsIDAuMyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LWluay1iYXIsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1pbmstYmFyLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAxNDEsIDAuMyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtaW5rLWJhciwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjA1LCAyMTAsIDAuMyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LWluay1iYXIsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE4NywgMjIyLCAyNTEsIDAuMyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rcywgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmtzLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAxNDEsIDAuMyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rcywgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjA1LCAyMTAsIDAuMyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rcywgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmtzLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciB7XG4gIGJhY2tncm91bmQ6IHdoaXRlc21va2U7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzIxOTZmMztcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kOiB5ZWxsb3c7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZDogI2Y0NDMzNjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUsXG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciAubWF0LXNlbGVjdC12YWx1ZSxcbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciAubWF0LXNlbGVjdC1hcnJvdyxcbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10b29sdGlwIHtcbiAgYmFja2dyb3VuZDogcmdiYSg5NywgOTcsIDk3LCAwLjkpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10cmVlIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRyZWUtbm9kZSxcbi5kZWZhdWx0TWF0IC5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgYmFja2dyb3VuZDogIzMyMzIzMjtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2Utc21hbGwgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgZm9udC1zaXplOiA5cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaDEsIC5kZWZhdWx0TWF0IC5tYXQtaGVhZGxpbmUsIC5kZWZhdWx0TWF0IC5tYXQtdHlwb2dyYXBoeSBoMSB7XG4gIGZvbnQ6IDYwMCAyNHB4LzMycHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxNnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1oMiwgLmRlZmF1bHRNYXQgLm1hdC10aXRsZSwgLmRlZmF1bHRNYXQgLm1hdC10eXBvZ3JhcGh5IGgyIHtcbiAgZm9udDogNjAwIDIwcHgvMzJweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWgzLCAuZGVmYXVsdE1hdCAubWF0LXN1YmhlYWRpbmctMiwgLmRlZmF1bHRNYXQgLm1hdC10eXBvZ3JhcGh5IGgzIHtcbiAgZm9udDogNjAwIDE2cHgvMjJweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWg0LCAuZGVmYXVsdE1hdCAubWF0LXN1YmhlYWRpbmctMSwgLmRlZmF1bHRNYXQgLm1hdC10eXBvZ3JhcGh5IGg0IHtcbiAgZm9udDogNjAwIDE1cHgvMjRweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWg1LCAuZGVmYXVsdE1hdCAubWF0LXR5cG9ncmFwaHkgaDUge1xuICBmb250OiA2MDAgY2FsYygxNHB4ICogMC44MykvMzBweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDEycHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWg2LCAuZGVmYXVsdE1hdCAubWF0LXR5cG9ncmFwaHkgaDYge1xuICBmb250OiA2MDAgY2FsYygxNHB4ICogMC42NykvMzBweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDEycHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJvZHktc3Ryb25nLCAuZGVmYXVsdE1hdCAubWF0LWJvZHktMiB7XG4gIGZvbnQ6IDYwMCAxNHB4LzI0cHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1ib2R5LCAuZGVmYXVsdE1hdCAubWF0LWJvZHktMSwgLmRlZmF1bHRNYXQgLm1hdC10eXBvZ3JhcGh5IHtcbiAgZm9udDogNjAwIDE0cHgvMzBweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJvZHkgcCwgLmRlZmF1bHRNYXQgLm1hdC1ib2R5LTEgcCwgLmRlZmF1bHRNYXQgLm1hdC10eXBvZ3JhcGh5IHAge1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbWFsbCwgLmRlZmF1bHRNYXQgLm1hdC1jYXB0aW9uIHtcbiAgZm9udDogNjAwIDEycHgvMjBweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRpc3BsYXktNCwgLmRlZmF1bHRNYXQgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS00IHtcbiAgZm9udDogMzAwIDExMnB4LzExMnB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgNTZweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGlzcGxheS0zLCAuZGVmYXVsdE1hdCAubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTMge1xuICBmb250OiA2MDAgNTZweC81NnB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgNjRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGlzcGxheS0yLCAuZGVmYXVsdE1hdCAubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTIge1xuICBmb250OiA0MDAgNDVweC80OHB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgNjRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGlzcGxheS0xLCAuZGVmYXVsdE1hdCAubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTEge1xuICBmb250OiA2MDAgMzRweC80MHB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgNjRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gIGZvbnQ6IDYwMCAxNHB4LzMwcHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24sIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbiwgLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbiwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbixcbi5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24sIC5kZWZhdWx0TWF0IC5tYXQtZmFiLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogODAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FyZCB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQtdGl0bGUge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQtaGVhZGVyIC5tYXQtY2FyZC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FyZC1zdWJ0aXRsZSxcbi5kZWZhdWx0TWF0IC5tYXQtY2FyZC1jb250ZW50IHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveCB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWxheW91dCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb24sXG4uZGVmYXVsdE1hdCAubWF0LWNoaXAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFibGUge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1oZWFkZXItY2VsbCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2VsbCwgLmRlZmF1bHRNYXQgLm1hdC1mb290ZXItY2VsbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXIge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5IHtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsLFxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogODAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIgdGgge1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRpYWxvZy10aXRsZSB7XG4gIGZvbnQ6IDYwMCAyMHB4LzMycHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudCB7XG4gIGZvbnQ6IDYwMCAxNHB4LzMwcHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4xMjU7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjM0Mzc1ZW07XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbixcbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uIHtcbiAgZm9udC1zaXplOiAxNTAlO1xuICBsaW5lLWhlaWdodDogMS4xMjU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24sXG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b24ge1xuICBoZWlnaHQ6IDEuNWVtO1xuICB3aWR0aDogMS41ZW07XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29uLFxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9uIC5tYXQtaWNvbiB7XG4gIGhlaWdodDogMS4xMjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgcGFkZGluZzogMC41ZW0gMDtcbiAgYm9yZGVyLXRvcDogMC44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4zNDM3M2VtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNTMzMzMzJTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjM0MzcyZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM2MzMzMzMlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICB0b3A6IC0wLjg0Mzc1ZW07XG4gIHBhZGRpbmctdG9wOiAwLjg0Mzc1ZW07XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMzQzNzVlbTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBib3R0b206IDEuMzQzNzVlbTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBtYXJnaW4tdG9wOiAwLjY2NjY2NjY2NjdlbTtcbiAgdG9wOiBjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMS4yNWVtO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuNDM3NWVtIDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDZweCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMTllbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzkzMzMzMyU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwN3B4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODExOGVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzM0MDMzMzMzJTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDhweCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMTdlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzNDEzMzMzMyU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAxLjI4MTI1ZW07XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJvdHRvbTogMS4yNWVtO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gIG1hcmdpbi10b3A6IDAuNTQxNjY2NjY2N2VtO1xuICB0b3A6IGNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKTtcbn1cbkBtZWRpYSBwcmludCB7XG4gIC5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODExNmVtKSBzY2FsZSgwLjc1KTtcbiAgfVxuICAuZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODExNWVtKSBzY2FsZSgwLjc1KTtcbiAgfVxuICAuZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTE0ZW0pIHNjYWxlKDAuNzUpO1xuICB9XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuMjVlbSAwIDAuNzVlbSAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMDkzNzVlbTtcbiAgbWFyZ2luLXRvcDogLTAuNWVtO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjU5MzczZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM1MzMzMzMlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjU5MzcyZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM2MzMzMzMlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBwYWRkaW5nOiAxZW0gMCAxZW0gMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAxLjg0Mzc1ZW07XG4gIG1hcmdpbi10b3A6IC0wLjI1ZW07XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuNTkzNzNlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzUzMzMzMyU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuNTkzNzJlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzYzMzMzMyU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWdyaWQtdGlsZS1oZWFkZXIsXG4uZGVmYXVsdE1hdCAubWF0LWdyaWQtdGlsZS1mb290ZXIge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWdyaWQtdGlsZS1oZWFkZXIgLm1hdC1saW5lLFxuLmRlZmF1bHRNYXQgLm1hdC1ncmlkLXRpbGUtZm9vdGVyIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZ3JpZC10aWxlLWhlYWRlciAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMiksXG4uZGVmYXVsdE1hdCAubWF0LWdyaWQtdGlsZS1mb290ZXIgLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmRlZmF1bHRNYXQgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiAtMC4wNjI1ZW07XG59XG4uZGVmYXVsdE1hdCAubWF0LW1lbnUtaXRlbSB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcGFnaW5hdG9yLFxuLmRlZmF1bHRNYXQgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNlbGVjdCB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgaGVpZ2h0OiAxLjEyNWVtO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZS10b2dnbGUtY29udGVudCB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwcGVyLXZlcnRpY2FsLCAuZGVmYXVsdE1hdCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbCB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXN0ZXAtbGFiZWwge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1sYWJlbC1lcnJvciB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWxhYmVsLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1saW5rIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogODAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyLFxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIGgxLFxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIGgyLFxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIGgzLFxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIGg0LFxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIGg1LFxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIGg2IHtcbiAgZm9udDogNjAwIDIwcHgvMzJweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdG9vbHRpcCB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgcGFkZGluZy1ib3R0b206IDZweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdG9vbHRpcC1oYW5kc2V0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwYWRkaW5nLXRvcDogOHB4O1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWl0ZW0ge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LW9wdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBmb250LXNpemU6IDE2cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2UgLm1hdC1zdWJoZWFkZXIge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW0ge1xuICBmb250LXNpemU6IDEycHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5lIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtc3ViaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1vcHRpb24ge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE2cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgZm9udDogNjAwIDE0cHgvMjRweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNpbXBsZS1zbmFja2JhciB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogODAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10cmVlIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdHJlZS1ub2RlLFxuLmRlZmF1bHRNYXQgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmRlZmF1bHRNYXQgbWFpbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMEYwRjA7XG59XG4uZGVmYXVsdE1hdCAubWVudSB7XG4gIC8qYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsqL1xuICBjb2xvcjogYmxhY2s7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4uZGVmYXVsdE1hdCBhLCAuZGVmYXVsdE1hdCBhOmhvdmVyLCAuZGVmYXVsdE1hdCBhOmhvdmVyIHNwYW4ge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksXG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbixcbi5kZWZhdWx0TWF0IC5tYXQtZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLFxuLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSxcbi5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b24ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5iYWNrIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjE2MTYxO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYXJkIHtcbiAgbWFyZ2luOiAxMHB4IDEwcHggMCAxMHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1sYXlvdXQgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0IC5tYXQtbGlzdC1pdGVtIC5tYXQtbGlzdC10ZXh0IGg0Lm1hdC1saW5lIHtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdCAubWF0LWxpc3QtaXRlbSAubWF0LWxpc3QtdGV4dCBwLm1hdC1saW5lIHtcbiAgY29sb3I6ICM4MmIxZmY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmbGV4OiAxO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQubWF0LWNhcmQtYWNjZW50IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQubWF0LWNhcmQtd2FybiB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC53aGl0ZS1pY29uIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMTAwKTtcbn1cblxuLmdyZWVuLWljb24ge1xuICBjb2xvcjogZ3JlZW47XG59XG5cbi5TdGFydCwgLlByaW1hcnlJUCB7XG4gIGNvbG9yOiAjNjRiNWY2O1xufVxuXG4uU3RvcCwgLlNlY29uZGFyeUlQIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG5cbi5TdGFydCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGRhcmtncmVlbjtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uU3RvcCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJlZDtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG46Om5nLWRlZXAgLm1haW5WUXVhZENoayAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbn1cblxuLklkbGVPckRpc2Nvbm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5O1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtdmFyaWFudDogYWxsLXBldGl0ZS1jYXBzO1xuICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcbn1cblxuLkNvbm5lY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbiAgZm9udC12YXJpYW50OiBhbGwtcGV0aXRlLWNhcHM7XG4gIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xufVxuXG4uSW5jb21pbmdPckFuc3dlcmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsdWV2aW9sZXQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC12YXJpYW50OiBhbGwtcGV0aXRlLWNhcHM7XG4gIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xufVxuXG4ub3RoZXJDYWxsU3RhdHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC12YXJpYW50OiBhbGwtcGV0aXRlLWNhcHM7XG4gIHRleHQtYWxpZ24tbGFzdDogY2VudGVyO1xufVxuXG4uZm9vdGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKnN0YXJ0IFJhZGlvIEJ1dHRvbiovXG4vKi5tYXQtcmFkaW8tYnV0dG9uIH4gLm1hdC1yYWRpby1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMTZweDtcbn0qL1xuLypFTkQgUmFkaW8gQnV0dG9uKi9cbi8qc3RhcnQgY2hlY2tib3gqL1xuLypodHRwczovL3d3dy5jb2RlZ3JlcHBlci5jb20vY29kZS1leGFtcGxlcy9jc3MvbWF0K3JhZGlvK2J1dHRvbitjb2xvciovXG4vKjo6bmctZGVlcCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBvcGFjaXR5OiAwLjUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZSAhaW1wb3J0YW50O1xufVxuXG46Om5nLWRlZXAgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsdWUgIWltcG9ydGFudDtcbn1cblxuOjpuZy1kZWVwLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogYmx1ZSAhaW1wb3J0YW50O1xufSovXG4ubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59XG5cbi5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbn1cblxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXN0YXJ0LFxuOmhvc3QgOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWdhcCxcbjpob3N0IDo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS1lbmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4uc21hbGxSYWRpbyAubWF0LXJhZGlvLWNvbnRhaW5lciB7XG4gIGhlaWdodDogMTJweDtcbiAgd2lkdGg6IDEycHg7XG59XG5cbi5zbWFsbFJhZGlvIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgaGVpZ2h0OiAxMnB4O1xuICB3aWR0aDogMTJweDtcbn1cblxuLnNtYWxsUmFkaW8gLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICBoZWlnaHQ6IDEycHg7XG4gIHdpZHRoOiAxMnB4O1xufVxuXG4uc21hbGxSYWRpbyAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJhZGlvLXJpcHBsZSB7XG4gIGhlaWdodDogMjRweDtcbiAgd2lkdGg6IDI0cHg7XG4gIGxlZnQ6IGNhbGMoNTAlIC0gMTJweCk7XG4gIHRvcDogY2FsYyg1MCUgLSAxMnB4KTtcbn1cblxuLyo6Om5nLWRlZXAgLm1hdC1jaGVja2JveC1sYXlvdXQge1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xufVxuXG4uY2hlY2tib3hzaXplIC5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyIHtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbn1cblxuOjpuZy1kZWVwIC5tYXQtY2hlY2tib3ggLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG59XG46Om5nLWRlZXAgLm1haW5DaGsgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG5cbjo6bmctZGVlcCAubWF0LWNoZWNrYm94IC5tYXQtY2hlY2tib3gtcmlwcGxlIHtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbn1cbjo6bmctZGVlcCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCxcbjo6bmctZGVlcCAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbn1cbjo6bmctZGVlcCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xufSovXG4vKjo6bmctZGVlcCAubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZSAhaW1wb3J0YW50O1xuICB0b3A6IDEwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59Ki9cbi8qZW5kIGNoZWNrYm94Ki9cbi8qaHR0cHM6IC8vYmxvZy5odWJzcG90LmNvbS93ZWJzaXRlL2Nzcy1mYWRlLWluXG5odHRwczogLy9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzAxMjU3MDUvY3NzLWhvdy10by1tYWtlLWFuLWVsZW1lbnQtZmFkZS1pbi1hbmQtdGhlbi1mYWRlLW91dFxuaHR0cDovL2NzczMuYnJhZHNoYXdlbnRlcnByaXNlcy5jb20vY2ZpbWcvXG5odHRwczovL3N0YWNrYmxpdHouY29tL2VkaXQvYW5ndWxhci1tYXRlcmlhbC1wcm90b3R5cGUtYW5pbWF0ZWQtaWNvbj9maWxlPXNyYyUyRmFwcCUyRm1hdC1hbmltYXRlZC1pY29uJTJGbWF0LWFuaW1hdGVkLWljb24uY29tcG9uZW50LnNjc3NcbiovXG4vKmh0dHBzOiAvL2NvZGVwZW4uaW8vZ29vcmFrNy9wZW4vYk5KWkxtKi9cbi5ibGluayB7XG4gIGFuaW1hdGlvbjogYmxpbmsgMnMgc3RlcHMoNSwgc3RhcnQpIGluZmluaXRlO1xuICAtd2Via2l0LWFuaW1hdGlvbjogYmxpbmsgMXMgc3RlcHMoNSwgc3RhcnQpIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIGJsaW5rIHtcbiAgdG8ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIGJsaW5rIHtcbiAgdG8ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxufVxuLypodHRwczogLy9jc3MtdHJpY2tzLmNvbS9hbmltYXRpb25zLXRoZS1hbmd1bGFyLXdheS8qL1xuLmNsaWNrIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vKi5mYUljbi1yb3RhdGUtOTAge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xufSovXG4vKi8vaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTMzMTI2NDAvaG93LXRvLWNoYW5nZS1zaXplLW9mLW1hdC1pY29uLW9uLWFuZ3VsYXItbWF0ZXJpYWwvNTMzMTI3NTRcbiAgLy9odHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80ODc3NjE0Mi9jaGFuZ2Utc3ZnLXNpemUtaW4tYW5ndWxhci1tYXRlcmlhbC0yLW1hdC1pY29uLXVzaW5nLXZhbmlsbGEtY3NzLW9yLWh0bWw/cnE9MVxuLm1hdC1pY29uIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICB0cmFuc2Zvcm06IHNjYWxlKDIpO1xufSovXG4vKi5tYXQtaWNvbi1idXR0b24ge1xuICB3aWR0aDogMjRweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDI0cHggIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDI0cHggIWltcG9ydGFudDtcbn0qL1xuYS5kaXNhYmxlZCB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5mbGV4LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgLypqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4taGVpZ2h0OiA0OHB4O1xuICBwYWRkaW5nOiAwIDhweDsqL1xufVxuXG4uZGl2c3BhbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgcGFkZGluZzogMHB4IDEwcHggMHB4IDEwcHg7XG59XG5cbi5QcmltYXJ5SVBOZXcge1xuICBiYWNrZ3JvdW5kOiAjY2ZmNmRkO1xuICBjb2xvcjogIzY0YjVmNjtcbiAgZm9udC12YXJpYW50OiBhbGwtcGV0aXRlLWNhcHM7XG59XG5cbi5TZWNvbmRhcnlJUE5ldyB7XG4gIGJhY2tncm91bmQ6ICNjZmY2ZGQ7XG4gIGNvbG9yOiAjZjQ0MzM2O1xuICBmb250LXZhcmlhbnQ6IGFsbC1wZXRpdGUtY2Fwcztcbn1cblxuLmJsdWVUaWNrIHtcbiAgY29sb3I6IGRlZXBza3libHVlO1xufVxuXG4uZ3JlZW5UaWNrIHtcbiAgY29sb3I6IGdyZWVuO1xufSIsIi8qaHR0cHM6IC8vc3RhY2tibGl0ei5jb20vZWRpdC9hbmd1bGFyLW1hdGVyaWFsLXRoZW1lLXNlY3JldHM/ZW1iZWQ9MSZmaWxlPXNyYyUyRnRoZW1lLnNjc3Mmc291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1PcGVuK1NhbnM6NDAwLDMwMCwzMDBpdGFsaWMsNDAwaXRhbGljLDYwMCw2MDBpdGFsaWMsNzAwLDcwMGl0YWxpYyw4MDAsODAwaXRhbGljJnN1YnNldD1sYXRpbi1leHQnKTtcclxuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86MzAwLDQwMCw1MDAsNzAwLDQwMGl0YWxpYyZhbXA7c3Vic2V0PWxhdGluLWV4dCcpOyovXHJcbi8qQGltcG9ydCAnLi4vY3NzL0dvb2dsZUZvbnRzT3BlblNhbnMuY3NzJztcclxuQGltcG9ydCAnLi4vY3NzL0dvb2dsZUZvbnRzUm9ib3RvLmNzcyc7Ki9cclxuXHJcbkBpbXBvcnQgJ35AYW5ndWxhci9tYXRlcmlhbC90aGVtaW5nJztcclxuXHJcbkBpbmNsdWRlIG1hdC1jb3JlKCk7XHJcblxyXG4vL2h0dHBzOi8vbWVkaXVtLmNvbS90ZW5zdWx0L2FuZ3VsYXItbWF0ZXJpYWwtY3VzdG9tLXRoZW1lLWltcGxlbWVudGF0aW9uLWluLWFuZ3VsYXItNi1kNDI0YTJhNDdlNGNcclxuLy9odHRwczovL21hdGVyaWFsLXVpLmNvbS9jdXN0b21pemF0aW9uL2NvbG9yL1xyXG4vL0N1c3RvbSB0aGVtZVxyXG4kY3VzdG9tLXRoZW1lLXByaW1hcnk6IG1hdC1wYWxldHRlKCRtYXQtYmx1ZSwgMzAwKTtcclxuJGN1c3RvbS10aGVtZS1hY2NlbnQ6IG1hdC1wYWxldHRlKCRtYXQteWVsbG93LCBBMjAwLCBBMTAwLCBBNDAwKTsvL21hdC1wYWxldHRlKCRtYXQtcGluaywgQTIwMCwgQTEwMCwgQTQwMCk7XHJcbiRjdXN0b20tdGhlbWUtd2FybjogbWF0LXBhbGV0dGUoJG1hdC1yZWQpO1xyXG4kY3VzdG9tLXRoZW1lOiBtYXQtbGlnaHQtdGhlbWUoJGN1c3RvbS10aGVtZS1wcmltYXJ5LCAkY3VzdG9tLXRoZW1lLWFjY2VudCwgJGN1c3RvbS10aGVtZS13YXJuKTtcclxuXHJcbi8vQWRkIHRvIGFuZ3VsYXIgbWF0ZXJpYWxcclxuQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10aGVtZSgkY3VzdG9tLXRoZW1lKTtcclxuXHJcblxyXG5cclxuLy9odHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vZ3VpZGUvdGhlbWluZ1xyXG4vL2h0dHBzOi8vd3d3LmZyZWVjb2RlY2FtcC5vcmcvbmV3cy9ob3ctdG8tbWFrZS1hLWN1c3RvbS10aGVtZS1pbi1hbmd1bGFyLW1hdGVyaWFsLWQ0NzEyMmExZTM2MS9cclxuLy8gRGVmaW5lIGFuIGFsdGVybmF0ZSBkYXJrIHRoZW1lLlxyXG4kZGFyay1wcmltYXJ5OiBtYXQtcGFsZXR0ZSgkbWF0LWJsdWUtZ3JleSk7XHJcbiRkYXJrLWFjY2VudDogbWF0LXBhbGV0dGUoJG1hdC1hbWJlciwgQTIwMCwgQTEwMCwgQTQwMCk7XHJcbiRkYXJrLXdhcm46IG1hdC1wYWxldHRlKCRtYXQtZGVlcC1vcmFuZ2UpO1xyXG4kZGFyay10aGVtZTogbWF0LWRhcmstdGhlbWUoJGRhcmstcHJpbWFyeSwgJGRhcmstYWNjZW50LCAkZGFyay13YXJuKTtcclxuXHJcbi8vIEluY2x1ZGUgdGhlIGFsdGVybmF0aXZlIHRoZW1lIHN0eWxlcyBpbnNpZGUgb2YgYSBibG9jayB3aXRoIGEgQ1NTIGNsYXNzLiBZb3UgY2FuIG1ha2UgdGhpc1xyXG4vLyBDU1MgY2xhc3Mgd2hhdGV2ZXIgeW91IHdhbnQuIEluIHRoaXMgZXhhbXBsZSwgYW55IGNvbXBvbmVudCBpbnNpZGUgb2YgYW4gZWxlbWVudCB3aXRoXHJcbi8vIGAudW5pY29ybi1kYXJrLXRoZW1lYCB3aWxsIGJlIGFmZmVjdGVkIGJ5IHRoaXMgYWx0ZXJuYXRlIGRhcmsgdGhlbWUgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCB0aGVtZS5cclxuLnVuaWNvcm4tZGFyay10aGVtZSB7XHJcbiAgQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10aGVtZSgkZGFyay10aGVtZSk7XHJcbn1cclxuXHJcblxyXG4vKlxyXG4gIGh0dHBzOiAvL3N0YWNrYmxpdHouY29tL2VkaXQvYW5ndWxhci1tYXRlcmlhbC10aGVtZS1zZWNyZXRzP2VtYmVkPTEmZmlsZT1zcmMlMkZ0aGVtZS5zY3NzJnNvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICBodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vZ3VpZGUvdHlwb2dyYXBoeVxyXG4gIGh0dHBzOi8vbWF0ZXJpYWwtdWkuY29tL2N1c3RvbWl6YXRpb24vY29sb3IvXHJcbiovXHJcbiRkZWZhdWx0TWF0LXR5cG9ncmFwaHk6IG1hdC10eXBvZ3JhcGh5LWNvbmZpZyhcclxuICAkZm9udC1mYW1pbHk6ICdcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWYnLFxyXG4gICRkaXNwbGF5LTQ6IG1hdC10eXBvZ3JhcGh5LWxldmVsKDExMnB4LCAxMTJweCwgMzAwKSxcclxuICAkZGlzcGxheS0zOiBtYXQtdHlwb2dyYXBoeS1sZXZlbCg1NnB4LCA1NnB4LCA2MDApLFxyXG4gICRkaXNwbGF5LTI6IG1hdC10eXBvZ3JhcGh5LWxldmVsKDQ1cHgsIDQ4cHgsIDQwMCksXHJcbiAgJGRpc3BsYXktMTogbWF0LXR5cG9ncmFwaHktbGV2ZWwoMzRweCwgNDBweCwgNjAwKSwgJGhlYWRsaW5lOiBtYXQtdHlwb2dyYXBoeS1sZXZlbCgyNHB4LCAzMnB4LCA2MDApLFxyXG4gICR0aXRsZTogbWF0LXR5cG9ncmFwaHktbGV2ZWwoMjBweCwgMzJweCwgNjAwKSwgJHN1YmhlYWRpbmctMjogbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTZweCwgMjJweCwgNjAwKSxcclxuICAkc3ViaGVhZGluZy0xOiBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNXB4LCAyNHB4LCA2MDApLCAkYm9keS0yOiBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNHB4LCAyNHB4LCA2MDApLFxyXG4gICRib2R5LTE6IG1hdC10eXBvZ3JhcGh5LWxldmVsKDE0cHgsIDMwcHgsIDYwMCksICRjYXB0aW9uOiBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxMnB4LCAyMHB4LCA2MDApLFxyXG4gICRidXR0b246IG1hdC10eXBvZ3JhcGh5LWxldmVsKDEwcHgsIDE0cHgsIDgwMCksXHJcbiAgLy8gTGluZS1oZWlnaHQgbXVzdCBiZSB1bml0LWxlc3MgZnJhY3Rpb24gb2YgdGhlIGZvbnQtc2l6ZS5cclxuICAkaW5wdXQ6IG1hdC10eXBvZ3JhcGh5LWxldmVsKGluaGVyaXQsIDEuMTI1LCA0MDApXHJcbik7XHJcblxyXG4kZGVmYXVsdE1hdC1wcmltYXJ5LWNvbG9yOiAoXHJcbi8vIE5vbi1hY2NlbnQgQmFja2dyb3VuZHNcclxuLy8gR2VuZXJhbFxyXG41MDogI2UzZjJmZCwgLy8gTW9zdCBmYXIgYXdheVxyXG4xMDA6ICNiYmRlZmIsIC8vIEZhciBmYXIgYXdheVxyXG4yMDA6ICM5MGNhZjksIC8vIEZhciBhd2F5XHJcbjMwMDogIzY0YjVmNiwgLy8gTWlkZGxlIGZhclxyXG40MDA6ICM0MmE1ZjUsIC8vIE1pZGRsZVxyXG41MDA6ICMyMTk2ZjMsIC8vIE1pZGRsZSBjbG9zZSBcXC0gM0Y1MUI1XHJcbjYwMDogIzFlODhlNSwgLy8gQ2xvc2VcclxuNzAwOiAjMTk3NmQyLCAvLyBWZXJ5IGNsb3NlIC0gNUI5QkQ1XHJcbjgwMDogIzE1NjVjMCwgLy8gVmVyeSB2ZXJ5IENsb3NlXHJcbjkwMDogIzBkNDdhMSwgLy8gQ2xvc2VzdFxyXG5BMTAwOiAjODJiMWZmLCAvLyBNb3N0IGZhciBhd2F5XHJcbkEyMDA6ICM0NDhhZmYsIC8vIE1pZGRsZVxyXG5BNDAwOiAjMjk3OWZmLCAvLyBDbG9zZVxyXG5BNzAwOiAjMjk2MmZmLCAvLyBDbG9zZXN0XHJcbmNvbnRyYXN0OiAoIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsIC8vIE1vc3QgZmFyIGF3YXlcclxuMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsIC8vIEZhciBmYXIgYXdheVxyXG4yMDA6ICRkYXJrLXByaW1hcnktdGV4dCwgLy8gRmFyIGF3YXlcclxuMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsIC8vIE1pZGRsZSBmYXJcclxuNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsIC8vIE1pZGRsZVxyXG41MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsIC8vIE1pZGRsZSBjbG9zZVxyXG42MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsIC8vIENsb3NlXHJcbjcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCwgLy8gVmVyeSBjbG9zZVxyXG44MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsIC8vIFZlcnkgdmVyeSBDbG9zZVxyXG45MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsIC8vIENsb3Nlc3RcclxuQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LCAvLyBNb3N0IGZhciBhd2F5XHJcbkEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsIC8vIE1pZGRsZVxyXG5BNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LCAvLyBDbG9zZVxyXG5BNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LCAvLyBDbG9zZXN0XHJcbikgKTtcclxuXHJcbiRkZWZhdWx0TWF0LXRoZW1lOiBtYXQtbGlnaHQtdGhlbWUoIG1hdC1wYWxldHRlKCRkZWZhdWx0TWF0LXByaW1hcnktY29sb3IpLCBtYXQtcGFsZXR0ZSgkbWF0LXllbGxvdywgQTIwMCwgQTEwMCwgQTQwMCksIG1hdC1wYWxldHRlKCRtYXQtcmVkKSApO1xyXG5cclxuLmRlZmF1bHRNYXQge1xyXG4gIEBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdGhlbWUoJGRlZmF1bHRNYXQtdGhlbWUpO1xyXG4gIEBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdHlwb2dyYXBoeSgkZGVmYXVsdE1hdC10eXBvZ3JhcGh5KTtcclxuICAkYmFja2dyb3VuZDogI0YwRjBGMDsgLy9tYXQtY29sb3IoJGRlZmF1bHRNYXQtcHJpbWFyeS1jb2xvciwgNzAwKTsgLSBJTVBcclxuICAkcHJpbWFyeTogbWF0LWNvbG9yKCRkZWZhdWx0TWF0LXByaW1hcnktY29sb3IpO1xyXG4gICRhY2NlbnQ6IG1hdC1jb2xvcigkbWF0LXllbGxvdyk7XHJcbiAgJHdhcm46IG1hdC1jb2xvcigkbWF0LXJlZCk7XHJcblxyXG4gIG1haW4ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XHJcbiAgfVxyXG5cclxuICAubWVudSB7XHJcbiAgICAvKmJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyovXHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICBkaXNwbGF5OmZsZXg7XHJcbiAgfVxyXG5cclxuICBhLCBhOmhvdmVyLCBhOmhvdmVyIHNwYW4ge1xyXG4gICAgY29sb3I6ICRwcmltYXJ5O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICB9XHJcblxyXG4gIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIGg3IHtcclxuICAgIGNvbG9yOiAkcHJpbWFyeTtcclxuICB9XHJcblxyXG4gIC5tYXQtcmFpc2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1cIm1hdC1lbGV2YXRpb24telwiXSksXHJcbiAgLm1hdC1idXR0b24sXHJcbiAgLm1hdC1mYWI6bm90KFtjbGFzcyo9XCJtYXQtZWxldmF0aW9uLXpcIl0pLFxyXG4gIC5tYXQtbWluaS1mYWI6bm90KFtjbGFzcyo9XCJtYXQtZWxldmF0aW9uLXpcIl0pLFxyXG4gIC5tYXQtaWNvbi1idXR0b24ge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGJvcmRlci13aWR0aDogMXB4O1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAubWF0LWNoaXAge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGJvcmRlci13aWR0aDogMXB4O1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgfVxyXG5cclxuICAubWF0LXJhaXNlZC1idXR0b24uYmFjayB7XHJcbiAgICBjb2xvcjogJGxpZ2h0LXByaW1hcnktdGV4dDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkbWF0LWdyZXksIEE3MDApO1xyXG4gIH1cclxuXHJcbiAgLm1hdC1jYXJkIHtcclxuICAgIG1hcmdpbjogMTBweCAxMHB4IDAgMTBweDtcclxuICB9XHJcblxyXG4gIC8qLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXIsIHtcclxuICAgIGhlaWdodDogNDBweDtcclxuICAgIHdpZHRoOiA0MHB4O1xyXG4gIH0qL1xyXG5cclxuICAubWF0LWNoZWNrYm94LWxheW91dCAubWF0LWNoZWNrYm94LWxhYmVsIHtcclxuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xyXG4gIH1cclxuXHJcbiAgLm1hdC1saXN0IC5tYXQtbGlzdC1pdGVtIC5tYXQtbGlzdC10ZXh0IGg0Lm1hdC1saW5lIHtcclxuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgICBjb2xvcjogJHByaW1hcnk7XHJcbiAgfVxyXG5cclxuICAubWF0LWxpc3QgLm1hdC1saXN0LWl0ZW0gLm1hdC1saXN0LXRleHQgcC5tYXQtbGluZSB7XHJcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRkZWZhdWx0TWF0LXByaW1hcnktY29sb3IsIEExMDApO1xyXG4gIH1cclxuXHJcbiAgLm1hdC1jYXJkOm5vdChbY2xhc3MqPVwibWF0LWVsZXZhdGlvbi16XCJdKSB7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgZmxleDogMTtcclxuICAgIGJvcmRlci13aWR0aDogMXB4O1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAubWF0LXRvb2xiYXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICBib3JkZXItd2lkdGg6IDFweDtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XHJcbiAgICBib3gtc2hhZG93OiBub25lO1xyXG4gIH1cclxuXHJcbiAgLm1hdC1jYXJkLm1hdC1jYXJkLWFjY2VudCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xyXG4gICAgY29sb3I6ICRkYXJrLXByaW1hcnktdGV4dDtcclxuICB9XHJcblxyXG4gIC5tYXQtY2FyZC5tYXQtY2FyZC13YXJuIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICR3YXJuO1xyXG4gICAgY29sb3I6ICRsaWdodC1wcmltYXJ5LXRleHQ7XHJcbiAgfVxyXG4gIC8qaHR0cHM6IC8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2ODEyMDY0L2hvdy10by1zZXQtdGhlLWNvbG9yLW9mLWFuLWljb24taW4tYW5ndWxhci1tYXRlcmlhbFxyXG5odHRwczogLy9jc3MtdHJpY2tzLmNvbS9zb2x2ZWQtd2l0aC1jc3MtY29sb3JpemluZy1zdmctYmFja2dyb3VuZHMvKi9cclxuICAud2hpdGUtaWNvbiB7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMTAwKTtcclxuICB9XHJcbiAgLyogTm90ZTogSWYgeW91J3JlIHVzaW5nIGFuIFNWRyBpY29uLCB5b3Ugc2hvdWxkIG1ha2UgdGhlIGNsYXNzIHRhcmdldCB0aGUgYDxzdmc+YCBlbGVtZW50ICovXHJcbiAgLyoud2hpdGUtaWNvbiBzdmcge1xyXG4gIGZpbGw6IHdoaXRlO1xyXG4gIGZpbHRlcjpicmlnaHRuZXNzKDEwMCk7XHJcbn0qL1xyXG4gIC8qLm1hdC1tZW51LWl0ZW0ge1xyXG4gICAgaGVpZ2h0OjIwcHg7XHJcbiAgfVxyXG4gIGJ1dHRvbi5tYXQtbWVudS1pdGVtIHtcclxuICAgIGhlaWdodDogMzBweDtcclxuICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICB9Ki9cclxufVxyXG4iLCIvLyBJbXBvcnQgYWxsIHRoZSB0aGVtaW5nIGZ1bmN0aW9uYWxpdHkuXG4vLyBXZSBjYW4gdXNlIHJlbGF0aXZlIGltcG9ydHMgZm9yIGltcG9ydHMgZnJvbSB0aGUgY2RrIGJlY2F1c2Ugd2UgYnVuZGxlIGV2ZXJ5dGhpbmdcbi8vIHVwIGludG8gYSBzaW5nbGUgZmxhdCBzY3NzIGZpbGUgZm9yIG1hdGVyaWFsLlxuLy8gV2Ugd2FudCBvdmVybGF5cyB0byBhbHdheXMgYXBwZWFyIG92ZXIgdXNlciBjb250ZW50LCBzbyBzZXQgYSBiYXNlbGluZVxuLy8gdmVyeSBoaWdoIHotaW5kZXggZm9yIHRoZSBvdmVybGF5IGNvbnRhaW5lciwgd2hpY2ggaXMgd2hlcmUgd2UgY3JlYXRlIHRoZSBuZXdcbi8vIHN0YWNraW5nIGNvbnRleHQgZm9yIGFsbCBvdmVybGF5cy5cbiRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjogMTAwMCAhZGVmYXVsdDtcbiRjZGstei1pbmRleC1vdmVybGF5OiAxMDAwICFkZWZhdWx0O1xuJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A6IDEwMDAgIWRlZmF1bHQ7XG5cbi8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFsbCBvZiB0aGUgYmFja2Ryb3BzXG4kY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzIpICFkZWZhdWx0O1xuXG4vLyBEZWZhdWx0IGJhY2tkcm9wIGFuaW1hdGlvbiBpcyBiYXNlZCBvbiB0aGUgTWF0ZXJpYWwgRGVzaWduIHN3aWZ0LWVhc2Utb3V0LlxuJGJhY2tkcm9wLWFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXMgIWRlZmF1bHQ7XG4kYmFja2Ryb3AtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSkgIWRlZmF1bHQ7XG5cblxuQG1peGluIGNkay1vdmVybGF5KCkge1xuICAuY2RrLW92ZXJsYXktY29udGFpbmVyLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIC8vIERpc2FibGUgZXZlbnRzIGZyb20gYmVpbmcgY2FwdHVyZWQgb24gdGhlIG92ZXJsYXkgY29udGFpbmVyLlxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgLy8gVGhlIGNvbnRhaW5lciBzaG91bGQgYmUgdGhlIHNpemUgb2YgdGhlIHZpZXdwb3J0LlxuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIFRoZSBvdmVybGF5LWNvbnRhaW5lciBpcyBhbiBpbnZpc2libGUgZWxlbWVudCB3aGljaCBjb250YWlucyBhbGwgaW5kaXZpZHVhbCBvdmVybGF5cy5cbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjtcblxuICAgICY6ZW1wdHkge1xuICAgICAgLy8gSGlkZSB0aGUgZWxlbWVudCB3aGVuIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgY2hpbGQgbm9kZXMuIFRoaXMgZG9lc24ndFxuICAgICAgLy8gaW5jbHVkZSBvdmVybGF5cyB0aGF0IGhhdmUgYmVlbiBkZXRhY2hlZCwgcmF0aGVyIHRoYW4gZGlzcG9zZWQuXG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIHVzZSBhbiBleHRyYSB3cmFwcGVyIGVsZW1lbnQgaW4gb3JkZXIgdG8gdXNlIG1ha2UgdGhlIG92ZXJsYXkgaXRzZWxmIGEgZmxleCBpdGVtLlxuICAvLyBUaGlzIG1ha2VzIGNlbnRlcmluZyB0aGUgb3ZlcmxheSBlYXN5IHdpdGhvdXQgcnVubmluZyBpbnRvIHRoZSBzdWJwaXhlbCByZW5kZXJpbmdcbiAgLy8gcHJvYmxlbXMgdGllZCB0byB1c2luZyBgdHJhbnNmb3JtYCBhbmQgd2l0aG91dCBpbnRlcmZlcmluZyB3aXRoIHRoZSBvdGhlciBwb3NpdGlvblxuICAvLyBzdHJhdGVnaWVzLlxuICAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuICB9XG5cbiAgLy8gQSBzaW5nbGUgb3ZlcmxheSBwYW5lLlxuICAuY2RrLW92ZXJsYXktcGFuZSB7XG4gICAgLy8gTm90ZTogaXQncyBpbXBvcnRhbnQgZm9yIHRoaXMgb25lIHRvIHN0YXJ0IG9mZiBgYWJzb2x1dGVgLFxuICAgIC8vIGluIG9yZGVyIGZvciB1cyB0byBiZSBhYmxlIHRvIG1lYXN1cmUgaXQgY29ycmVjdGx5LlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuXG4gICAgLy8gRm9yIGNvbm5lY3RlZC1wb3NpdGlvbiBvdmVybGF5cywgd2Ugc2V0IGBkaXNwbGF5OiBmbGV4YCBpblxuICAgIC8vIG9yZGVyIHRvIGZvcmNlIGBtYXgtd2lkdGhgIGFuZCBgbWF4LWhlaWdodGAgdG8gdGFrZSBlZmZlY3QuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1iYWNrZHJvcCB7XG4gICAgLy8gVE9ETyhqZWxib3Vybik6IHJldXNlIHNpZGVuYXYgZnVsbHNjcmVlbiBtaXhpbi5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb24gJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb247XG4gICAgb3BhY2l0eTogMDtcblxuICAgICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlIHJnYmEgYmFja2dyb3VuZCB3aWxsIGJlY29tZSBzb2xpZCBzbyB3ZSBuZWVkIHRvIGZhbGwgYmFja1xuICAgICAgLy8gdG8gbWFraW5nIGl0IG9wYXF1ZSB1c2luZyBgb3BhY2l0eWAuIE5vdGUgdGhhdCB3ZSBjYW4ndCB1c2UgdGhlIGBjZGstaGlnaC1jb250cmFzdGBcbiAgICAgIC8vIG1peGluLCBiZWNhdXNlIHdlIGNhbid0IG5vcm1hbGl6ZSB0aGUgaW1wb3J0IHBhdGggdG8gdGhlIF9hMTF5LnNjc3MgYm90aCBmb3IgdGhlXG4gICAgICAvLyBzb3VyY2UgYW5kIHdoZW4gdGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkLiBTZWUgIzEwOTA4LlxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wIHtcbiAgICBiYWNrZ3JvdW5kOiAkY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIHtcbiAgICAvLyBOb3RlOiBhcyBvZiBGaXJlZm94IDU3LCBoYXZpbmcgdGhlIGJhY2tkcm9wIGJlIGBiYWNrZ3JvdW5kOiBub25lYCB3aWxsIHByZXZlbnQgaXQgZnJvbVxuICAgIC8vIGNhcHR1cmluZyB0aGUgdXNlcidzIG1vdXNlIHNjcm9sbCBldmVudHMuIFNpbmNlIHdlIGFsc28gY2FuJ3QgdXNlIHNvbWV0aGluZyBsaWtlXG4gICAgLy8gYHJnYmEoMCwgMCwgMCwgMClgLCB3ZSB3b3JrIGFyb3VuZCB0aGUgaW5jb25zaXN0ZW5jeSBieSBub3Qgc2V0dGluZyB0aGUgYmFja2dyb3VuZCBhdFxuICAgIC8vIGFsbCBhbmQgdXNpbmcgYG9wYWNpdHlgIHRvIG1ha2UgdGhlIGVsZW1lbnQgdHJhbnNwYXJlbnQuXG4gICAgJiwgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gT3ZlcmxheSBwYXJlbnQgZWxlbWVudCB1c2VkIHdpdGggdGhlIGNvbm5lY3RlZCBwb3NpdGlvbiBzdHJhdGVneS4gVXNlZCB0byBjb25zdHJhaW4gdGhlXG4gIC8vIG92ZXJsYXkgZWxlbWVudCdzIHNpemUgdG8gZml0IHdpdGhpbiB0aGUgdmlld3BvcnQuXG4gIC5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXk7XG5cbiAgICAvLyBXZSB1c2UgYGRpc3BsYXk6IGZsZXhgIG9uIHRoaXMgZWxlbWVudCBleGNsdXNpdmVseSBmb3IgY2VudGVyaW5nIGNvbm5lY3RlZCBvdmVybGF5cy5cbiAgICAvLyBXaGVuICpub3QqIGNlbnRlcmluZywgYSB0b3AvbGVmdC9ib3R0b20vcmlnaHQgd2lsbCBiZSBzZXQgd2hpY2ggb3ZlcnJpZGVzIHRoZSBub3JtYWxcbiAgICAvLyBmbGV4IGxheW91dC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLy8gV2UgdXNlIHRoZSBgY29sdW1uYCBkaXJlY3Rpb24gaGVyZSB0byBhdm9pZCBzb21lIGZsZXhib3ggaXNzdWVzIGluIEVkZ2VcbiAgICAvLyB3aGVuIHVzaW5nIHRoZSBcImdyb3cgYWZ0ZXIgb3BlblwiIG9wdGlvbnMuXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC8vIEFkZCBzb21lIGRpbWVuc2lvbnMgc28gdGhlIGVsZW1lbnQgaGFzIGFuIGBpbm5lclRleHRgIHdoaWNoIHNvbWUgcGVvcGxlIGRlcGVuZCBvbiBpbiB0ZXN0cy5cbiAgICBtaW4td2lkdGg6IDFweDtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gIH1cblxuICAvLyBVc2VkIHdoZW4gZGlzYWJsaW5nIGdsb2JhbCBzY3JvbGxpbmcuXG4gIC5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgICAvLyBOZWNlc3NhcnkgZm9yIHRoZSBjb250ZW50IG5vdCB0byBsb3NlIGl0cyB3aWR0aC4gTm90ZSB0aGF0IHdlJ3JlIHVzaW5nIDEwMCUsIGluc3RlYWQgb2ZcbiAgICAvLyAxMDB2dywgYmVjYXVzZSAxMDB2dyBpbmNsdWRlcyB0aGUgd2lkdGggcGx1cyB0aGUgc2Nyb2xsYmFyLCB3aGVyZWFzIDEwMCUgaXMgdGhlIHdpZHRoXG4gICAgLy8gdGhhdCB0aGUgZWxlbWVudCBoYWQgYmVmb3JlIHdlIG1hZGUgaXQgYGZpeGVkYC5cbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC8vIE5vdGU6IHRoaXMgd2lsbCBhbHdheXMgYWRkIGEgc2Nyb2xsYmFyIHRvIHdoYXRldmVyIGVsZW1lbnQgaXQgaXMgb24sIHdoaWNoIGNhblxuICAgIC8vIHBvdGVudGlhbGx5IHJlc3VsdCBpbiBkb3VibGUgc2Nyb2xsYmFycy4gSXQgc2hvdWxkbid0IGJlIGFuIGlzc3VlLCBiZWNhdXNlIHdlIHdvbid0XG4gICAgLy8gYmxvY2sgc2Nyb2xsaW5nIG9uIGEgcGFnZSB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHNjcm9sbGJhciBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICB9XG59XG5cbkBtaXhpbiBjZGstYTExeSB7XG4gIC5jZGstdmlzdWFsbHktaGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuXG4gICAgLy8gQXZvaWQgYnJvd3NlcnMgcmVuZGVyaW5nIHRoZSBmb2N1cyByaW5nIGluIHNvbWUgY2FzZXMuXG4gICAgb3V0bGluZTogMDtcblxuICAgIC8vIEF2b2lkIHNvbWUgY2FzZXMgd2hlcmUgdGhlIGJyb3dzZXIgd2lsbCBzdGlsbCByZW5kZXIgdGhlIG5hdGl2ZSBjb250cm9scyAoc2VlICM5MDQ5KS5cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICB9XG59XG5cbi8vIEFwcGxpZXMgc3R5bGVzIGZvciB1c2VycyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuIE5vdGUgdGhhdCB0aGlzIG9ubHkgYXBwbGllc1xuLy8gdG8gTWljcm9zb2Z0IGJyb3dzZXJzLiBDaHJvbWUgY2FuIGJlIGluY2x1ZGVkIGJ5IGNoZWNraW5nIGZvciB0aGUgYGh0bWxbaGNdYFxuLy8gYXR0cmlidXRlLCBob3dldmVyIENocm9tZSBoYW5kbGVzIGhpZ2ggY29udHJhc3QgZGlmZmVyZW50bHkuXG4vL1xuLy8gQHBhcmFtIHRhcmdldCBXaGljaCBraW5kIG9mIGhpZ2ggY29udHJhc3Qgc2V0dGluZyB0byB0YXJnZXQuIERlZmF1bHRzIHRvIGBhY3RpdmVgLCBjYW4gYmVcbi8vICAgIGB3aGl0ZS1vbi1ibGFja2Agb3IgYGJsYWNrLW9uLXdoaXRlYC5cbkBtaXhpbiBjZGstaGlnaC1jb250cmFzdCgkdGFyZ2V0OiBhY3RpdmUpIHtcbiAgQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogJHRhcmdldCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgZW5hYmxlIG1vbml0b3JpbmcgYXV0b2ZpbGwgc3RhdGUgb2YgdGV4dCBmaWVsZHMuXG5AbWl4aW4gY2RrLXRleHQtZmllbGQge1xuICAvLyBLZXlmcmFtZXMgdGhhdCBhcHBseSBubyBzdHlsZXMsIGJ1dCBhbGxvdyB1cyB0byBtb25pdG9yIHdoZW4gYW4gdGV4dCBmaWVsZCBiZWNvbWVzIGF1dG9maWxsZWRcbiAgLy8gYnkgd2F0Y2hpbmcgZm9yIHRoZSBhbmltYXRpb24gZXZlbnRzIHRoYXQgYXJlIGZpcmVkIHdoZW4gdGhleSBzdGFydC4gTm90ZTogdGhlIC8qISovIGNvbW1lbnQgaXNcbiAgLy8gbmVlZGVkIHRvIHByZXZlbnQgTGliU2FzcyBmcm9tIHN0cmlwcGluZyB0aGUga2V5ZnJhbWVzIG91dC5cbiAgLy8gQmFzZWQgb246IGh0dHBzOi8vbWVkaXVtLmNvbS9AYnJ1bm4vZGV0ZWN0aW5nLWF1dG9maWxsZWQtZmllbGRzLWluLWphdmFzY3JpcHQtYWVkNTk4ZDI1ZGE3XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgey8qISovfVxuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCB7LyohKi99XG5cbiAgLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQ7XG4gIH1cblxuICAuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQ7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIHJlc2l6ZSBoYW5kbGUgb24gYXV0b3NpemluZyB0ZXh0YXJlYXMsIGJlY2F1c2Ugd2hhdGV2ZXIgaGVpZ2h0XG4gIC8vIHRoZSB1c2VyIHJlc2l6ZWQgdG8gd2lsbCBiZSBvdmVyd3JpdHRlbiBvbmNlIHRoZXkgc3RhcnQgdHlwaW5nIGFnYWluLlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICAgIHJlc2l6ZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRoaXMgY2xhc3MgaXMgdGVtcG9yYXJpbHkgYXBwbGllZCB0byB0aGUgdGV4dGFyZWEgd2hlbiBpdCBpcyBiZWluZyBtZWFzdXJlZC4gSXQgaXMgaW1tZWRpYXRlbHlcbiAgLy8gcmVtb3ZlZCB3aGVuIG1lYXN1cmluZyBpcyBjb21wbGV0ZS4gV2UgdXNlIGAhaW1wb3J0YW50YCBydWxlcyBoZXJlIHRvIG1ha2Ugc3VyZSB1c2VyLXNwZWNpZmllZFxuICAvLyBydWxlcyBkbyBub3QgaW50ZXJmZXJlIHdpdGggdGhlIG1lYXN1cmVtZW50LlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nIHtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgLy8gSGF2aW5nIDJweCB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nIHNlZW1zIHRvIGZpeCBhIGJ1ZyB3aGVyZSBDaHJvbWUgZ2V0cyBhbiBpbmNvcnJlY3RcbiAgICAvLyBtZWFzdXJlbWVudC4gV2UganVzdCBoYXZlIHRvIGFjY291bnQgZm9yIGl0IGxhdGVyIGFuZCBzdWJ0cmFjdCBpdCBvZmYgdGhlIGZpbmFsIHJlc3VsdC5cbiAgICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gVXNlZCB0byBnZW5lcmF0ZSBVSURzIGZvciBrZXlmcmFtZXMgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQgZmllbGQgYXV0b2ZpbGwgc3R5bGVzLlxuJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OiAwO1xuXG4vLyBNaXhpbiB1c2VkIHRvIGFwcGx5IGN1c3RvbSBiYWNrZ3JvdW5kIGFuZCBmb3JlZ3JvdW5kIGNvbG9ycyB0byBhbiBhdXRvZmlsbGVkIHRleHQgZmllbGQuXG4vLyBCYXNlZCBvbjogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjc4MTU0OS9cbi8vIHJlbW92aW5nLWlucHV0LWJhY2tncm91bmQtY29sb3VyLWZvci1jaHJvbWUtYXV0b2NvbXBsZXRlI2Fuc3dlci0zNzQzMjI2MFxuQG1peGluIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yKCRiYWNrZ3JvdW5kLCAkZm9yZWdyb3VuZDonJykge1xuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSB7XG4gICAgdG8ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICBAaWYgJGZvcmVncm91bmQgIT0gJycgeyBjb2xvcjogJGZvcmVncm91bmQ7IH1cbiAgICB9XG4gIH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH07XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgfVxuXG4gICYuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCxcbiAgICAgICAgICAgICAgICAgICAgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9O1xuICB9XG5cbiAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OlxuICAgICAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50ICsgMSAhZ2xvYmFsO1xufVxuXG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXBwbHkgbWF0ZXJpYWwgZGVzaWduIHRyZWF0bWVudHMgdG8gYW55IGVsZW1lbnQuXG4vLyBNZWRpYSBxdWVyaWVzXG4vLyBUT0RPKGpvc2VwaHBlcnJvdHQpOiBDaGFuZ2UgJG1hdC14c21hbGwgYW5kICRtYXQtc21hbGwgdXNhZ2VzIHRvIHJlbHkgb24gQnJlYWtwb2ludE9ic2VydmVyLFxuJG1hdC14c21hbGw6ICdtYXgtd2lkdGg6IDU5OXB4JztcbiRtYXQtc21hbGw6ICdtYXgtd2lkdGg6IDk1OXB4JztcblxuLy8gVE9ETzogUmV2aXNpdCBhbGwgei1pbmRpY2VzIGJlZm9yZSBiZXRhXG4vLyB6LWluZGV4IG1hc3RlciBsaXN0XG5cbiR6LWluZGV4LWZhYjogMjAgIWRlZmF1bHQ7XG4kei1pbmRleC1kcmF3ZXI6IDEwMCAhZGVmYXVsdDtcblxuLy8gR2xvYmFsIGNvbnN0YW50c1xuJHBpOiAzLjE0MTU5MjY1O1xuXG4vLyBQYWRkaW5nIGJldHdlZW4gaW5wdXQgdG9nZ2xlcyBhbmQgdGhlaXIgbGFiZWxzXG4kbWF0LXRvZ2dsZS1wYWRkaW5nOiA4cHggIWRlZmF1bHQ7XG4vLyBXaWR0aCBhbmQgaGVpZ2h0IG9mIGlucHV0IHRvZ2dsZXNcbiRtYXQtdG9nZ2xlLXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vIEVhc2luZyBDdXJ2ZXNcbi8vIFRPRE8oamVsYm91cm4pOiBhbGwgb2YgdGhlc2UgbmVlZCB0byBiZSByZXZpc2l0ZWRcblxuLy8gVGhlIGRlZmF1bHQgYW5pbWF0aW9uIGN1cnZlcyB1c2VkIGJ5IG1hdGVyaWFsIGRlc2lnbi5cbiRtYXQtbGluZWFyLW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKSAhZGVmYXVsdDtcbiRtYXQtZmFzdC1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWRlZmF1bHQ7XG4kbWF0LWZhc3Qtb3V0LWxpbmVhci1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpICFkZWZhdWx0O1xuXG4kZWFzZS1pbi1vdXQtY3VydmUtZnVuY3Rpb246IGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKSAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uOiA0MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2Utb3V0OiBhbGwgJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uICRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG5cbiRzd2lmdC1lYXNlLWluLWR1cmF0aW9uOiAzMDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMikgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbjogYWxsICRzd2lmdC1lYXNlLWluLWR1cmF0aW9uICRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2UtaW4tb3V0LWR1cmF0aW9uOiA1MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb246ICRlYXNlLWluLW91dC1jdXJ2ZS1mdW5jdGlvbiAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dDogYWxsICRzd2lmdC1lYXNlLWluLW91dC1kdXJhdGlvbiAkc3dpZnQtZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG4kc3dpZnQtbGluZWFyLWR1cmF0aW9uOiA4MG1zICFkZWZhdWx0O1xuJHN3aWZ0LWxpbmVhci10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhZGVmYXVsdDtcbiRzd2lmdC1saW5lYXI6IGFsbCAkc3dpZnQtbGluZWFyLWR1cmF0aW9uICRzd2lmdC1saW5lYXItdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG5cblxuLy8gQSBjb2xsZWN0aW9uIG9mIG1peGlucyBhbmQgQ1NTIGNsYXNzZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBhcHBseSBlbGV2YXRpb24gdG8gYSBtYXRlcmlhbFxuLy8gZWxlbWVudC5cbi8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vZW52aXJvbm1lbnQvZWxldmF0aW9uLmh0bWxcbi8vIEV4YW1wbGVzOlxuLy9cbi8vXG4vLyAubWF0LWZvbyB7XG4vLyAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDIpO1xuLy9cbi8vICAgJjphY3RpdmUge1xuLy8gICAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDgpO1xuLy8gICB9XG4vLyB9XG4vL1xuLy8gPGRpdiBpZD1cImV4dGVybmFsLWNhcmRcIiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejJcIj48cD5Tb21lIGNvbnRlbnQ8L3A+PC9kaXY+XG4vL1xuLy8gRm9yIGFuIGV4cGxhbmF0aW9uIG9mIHRoZSBkZXNpZ24gYmVoaW5kIGhvdyBlbGV2YXRpb24gaXMgaW1wbGVtZW50ZWQsIHNlZSB0aGUgZGVzaWduIGRvYyBhdFxuLy8gaHR0cHM6Ly9nb28uZ2wvS3EwazlaLlxuXG4vLyBDb2xvcnMgZm9yIHVtYnJhLCBwZW51bWJyYSwgYW5kIGFtYmllbnQgc2hhZG93cy4gQXMgZGVzY3JpYmVkIGluIHRoZSBkZXNpZ24gZG9jLCBlYWNoIGVsZXZhdGlvblxuLy8gbGV2ZWwgaXMgY3JlYXRlZCB1c2luZyBhIHNldCBvZiAzIHNoYWRvdyB2YWx1ZXMsIG9uZSBmb3IgdW1icmEgKHRoZSBzaGFkb3cgcmVwcmVzZW50aW5nIHRoZVxuLy8gc3BhY2UgY29tcGxldGVseSBvYnNjdXJlZCBieSBhbiBvYmplY3QgcmVsYXRpdmUgdG8gaXRzIGxpZ2h0IHNvdXJjZSksIG9uZSBmb3IgcGVudW1icmEgKHRoZVxuLy8gc3BhY2UgcGFydGlhbGx5IG9ic2N1cmVkIGJ5IGFuIG9iamVjdCksIGFuZCBvbmUgZm9yIGFtYmllbnQgKHRoZSBzcGFjZSB3aGljaCBjb250YWlucyB0aGUgb2JqZWN0XG4vLyBpdHNlbGYpLiBGb3IgYSBmdXJ0aGVyIGV4cGxhbmF0aW9uIG9mIHRoZXNlIHRlcm1zIGFuZCB0aGVpciBtZWFuaW5ncywgc2VlXG4vLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VbWJyYSxfcGVudW1icmFfYW5kX2FudHVtYnJhLlxuXG4vLyBNYXBzIGZvciB0aGUgZGlmZmVyZW50IHNoYWRvdyBzZXRzIGFuZCB0aGVpciB2YWx1ZXMgd2l0aGluIGVhY2ggei1zcGFjZS4gVGhlc2UgdmFsdWVzIHdlcmVcbi8vIGNyZWF0ZWQgYnkgdGFraW5nIGEgZmV3IHJlZmVyZW5jZSBzaGFkb3cgc2V0cyBjcmVhdGVkIGJ5IEdvb2dsZSdzIERlc2lnbmVycyBhbmQgaW50ZXJwb2xhdGluZ1xuLy8gYWxsIG9mIHRoZSB2YWx1ZXMgYmV0d2VlbiB0aGVtLlxuXG5AZnVuY3Rpb24gX2dldC11bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMiksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDJweCAxcHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDNweCAxcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAzOiAnMHB4IDNweCAzcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDJweCA0cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA1OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA2OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA3OiAnMHB4IDRweCA1cHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA4OiAnMHB4IDVweCA1cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA5OiAnMHB4IDVweCA2cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMDogJzBweCA2cHggNnB4IC0zcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTE6ICcwcHggNnB4IDdweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDdweCA4cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMzogJzBweCA3cHggOHB4IC00cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTQ6ICcwcHggN3B4IDlweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDhweCA5cHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNjogJzBweCA4cHggMTBweCAtNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDhweCAxMXB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTg6ICcwcHggOXB4IDExcHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOTogJzBweCA5cHggMTJweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIyOiAnMHB4IDEwcHggMTRweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDExcHggMTRweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDExcHggMTVweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nXG4gICk7XG59XG5cbkBmdW5jdGlvbiBfZ2V0LXBlbnVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSB7XG4gICRzaGFkb3ctY29sb3I6IGlmKHR5cGUtb2YoJGNvbG9yKSA9PSBjb2xvciwgcmdiYSgkY29sb3IsICRvcGFjaXR5ICogMC4xNCksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDFweCAxcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI6ICcwcHggMnB4IDJweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMzogJzBweCAzcHggNHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDRweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDU6ICcwcHggNXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCA2cHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCA3cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCA4cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCA5cHggMTJweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggMTBweCAxNHB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMTogJzBweCAxMXB4IDE1cHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDEycHggMTdweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggMTNweCAxOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNDogJzBweCAxNHB4IDIxcHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDE1cHggMjJweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggMTZweCAyNHB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNzogJzBweCAxN3B4IDI2cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE4OiAnMHB4IDE4cHggMjhweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggMTlweCAyOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMDogJzBweCAyMHB4IDMxcHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDIxcHggMzNweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggMjJweCAzNXB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMzogJzBweCAyM3B4IDM2cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDI0cHggMzhweCAzcHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuQGZ1bmN0aW9uIF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMTIpLCAkY29sb3IpO1xuXG4gIEByZXR1cm4gKFxuICAgIDA6ICcwcHggMHB4IDBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTogJzBweCAxcHggM3B4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDFweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDM6ICcwcHggMXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNDogJzBweCAxcHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNTogJzBweCAxcHggMTRweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCAxcHggMThweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCAycHggMTZweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCAzcHggMTRweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCAzcHggMTZweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggNHB4IDE4cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDExOiAnMHB4IDRweCAyMHB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMjogJzBweCA1cHggMjJweCA0cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggNXB4IDI0cHggNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE0OiAnMHB4IDVweCAyNnB4IDRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNTogJzBweCA2cHggMjhweCA1cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggNnB4IDMwcHggNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDZweCAzMnB4IDVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxODogJzBweCA3cHggMzRweCA2cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggN3B4IDM2cHggNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDhweCAzOHB4IDdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMTogJzBweCA4cHggNDBweCA3cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggOHB4IDQycHggN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDlweCA0NHB4IDhweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyNDogJzBweCA5cHggNDZweCA4cHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuLy8gVGhlIGRlZmF1bHQgZHVyYXRpb24gdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb246IDI4MG1zICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBlYXNpbmcgdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkbWF0LWZhc3Qtb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uO1xuXG4vLyBUaGUgZGVmYXVsdCBjb2xvciBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IG9wYWNpdHkgc2NhbGluZyB2YWx1ZSBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1vcGFjaXR5OiAxICFkZWZhdWx0O1xuXG4vLyBQcmVmaXggZm9yIGVsZXZhdGlvbi1yZWxhdGVkIHNlbGVjdG9ycy5cbiRfbWF0LWVsZXZhdGlvbi1wcmVmaXg6ICdtYXQtZWxldmF0aW9uLXonO1xuXG4vLyBBcHBsaWVzIHRoZSBjb3JyZWN0IGNzcyBydWxlcyB0byBhbiBlbGVtZW50IHRvIGdpdmUgaXQgdGhlIGVsZXZhdGlvbiBzcGVjaWZpZWQgYnkgJHpWYWx1ZS5cbi8vIFRoZSAkelZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNC5cbkBtaXhpbiBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsICRvcGFjaXR5OiAkbWF0LWVsZXZhdGlvbi1vcGFjaXR5KSB7XG4gIEBpZiB0eXBlLW9mKCR6VmFsdWUpICE9IG51bWJlciBvciBub3QgdW5pdGxlc3MoJHpWYWx1ZSkge1xuICAgIEBlcnJvciAnJHpWYWx1ZSBtdXN0IGJlIGEgdW5pdGxlc3MgbnVtYmVyJztcbiAgfVxuICBAaWYgJHpWYWx1ZSA8IDAgb3IgJHpWYWx1ZSA+IDI0IHtcbiAgICBAZXJyb3IgJyR6VmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0JztcbiAgfVxuXG4gIGJveC1zaGFkb3c6ICN7bWFwLWdldChfZ2V0LXVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSwgJHpWYWx1ZSl9LFxuICAgICAgICAgICAgICAje21hcC1nZXQoX2dldC1wZW51bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfSxcbiAgICAgICAgICAgICAgI3ttYXAtZ2V0KF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfTtcbn1cblxuQG1peGluIF9tYXQtdGhlbWUtZWxldmF0aW9uKCR6VmFsdWUsICR0aGVtZSwgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGVsZXZhdGlvbi1jb2xvcjogbWFwLWdldCgkZm9yZWdyb3VuZCwgZWxldmF0aW9uKTtcbiAgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0OiBpZigkZWxldmF0aW9uLWNvbG9yID09IG51bGwsICRtYXQtZWxldmF0aW9uLWNvbG9yLCAkZWxldmF0aW9uLWNvbG9yKTtcblxuICBAaW5jbHVkZSBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdCwgJG9wYWNpdHkpO1xufVxuXG4vLyBBcHBsaWVzIHRoZSBlbGV2YXRpb24gdG8gYW4gZWxlbWVudCBpbiBhIG1hbm5lciB0aGF0IGFsbG93c1xuLy8gY29uc3VtZXJzIHRvIG92ZXJyaWRlIGl0IHZpYSB0aGUgTWF0ZXJpYWwgZWxldmF0aW9uIGNsYXNzZXMuXG5AbWl4aW4gbWF0LW92ZXJyaWRhYmxlLWVsZXZhdGlvbihcbiAgICAkelZhbHVlLFxuICAgICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsXG4gICAgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJjpub3QoW2NsYXNzKj0nI3skX21hdC1lbGV2YXRpb24tcHJlZml4fSddKSB7XG4gICAgQGluY2x1ZGUgbWF0LWVsZXZhdGlvbigkelZhbHVlLCAkY29sb3IsICRvcGFjaXR5KTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJHRoZW1lLCAkb3BhY2l0eTogJG1hdC1lbGV2YXRpb24tb3BhY2l0eSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkZWxldmF0aW9uLWNvbG9yOiBtYXAtZ2V0KCRmb3JlZ3JvdW5kLCBlbGV2YXRpb24pO1xuICAkZWxldmF0aW9uLWNvbG9yLW9yLWRlZmF1bHQ6IGlmKCRlbGV2YXRpb24tY29sb3IgPT0gbnVsbCwgJG1hdC1lbGV2YXRpb24tY29sb3IsICRlbGV2YXRpb24tY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1hdC1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0LCAkb3BhY2l0eSk7XG59XG5cbi8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCBhcyB0aGUgdmFsdWUgZm9yIGEgdHJhbnNpdGlvbiBwcm9wZXJ0eSBmb3IgZWxldmF0aW9uLlxuLy8gQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIGRpcmVjdGx5IGlzIHVzZWZ1bCBpbiBzaXR1YXRpb25zIHdoZXJlIGEgY29tcG9uZW50IG5lZWRzIHRvIHRyYW5zaXRpb25cbi8vIG1vcmUgdGhhbiBvbmUgcHJvcGVydHkuXG4vL1xuLy8gLmZvbyB7XG4vLyAgIHRyYW5zaXRpb246IG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1wcm9wZXJ0eS12YWx1ZSgpLCBvcGFjaXR5IDEwMG1zIGVhc2U7XG4vLyB9XG5AZnVuY3Rpb24gbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKFxuICAgICRkdXJhdGlvbjogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgICAkZWFzaW5nOiAkbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikge1xuICBAcmV0dXJuIGJveC1zaGFkb3cgI3skZHVyYXRpb259ICN7JGVhc2luZ307XG59XG5cbi8vIEFwcGxpZXMgdGhlIGNvcnJlY3QgY3NzIHJ1bGVzIG5lZWRlZCB0byBoYXZlIGFuIGVsZW1lbnQgdHJhbnNpdGlvbiBiZXR3ZWVuIGVsZXZhdGlvbnMuXG4vLyBUaGlzIG1peGluIHNob3VsZCBiZSBhcHBsaWVkIHRvIGVsZW1lbnRzIHdob3NlIGVsZXZhdGlvbiB2YWx1ZXMgd2lsbCBjaGFuZ2UgZGVwZW5kaW5nIG9uIHRoZWlyXG4vLyBjb250ZXh0IChlLmcuIHdoZW4gYWN0aXZlIG9yIGRpc2FibGVkKS5cbi8vXG4vLyBOT1RFKHRyYXZpc2thdWZtYW4pOiBCb3RoIHRoaXMgbWl4aW4gYW5kIHRoZSBhYm92ZSBmdW5jdGlvbiB1c2UgZGVmYXVsdCBwYXJhbWV0ZXJzIHNvIHRoZXkgY2FuXG4vLyBiZSB1c2VkIGluIHRoZSBzYW1lIHdheSBieSBjbGllbnRzLlxuQG1peGluIG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbihcbiAgICAkZHVyYXRpb246ICRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICAgJGVhc2luZzogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pIHtcbiAgdHJhbnNpdGlvbjogbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKCRkdXJhdGlvbiwgJGVhc2luZyk7XG59XG5cbi8vIENvbG9yIHBhbGV0dGVzIGZyb20gdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbG9yL1xuLy9cbi8vIENvbnRyYXN0IGNvbG9ycyBhcmUgaGFyZC1jb2RlZCBiZWNhdXNlIGl0IGlzIHRvbyBkaWZmaWN1bHQgKHByb2JhYmx5IGltcG9zc2libGUpIHRvXG4vLyBjYWxjdWxhdGUgdGhlbS4gVGhlc2UgY29udHJhc3QgY29sb3JzIGFyZSBwdWxsZWQgZnJvbSB0aGUgcHVibGljIE1hdGVyaWFsIERlc2lnbiBzcGVjIHN3YXRjaGVzLlxuLy8gV2hpbGUgdGhlIGNvbnRyYXN0IGNvbG9ycyBpbiB0aGUgc3BlYyBhcmUgbm90IHByZXNjcmlwdGl2ZSwgd2UgdXNlIHRoZW0gZm9yIGNvbnZlbmllbmNlLlxuXG5cbi8vIEBkZXByZWNhdGVkIHJlbmFtZWQgdG8gJGRhcmstcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJGJsYWNrLTg3LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgcmVuYW1lZCB0byAkbGlnaHQtcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTg3LW9wYWNpdHk6IHJnYmEod2hpdGUsIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRkYXJrLVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kYmxhY2stMTItb3BhY2l0eTogcmdiYShibGFjaywgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGxpZ2h0LVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kd2hpdGUtMTItb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGRhcmstW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiRibGFjay02LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuMDYpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRsaWdodC1bc2Vjb25kYXJ5LXRleHQsZGlzYWJsZWQtdGV4dCxkaXZpZGVycyxmb2N1c2VkXSBpbnN0ZWFkLlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTYtb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4wNik7XG5cbiRkYXJrLXByaW1hcnktdGV4dDogcmdiYShibGFjaywgMC44Nyk7XG4kZGFyay1zZWNvbmRhcnktdGV4dDogcmdiYShibGFjaywgMC41NCk7XG4kZGFyay1kaXNhYmxlZC10ZXh0OiByZ2JhKGJsYWNrLCAwLjM4KTtcbiRkYXJrLWRpdmlkZXJzOiByZ2JhKGJsYWNrLCAwLjEyKTtcbiRkYXJrLWZvY3VzZWQ6IHJnYmEoYmxhY2ssIDAuMTIpO1xuJGxpZ2h0LXByaW1hcnktdGV4dDogd2hpdGU7XG4kbGlnaHQtc2Vjb25kYXJ5LXRleHQ6IHJnYmEod2hpdGUsIDAuNyk7XG4kbGlnaHQtZGlzYWJsZWQtdGV4dDogcmdiYSh3aGl0ZSwgMC41KTtcbiRsaWdodC1kaXZpZGVyczogcmdiYSh3aGl0ZSwgMC4xMik7XG4kbGlnaHQtZm9jdXNlZDogcmdiYSh3aGl0ZSwgMC4xMik7XG5cbiRtYXQtcmVkOiAoXG4gIDUwOiAjZmZlYmVlLFxuICAxMDA6ICNmZmNkZDIsXG4gIDIwMDogI2VmOWE5YSxcbiAgMzAwOiAjZTU3MzczLFxuICA0MDA6ICNlZjUzNTAsXG4gIDUwMDogI2Y0NDMzNixcbiAgNjAwOiAjZTUzOTM1LFxuICA3MDA6ICNkMzJmMmYsXG4gIDgwMDogI2M2MjgyOCxcbiAgOTAwOiAjYjcxYzFjLFxuICBBMTAwOiAjZmY4YTgwLFxuICBBMjAwOiAjZmY1MjUyLFxuICBBNDAwOiAjZmYxNzQ0LFxuICBBNzAwOiAjZDUwMDAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtcGluazogKFxuICA1MDogI2ZjZTRlYyxcbiAgMTAwOiAjZjhiYmQwLFxuICAyMDA6ICNmNDhmYjEsXG4gIDMwMDogI2YwNjI5MixcbiAgNDAwOiAjZWM0MDdhLFxuICA1MDA6ICNlOTFlNjMsXG4gIDYwMDogI2Q4MWI2MCxcbiAgNzAwOiAjYzIxODViLFxuICA4MDA6ICNhZDE0NTcsXG4gIDkwMDogIzg4MGU0ZixcbiAgQTEwMDogI2ZmODBhYixcbiAgQTIwMDogI2ZmNDA4MSxcbiAgQTQwMDogI2Y1MDA1NyxcbiAgQTcwMDogI2M1MTE2MixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXB1cnBsZTogKFxuICA1MDogI2YzZTVmNSxcbiAgMTAwOiAjZTFiZWU3LFxuICAyMDA6ICNjZTkzZDgsXG4gIDMwMDogI2JhNjhjOCxcbiAgNDAwOiAjYWI0N2JjLFxuICA1MDA6ICM5YzI3YjAsXG4gIDYwMDogIzhlMjRhYSxcbiAgNzAwOiAjN2IxZmEyLFxuICA4MDA6ICM2YTFiOWEsXG4gIDkwMDogIzRhMTQ4YyxcbiAgQTEwMDogI2VhODBmYyxcbiAgQTIwMDogI2UwNDBmYixcbiAgQTQwMDogI2Q1MDBmOSxcbiAgQTcwMDogI2FhMDBmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtZGVlcC1wdXJwbGU6IChcbiAgNTA6ICNlZGU3ZjYsXG4gIDEwMDogI2QxYzRlOSxcbiAgMjAwOiAjYjM5ZGRiLFxuICAzMDA6ICM5NTc1Y2QsXG4gIDQwMDogIzdlNTdjMixcbiAgNTAwOiAjNjczYWI3LFxuICA2MDA6ICM1ZTM1YjEsXG4gIDcwMDogIzUxMmRhOCxcbiAgODAwOiAjNDUyN2EwLFxuICA5MDA6ICMzMTFiOTIsXG4gIEExMDA6ICNiMzg4ZmYsXG4gIEEyMDA6ICM3YzRkZmYsXG4gIEE0MDA6ICM2NTFmZmYsXG4gIEE3MDA6ICM2MjAwZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWluZGlnbzogKFxuICA1MDogI2U4ZWFmNixcbiAgMTAwOiAjYzVjYWU5LFxuICAyMDA6ICM5ZmE4ZGEsXG4gIDMwMDogIzc5ODZjYixcbiAgNDAwOiAjNWM2YmMwLFxuICA1MDA6ICMzZjUxYjUsXG4gIDYwMDogIzM5NDlhYixcbiAgNzAwOiAjMzAzZjlmLFxuICA4MDA6ICMyODM1OTMsXG4gIDkwMDogIzFhMjM3ZSxcbiAgQTEwMDogIzhjOWVmZixcbiAgQTIwMDogIzUzNmRmZSxcbiAgQTQwMDogIzNkNWFmZSxcbiAgQTcwMDogIzMwNGZmZSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtYmx1ZTogKFxuICA1MDogI2UzZjJmZCxcbiAgMTAwOiAjYmJkZWZiLFxuICAyMDA6ICM5MGNhZjksXG4gIDMwMDogIzY0YjVmNixcbiAgNDAwOiAjNDJhNWY1LFxuICA1MDA6ICMyMTk2ZjMsXG4gIDYwMDogIzFlODhlNSxcbiAgNzAwOiAjMTk3NmQyLFxuICA4MDA6ICMxNTY1YzAsXG4gIDkwMDogIzBkNDdhMSxcbiAgQTEwMDogIzgyYjFmZixcbiAgQTIwMDogIzQ0OGFmZixcbiAgQTQwMDogIzI5NzlmZixcbiAgQTcwMDogIzI5NjJmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWxpZ2h0LWJsdWU6IChcbiAgNTA6ICNlMWY1ZmUsXG4gIDEwMDogI2IzZTVmYyxcbiAgMjAwOiAjODFkNGZhLFxuICAzMDA6ICM0ZmMzZjcsXG4gIDQwMDogIzI5YjZmNixcbiAgNTAwOiAjMDNhOWY0LFxuICA2MDA6ICMwMzliZTUsXG4gIDcwMDogIzAyODhkMSxcbiAgODAwOiAjMDI3N2JkLFxuICA5MDA6ICMwMTU3OWIsXG4gIEExMDA6ICM4MGQ4ZmYsXG4gIEEyMDA6ICM0MGM0ZmYsXG4gIEE0MDA6ICMwMGIwZmYsXG4gIEE3MDA6ICMwMDkxZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtY3lhbjogKFxuICA1MDogI2UwZjdmYSxcbiAgMTAwOiAjYjJlYmYyLFxuICAyMDA6ICM4MGRlZWEsXG4gIDMwMDogIzRkZDBlMSxcbiAgNDAwOiAjMjZjNmRhLFxuICA1MDA6ICMwMGJjZDQsXG4gIDYwMDogIzAwYWNjMSxcbiAgNzAwOiAjMDA5N2E3LFxuICA4MDA6ICMwMDgzOGYsXG4gIDkwMDogIzAwNjA2NCxcbiAgQTEwMDogIzg0ZmZmZixcbiAgQTIwMDogIzE4ZmZmZixcbiAgQTQwMDogIzAwZTVmZixcbiAgQTcwMDogIzAwYjhkNCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXRlYWw6IChcbiAgNTA6ICNlMGYyZjEsXG4gIDEwMDogI2IyZGZkYixcbiAgMjAwOiAjODBjYmM0LFxuICAzMDA6ICM0ZGI2YWMsXG4gIDQwMDogIzI2YTY5YSxcbiAgNTAwOiAjMDA5Njg4LFxuICA2MDA6ICMwMDg5N2IsXG4gIDcwMDogIzAwNzk2YixcbiAgODAwOiAjMDA2OTVjLFxuICA5MDA6ICMwMDRkNDAsXG4gIEExMDA6ICNhN2ZmZWIsXG4gIEEyMDA6ICM2NGZmZGEsXG4gIEE0MDA6ICMxZGU5YjYsXG4gIEE3MDA6ICMwMGJmYTUsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1ncmVlbjogKFxuICA1MDogI2U4ZjVlOSxcbiAgMTAwOiAjYzhlNmM5LFxuICAyMDA6ICNhNWQ2YTcsXG4gIDMwMDogIzgxYzc4NCxcbiAgNDAwOiAjNjZiYjZhLFxuICA1MDA6ICM0Y2FmNTAsXG4gIDYwMDogIzQzYTA0NyxcbiAgNzAwOiAjMzg4ZTNjLFxuICA4MDA6ICMyZTdkMzIsXG4gIDkwMDogIzFiNWUyMCxcbiAgQTEwMDogI2I5ZjZjYSxcbiAgQTIwMDogIzY5ZjBhZSxcbiAgQTQwMDogIzAwZTY3NixcbiAgQTcwMDogIzAwYzg1MyxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGlnaHQtZ3JlZW46IChcbiAgNTA6ICNmMWY4ZTksXG4gIDEwMDogI2RjZWRjOCxcbiAgMjAwOiAjYzVlMWE1LFxuICAzMDA6ICNhZWQ1ODEsXG4gIDQwMDogIzljY2M2NSxcbiAgNTAwOiAjOGJjMzRhLFxuICA2MDA6ICM3Y2IzNDIsXG4gIDcwMDogIzY4OWYzOCxcbiAgODAwOiAjNTU4YjJmLFxuICA5MDA6ICMzMzY5MWUsXG4gIEExMDA6ICNjY2ZmOTAsXG4gIEEyMDA6ICNiMmZmNTksXG4gIEE0MDA6ICM3NmZmMDMsXG4gIEE3MDA6ICM2NGRkMTcsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGltZTogKFxuICA1MDogI2Y5ZmJlNyxcbiAgMTAwOiAjZjBmNGMzLFxuICAyMDA6ICNlNmVlOWMsXG4gIDMwMDogI2RjZTc3NSxcbiAgNDAwOiAjZDRlMTU3LFxuICA1MDA6ICNjZGRjMzksXG4gIDYwMDogI2MwY2EzMyxcbiAgNzAwOiAjYWZiNDJiLFxuICA4MDA6ICM5ZTlkMjQsXG4gIDkwMDogIzgyNzcxNyxcbiAgQTEwMDogI2Y0ZmY4MSxcbiAgQTIwMDogI2VlZmY0MSxcbiAgQTQwMDogI2M2ZmYwMCxcbiAgQTcwMDogI2FlZWEwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQteWVsbG93OiAoXG4gIDUwOiAjZmZmZGU3LFxuICAxMDA6ICNmZmY5YzQsXG4gIDIwMDogI2ZmZjU5ZCxcbiAgMzAwOiAjZmZmMTc2LFxuICA0MDA6ICNmZmVlNTgsXG4gIDUwMDogI2ZmZWIzYixcbiAgNjAwOiAjZmRkODM1LFxuICA3MDA6ICNmYmMwMmQsXG4gIDgwMDogI2Y5YTgyNSxcbiAgOTAwOiAjZjU3ZjE3LFxuICBBMTAwOiAjZmZmZjhkLFxuICBBMjAwOiAjZmZmZjAwLFxuICBBNDAwOiAjZmZlYTAwLFxuICBBNzAwOiAjZmZkNjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWFtYmVyOiAoXG4gIDUwOiAjZmZmOGUxLFxuICAxMDA6ICNmZmVjYjMsXG4gIDIwMDogI2ZmZTA4MixcbiAgMzAwOiAjZmZkNTRmLFxuICA0MDA6ICNmZmNhMjgsXG4gIDUwMDogI2ZmYzEwNyxcbiAgNjAwOiAjZmZiMzAwLFxuICA3MDA6ICNmZmEwMDAsXG4gIDgwMDogI2ZmOGYwMCxcbiAgOTAwOiAjZmY2ZjAwLFxuICBBMTAwOiAjZmZlNTdmLFxuICBBMjAwOiAjZmZkNzQwLFxuICBBNDAwOiAjZmZjNDAwLFxuICBBNzAwOiAjZmZhYjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LW9yYW5nZTogKFxuICA1MDogI2ZmZjNlMCxcbiAgMTAwOiAjZmZlMGIyLFxuICAyMDA6ICNmZmNjODAsXG4gIDMwMDogI2ZmYjc0ZCxcbiAgNDAwOiAjZmZhNzI2LFxuICA1MDA6ICNmZjk4MDAsXG4gIDYwMDogI2ZiOGMwMCxcbiAgNzAwOiAjZjU3YzAwLFxuICA4MDA6ICNlZjZjMDAsXG4gIDkwMDogI2U2NTEwMCxcbiAgQTEwMDogI2ZmZDE4MCxcbiAgQTIwMDogI2ZmYWI0MCxcbiAgQTQwMDogI2ZmOTEwMCxcbiAgQTcwMDogI2ZmNmQwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogYmxhY2ssXG4gIClcbik7XG5cbiRtYXQtZGVlcC1vcmFuZ2U6IChcbiAgNTA6ICNmYmU5ZTcsXG4gIDEwMDogI2ZmY2NiYyxcbiAgMjAwOiAjZmZhYjkxLFxuICAzMDA6ICNmZjhhNjUsXG4gIDQwMDogI2ZmNzA0MyxcbiAgNTAwOiAjZmY1NzIyLFxuICA2MDA6ICNmNDUxMWUsXG4gIDcwMDogI2U2NGExOSxcbiAgODAwOiAjZDg0MzE1LFxuICA5MDA6ICNiZjM2MGMsXG4gIEExMDA6ICNmZjllODAsXG4gIEEyMDA6ICNmZjZlNDAsXG4gIEE0MDA6ICNmZjNkMDAsXG4gIEE3MDA6ICNkZDJjMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWJyb3duOiAoXG4gIDUwOiAjZWZlYmU5LFxuICAxMDA6ICNkN2NjYzgsXG4gIDIwMDogI2JjYWFhNCxcbiAgMzAwOiAjYTE4ODdmLFxuICA0MDA6ICM4ZDZlNjMsXG4gIDUwMDogIzc5NTU0OCxcbiAgNjAwOiAjNmQ0YzQxLFxuICA3MDA6ICM1ZDQwMzcsXG4gIDgwMDogIzRlMzQyZSxcbiAgOTAwOiAjM2UyNzIzLFxuICBBMTAwOiAjZDdjY2M4LFxuICBBMjAwOiAjYmNhYWE0LFxuICBBNDAwOiAjOGQ2ZTYzLFxuICBBNzAwOiAjNWQ0MDM3LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWdyZXk6IChcbiAgNTA6ICNmYWZhZmEsXG4gIDEwMDogI2Y1ZjVmNSxcbiAgMjAwOiAjZWVlZWVlLFxuICAzMDA6ICNlMGUwZTAsXG4gIDQwMDogI2JkYmRiZCxcbiAgNTAwOiAjOWU5ZTllLFxuICA2MDA6ICM3NTc1NzUsXG4gIDcwMDogIzYxNjE2MSxcbiAgODAwOiAjNDI0MjQyLFxuICA5MDA6ICMyMTIxMjEsXG4gIEExMDA6ICNmZmZmZmYsXG4gIEEyMDA6ICNlZWVlZWUsXG4gIEE0MDA6ICNiZGJkYmQsXG4gIEE3MDA6ICM2MTYxNjEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuLy8gQWxpYXMgZm9yIGFsdGVybmF0ZSBzcGVsbGluZy5cbiRtYXQtZ3JheTogJG1hdC1ncmV5O1xuXG4kbWF0LWJsdWUtZ3JleTogKFxuICA1MDogI2VjZWZmMSxcbiAgMTAwOiAjY2ZkOGRjLFxuICAyMDA6ICNiMGJlYzUsXG4gIDMwMDogIzkwYTRhZSxcbiAgNDAwOiAjNzg5MDljLFxuICA1MDA6ICM2MDdkOGIsXG4gIDYwMDogIzU0NmU3YSxcbiAgNzAwOiAjNDU1YTY0LFxuICA4MDA6ICMzNzQ3NGYsXG4gIDkwMDogIzI2MzIzOCxcbiAgQTEwMDogI2NmZDhkYyxcbiAgQTIwMDogI2IwYmVjNSxcbiAgQTQwMDogIzc4OTA5YyxcbiAgQTcwMDogIzQ1NWE2NCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4vLyBBbGlhcyBmb3IgYWx0ZXJuYXRlIHNwZWxsaW5nLlxuJG1hdC1ibHVlLWdyYXk6ICRtYXQtYmx1ZS1ncmV5O1xuXG5cbi8vIEJhY2tncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBhcHAtYmFyOiAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgMTAwKSxcbiAgYmFja2dyb3VuZDogbWFwX2dldCgkbWF0LWdyZXksIDUwKSxcbiAgaG92ZXI6ICAgICAgcmdiYShibGFjaywgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIHdoaXRlLFxuICBkaWFsb2c6ICAgICB3aGl0ZSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKGJsYWNrLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogd2hpdGUsXG4gIGZvY3VzZWQtYnV0dG9uOiAkZGFyay1mb2N1c2VkLFxuICBzZWxlY3RlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBzZWxlY3RlZC1kaXNhYmxlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCA0MDApLFxuICBkaXNhYmxlZC1idXR0b24tdG9nZ2xlOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMjAwKSxcbiAgdW5zZWxlY3RlZC1jaGlwOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgZGlzYWJsZWQtbGlzdC1vcHRpb246IG1hcF9nZXQoJG1hdC1ncmV5LCAyMDApLFxuKTtcblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiRtYXQtZGFyay10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IGJsYWNrLFxuICBhcHAtYmFyOiAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgYmFja2dyb3VuZDogIzMwMzAzMCxcbiAgaG92ZXI6ICAgICAgcmdiYSh3aGl0ZSwgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIG1hcF9nZXQoJG1hdC1ncmV5LCA4MDApLFxuICBkaWFsb2c6ICAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKHdoaXRlLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDgwMCksXG4gIGZvY3VzZWQtYnV0dG9uOiAkbGlnaHQtZm9jdXNlZCxcbiAgc2VsZWN0ZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZTogYmxhY2ssXG4gIHVuc2VsZWN0ZWQtY2hpcDogbWFwX2dldCgkbWF0LWdyZXksIDcwMCksXG4gIGRpc2FibGVkLWxpc3Qtb3B0aW9uOiBibGFjayxcbik7XG5cbi8vIEZvcmVncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kOiAoXG4gIGJhc2U6ICAgICAgICAgICAgICBibGFjayxcbiAgZGl2aWRlcjogICAgICAgICAgICRkYXJrLWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGRhcmstZGl2aWRlcnMsXG4gIGRpc2FibGVkOiAgICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246ICAgcmdiYShibGFjaywgMC4yNiksXG4gIGRpc2FibGVkLXRleHQ6ICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246ICAgICAgICAgYmxhY2ssXG4gIGhpbnQtdGV4dDogICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGRhcmstc2Vjb25kYXJ5LXRleHQsXG4gIGljb246ICAgICAgICAgICAgICByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgaWNvbnM6ICAgICAgICAgICAgIHJnYmEoYmxhY2ssIDAuNTQpLFxuICB0ZXh0OiAgICAgICAgICAgICAgcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1taW46ICAgICAgICByZ2JhKGJsYWNrLCAwLjg3KSxcbiAgc2xpZGVyLW9mZjogICAgICAgIHJnYmEoYmxhY2ssIDAuMjYpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYShibGFjaywgMC4zOCksXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJG1hdC1kYXJrLXRoZW1lLWZvcmVncm91bmQ6IChcbiAgYmFzZTogICAgICAgICAgICAgIHdoaXRlLFxuICBkaXZpZGVyOiAgICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXNhYmxlZDogICAgICAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGRpc2FibGVkLWJ1dHRvbjogICByZ2JhKHdoaXRlLCAwLjMpLFxuICBkaXNhYmxlZC10ZXh0OiAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGVsZXZhdGlvbjogICAgICAgICBibGFjayxcbiAgaGludC10ZXh0OiAgICAgICAgICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGxpZ2h0LXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiAgICAgICAgICAgICAgd2hpdGUsXG4gIGljb25zOiAgICAgICAgICAgICB3aGl0ZSxcbiAgdGV4dDogICAgICAgICAgICAgIHdoaXRlLFxuICBzbGlkZXItbWluOiAgICAgICAgd2hpdGUsXG4gIHNsaWRlci1vZmY6ICAgICAgICByZ2JhKHdoaXRlLCAwLjMpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYSh3aGl0ZSwgMC4zKSxcbik7XG5cblxuXG4vLyBGb3IgYSBnaXZlbiBodWUgaW4gYSBwYWxldHRlLCByZXR1cm4gdGhlIGNvbnRyYXN0IGNvbG9yIGZyb20gdGhlIG1hcCBvZiBjb250cmFzdCBwYWxldHRlcy5cbi8vIEBwYXJhbSAkY29sb3ItbWFwXG4vLyBAcGFyYW0gJGh1ZVxuQGZ1bmN0aW9uIG1hdC1jb250cmFzdCgkcGFsZXR0ZSwgJGh1ZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkcGFsZXR0ZSwgY29udHJhc3QpLCAkaHVlKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgbWFwIG9mIGh1ZXMgdG8gY29sb3JzIGZvciBhIHRoZW1lLiBUaGlzIGlzIHVzZWQgdG8gZGVmaW5lIGEgdGhlbWUgcGFsZXR0ZSBpbiB0ZXJtc1xuLy8gb2YgdGhlIE1hdGVyaWFsIERlc2lnbiBodWVzLlxuLy8gQHBhcmFtICRjb2xvci1tYXBcbi8vIEBwYXJhbSAkcHJpbWFyeVxuLy8gQHBhcmFtICRsaWdodGVyXG5AZnVuY3Rpb24gbWF0LXBhbGV0dGUoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQ6IDUwMCwgJGxpZ2h0ZXI6IDEwMCwgJGRhcmtlcjogNzAwLCAkdGV4dDogJGRlZmF1bHQpIHtcbiAgJHJlc3VsdDogbWFwX21lcmdlKCRiYXNlLXBhbGV0dGUsIChcbiAgICBkZWZhdWx0OiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRkZWZhdWx0KSxcbiAgICBsaWdodGVyOiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRsaWdodGVyKSxcbiAgICBkYXJrZXI6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlciksXG4gICAgdGV4dDogbWFwLWdldCgkYmFzZS1wYWxldHRlLCAkdGV4dCksXG5cbiAgICBkZWZhdWx0LWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQpLFxuICAgIGxpZ2h0ZXItY29udHJhc3Q6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkbGlnaHRlciksXG4gICAgZGFya2VyLWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlcilcbiAgKSk7XG5cbiAgLy8gRm9yIGVhY2ggaHVlIGluIHRoZSBwYWxldHRlLCBhZGQgYSBcIi1jb250cmFzdFwiIGNvbG9yIHRvIHRoZSBtYXAuXG4gIEBlYWNoICRodWUsICRjb2xvciBpbiAkYmFzZS1wYWxldHRlIHtcbiAgICAkcmVzdWx0OiBtYXBfbWVyZ2UoJHJlc3VsdCwgKFxuICAgICAgJyN7JGh1ZX0tY29udHJhc3QnOiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGh1ZSlcbiAgICApKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuXG4vLyBHZXRzIGEgY29sb3IgZnJvbSBhIHRoZW1lIHBhbGV0dGUgKHRoZSBvdXRwdXQgb2YgbWF0LXBhbGV0dGUpLlxuLy8gVGhlIGh1ZSBjYW4gYmUgb25lIG9mIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKDUwMCwgQTQwMCwgZXRjLiksIG9uZSBvZiB0aGUgdGhyZWUgcHJlY29uZmlndXJlZFxuLy8gaHVlcyAoZGVmYXVsdCwgbGlnaHRlciwgZGFya2VyKSwgb3IgYW55IG9mIHRoZSBhZm9yZW1lbnRpb25lZCBwcmVmaXhlZCB3aXRoIFwiLWNvbnRyYXN0XCIuXG4vL1xuLy8gQHBhcmFtICRjb2xvci1tYXAgVGhlIHRoZW1lIHBhbGV0dGUgKG91dHB1dCBvZiBtYXQtcGFsZXR0ZSkuXG4vLyBAcGFyYW0gJGh1ZSBUaGUgaHVlIGZyb20gdGhlIHBhbGV0dGUgdG8gdXNlLiBJZiB0aGlzIGlzIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLCBpdCB3aWxsXG4vLyAgICAgYmUgdHJlYXRlZCBhcyBvcGFjaXR5LlxuLy8gQHBhcmFtICRvcGFjaXR5IFRoZSBhbHBoYSBjaGFubmVsIHZhbHVlIGZvciB0aGUgY29sb3IuXG5AZnVuY3Rpb24gbWF0LWNvbG9yKCRwYWxldHRlLCAkaHVlOiBkZWZhdWx0LCAkb3BhY2l0eTogbnVsbCkge1xuICAvLyBJZiBodWVLZXkgaXMgYSBudW1iZXIgYmV0d2VlbiB6ZXJvIGFuZCBvbmUsIHRoZW4gaXQgYWN0dWFsbHkgY29udGFpbnMgYW5cbiAgLy8gb3BhY2l0eSB2YWx1ZSwgc28gcmVjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCB0aGUgZGVmYXVsdCBodWUgYW5kIHRoYXQgZ2l2ZW4gb3BhY2l0eS5cbiAgQGlmIHR5cGUtb2YoJGh1ZSkgPT0gbnVtYmVyIGFuZCAkaHVlID49IDAgYW5kICRodWUgPD0gMSB7XG4gICAgQHJldHVybiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQsICRodWUpO1xuICB9XG5cbiAgJGNvbG9yOiBtYXAtZ2V0KCRwYWxldHRlLCAkaHVlKTtcblxuICBAaWYgKHR5cGUtb2YoJGNvbG9yKSAhPSBjb2xvcikge1xuICAgIC8vIElmIHRoZSAkY29sb3IgcmVzb2x2ZWQgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIGEgY29sb3IgKGUuZy4gYSBDU1MgdmFyaWFibGUpLFxuICAgIC8vIHdlIGNhbid0IGFwcGx5IHRoZSBvcGFjaXR5IGFueXdheSBzbyB3ZSByZXR1cm4gdGhlIHZhbHVlIGFzIGlzLCBvdGhlcndpc2UgU2FzcyBjYW5cbiAgICAvLyB0aHJvdyBhbiBlcnJvciBvciBvdXRwdXQgc29tZXRoaW5nIGludmFsaWQuXG4gICAgQHJldHVybiAkY29sb3I7XG4gIH1cblxuICBAcmV0dXJuIHJnYmEoJGNvbG9yLCBpZigkb3BhY2l0eSA9PSBudWxsLCBvcGFjaXR5KCRjb2xvciksICRvcGFjaXR5KSk7XG59XG5cblxuLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIGEgbGlnaHQgdGhlbWUgdG8gYmUgZ2l2ZW4gdG8gaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLlxuQGZ1bmN0aW9uIG1hdC1saWdodC10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogJHdhcm4sXG4gICAgaXMtZGFyazogZmFsc2UsXG4gICAgZm9yZWdyb3VuZDogJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kLFxuICAgIGJhY2tncm91bmQ6ICRtYXQtbGlnaHQtdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBmb3IgYSBkYXJrIHRoZW1lIHRvIGJlIGdpdmVuIHRvIGluZGl2aWR1YWwgY29tcG9uZW50IHRoZW1lIG1peGlucy5cbkBmdW5jdGlvbiBtYXQtZGFyay10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogJHdhcm4sXG4gICAgaXMtZGFyazogdHJ1ZSxcbiAgICBmb3JlZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtZm9yZWdyb3VuZCxcbiAgICBiYWNrZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuXG5cbiRtYXQtcmlwcGxlLWNvbG9yLW9wYWNpdHk6IDAuMTtcblxuQG1peGluIG1hdC1yaXBwbGUoKSB7XG5cbiAgLy8gVGhlIGhvc3QgZWxlbWVudCBvZiBhbiBtYXQtcmlwcGxlIGRpcmVjdGl2ZSBzaG91bGQgYWx3YXlzIGhhdmUgYSBwb3NpdGlvbiBvZiBcImFic29sdXRlXCIgb3JcbiAgLy8gXCJyZWxhdGl2ZVwiIHNvIHRoYXQgdGhlIHJpcHBsZXMgaW5zaWRlIGFyZSBjb3JyZWN0bHkgcG9zaXRpb25lZCByZWxhdGl2ZWx5IHRvIHRoZSBjb250YWluZXIuXG4gIC5tYXQtcmlwcGxlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gQnkgZGVmYXVsdCwgZXZlcnkgcmlwcGxlIGNvbnRhaW5lciBzaG91bGQgaGF2ZSBwb3NpdGlvbjogcmVsYXRpdmUgaW4gZmF2b3Igb2YgY3JlYXRpbmcgYW5cbiAgICAvLyBlYXN5IEFQSSBmb3IgZGV2ZWxvcGVycyB1c2luZyB0aGUgTWF0UmlwcGxlIGRpcmVjdGl2ZS5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSwgdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuXG4gICAgLy8gSW4gaGlnaCBjb250cmFzdCBtb2RlIHRoZSByaXBwbGUgaXMgb3BhcXVlLCBjYXVzaW5nIGl0IHRvIG9ic3RydWN0IHRoZSBjb250ZW50LlxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8qIFRoZW1lIGZvciB0aGUgcmlwcGxlIGVsZW1lbnRzLiovXG5AbWl4aW4gbWF0LXJpcHBsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcF9nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQtYmFzZTogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgLy8gSWYgdGhlIHJpcHBsZSBjb2xvciBpcyByZXNvbHZlcyB0byBhIGNvbG9yICp0eXBlKiwgd2UgY2FuIHVzZSBpdCBkaXJlY3RseSwgb3RoZXJ3aXNlXG4gICAgLy8gKGUuZy4gaXQgcmVzb2x2ZXMgdG8gYSBDU1MgdmFyaWFibGUpIHdlIGZhbGwgYmFjayB0byB1c2luZyB0aGUgY29sb3IgYW5kIHNldHRpbmcgYW4gb3BhY2l0eS5cbiAgICBAaWYgKHR5cGUtb2YoJGZvcmVncm91bmQtYmFzZSkgPT0gY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGZvcmVncm91bmQtYmFzZSwgJG1hdC1yaXBwbGUtY29sb3Itb3BhY2l0eSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JlZ3JvdW5kLWJhc2U7XG4gICAgICBvcGFjaXR5OiAkbWF0LXJpcHBsZS1jb2xvci1vcGFjaXR5O1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gVXRpbGl0eSBmb3IgZmV0Y2hpbmcgYSBuZXN0ZWQgdmFsdWUgZnJvbSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCAkbmFtZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkY29uZmlnLCAkbGV2ZWwpLCAkbmFtZSk7XG59XG5cbi8vIEdldHMgdGhlIGZvbnQgc2l6ZSBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtZm9udC1zaXplKCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXNpemUpO1xufVxuXG4vLyBHZXRzIHRoZSBsaW5lIGhlaWdodCBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKSB7XG4gIEByZXR1cm4gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGxpbmUtaGVpZ2h0KTtcbn1cblxuLy8gR2V0cyB0aGUgZm9udCB3ZWlnaHQgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXdlaWdodCk7XG59XG5cbi8vIEdldHMgdGhlIGxldHRlciBzcGFjaW5nIGZvciBhIGxldmVsIGluc2lkZSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgbGV0dGVyLXNwYWNpbmcpO1xufVxuXG4vLyBHZXRzIHRoZSBmb250LWZhbWlseSBmcm9tIGEgdHlwb2dyYXBoeSBjb25maWcgYW5kIHJlbW92ZXMgdGhlIHF1b3RlcyBhcm91bmQgaXQuXG5AZnVuY3Rpb24gbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsICRsZXZlbDogbnVsbCkge1xuICAkZm9udC1mYW1pbHk6IG1hcC1nZXQoJGNvbmZpZywgZm9udC1mYW1pbHkpO1xuXG4gIEBpZiAkbGV2ZWwgIT0gbnVsbCB7XG4gICAgJGZvbnQtZmFtaWx5OiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgZm9udC1mYW1pbHkpO1xuICB9XG5cbiAgLy8gR3VhcmQgYWdhaW5zdCB1bnF1b3Rpbmcgbm9uLXN0cmluZyB2YWx1ZXMsIGJlY2F1c2UgaXQncyBkZXByZWNhdGVkLlxuICBAcmV0dXJuIGlmKHR5cGUtb2YoJGZvbnQtZmFtaWx5KSA9PSBzdHJpbmcsIHVucXVvdGUoJGZvbnQtZmFtaWx5KSwgJGZvbnQtZmFtaWx5KTtcbn1cblxuLy8gT3V0cHV0cyB0aGUgc2hvcnRoYW5kIGBmb250YCBDU1MgcHJvcGVydHksIGJhc2VkIG9uIGEgc2V0IG9mIHR5cG9ncmFwaHkgdmFsdWVzLiBGYWxscyBiYWNrIHRvXG4vLyB0aGUgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIGlmIGEgdmFsdWUgdGhhdCBpc24ndCBhbGxvd2VkIGluIHRoZSBzaG9ydGhhbmQgaXMgcGFzc2VkIGluLlxuQG1peGluIG1hdC10eXBvZ3JhcGh5LWZvbnQtc2hvcnRoYW5kKCRmb250LXNpemUsICRmb250LXdlaWdodCwgJGxpbmUtaGVpZ2h0LCAkZm9udC1mYW1pbHkpIHtcbiAgLy8gSWYgYW55IG9mIHRoZSB2YWx1ZXMgYXJlIHNldCB0byBgaW5oZXJpdGAsIHdlIGNhbid0IHVzZSB0aGUgc2hvcnRoYW5kXG4gIC8vIHNvIHdlIGZhbGwgYmFjayB0byBwYXNzaW5nIGluIHRoZSBpbmRpdmlkdWFsIHByb3BlcnRpZXMuXG4gIEBpZiAoJGZvbnQtc2l6ZSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IGluaGVyaXQgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gaW5oZXJpdCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtc2l6ZSA9PSBudWxsIG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IG51bGwgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gbnVsbCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBudWxsKSB7XG5cbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIE90aGVyd2lzZSB1c2UgdGhlIHNob3J0aGFuZCBgZm9udGAsIGJlY2F1c2UgaXQncyB0aGUgbGVhc3QgYW1vdW50IG9mIGJ5dGVzLiBOb3RlXG4gICAgLy8gdGhhdCB3ZSBuZWVkIHRvIHVzZSBpbnRlcnBvbGF0aW9uIGZvciBgZm9udC1zaXplL2xpbmUtaGVpZ2h0YCBpbiBvcmRlciB0byBwcmV2ZW50XG4gICAgLy8gU2FzcyBmcm9tIGRpdmlkaW5nIHRoZSB0d28gdmFsdWVzLlxuICAgIGZvbnQ6ICRmb250LXdlaWdodCAjeyRmb250LXNpemV9LyN7JGxpbmUtaGVpZ2h0fSAkZm9udC1mYW1pbHk7XG4gIH1cbn1cblxuLy8gQ29udmVydHMgYSB0eXBvZ3JhcGh5IGxldmVsIGludG8gQ1NTIHN0eWxlcy5cbkBtaXhpbiBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgJGxldmVsKSB7XG4gICRmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgJGxldmVsKTtcblxuICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZCgkZm9udC1zaXplLCAkZm9udC13ZWlnaHQsICRsaW5lLWhlaWdodCwgJGZvbnQtZmFtaWx5KTtcbiAgbGV0dGVyLXNwYWNpbmc6IG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpO1xufVxuXG5cbkBtaXhpbiBtYXQtb3B0aW9uLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAubWF0LW9wdGlvbiB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksXG4gICAgJjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgIH1cblxuICAgIC8vIEluIG11bHRpcGxlIG1vZGUgdGhlcmUgaXMgYSBjaGVja2JveCB0byBzaG93IHRoYXQgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC5cbiAgICAmLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuXG4gICAgJi5tYXQtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtb3B0aW9uLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LW9wdGlvbi10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1vcHRpb24ge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTIpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTIpO1xuICB9XG59XG5cblxuXG5AbWl4aW4gbWF0LXBzZXVkby1jaGVja2JveC10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuICAkY29sb3JlZC1ib3gtc2VsZWN0b3I6ICcubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlJztcblxuICAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCksIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICBjb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICB9XG5cbiAgLy8gRGVmYXVsdCB0byB0aGUgYWNjZW50IGNvbG9yLiBOb3RlIHRoYXQgdGhlIHBzZXVkbyBjaGVja2JveGVzIGFyZSBtZWFudCB0byBpbmhlcml0IHRoZVxuICAvLyB0aGVtZSBmcm9tIHRoZWlyIHBhcmVudCwgcmF0aGVyIHRoYW4gaW1wbGVtZW50aW5nIHRoZWlyIG93biB0aGVtaW5nLCB3aGljaCBpcyB3aHkgd2VcbiAgLy8gZG9uJ3QgYXR0YWNoIHRvIHRoZSBgbWF0LSpgIGNsYXNzZXMuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUsXG4gIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KSk7XG4gIH1cblxuICAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSkpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIHdhcm4pKTtcbiAgfVxuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgICYubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuICB9XG59XG5cblxuXG4vLyBSZXByZXNlbnRzIGEgdHlwb2dyYXBoeSBsZXZlbCBmcm9tIHRoZSBNYXRlcmlhbCBkZXNpZ24gc3BlYy5cbkBmdW5jdGlvbiBtYXQtdHlwb2dyYXBoeS1sZXZlbChcbiAgJGZvbnQtc2l6ZSxcbiAgJGxpbmUtaGVpZ2h0OiAkZm9udC1zaXplLFxuICAkZm9udC13ZWlnaHQ6IDQwMCxcbiAgJGZvbnQtZmFtaWx5OiBudWxsLFxuICAkbGV0dGVyLXNwYWNpbmc6IG51bGwpIHtcblxuICBAcmV0dXJuIChcbiAgICBmb250LXNpemU6ICRmb250LXNpemUsXG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodCxcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LFxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHksXG4gICAgbGV0dGVyLXNwYWNpbmc6ICRsZXR0ZXItc3BhY2luZ1xuICApO1xufVxuXG4vLyBSZXByZXNlbnRzIGEgY29sbGVjdGlvbiBvZiB0eXBvZ3JhcGh5IGxldmVscy5cbi8vIERlZmF1bHRzIGNvbWUgZnJvbSBodHRwczovL21hdGVyaWFsLmlvL2d1aWRlbGluZXMvc3R5bGUvdHlwb2dyYXBoeS5odG1sXG4vLyBOb3RlOiBUaGUgc3BlYyBkb2Vzbid0IG1lbnRpb24gbGV0dGVyIHNwYWNpbmcuIFRoZSB2YWx1ZXMgaGVyZSBjb21lIGZyb21cbi8vIGV5ZWJhbGxpbmcgaXQgdW50aWwgaXQgbG9va2VkIGV4YWN0bHkgbGlrZSB0aGUgc3BlYyBleGFtcGxlcy5cbkBmdW5jdGlvbiBtYXQtdHlwb2dyYXBoeS1jb25maWcoXG4gICRmb250LWZhbWlseTogICAnUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWYnLFxuICAkZGlzcGxheS00OiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTEycHgsIDExMnB4LCAzMDAsICRsZXR0ZXItc3BhY2luZzogLTAuMDVlbSksXG4gICRkaXNwbGF5LTM6ICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCg1NnB4LCA1NnB4LCA0MDAsICRsZXR0ZXItc3BhY2luZzogLTAuMDJlbSksXG4gICRkaXNwbGF5LTI6ICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCg0NXB4LCA0OHB4LCA0MDAsICRsZXR0ZXItc3BhY2luZzogLTAuMDA1ZW0pLFxuICAkZGlzcGxheS0xOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMzRweCwgNDBweCwgNDAwKSxcbiAgJGhlYWRsaW5lOiAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDI0cHgsIDMycHgsIDQwMCksXG4gICR0aXRsZTogICAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgyMHB4LCAzMnB4LCA1MDApLFxuICAkc3ViaGVhZGluZy0yOiAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTZweCwgMjhweCwgNDAwKSxcbiAgJHN1YmhlYWRpbmctMTogIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE1cHgsIDI0cHgsIDQwMCksXG4gICRib2R5LTI6ICAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNHB4LCAyNHB4LCA1MDApLFxuICAkYm9keS0xOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMjBweCwgNDAwKSxcbiAgJGNhcHRpb246ICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDEycHgsIDIwcHgsIDQwMCksXG4gICRidXR0b246ICAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNHB4LCAxNHB4LCA1MDApLFxuICAvLyBMaW5lLWhlaWdodCBtdXN0IGJlIHVuaXQtbGVzcyBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplLlxuICAkaW5wdXQ6ICAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoaW5oZXJpdCwgMS4xMjUsIDQwMClcbikge1xuXG4gIC8vIERlY2xhcmUgYW4gaW5pdGlhbCBtYXAgd2l0aCBhbGwgb2YgdGhlIGxldmVscy5cbiAgJGNvbmZpZzogKFxuICAgIGRpc3BsYXktNDogICAgICAkZGlzcGxheS00LFxuICAgIGRpc3BsYXktMzogICAgICAkZGlzcGxheS0zLFxuICAgIGRpc3BsYXktMjogICAgICAkZGlzcGxheS0yLFxuICAgIGRpc3BsYXktMTogICAgICAkZGlzcGxheS0xLFxuICAgIGhlYWRsaW5lOiAgICAgICAkaGVhZGxpbmUsXG4gICAgdGl0bGU6ICAgICAgICAgICR0aXRsZSxcbiAgICBzdWJoZWFkaW5nLTI6ICAgJHN1YmhlYWRpbmctMixcbiAgICBzdWJoZWFkaW5nLTE6ICAgJHN1YmhlYWRpbmctMSxcbiAgICBib2R5LTI6ICAgICAgICAgJGJvZHktMixcbiAgICBib2R5LTE6ICAgICAgICAgJGJvZHktMSxcbiAgICBjYXB0aW9uOiAgICAgICAgJGNhcHRpb24sXG4gICAgYnV0dG9uOiAgICAgICAgICRidXR0b24sXG4gICAgaW5wdXQ6ICAgICAgICAgICRpbnB1dCxcbiAgKTtcblxuICAvLyBMb29wIHRocm91Z2ggdGhlIGxldmVscyBhbmQgc2V0IHRoZSBgZm9udC1mYW1pbHlgIG9mIHRoZSBvbmVzIHRoYXQgZG9uJ3QgaGF2ZSBvbmUgdG8gdGhlIGJhc2UuXG4gIC8vIE5vdGUgdGhhdCBTYXNzIGNhbid0IG1vZGlmeSBtYXBzIGluIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IHdlIG5lZWQgdG8gbWVyZ2UgYW5kIHJlLWFzc2lnbi5cbiAgQGVhY2ggJGtleSwgJGxldmVsIGluICRjb25maWcge1xuICAgIEBpZiBtYXAtZ2V0KCRsZXZlbCwgZm9udC1mYW1pbHkpID09IG51bGwge1xuICAgICAgJG5ldy1sZXZlbDogbWFwLW1lcmdlKCRsZXZlbCwgKGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHkpKTtcbiAgICAgICRjb25maWc6IG1hcC1tZXJnZSgkY29uZmlnLCAoJGtleTogJG5ldy1sZXZlbCkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFkZCB0aGUgYmFzZSBmb250IGZhbWlseSB0byB0aGUgY29uZmlnLlxuICBAcmV0dXJuIG1hcC1tZXJnZSgkY29uZmlnLCAoZm9udC1mYW1pbHk6ICRmb250LWZhbWlseSkpO1xufVxuXG4vLyBBZGRzIHRoZSBiYXNlIHR5cG9ncmFwaHkgc3R5bGVzLCBiYXNlZCBvbiBhIGNvbmZpZy5cbkBtaXhpbiBtYXQtYmFzZS10eXBvZ3JhcGh5KCRjb25maWcsICRzZWxlY3RvcjogJy5tYXQtdHlwb2dyYXBoeScpIHtcbiAgLm1hdC1oMSwgLm1hdC1oZWFkbGluZSwgI3skc2VsZWN0b3J9IGgxIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgaGVhZGxpbmUpO1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gIH1cblxuICAubWF0LWgyLCAubWF0LXRpdGxlLCAjeyRzZWxlY3Rvcn0gaDIge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCB0aXRsZSk7XG4gICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgfVxuXG4gIC5tYXQtaDMsIC5tYXQtc3ViaGVhZGluZy0yLCAjeyRzZWxlY3Rvcn0gaDMge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBzdWJoZWFkaW5nLTIpO1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gIH1cblxuICAubWF0LWg0LCAubWF0LXN1YmhlYWRpbmctMSwgI3skc2VsZWN0b3J9IGg0IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgc3ViaGVhZGluZy0xKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLy8gTm90ZTogdGhlIHNwZWMgZG9lc24ndCBoYXZlIGFueXRoaW5nIHRoYXQgd291bGQgY29ycmVzcG9uZCB0byBoNSBhbmQgaDYsIGJ1dCB3ZSBhZGQgdGhlc2UgZm9yXG4gIC8vIGNvbnNpc3RlbmN5LiBUaGUgZm9udCBzaXplcyBjb21lIGZyb20gdGhlIENocm9tZSB1c2VyIGFnZW50IHN0eWxlcyB3aGljaCBoYXZlIGg1IGF0IDAuODNlbVxuICAvLyBhbmQgaDYgYXQgMC42N2VtLlxuICAubWF0LWg1LCAjeyRzZWxlY3Rvcn0gaDUge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWZvbnQtc2hvcnRoYW5kKFxuICAgICAgIC8vIGNhbGMgaXMgdXNlZCBoZXJlIHRvIHN1cHBvcnQgY3NzIHZhcmlhYmxlc1xuICAgICAgY2FsYygje21hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKX0gKiAwLjgzKSxcbiAgICAgIG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGJvZHktMSksXG4gICAgICBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKVxuICAgICk7XG5cbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICB9XG5cbiAgLm1hdC1oNiwgI3skc2VsZWN0b3J9IGg2IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZChcbiAgICAgICAvLyBjYWxjIGlzIHVzZWQgaGVyZSB0byBzdXBwb3J0IGNzcyB2YXJpYWJsZXNcbiAgICAgIGNhbGMoI3ttYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSl9ICogMC42NyksXG4gICAgICBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSlcbiAgICApO1xuXG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgfVxuXG4gIC5tYXQtYm9keS1zdHJvbmcsIC5tYXQtYm9keS0yIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtYm9keSwgLm1hdC1ib2R5LTEsICN7JHNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMSk7XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbjogMCAwIDEycHg7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbWFsbCwgLm1hdC1jYXB0aW9uIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgY2FwdGlvbik7XG4gIH1cblxuICAubWF0LWRpc3BsYXktNCwgI3skc2VsZWN0b3J9IC5tYXQtZGlzcGxheS00IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgZGlzcGxheS00KTtcbiAgICBtYXJnaW46IDAgMCA1NnB4O1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTMsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktMyB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktMyk7XG4gICAgbWFyZ2luOiAwIDAgNjRweDtcbiAgfVxuXG4gIC5tYXQtZGlzcGxheS0yLCAjeyRzZWxlY3Rvcn0gLm1hdC1kaXNwbGF5LTIge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBkaXNwbGF5LTIpO1xuICAgIG1hcmdpbjogMCAwIDY0cHg7XG4gIH1cblxuICAubWF0LWRpc3BsYXktMSwgI3skc2VsZWN0b3J9IC5tYXQtZGlzcGxheS0xIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgZGlzcGxheS0xKTtcbiAgICBtYXJnaW46IDAgMCA2NHB4O1xuICB9XG59XG5cblxuXG5cbkBtaXhpbiBtYXQtYXV0b2NvbXBsZXRlLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuXG4gIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig0LCAkdGhlbWUpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAvLyBTZWxlY3RlZCBvcHRpb25zIGluIGF1dG9jb21wbGV0ZXMgc2hvdWxkIG5vdCBiZSBncmF5LCBidXQgd2VcbiAgICAvLyBvbmx5IHdhbnQgdG8gb3ZlcnJpZGUgdGhlIGJhY2tncm91bmQgZm9yIHNlbGVjdGVkIG9wdGlvbnMgaWZcbiAgICAvLyB0aGV5IGFyZSAqbm90KiBpbiBob3ZlciBvciBmb2N1cyBzdGF0ZS4gVGhpcyBjaGFuZ2UgaGFzIHRvIGJlXG4gICAgLy8gbWFkZSBoZXJlIGJlY2F1c2UgYmFzZSBvcHRpb24gc3R5bGVzIGFyZSBzaGFyZWQgYmV0d2VlbiB0aGVcbiAgICAvLyBhdXRvY29tcGxldGUgYW5kIHRoZSBzZWxlY3QuXG4gICAgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcikge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcblxuICAgICAgJjpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuQG1peGluIG1hdC1hdXRvY29tcGxldGUtdHlwb2dyYXBoeSgkY29uZmlnKSB7IH1cblxuLy8gVGhpcyBjb250YWlucyBhbGwgb2YgdGhlIHN0eWxlcyBmb3IgdGhlIGJhZGdlXG4vLyByYXRoZXIgdGhhbiBqdXN0IHRoZSBjb2xvci90aGVtZSBiZWNhdXNlIG9mXG4vLyBubyBzdHlsZSBzaGVldCBzdXBwb3J0IGZvciBkaXJlY3RpdmVzLlxuXG5cblxuXG5cbiRtYXQtYmFkZ2UtZm9udC1zaXplOiAxMnB4O1xuJG1hdC1iYWRnZS1mb250LXdlaWdodDogNjAwO1xuJG1hdC1iYWRnZS1kZWZhdWx0LXNpemU6IDIycHggIWRlZmF1bHQ7XG4kbWF0LWJhZGdlLXNtYWxsLXNpemU6ICRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplIC0gNjtcbiRtYXQtYmFkZ2UtbGFyZ2Utc2l6ZTogJG1hdC1iYWRnZS1kZWZhdWx0LXNpemUgKyA2O1xuXG4vLyBNaXhpbiBmb3IgYnVpbGRpbmcgb2Zmc2V0IGdpdmVuIGRpZmZlcmVudCBzaXplc1xuQG1peGluIF9tYXQtYmFkZ2Utc2l6ZSgkc2l6ZSkge1xuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIHdpZHRoOiAkc2l6ZTtcbiAgICBoZWlnaHQ6ICRzaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkc2l6ZTtcbiAgfVxuXG4gICYubWF0LWJhZGdlLWFib3ZlIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgdG9wOiAtJHNpemUgLyAyO1xuICAgIH1cbiAgfVxuXG4gICYubWF0LWJhZGdlLWJlbG93IHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgYm90dG9tOiAtJHNpemUgLyAyO1xuICAgIH1cbiAgfVxuXG4gICYubWF0LWJhZGdlLWJlZm9yZSB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGxlZnQ6IC0kc2l6ZTtcbiAgICB9XG4gIH1cblxuICBbZGlyPSdydGwnXSAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IC0kc2l6ZTtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1hZnRlciB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIHJpZ2h0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IC0kc2l6ZTtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1vdmVybGFwIHtcbiAgICAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgbGVmdDogLSRzaXplIC8gMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBbZGlyPSdydGwnXSAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgcmlnaHQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtYmFkZ2UtdGhlbWUoJHRoZW1lKSB7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRwcmltYXJ5KTtcblxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAgIG91dGxpbmU6IHNvbGlkIDFweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZS1hY2NlbnQge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2Utd2FybiB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIGRlZmF1bHQtY29udHJhc3QpO1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAubWF0LWJhZGdlLWhpZGRlbiB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZS1kaXNhYmxlZCB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICRhcHAtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnYmFja2dyb3VuZCcpO1xuICAgICAgJGJhZGdlLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLWJ1dHRvbik7XG5cbiAgICAgIC8vIFRoZSBkaXNhYmxlZCBjb2xvciB1c3VhbGx5IGhhcyBzb21lIGtpbmQgb2Ygb3BhY2l0eSwgYnV0IGJlY2F1c2UgdGhlIGJhZGdlIGlzIG92ZXJsYXllZFxuICAgICAgLy8gb24gdG9wIG9mIHNvbWV0aGluZyBlbHNlLCBpdCB3b24ndCBsb29rIGdvb2QgaWYgaXQncyBvcGFxdWUuIElmIGl0IGlzIGEgY29sb3IgKnR5cGUqLFxuICAgICAgLy8gd2UgY29udmVydCBpdCBpbnRvIGEgc29saWQgY29sb3IgYnkgdGFraW5nIHRoZSBvcGFjaXR5IGZyb20gdGhlIHJnYmEgdmFsdWUgYW5kIHVzaW5nXG4gICAgICAvLyB0aGUgdmFsdWUgdG8gZGV0ZXJtaW5lIHRoZSBwZXJjZW50YWdlIG9mIHRoZSBiYWNrZ3JvdW5kIHRvIHB1dCBpbnRvIGZvcmVncm91bmQgd2hlblxuICAgICAgLy8gbWl4aW5nIHRoZSBjb2xvcnMgdG9nZXRoZXIuXG4gICAgICBAaWYgKHR5cGUtb2YoJGJhZGdlLWNvbG9yKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYXBwLWJhY2tncm91bmQpID09IGNvbG9yKSB7XG4gICAgICAgICRiYWRnZS1vcGFjaXR5OiBvcGFjaXR5KCRiYWRnZS1jb2xvcik7XG4gICAgICAgIGJhY2tncm91bmQ6IG1peCgkYXBwLWJhY2tncm91bmQsIHJnYmEoJGJhZGdlLWNvbG9yLCAxKSwgKDEgLSAkYmFkZ2Utb3BhY2l0eSkgKiAxMDAlKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGJhZGdlLWNvbG9yO1xuICAgICAgfVxuXG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjYpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gIC5uZy1hbmltYXRlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudCxcbiAgLm1hdC1iYWRnZS1jb250ZW50Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gVGhlIGFjdGl2ZSBjbGFzcyBpcyBhZGRlZCBhZnRlciB0aGUgZWxlbWVudCBpcyBhZGRlZFxuICAvLyBzbyBpdCBjYW4gYW5pbWF0ZSBzY2FsZSB0byBkZWZhdWx0XG4gIC5tYXQtYmFkZ2UtY29udGVudC5tYXQtYmFkZ2UtYWN0aXZlIHtcbiAgICAvLyBTY2FsZSB0byBgbm9uZWAgaW5zdGVhZCBvZiBgMWAgdG8gYXZvaWQgYmx1cnJ5IHRleHQgaW4gc29tZSBicm93c2Vycy5cbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAubWF0LWJhZGdlLXNtYWxsIHtcbiAgICBAaW5jbHVkZSBfbWF0LWJhZGdlLXNpemUoJG1hdC1iYWRnZS1zbWFsbC1zaXplKTtcbiAgfVxuICAubWF0LWJhZGdlLW1lZGl1bSB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplKTtcbiAgfVxuICAubWF0LWJhZGdlLWxhcmdlIHtcbiAgICBAaW5jbHVkZSBfbWF0LWJhZGdlLXNpemUoJG1hdC1iYWRnZS1sYXJnZS1zaXplKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJhZGdlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIGZvbnQtd2VpZ2h0OiAkbWF0LWJhZGdlLWZvbnQtd2VpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJG1hdC1iYWRnZS1mb250LXNpemU7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtYmFkZ2Utc21hbGwgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAvLyBTZXQgdGhlIGZvbnQgc2l6ZSB0byA3NSUgb2YgdGhlIG9yaWdpbmFsLlxuICAgIGZvbnQtc2l6ZTogJG1hdC1iYWRnZS1mb250LXNpemUgKiAwLjc1O1xuICB9XG5cbiAgLm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIGZvbnQtc2l6ZTogJG1hdC1iYWRnZS1mb250LXNpemUgKiAyO1xuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC1ib3R0b20tc2hlZXQtdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigxNiwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpYWxvZyk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1ib3R0b20tc2hlZXQtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuXG4kX21hdC1idXR0b24tcmlwcGxlLW9wYWNpdHk6IDAuMTtcblxuLy8gQXBwbGllcyBhIGZvY3VzIHN0eWxlIHRvIGFuIG1hdC1idXR0b24gZWxlbWVudCBmb3IgZWFjaCBvZiB0aGUgc3VwcG9ydGVkIHBhbGV0dGVzLlxuQG1peGluIF9tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXktY29sb3IoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gICYubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgfVxuXG4gICYubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gIH1cblxuICAmLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2Fybik7XG4gIH1cblxuICAmW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1idXR0b24tcmlwcGxlLWNvbG9yKCR0aGVtZSwgJGh1ZSwgJG9wYWNpdHk6ICRfbWF0LWJ1dHRvbi1yaXBwbGUtb3BhY2l0eSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAmLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgJGh1ZSwgJG9wYWNpdHkpO1xuICB9XG5cbiAgJi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cblxuICAmLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2FybiwgJGh1ZSwgJG9wYWNpdHkpO1xuICB9XG59XG5cbi8vIEFwcGxpZXMgYSBwcm9wZXJ0eSB0byBhbiBtYXQtYnV0dG9uIGVsZW1lbnQgZm9yIGVhY2ggb2YgdGhlIHN1cHBvcnRlZCBwYWxldHRlcy5cbkBtaXhpbiBfbWF0LWJ1dHRvbi10aGVtZS1wcm9wZXJ0eSgkdGhlbWUsICRwcm9wZXJ0eSwgJGh1ZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAmLm1hdC1wcmltYXJ5IHtcbiAgICAjeyRwcm9wZXJ0eX06IG1hdC1jb2xvcigkcHJpbWFyeSwgJGh1ZSk7XG4gIH1cbiAgJi5tYXQtYWNjZW50IHtcbiAgICAjeyRwcm9wZXJ0eX06IG1hdC1jb2xvcigkYWNjZW50LCAkaHVlKTtcbiAgfVxuICAmLm1hdC13YXJuIHtcbiAgICAjeyRwcm9wZXJ0eX06IG1hdC1jb2xvcigkd2FybiwgJGh1ZSk7XG4gIH1cblxuICAmLm1hdC1wcmltYXJ5LCAmLm1hdC1hY2NlbnQsICYubWF0LXdhcm4sICZbZGlzYWJsZWRdIHtcbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAkcGFsZXR0ZTogaWYoJHByb3BlcnR5ID09ICdjb2xvcicsICRmb3JlZ3JvdW5kLCAkYmFja2dyb3VuZCk7XG4gICAgICAjeyRwcm9wZXJ0eX06IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGlzYWJsZWQtYnV0dG9uKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1idXR0b24tdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtYnV0dG9uLCAubWF0LWljb24tYnV0dG9uLCAubWF0LXN0cm9rZWQtYnV0dG9uIHtcbiAgICAvLyBCdXR0b25zIHdpdGhvdXQgYSBiYWNrZ3JvdW5kIGNvbG9yIHNob3VsZCBpbmhlcml0IHRoZSBmb250IGNvbG9yLiBUaGlzIGlzIG5lY2Vzc2FyeSB0b1xuICAgIC8vIGVuc3VyZSB0aGF0IHRoZSBidXR0b24gaXMgcmVhZGFibGUgb24gY3VzdG9tIGJhY2tncm91bmQgY29sb3JzLiBJdCdzIHdyb25nIHRvIGFsd2F5cyBhc3N1bWVcbiAgICAvLyB0aGF0IHRob3NlIGJ1dHRvbnMgYXJlIGFsd2F5cyBwbGFjZWQgaW5zaWRlIG9mIGNvbnRhaW5lcnMgd2l0aCB0aGUgZGVmYXVsdCBiYWNrZ3JvdW5kXG4gICAgLy8gY29sb3Igb2YgdGhlIHRoZW1lIChlLmcuIHRoZW1lZCB0b29sYmFycykuXG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi10aGVtZS1wcm9wZXJ0eSgkdGhlbWUsICdjb2xvcicsIHRleHQpO1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXktY29sb3IoJHRoZW1lKTtcblxuICAgIC8vIFNldHVwIHRoZSByaXBwbGUgY29sb3IgdG8gYmUgYmFzZWQgb24gdGhlIHRleHQgY29sb3IuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSByaXBwbGVzXG4gICAgLy8gYXJlIG1hdGNoaW5nIHdpdGggdGhlIGN1cnJlbnQgdGhlbWUgcGFsZXR0ZSBhbmQgYXJlIGluIGNvbnRyYXN0IHRvIHRoZSBiYWNrZ3JvdW5kIGNvbG9yXG4gICAgLy8gKGUuZyBpbiB0aGVtZWQgdG9vbGJhcnMpLlxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgb3BhY2l0eTogJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQ6IG1hcF9nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuICB9XG5cbiAgLy8gTm90ZTogdGhpcyBuZWVkcyBhIGJpdCBleHRyYSBzcGVjaWZpY2l0eSwgYmVjYXVzZSB3ZSdyZSBub3QgZ3VhcmFudGVlZCB0aGUgaW5jbHVzaW9uXG4gIC8vIG9yZGVyIG9mIHRoZSB0aGVtZSBzdHlsZXMgYW5kIHRoZSBidXR0b24gcmVzZXQgbWF5IGVuZCB1cCByZXNldHRpbmcgdGhpcyBhcyB3ZWxsLlxuICAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1mbGF0LWJ1dHRvbiwgLm1hdC1yYWlzZWQtYnV0dG9uLCAubWF0LWZhYiwgLm1hdC1taW5pLWZhYiB7XG4gICAgLy8gRGVmYXVsdCBmb250IGFuZCBiYWNrZ3JvdW5kIGNvbG9yIHdoZW4gbm90IHVzaW5nIGFueSBjb2xvciBwYWxldHRlLlxuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgcmFpc2VkLWJ1dHRvbik7XG5cbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi10aGVtZS1wcm9wZXJ0eSgkdGhlbWUsICdjb2xvcicsIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJ2JhY2tncm91bmQtY29sb3InLCBkZWZhdWx0KTtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1yaXBwbGUtY29sb3IoJHRoZW1lLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxuXG4gIC5tYXQtc3Ryb2tlZC1idXR0b24sIC5tYXQtZmxhdC1idXR0b24ge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gIH1cblxuICAubWF0LXJhaXNlZC1idXR0b24ge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDIsICR0aGVtZSk7XG5cbiAgICAmOm5vdChbZGlzYWJsZWRdKTphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oOCwgJHRoZW1lKTtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigwLCAkdGhlbWUpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig2LCAkdGhlbWUpO1xuXG4gICAgJjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDEyLCAkdGhlbWUpO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWJ1dHRvbiwgLm1hdC1yYWlzZWQtYnV0dG9uLCAubWF0LWljb24tYnV0dG9uLCAubWF0LXN0cm9rZWQtYnV0dG9uLFxuICAubWF0LWZsYXQtYnV0dG9uLCAubWF0LWZhYiwgLm1hdC1taW5pLWZhYiB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYnV0dG9uKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYnV0dG9uKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJ1dHRvbik7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWJ1dHRvbi10b2dnbGUtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRkaXZpZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLFxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDIsICR0aGVtZSk7XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaGludC10ZXh0KTtcblxuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZm9jdXNlZC1idXR0b24pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBmb2N1c2VkLWJ1dHRvbiwgMSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBib3JkZXItbGVmdDogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG5cbiAgW2Rpcj0ncnRsJ10gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCAkZGl2aWRlci1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1idXR0b24tdG9nZ2xlLXZlcnRpY2FsIHtcbiAgICAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICBib3JkZXItdG9wOiBzb2xpZCAxcHggJGRpdmlkZXItY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgc2VsZWN0ZWQtYnV0dG9uKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG5cbiAgICAmLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24pO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZSk7XG5cbiAgICAmLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICB9XG5cbiAgICAmLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBzZWxlY3RlZC1kaXNhYmxlZC1idXR0b24pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBib3JkZXI6IHNvbGlkIDFweCAkZGl2aWRlci1jb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJ1dHRvbi10b2dnbGUtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxufVxuXG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWNhcmQtdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1jYXJkIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigxLCAkdGhlbWUpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAvLyBOZWVkcyBleHRyYSBzcGVjaWZpY2l0eSB0byBiZSBhYmxlIHRvIG92ZXJyaWRlIHRoZSBlbGV2YXRpb24gc2VsZWN0b3JzLlxuICAgICYubWF0LWNhcmQtZmxhdCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigwLCAkdGhlbWUpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FyZC1zdWJ0aXRsZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtY2FyZC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1jYXJkIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1jYXJkLXRpdGxlIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGhlYWRsaW5lKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIHRpdGxlKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhcmQtaGVhZGVyIC5tYXQtY2FyZC10aXRsZSB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHRpdGxlKTtcbiAgfVxuXG4gIC5tYXQtY2FyZC1zdWJ0aXRsZSxcbiAgLm1hdC1jYXJkLWNvbnRlbnQge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWNoZWNrYm94LXRoZW1lKCR0aGVtZSkge1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuXG4gIC8vIFRoZSBjb2xvciBvZiB0aGUgY2hlY2tib3gncyBjaGVja21hcmsgLyBtaXhlZG1hcmsuXG4gICRjaGVja2JveC1tYXJrLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuXG4gIC8vIE5PVEUodHJhdmlza2F1Zm1hbik6IFdoaWxlIHRoZSBzcGVjIGNhbGxzIGZvciB0cmFuc2x1Y2VudCBibGFja3Mvd2hpdGVzIGZvciBkaXNhYmxlZCBjb2xvcnMsXG4gIC8vIHRoaXMgZG9lcyBub3Qgd29yayB3ZWxsIHdpdGggZWxlbWVudHMgbGF5ZXJlZCBvbiB0b3Agb2Ygb25lIGFub3RoZXIuIFRvIGdldCBhcm91bmQgdGhpcyB3ZVxuICAvLyBibGVuZCB0aGUgY29sb3JzIHRvZ2V0aGVyIGJhc2VkIG9uIHRoZSBiYXNlIGNvbG9yIGFuZCB0aGUgdGhlbWUgYmFja2dyb3VuZC5cbiAgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyazogIzY4Njg2ODtcbiAgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQ6ICNiMGIwYjA7XG4gICRkaXNhYmxlZC1jb2xvcjogaWYoJGlzLWRhcmstdGhlbWUsICR3aGl0ZS0zMHBjdC1vcGFjaXR5LW9uLWRhcmssICRibGFjay0yNnBjdC1vcGFjaXR5LW9uLWxpZ2h0KTtcblxuICAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1jaGVja21hcmsge1xuICAgIGZpbGw6ICRjaGVja2JveC1tYXJrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gICAgLy8gIWltcG9ydGFudCBpcyBuZWVkZWQgaGVyZSBiZWNhdXNlIGEgc3Ryb2tlIG11c3QgYmUgc2V0IGFzIGFuXG4gICAgLy8gYXR0cmlidXRlIG9uIHRoZSBTVkcgaW4gb3JkZXIgZm9yIGxpbmUgYW5pbWF0aW9uIHRvIHdvcmsgcHJvcGVybHkuXG4gICAgc3Ryb2tlOiAkY2hlY2tib3gtbWFyay1jb2xvciAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgY2RrLWhpZ2gtY29udHJhc3QoYmxhY2stb24td2hpdGUpIHtcbiAgICAgIC8vIEhhdmluZyB0aGUgb25lIGFib3ZlIGJlICFpbXBvcnRhbnQgZW5kcyB1cCBvdmVycmlkaW5nIHRoZSBicm93c2VyJ3MgYXV0b21hdGljXG4gICAgICAvLyBjb2xvciBpbnZlcnNpb24gc28gd2UgbmVlZCB0byByZS1pbnZlcnQgaXQgb3Vyc2VsdmVzIGZvciBibGFjay1vbi13aGl0ZS5cbiAgICAgIHN0cm9rZTogIzAwMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2hlY2tib3gtbWFyay1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSwgLm1hdC1jaGVja2JveC1jaGVja2VkIHtcbiAgICAmLm1hdC1wcmltYXJ5IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgJi5tYXQtY2hlY2tib3gtY2hlY2tlZCxcbiAgICAmLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICAgIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIHtcbiAgICAgIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICAgICAgICBib3JkZXItY29sb3I6ICRkaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdCB7XG4gICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhpcyBvbmUgaXMgbW92ZWQgZG93biBoZXJlIHNvIGl0IGNhbiB0YXJnZXQgYm90aFxuICAvLyB0aGUgdGhlbWUgY29sb3JzIGFuZCB0aGUgZGlzYWJsZWQgc3RhdGUuXG4gIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgLy8gTmVlZHMgdG8gYmUgcmVtb3ZlZCBiZWNhdXNlIGl0IGhpZGVzIHRoZSBjaGVja2JveCBvdXRsaW5lLlxuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBTd2l0Y2ggdGhpcyB0byBhIHNvbGlkIGNvbG9yIHNpbmNlIHdlJ3JlIHVzaW5nIGBvcGFjaXR5YFxuICAvLyB0byBjb250cm9sIGhvdyBvcGFxdWUgdGhlIHJpcHBsZSBzaG91bGQgYmUuXG4gIC5tYXQtY2hlY2tib3ggLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWFwX2dldChtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCksIGJhc2UpO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKSxcbiAgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpIHtcbiAgICAmLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtY2hlY2tib3gtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtY2hlY2tib3gge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAvLyBUT0RPKGthcmEpOiBSZW1vdmUgdGhpcyBzdHlsZSB3aGVuIGZpeGluZyB2ZXJ0aWNhbCBiYXNlbGluZVxuICAubWF0LWNoZWNrYm94LWxheW91dCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgICBsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gIH1cbn1cblxuXG5cblxuXG5cbiRtYXQtY2hpcC1yZW1vdmUtZm9udC1zaXplOiAxOHB4O1xuXG5AbWl4aW4gbWF0LWNoaXBzLWNvbG9yKCRmb3JlZ3JvdW5kLCAkYmFja2dyb3VuZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRmb3JlZ3JvdW5kO1xuXG4gIC5tYXQtY2hpcC1yZW1vdmUge1xuICAgIGNvbG9yOiAkZm9yZWdyb3VuZDtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGlwcy10aGVtZS1jb2xvcigkcGFsZXR0ZSkge1xuICBAaW5jbHVkZSBtYXQtY2hpcHMtY29sb3IobWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KSwgbWF0LWNvbG9yKCRwYWxldHRlKSk7XG5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjEpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtY2hpcHMtdGhlbWUoJHRoZW1lKSB7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICR1bnNlbGVjdGVkLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgdW5zZWxlY3RlZC1jaGlwKTtcbiAgJHVuc2VsZWN0ZWQtZm9yZWdyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAge1xuICAgIEBpbmNsdWRlIG1hdC1jaGlwcy1jb2xvcigkdW5zZWxlY3RlZC1mb3JlZ3JvdW5kLCAkdW5zZWxlY3RlZC1iYWNrZ3JvdW5kKTtcblxuICAgICY6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCkge1xuICAgICAgJjphY3RpdmUge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigzLCAkdGhlbWUpO1xuICAgICAgfVxuXG4gICAgICAubWF0LWNoaXAtcmVtb3ZlOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMC41NDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1jaGlwLWRpc2FibGVkIHtcbiAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXBfZ2V0KCRmb3JlZ3JvdW5kLCBiYXNlKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jaGlwcy10aGVtZS1jb2xvcigkd2Fybik7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jaGlwcy10aGVtZS1jb2xvcigkYWNjZW50KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGlwcy10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1jaGlwIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgICBmb250LXdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMik7XG5cbiAgICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbixcbiAgICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogJG1hdC1jaGlwLXJlbW92ZS1mb250LXNpemU7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC10YWJsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXRhYmxlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LXRhYmxlIHRoZWFkLCAubWF0LXRhYmxlIHRib2R5LCAubWF0LXRhYmxlIHRmb290LFxuICBtYXQtaGVhZGVyLXJvdywgbWF0LXJvdywgbWF0LWZvb3Rlci1yb3csXG4gIFttYXQtaGVhZGVyLXJvd10sIFttYXQtcm93XSwgW21hdC1mb290ZXItcm93XSxcbiAgLm1hdC10YWJsZS1zdGlja3kge1xuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gIH1cblxuICBtYXQtcm93LCBtYXQtaGVhZGVyLXJvdywgbWF0LWZvb3Rlci1yb3csXG4gIHRoLm1hdC1oZWFkZXItY2VsbCwgdGQubWF0LWNlbGwsIHRkLm1hdC1mb290ZXItY2VsbCB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxuXG4gIC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2VsbCwgLm1hdC1mb290ZXItY2VsbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC10YWJsZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC10YWJsZSB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICBmb250LXdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gIH1cblxuICAubWF0LWNlbGwsIC5tYXQtZm9vdGVyLWNlbGwge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cblxuXG5cbiRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC10b2RheS1ib3gtc2hhZG93LXdpZHRoOiAxcHg7XG4kbWF0LWRhdGVwaWNrZXItc2VsZWN0ZWQtZmFkZS1hbW91bnQ6IDAuNjtcbiRtYXQtZGF0ZXBpY2tlci10b2RheS1mYWRlLWFtb3VudDogMC4yO1xuJG1hdC1jYWxlbmRhci1ib2R5LWZvbnQtc2l6ZTogMTNweCAhZGVmYXVsdDtcbiRtYXQtY2FsZW5kYXItd2Vla2RheS10YWJsZS1mb250LXNpemU6IDExcHggIWRlZmF1bHQ7XG5cbkBtaXhpbiBfbWF0LWRhdGVwaWNrZXItY29sb3IoJHBhbGV0dGUpIHtcbiAgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgICAkYmFja2dyb3VuZDogbWF0LWNvbG9yKCRwYWxldHRlKTtcblxuICAgIEBpZiAodHlwZS1vZigkYmFja2dyb3VuZCkgPT0gY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGZhZGUtb3V0KCRiYWNrZ3JvdW5kLCAkbWF0LWRhdGVwaWNrZXItc2VsZWN0ZWQtZmFkZS1hbW91bnQpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBJZiB3ZSBjb3VsZG4ndCByZXNvbHZlIHRvIGJhY2tncm91bmQgdG8gYSBjb2xvciAoZS5nLiBpdCdzIGEgQ1NTIHZhcmlhYmxlKSxcbiAgICAgIC8vIGZhbGwgYmFjayB0byBmYWRpbmcgdGhlIGNvbnRlbnQgb3V0IHZpYSBgb3BhY2l0eWAuXG4gICAgICBvcGFjaXR5OiAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQ7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAkbWF0LWRhdGVwaWNrZXItc2VsZWN0ZWQtdG9kYXktYm94LXNoYWRvdy13aWR0aFxuICAgICAgICAgICAgICAgIG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1kYXRlcGlja2VyLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuXG4gIC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaWNvbik7XG4gIH1cblxuICAvLyBUaGUgcHJldi9uZXh0IGJ1dHRvbnMgbmVlZCBhIGJpdCBtb3JlIHNwZWNpZmljaXR5IHRvXG4gIC8vIGF2b2lkIGJlaW5nIG92ZXJ3cml0dGVuIGJ5IHRoZSAubWF0LWljb24tYnV0dG9uLlxuICAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLFxuICAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLW5leHQtYnV0dG9uLFxuICAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbiB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaWNvbik7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaGludC10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyLWRpdmlkZXI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50IHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3ZlcixcbiAgLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmUsXG4gIC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmUge1xuICAgICYgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gICAgLy8gTm90ZTogdGhvdWdoIGl0J3Mgbm90IHRleHQsIHRoZSBib3JkZXIgaXMgYSBoaW50IGFib3V0IHRoZSBmYWN0IHRoYXQgdGhpcyBpcyB0b2RheSdzIGRhdGUsXG4gICAgLy8gc28gd2UgdXNlIHRoZSBoaW50IGNvbG9yLlxuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICAkY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaGludC10ZXh0KTtcblxuICAgIEBpZiAodHlwZS1vZigkY29sb3IpID09IGNvbG9yKSB7XG4gICAgICBib3JkZXItY29sb3I6IGZhZGUtb3V0KCRjb2xvciwgJG1hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gSWYgdGhlIGNvbG9yIGRpZG4ndCByZXNvbHZlIHRvIGEgY29sb3IgdmFsdWUsIGJ1dCBzb21ldGhpbmcgbGlrZSBhIENTUyB2YXJpYWJsZSwgd2UgY2FuJ3RcbiAgICAgIC8vIGZhZGUgaXQgb3V0IHNvIHdlIGZhbGwgYmFjayB0byByZWR1Y2luZyB0aGUgZWxlbWVudCBvcGFjaXR5LiBOb3RlIHRoYXQgd2UgZG9uJ3QgdXNlIHRoZVxuICAgICAgLy8gJG1hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50LCBiZWNhdXNlIGhpbnQgdGV4dCB1c3VhbGx5IGhhcyBzb21lIG9wYWNpdHkgYXBwbGllZFxuICAgICAgLy8gdG8gaXQgYWxyZWFkeSBhbmQgd2UgZG9uJ3Qgd2FudCB0aGVtIHRvIHN0YWNrIG9uIHRvcCBvZiBlYWNoIG90aGVyLlxuICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSkpO1xuXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbig0LCAkdGhlbWUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpKTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgd2FybikpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50LXRvdWNoIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigwLCAkdGhlbWUpO1xuICB9XG5cbiAgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIHByaW1hcnkpLCB0ZXh0KTtcblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIHdhcm4pLCB0ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1kYXRlcGlja2VyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWNhbGVuZGFyIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5IHtcbiAgICBmb250LXNpemU6ICRtYXQtY2FsZW5kYXItYm9keS1mb250LXNpemU7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwsXG4gIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbiB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYnV0dG9uKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlciB0aCB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogJG1hdC1jYWxlbmRhci13ZWVrZGF5LXRhYmxlLWZvbnQtc2l6ZTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtZGlhbG9nLXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMjQsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtZGlhbG9nLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWRpYWxvZy10aXRsZSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHRpdGxlKTtcbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIG1hdC1leHBhbnNpb24tcGFuZWwtdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDIsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtYWN0aW9uLXJvdyB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgICY6bm90KFthcmlhLWRpc2FibGVkPSd0cnVlJ10pIHtcbiAgICAgICYuY2RrLWtleWJvYXJkLWZvY3VzZWQsXG4gICAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZSB0aGUgaG92ZXIgb24gdG91Y2ggZGV2aWNlcyBzaW5jZSBpdCBjYW4gYXBwZWFyIGxpa2UgaXQgaXMgc3R1Y2suIFdlIGNhbid0IHVzZVxuICAvLyBgQG1lZGlhIChob3ZlcilgIGFib3ZlLCBiZWNhdXNlIHRoZSBkZXNrdG9wIHN1cHBvcnQgYnJvd3NlciBzdXBwb3J0IGlzbid0IGdyZWF0LlxuICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpOm5vdChbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddKVxuICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbixcbiAgLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtYnV0dG9uKTtcblxuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZXhwYW5zaW9uLXBhbmVsLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cbi8vIFRoaXMgbWl4aW4gd2lsbCBlbnN1cmUgdGhhdCBsaW5lcyB0aGF0IG92ZXJmbG93IHRoZSBjb250YWluZXIgd2lsbCBoaWRlIHRoZSBvdmVyZmxvdyBhbmRcbi8vIHRydW5jYXRlIG5lYXRseSB3aXRoIGFuIGVsbGlwc2lzLlxuQG1peGluIG1hdC10cnVuY2F0ZS1saW5lKCkge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8gTWl4aW4gdG8gcHJvdmlkZSBhbGwgbWF0LWxpbmUgc3R5bGVzLCBjaGFuZ2luZyBzZWNvbmRhcnkgZm9udCBzaXplIGJhc2VkIG9uIHdoZXRoZXIgdGhlIGxpc3Rcbi8vIGlzIGluIGRlbnNlIG1vZGUuXG5AbWl4aW4gbWF0LWxpbmUtYmFzZSgkc2Vjb25kYXJ5LWZvbnQtc2l6ZSkge1xuICAubWF0LWxpbmUge1xuICAgIEBpbmNsdWRlIG1hdC10cnVuY2F0ZS1saW5lKCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC8vIGFsbCBsaW5lcyBidXQgdGhlIHRvcCBsaW5lIHNob3VsZCBoYXZlIHNtYWxsZXIgdGV4dFxuICAgICY6bnRoLWNoaWxkKG4rMikge1xuICAgICAgZm9udC1zaXplOiAkc2Vjb25kYXJ5LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBtaXhpbiBub3JtYWxpemVzIGRlZmF1bHQgZWxlbWVudCBzdHlsZXMsIGUuZy4gZm9udCB3ZWlnaHQgZm9yIGhlYWRpbmcgdGV4dC5cbkBtaXhpbiBtYXQtbm9ybWFsaXplLXRleHQoKSB7XG4gICYgPiAqIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBUaGlzIG1peGluIHByb3ZpZGVzIGJhc2Ugc3R5bGVzIGZvciB0aGUgd3JhcHBlciBhcm91bmQgbWF0LWxpbmUgZWxlbWVudHMgaW4gYSBsaXN0LlxuQG1peGluIG1hdC1saW5lLXdyYXBwZXItYmFzZSgpIHtcbiAgQGluY2x1ZGUgbWF0LW5vcm1hbGl6ZS10ZXh0KCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLy8gTXVzdCByZW1vdmUgd3JhcHBlciB3aGVuIGxpbmVzIGFyZSBlbXB0eSBvciBpdCB0YWtlcyB1cCBob3Jpem9udGFsXG4gIC8vIHNwYWNlIGFuZCBwdXNoZXMgb3RoZXIgZWxlbWVudHMgdG8gdGhlIHJpZ2h0LlxuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlIHRoaXMgZW1wdHkgbWl4aW4gZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIG90aGVyIGNvbXBvbmVudHMuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10aGVtZSgkdGhlbWUpIHsgfVxuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1ncmlkLXRpbGUtaGVhZGVyLFxuICAubWF0LWdyaWQtdGlsZS1mb290ZXIge1xuICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuLy8gSW5jbHVkZSB0aGlzIGVtcHR5IG1peGluIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBvdGhlciBjb21wb25lbnRzLlxuQG1peGluIG1hdC1pY29uLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWljb24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1pY29uLXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cblxuXG5cblxuLy8gUmVuZGVycyBhIGdyYWRpZW50IGZvciBzaG93aW5nIHRoZSBkYXNoZWQgbGluZSB3aGVuIHRoZSBpbnB1dCBpcyBkaXNhYmxlZC5cbi8vIFVubGlrZSB1c2luZyBhIGJvcmRlciwgYSBncmFkaWVudCBhbGxvd3MgdXMgdG8gYWRqdXN0IHRoZSBzcGFjaW5nIG9mIHRoZSBkb3R0ZWQgbGluZVxuLy8gdG8gbWF0Y2ggdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuQG1peGluIG1hdC1jb250cm9sLWRpc2FibGVkLXVuZGVybGluZSgkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkY29sb3IgMCUsICRjb2xvciAzMyUsIHRyYW5zcGFyZW50IDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0cHggMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG4vLyBGaWd1cmVzIG91dCB0aGUgY29sb3Igb2YgdGhlIHBsYWNlaG9sZGVyIGZvciBhIGZvcm0gY29udHJvbC5cbi8vIFVzZWQgcHJpbWFyaWx5IHRvIHByZXZlbnQgdGhlIHZhcmlvdXMgZm9ybSBjb250cm9scyBmcm9tXG4vLyBiZWNvbWluZyBvdXQgb2Ygc3luYyBzaW5jZSB0aGVzZSBjb2xvcnMgYXJlbid0IGluIGEgcGFsZXR0ZS5cbkBmdW5jdGlvbiBfbWF0LWNvbnRyb2wtcGxhY2Vob2xkZXItY29sb3IoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gIEByZXR1cm4gbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNSwgMC40MikpO1xufVxuXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIG1hdGVyaWFsL25vLXByZWZpeGVzICovXG5AbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlKSB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgLW1vei11c2VyLXNlbGVjdDogJHZhbHVlO1xuICAtbXMtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbn1cblxuQG1peGluIGlucHV0LXBsYWNlaG9sZGVyIHtcbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWIge1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgY3Vyc29yOiBncmFiO1xufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWJiaW5nIHtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmFsdWUpIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiAkdmFsdWU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6ICR2YWx1ZTtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuXG5cbkBtaXhpbiBtYXQtaW5wdXQtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCxcbiAgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuXG4gICAgQGluY2x1ZGUgaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IF9tYXQtY29udHJvbC1wbGFjZWhvbGRlci1jb2xvcigkdGhlbWUpO1xuICAgIH1cblxuICAgIC8vIE9uIGRhcmsgdGhlbWVzIHdlIHNldCB0aGUgbmF0aXZlIGBzZWxlY3RgIGNvbG9yIHRvIHNvbWUgc2hhZGUgb2Ygd2hpdGUsXG4gICAgLy8gaG93ZXZlciB0aGUgY29sb3IgcHJvcGFnYXRlcyB0byBhbGwgb2YgdGhlIGBvcHRpb25gIGVsZW1lbnRzLCB3aGljaCBhcmVcbiAgICAvLyBhbHdheXMgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kIGluc2lkZSB0aGUgZHJvcGRvd24sIGNhdXNpbmcgdGhlbSB0byBibGVuZCBpbi5cbiAgICAvLyBTaW5jZSB3ZSBjYW4ndCBjaGFuZ2UgYmFja2dyb3VuZCBvZiB0aGUgZHJvcGRvd24sIHdlIG5lZWQgdG8gZXhwbGljaXRseVxuICAgIC8vIHJlc2V0IHRoZSBjb2xvciBvZiB0aGUgb3B0aW9ucyB0byBzb21ldGhpbmcgZGFyay5cbiAgICBAaWYgKG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKSkge1xuICAgICAgb3B0aW9uIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLXByaW1hcnktdGV4dDtcbiAgICAgIH1cblxuICAgICAgb3B0aW9uOmRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLWRpc2FibGVkLXRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbiAgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1pbnB1dC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcblxuICAvLyA8aW5wdXQ+IGVsZW1lbnRzIHNlZW0gdG8gaGF2ZSB0aGVpciBoZWlnaHQgc2V0IHNsaWdodGx5IHRvbyBsYXJnZSBvbiBTYWZhcmkgY2F1c2luZyB0aGUgdGV4dCB0b1xuICAvLyBiZSBtaXNhbGlnbmVkIHcuci50LiB0aGUgcGxhY2Vob2xkZXIuIEFkZGluZyB0aGlzIG1hcmdpbiBjb3JyZWN0cyBpdC5cbiAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IC0kbGluZS1zcGFjaW5nICogMWVtO1xuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtbGlzdC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlzYWJsZWQtbGlzdC1vcHRpb24pO1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbixcbiAgLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbSxcbiAgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbSB7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdob3ZlcicpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWxpc3QtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gICRmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuXG4gIC5tYXQtbGlzdC1pdGVtIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgbGlzdFxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMik7XG4gICAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKSk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpKTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMik7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cblxuICAvLyBEZW5zZSBsaXN0XG4gIC5tYXQtbGlzdC1iYXNlW2RlbnNlXSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pKTtcbiAgICB9XG5cbiAgICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgfVxuXG4gICAgLm1hdC1zdWJoZWFkZXIge1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1tZW51LXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtbWVudS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ3RleHQnKTtcblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICYsICY6OmFmdGVyIHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2Rpc2FibGVkJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLFxuICAubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXI6OmFmdGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnaWNvbicpO1xuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW06aG92ZXIsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZCB7XG4gICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnaG92ZXInKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1tZW51LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LXBhZ2luYXRvciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICB9XG5cbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsICdpY29uJyk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1maXJzdCxcbiAgLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgfVxuXG4gIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIHtcbiAgICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gICAgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50LFxuICAgIC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuICAgIC5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICAgICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsICdkaXNhYmxlZCcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgIGZpbGw6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQge1xuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgICAgZmlsbDogbWF0LWNvbG9yKCRhY2NlbnQsIGxpZ2h0ZXIpO1xuICAgIH1cblxuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIHtcbiAgICAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgICAgIGZpbGw6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdHlwb2dyYXBoeSgkY29uZmlnKSB7IH1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1wcm9ncmVzcy1zcGlubmVyLCAubWF0LXNwaW5uZXIge1xuICAgIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cbkBtaXhpbiBfbWF0LXJhZGlvLWNvbG9yKCRwYWxldHRlKSB7XG4gICYubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgfVxuXG4gIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSxcbiAgJi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLFxuICAmOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1yYWRpby1idXR0b24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC1yYWRpby1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcmFkaW8tY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXJhZGlvLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIG5lZWRzIGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHRoZSBjbGFzc2VzIGFib3ZlIGFyZSBjb21iaW5lZFxuICAgIC8vIChlLmcuIGAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50YCkgd2hpY2ggaW5jcmVhc2VzIHRoZWlyIHNwZWNpZmljaXR5IGEgbG90LlxuICAgIC8vIFRPRE86IGNvbnNpZGVyIG1ha2luZyB0aGUgc2VsZWN0b3JzIGludG8gZGVzY2VuZGFudHMgKGAubWF0LXByaW1hcnkgLm1hdC1yYWRpby1idXR0b25gKS5cbiAgICAmLm1hdC1yYWRpby1kaXNhYmxlZCB7XG4gICAgICAmLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuICAgICAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgICAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuXG4gICAgICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50LFxuICAgICAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gICAgLy8gdG8gY29udHJvbCBob3cgb3BhcXVlIHRoZSByaXBwbGUgc2hvdWxkIGJlLlxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1zZWxlY3QtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogX21hdC1jb250cm9sLXBsYWNlaG9sZGVyLWNvbG9yKCR0aGVtZSk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtcGFuZWwge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcblxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIsIDAuMTIpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgJi5tYXQtZm9jdXNlZCB7XG4gICAgICAmLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWludmFsaWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zZWxlY3QtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcblxuICAubWF0LXNlbGVjdCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIGhlaWdodDogJGxpbmUtaGVpZ2h0ICogMWVtO1xuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXNpZGVuYXYtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOiAgbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcbiAgJGRyYXdlci1wdXNoLWJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlhbG9nKTtcbiAgJGRyYXdlci1zaWRlLWJvcmRlcjogc29saWQgMXB4IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1kcmF3ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWRyYXdlci1wdXNoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItcHVzaC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgICAgIC8vIFRoZSBlbGV2YXRpb24gb2Ygei0xNiBpcyBub3RlZCBpbiB0aGUgZGVzaWduIHNwZWNpZmljYXRpb25zLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1kcmF3ZXIuaHRtbFxuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMTYsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kcmF3ZXItc2lkZSB7XG4gICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuXG4gICAgJi5tYXQtZHJhd2VyLWVuZCB7XG4gICAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICB9XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG5cbiAgICAmLm1hdC1kcmF3ZXItZW5kIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZHJhd2VyLWJhY2tkcm9wLm1hdC1kcmF3ZXItc2hvd24ge1xuICAgICRvcGFjaXR5OiAwLjY7XG4gICAgJGJhY2tkcm9wLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQsICRvcGFjaXR5KTtcblxuICAgIEBpZiAodHlwZS1vZigkYmFja2Ryb3AtY29sb3IpID09IGNvbG9yKSB7XG4gICAgICAvLyBXZSB1c2UgaW52ZXJ0KCkgaGVyZSB0byBoYXZlIHRoZSBkYXJrZW4gdGhlIGJhY2tncm91bmQgY29sb3IgZXhwZWN0ZWQgdG8gYmUgdXNlZC4gSWYgdGhlXG4gICAgICAvLyBiYWNrZ3JvdW5kIGlzIGxpZ2h0LCB3ZSB1c2UgYSBkYXJrIGJhY2tkcm9wLiBJZiB0aGUgYmFja2dyb3VuZCBpcyBkYXJrLFxuICAgICAgLy8gd2UgdXNlIGEgbGlnaHQgYmFja2Ryb3AuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbnZlcnQoJGJhY2tkcm9wLWNvbG9yKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gSWYgd2UgY291bGRuJ3QgcmVzb2x2ZSB0aGUgYmFja2Ryb3AgY29sb3IgdG8gYSBjb2xvciB2YWx1ZSwgZmFsbCBiYWNrIHRvIHVzaW5nXG4gICAgICAvLyBgb3BhY2l0eWAgdG8gbWFrZSBpdCBvcGFxdWUgc2luY2UgaXRzIGVuZCB2YWx1ZSBjb3VsZCBiZSBhIHNvbGlkIGNvbG9yLlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tkcm9wLWNvbG9yO1xuICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc2lkZW5hdi10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSkge1xuICAmLm1hdC1jaGVja2VkIHtcbiAgICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgIC8vIE9wYWNpdHkgaXMgZGV0ZXJtaW5lZCBmcm9tIHRoZSBzcGVjcyBmb3IgdGhlIHNlbGVjdGlvbiBjb250cm9scy5cbiAgICAgIC8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29tcG9uZW50cy9zZWxlY3Rpb24tY29udHJvbHMuaHRtbCNzcGVjc1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUsIDAuNTQpO1xuICAgIH1cblxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgLy8gU2V0IG5vIG9wYWNpdHkgZm9yIHRoZSByaXBwbGVzIGJlY2F1c2UgdGhlIHJpcHBsZSBvcGFjaXR5IHdpbGwgYmUgYWRqdXN0ZWQgZHluYW1pY2FsbHlcbiAgICAgIC8vIGJhc2VkIG9uIHRoZSB0eXBlIG9mIGludGVyYWN0aW9uIHdpdGggdGhlIHNsaWRlLXRvZ2dsZSAoZS5nLiBmb3IgaG92ZXIsIGZvY3VzKVxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlLXRvZ2dsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcms6IG1hcF9nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLy8gQ29sb3IgaHVlcyBhcmUgYmFzZWQgb24gdGhlIHNwZWNzIHdoaWNoIGJyaWVmbHkgc2hvdyB0aGUgaHVlcyB0aGF0IGFyZSBhcHBsaWVkIHRvIGEgc3dpdGNoLlxuICAvLyBUaGUgMjAxOCBzcGVjcyBubyBsb25nZXIgZGVzY3JpYmUgaG93IGRhcmsgc3dpdGNoZXMgc2hvdWxkIGxvb2sgbGlrZS4gRHVlIHRvIHRoZSBsYWNrIG9mXG4gIC8vIGluZm9ybWF0aW9uIGZvciBkYXJrIHRoZW1lZCBzd2l0Y2hlcywgd2UgcGFydGlhbGx5IGtlZXAgdGhlIG9sZCBiZWhhdmlvciB0aGF0IGlzIGJhc2VkIG9uXG4gIC8vIHRoZSBwcmV2aW91cyBzcGVjaWZpY2F0aW9ucy4gRm9yIHRoZSBjaGVja2VkIGNvbG9yIHdlIGFsd2F5cyB1c2UgdGhlIGBkZWZhdWx0YCBodWUgYmVjYXVzZVxuICAvLyB0aGF0IGZvbGxvd3MgTURDIGFuZCBhbHNvIG1ha2VzIGl0IGVhc2llciBmb3IgcGVvcGxlIHRvIGNyZWF0ZSBhIGN1c3RvbSB0aGVtZSB3aXRob3V0IG5lZWRpbmdcbiAgLy8gdG8gc3BlY2lmeSBlYWNoIGh1ZSBpbmRpdmlkdWFsbHkuXG4gICR0aHVtYi11bmNoZWNrZWQtaHVlOiBpZigkaXMtZGFyaywgNDAwLCA1MCk7XG4gICR0aHVtYi1jaGVja2VkLWh1ZTogZGVmYXVsdDtcblxuICAkYmFyLXVuY2hlY2tlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZCk7XG4gICRyaXBwbGUtdW5jaGVja2VkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UpO1xuXG4gIC5tYXQtc2xpZGUtdG9nZ2xlIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCRhY2NlbnQsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG5cbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHByaW1hcnksICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCR3YXJuLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICAvLyBTZXQgbm8gb3BhY2l0eSBmb3IgdGhlIHJpcHBsZXMgYmVjYXVzZSB0aGUgcmlwcGxlIG9wYWNpdHkgd2lsbCBiZSBhZGp1c3RlZCBkeW5hbWljYWxseVxuICAgICAgLy8gYmFzZWQgb24gdGhlIHR5cGUgb2YgaW50ZXJhY3Rpb24gd2l0aCB0aGUgc2xpZGUtdG9nZ2xlIChlLmcuIGZvciBob3ZlciwgZm9jdXMpXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmlwcGxlLXVuY2hlY2tlZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMSwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJG1hdC1ncmV5LCAkdGh1bWItdW5jaGVja2VkLWh1ZSk7XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXItdW5jaGVja2VkLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc2xpZGUtdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHBhbGV0dGUpIHtcbiAgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbiAgLm1hdC1zbGlkZXItdGh1bWIsXG4gIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICRtYXQtc2xpZGVyLW9mZi1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItb2ZmLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW9mZi1hY3RpdmUpO1xuICAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW1pbik7XG4gICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1vZmYpO1xuICAkbWF0LXNsaWRlci1mb2N1cy1yaW5nLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgZGVmYXVsdCwgMC4yKTtcbiAgJG1hdC1zbGlkZXItZm9jdXMtcmluZy1taW4tdmFsdWUtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgMC4xMik7XG4gICRtYXQtc2xpZGVyLXRpY2stY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgMC43KTtcbiAgJG1hdC1zbGlkZXItdGljay1zaXplOiAycHg7XG5cbiAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRhY2NlbnQpO1xuICB9XG5cbiAgLm1hdC13YXJuIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCR3YXJuKTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctY29sb3I7XG4gIH1cblxuICAubWF0LXNsaWRlcjpob3ZlcixcbiAgLmNkay1mb2N1c2VkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLW9mZi1mb2N1c2VkLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWRpc2FibGVkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLFxuICAgIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4gICAgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbGlkZXItbWluLXZhbHVlIHtcbiAgICAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctbWluLXZhbHVlLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIHtcbiAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1sYWJlbGVkLW1pbi12YWx1ZS10aHVtYi1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgJi5jZGstZm9jdXNlZCB7XG4gICAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgICAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItbGFiZWwtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKSB7XG4gICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlcixcbiAgICAgICYuY2RrLWZvY3VzZWQge1xuICAgICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtZm9jdXNlZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci10aWNrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgICAvLyBGaXJlZm94IGRvZXNuJ3QgZHJhdyB0aGUgZ3JhZGllbnQgY29ycmVjdGx5IHdpdGggJ3RvIHJpZ2h0J1xuICAgIC8vIChzZWUgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNDMxOSkuXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDAuMDAwMWRlZywgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1zdGVwLWhlYWRlciB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICB9XG5cbiAgICAvLyBPbiB0b3VjaCBkZXZpY2VzIHRoZSA6aG92ZXIgc3RhdGUgd2lsbCBsaW5nZXIgb24gdGhlIGVsZW1lbnQgYWZ0ZXIgYSB0YXAuXG4gICAgLy8gUmVzZXQgaXQgdmlhIGBAbWVkaWFgIGFmdGVyIHRoZSBkZWNsYXJhdGlvbiwgYmVjYXVzZSB0aGUgbWVkaWEgcXVlcnkgaXNuJ3RcbiAgICAvLyBzdXBwb3J0ZWQgYnkgYWxsIGJyb3dzZXJzIHlldC5cbiAgICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwsXG4gICAgLm1hdC1zdGVwLW9wdGlvbmFsIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxcbiAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5tYXQtc3RlcHBlci12ZXJ0aWNhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgfVxuXG4gIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4gIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsXG4gIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zdGVwcGVyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXN0ZXBwZXItdmVydGljYWwsIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIH07XG4gIH1cblxuICAubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZCB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9O1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc29ydC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgICAkdGFibGUtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICAgICR0ZXh0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgIC8vIEJlY2F1c2UgdGhlIGFycm93IGlzIG1hZGUgdXAgb2YgbXVsdGlwbGUgZWxlbWVudHMgdGhhdCBhcmUgc3RhY2tlZCBvbiB0b3Agb2YgZWFjaCBvdGhlcixcbiAgICAvLyB3ZSBjYW4ndCB1c2UgdGhlIHNlbWktdHJhc3BhcmVudCBjb2xvciBmcm9tIHRoZSB0aGVtZSBkaXJlY3RseS4gSWYgdGhlIHZhbHVlIGlzIGEgY29sb3JcbiAgICAvLyAqdHlwZSosIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZFxuICAgIC8vIHVzaW5nIHRoZSB2YWx1ZSB0byBkZXRlcm1pbmUgdGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhY2tncm91bmQgdG8gcHV0IGludG8gZm9yZWdyb3VuZFxuICAgIC8vIHdoZW4gbWl4aW5nIHRoZSBjb2xvcnMgdG9nZXRoZXIuIE90aGVyd2lzZSwgaWYgaXQgcmVzb2x2ZXMgdG8gc29tZXRoaW5nIGRpZmZlcmVudFxuICAgIC8vIChlLmcuIGl0IHJlc29sdmVzIHRvIGEgQ1NTIHZhcmlhYmxlKSwgd2UgdXNlIHRoZSBjb2xvciBkaXJlY3RseS5cbiAgICBAaWYgKHR5cGUtb2YoJHRhYmxlLWJhY2tncm91bmQpID09IGNvbG9yIGFuZCB0eXBlLW9mKCR0ZXh0LWNvbG9yKSA9PSBjb2xvcikge1xuICAgICAgJHRleHQtb3BhY2l0eTogb3BhY2l0eSgkdGV4dC1jb2xvcik7XG4gICAgICBjb2xvcjogbWl4KCR0YWJsZS1iYWNrZ3JvdW5kLCByZ2JhKCR0ZXh0LWNvbG9yLCAxKSwgKDEgLSAkdGV4dC1vcGFjaXR5KSAqIDEwMCUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdGFicy10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRoZWFkZXItYm9yZGVyOiAxcHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcblxuICAubWF0LXRhYi1uYXYtYmFyLFxuICAubWF0LXRhYi1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWFkZXItYm9yZGVyO1xuICB9XG5cbiAgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIHtcbiAgICAubWF0LXRhYi1uYXYtYmFyLFxuICAgIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgICBib3JkZXItdG9wOiAkaGVhZGVyLWJvcmRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtdGFiLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC8vIFJlbW92ZSBoZWFkZXIgYm9yZGVyIHdoZW4gdGhlcmUgaXMgYSBiYWNrZ3JvdW5kIGNvbG9yXG4gIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10gLm1hdC10YWItaGVhZGVyLFxuICAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgfVxuXG4gIC5tYXQtdGFiLWdyb3VwLCAubWF0LXRhYi1uYXYtYmFyIHtcbiAgICAkdGhlbWUtY29sb3JzOiAoXG4gICAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICAgIGFjY2VudDogJGFjY2VudCxcbiAgICAgIHdhcm46ICR3YXJuXG4gICAgKTtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJHRoZW1lLWNvbG9ycyB7XG4gICAgICAvLyBTZXQgdGhlIGZvcmVncm91bmQgY29sb3Igb2YgdGhlIHRhYnNcbiAgICAgICYubWF0LSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvcik7XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgaW5rIGJhciB3aGVuIGJhY2tncm91bmQgY29sb3IgaXMgdGhlIHNhbWVcbiAgICAgICAgJi5tYXQtYmFja2dyb3VuZC0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvciwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICR0aGVtZS1jb2xvcnMge1xuICAgICAgLy8gU2V0IGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRhYnMgYW5kIG92ZXJyaWRlIGZvY3VzIGNvbG9yXG4gICAgICAmLm1hdC1iYWNrZ3JvdW5kLSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWJzLWJhY2tncm91bmQoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtaW5rLWJhcigkY29sb3IsICRodWU6IGRlZmF1bHQpIHtcbiAgLm1hdC1pbmstYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGNvbG9yLCAkaHVlKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10YWItbGFiZWwtZm9jdXMoJHRhYi1mb2N1cy1jb2xvcikge1xuICAubWF0LXRhYi1sYWJlbCxcbiAgLm1hdC10YWItbGluayB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQge1xuICAgICAgJjpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR0YWItZm9jdXMtY29sb3IsIGxpZ2h0ZXIsIDAuMyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRhYnMtYmFja2dyb3VuZCgkYmFja2dyb3VuZC1jb2xvcikge1xuICAvLyBTZXQgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRhYiBncm91cFxuICAubWF0LXRhYi1oZWFkZXIsIC5tYXQtdGFiLWxpbmtzLCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgfVxuXG4gIC8vIFNldCBsYWJlbHMgdG8gY29udHJhc3QgYWdhaW5zdCBiYWNrZ3JvdW5kXG4gIC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1saW5rIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0KTtcblxuICAgICYubWF0LXRhYi1kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBwYWdpbmF0aW9uIGNoZXZyb25zIHRvIGNvbnRyYXN0IGJhY2tncm91bmRcbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QsIDAuNCk7XG4gIH1cblxuICAvLyBTZXQgcmlwcGxlcyBjb2xvciB0byBiZSB0aGUgY29udHJhc3QgY29sb3Igb2YgdGhlIG5ldyBiYWNrZ3JvdW5kLiBPdGhlcndpc2UgdGhlIHJpcHBsZVxuICAvLyBjb2xvciB3aWxsIGJlIGJhc2VkIG9uIHRoZSBhcHAgYmFja2dyb3VuZCBjb2xvci5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjEyKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYnMtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdGFiLWdyb3VwIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJ1dHRvbik7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtdG9vbGJhci1jb2xvcigkcGFsZXR0ZSkge1xuICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICBjb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbn1cblxuQG1peGluIF9tYXQtdG9vbGJhci1mb3JtLWZpZWxkLW92ZXJyaWRlcyB7XG4gIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUsXG4gIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtc2VsZWN0LXZhbHVlLFxuICAubWF0LXNlbGVjdC1hcnJvdyxcbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdG9vbGJhciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBhcHAtYmFyKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItZm9ybS1maWVsZC1vdmVycmlkZXM7XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sYmFyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRvb2xiYXIsXG4gIC5tYXQtdG9vbGJhciBoMSxcbiAgLm1hdC10b29sYmFyIGgyLFxuICAubWF0LXRvb2xiYXIgaDMsXG4gIC5tYXQtdG9vbGJhciBoNCxcbiAgLm1hdC10b29sYmFyIGg1LFxuICAubWF0LXRvb2xiYXIgaDYge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCB0aXRsZSk7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cblxuXG5cblxuJG1hdC10b29sdGlwLXRhcmdldC1oZWlnaHQ6IDIycHg7XG4kbWF0LXRvb2x0aXAtZm9udC1zaXplOiAxMHB4O1xuJG1hdC10b29sdGlwLXZlcnRpY2FsLXBhZGRpbmc6ICgkbWF0LXRvb2x0aXAtdGFyZ2V0LWhlaWdodCAtICRtYXQtdG9vbHRpcC1mb250LXNpemUpIC8gMjtcblxuJG1hdC10b29sdGlwLWhhbmRzZXQtdGFyZ2V0LWhlaWdodDogMzBweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTogMTRweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LXZlcnRpY2FsLXBhZGRpbmc6XG4gICAgKCRtYXQtdG9vbHRpcC1oYW5kc2V0LXRhcmdldC1oZWlnaHQgLSAkbWF0LXRvb2x0aXAtaGFuZHNldC1mb250LXNpemUpIC8gMjtcblxuQG1peGluIG1hdC10b29sdGlwLXRoZW1lKCR0aGVtZSkge1xuICAubWF0LXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkbWF0LWdyZXksIDcwMCwgMC45KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2x0aXAtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdG9vbHRpcCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1mb250LXNpemU7XG4gICAgcGFkZGluZy10b3A6ICRtYXQtdG9vbHRpcC12ZXJ0aWNhbC1wYWRkaW5nO1xuICAgIHBhZGRpbmctYm90dG9tOiAkbWF0LXRvb2x0aXAtdmVydGljYWwtcGFkZGluZztcbiAgfVxuXG4gIC5tYXQtdG9vbHRpcC1oYW5kc2V0IHtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nLXRvcDogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXRoZW1lKCR0aGVtZSkge1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcblxuICAubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xuICAgIC8vIFVzZSB0aGUgcHJpbWFyeSB0ZXh0IG9uIHRoZSBkYXJrIHRoZW1lLCBldmVuIHRob3VnaCB0aGUgbGlnaHRlciBvbmUgdXNlc1xuICAgIC8vIGEgc2Vjb25kYXJ5LCBiZWNhdXNlIHRoZSBjb250cmFzdCBvbiB0aGUgbGlnaHQgcHJpbWFyeSB0ZXh0IGlzIHBvb3IuXG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkZGFyay1wcmltYXJ5LXRleHQsICRsaWdodC1zZWNvbmRhcnktdGV4dCk7XG4gICAgYmFja2dyb3VuZDogaWYoJGlzLWRhcmstdGhlbWUsIG1hcC1nZXQoJG1hdC1ncmV5LCA1MCksICMzMjMyMzIpO1xuXG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oNiwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCBpbmhlcml0LCBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCkpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXNpbXBsZS1zbmFja2JhciB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cblxuICAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogaW5oZXJpdDtcbiAgICAgIHNpemU6IGluaGVyaXQ7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIGZpbGwgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG5cbiAgJGZpbGwtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCBpZigkaXMtZGFyay10aGVtZSwgMC4xLCAwLjA0KSk7XG4gICRmaWxsLWRpc2FibGVkLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgaWYoJGlzLWRhcmstdGhlbWUsIDAuMDUsIDAuMDIpKTtcbiAgJHVuZGVybGluZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC41LCAwLjQyKSk7XG4gICRsYWJlbC1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIHtcbiAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmlsbC1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpbGwtZGlzYWJsZWQtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlKVxuICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgd2lkdGg6IDEwMCUgLyAkZm9udC1zY2FsZSArICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsIGFuZCBzdWJzY3JpcHQuXG4gICRzdWJzY3JpcHQtZm9udC1zY2FsZTogMC43NTtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdG9wIG9mIHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctdG9wOiAwLjI1ZW07XG4gIC8vIFRoZSBwYWRkaW5nIGJlbG93IHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctYm90dG9tOiAwLjc1ZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBmaWxsIGFwcGVhcmFuY2UuXG4gICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC41ZW07XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nLXRvcCAwICRpbmZpeC1wYWRkaW5nLWJvdHRvbSAwO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmctdG9wO1xuICAgICAgbWFyZ2luLXRvcDogJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQ7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtZmlsbC1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLXRvcCArICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmctdG9wICsgJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBsZWdhY3kgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtaGludCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgQGluY2x1ZGUgbWF0LWNvbnRyb2wtZGlzYWJsZWQtdW5kZXJsaW5lKCR1bmRlcmxpbmUtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZygkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFdlIHVzZSBwZXJzcGVjdGl2ZSB0byBmaXggdGhlIHRleHQgYmx1cnJpbmVzcyBhcyBkZXNjcmliZWQgaGVyZTpcbiAgLy8gaHR0cDovL3d3dy51c2VyYWdlbnRtYW4uY29tL2Jsb2cvMjAxNC8wNS8wNC9maXhpbmctdHlwb2dyYXBoeS1pbnNpZGUtb2YtMi1kLWNzcy10cmFuc2Zvcm1zL1xuICAvLyBUaGlzIHJlc3VsdHMgaW4gYSBzbWFsbCBqaXR0ZXIgYWZ0ZXIgdGhlIGxhYmVsIGZsb2F0cyBvbiBGaXJlZm94LCB3aGljaCB0aGVcbiAgLy8gdHJhbnNsYXRlWiBmaXhlcy5cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nKSBzY2FsZSgkZm9udC1zY2FsZSkgcGVyc3BlY3RpdmUoMTAwcHgpXG4gIHRyYW5zbGF0ZVooMC4wMDFweCArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZyArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKVxuICAgICAgICAgICAgICAgICAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuXG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbi8vIFNhbWUgYXMgbWl4aW4gYWJvdmUsIGJ1dCBvbWl0cyB0aGUgdHJhbnNsYXRlWiBmb3IgcHJpbnRpbmcgcHVycG9zZXMuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludCgkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFRoaXMgcmVzdWx0cyBpbiBhIHNtYWxsIGppdHRlciBhZnRlciB0aGUgbGFiZWwgZmxvYXRzIG9uIEZpcmVmb3gsIHdoaWNoIHRoZVxuICAvLyB0cmFuc2xhdGVaIGZpeGVzLlxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSlcbiAgICAgICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZSwgYnV0IHNlZW0gdG8gbWVhc3VyZSBmcm9tIHRoZSBlZGdlXG4gIC8vIG9mIHRoZSB0ZXh0IGl0c2VsZiwgbm90IHRoZSBlZGdlIG9mIHRoZSBsaW5lOyB0aGVyZWZvcmUgd2Ugc3VidHJhY3Qgb2ZmIHRoZSBsaW5lIHNwYWNpbmcuXG4gICRpbmZpeC1wYWRkaW5nOiAwLjVlbSAtICRsaW5lLXNwYWNpbmc7XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLiBXZSBhZ2FpbiBuZWVkIHRvIHN1YnRyYWN0IG9mZiB0aGUgbGluZSBzcGFjaW5nIHNpbmNlIHRoZSBtb2NrcyBtZWFzdXJlIHRvIHRoZSBlZGdlIG9mIHRoZVxuICAvLyB0ZXh0LCBub3QgdGhlICBlZGdlIG9mIHRoZSBsaW5lLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlIC0gKCRsaW5lLXNwYWNpbmcgKiAyKTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgcGFkZGluZy1ib3R0b206ICR3cmFwcGVyLXBhZGRpbmctYm90dG9tO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgICAvLyBzbyB3ZSBtb3ZlIGl0IHVwIGJ5IHRoZSBwYWRkaW5nIGFtb3VudC5cbiAgICAgIGJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgICAgIG1hcmdpbi10b3A6ICRzdWJzY3JpcHQtbWFyZ2luLXRvcDtcblxuICAgICAgLy8gV2Ugd2FudCB0aGUgc3Vic2NyaXB0IHRvIHN0YXJ0IGF0IHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQgYm94LCBub3QgdGhlIHBhZGRpbmcgYm94LFxuICAgICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgICAgdG9wOiBjYWxjKDEwMCUgLSAjeyR3cmFwcGVyLXBhZGRpbmctYm90dG9tIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gdHJhbnNsYXRlWiBjYXVzZXMgdGhlIGxhYmVsIHRvIG5vdCBhcHBlYXIgd2hpbGUgcHJpbnRpbmcsIHNvIHdlIG92ZXJyaWRlIGl0IHRvIG5vdFxuICAvLyBhcHBseSB0cmFuc2xhdGVaIHdoaWxlIHByaW50aW5nXG4gIEBtZWRpYSBwcmludCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nLXByaW50KFxuICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtZGlzYWJsZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICRvdXRsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjMsIDAuMTIpKTtcbiAgJG91dGxpbmUtY29sb3ItaG92ZXI6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJG91dGxpbmUtY29sb3ItcHJpbWFyeTogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgJG91dGxpbmUtY29sb3ItYWNjZW50OiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICRvdXRsaW5lLWNvbG9yLXdhcm46IG1hdC1jb2xvcigkd2Fybik7XG4gICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjE1LCAwLjA2KSk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1ob3ZlcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb2N1c2VkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLXByaW1hcnk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1hY2NlbnQ7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGFzcyByZXBlYXRlZCBzbyB0aGF0IHJ1bGUgaXMgc3BlY2lmaWMgZW5vdWdoIHRvIG92ZXJyaWRlIGZvY3VzZWQgYWNjZW50IGNvbG9yIGNhc2UuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlKVxuICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBwYWRkaW5nIGFib3ZlIGFuZCBiZWxvdyB0aGUgaW5maXguXG4gICRpbmZpeC1wYWRkaW5nOiAxZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgcGFkZGluZyBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLXdyYXBwZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHN1YnNjcmlwdCwgc2luY2UgaXQnc1xuICAvLyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgc3Vic2NyaXB0J3MgbWFyZ2luIGFuZCBsaW5lLWhlaWdodCwgYnV0IHdlXG4gIC8vIG5lZWQgdG8gbXVsdGlwbHkgYnkgdGhlIHN1YnNjcmlwdCBmb250IHNjYWxlIGZhY3RvciBzaW5jZSB0aGUgd3JhcHBlciBoYXMgYSBsYXJnZXIgZm9udCBzaXplLlxuICAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTogKCRzdWJzY3JpcHQtbWFyZ2luLXRvcCArICRsaW5lLWhlaWdodCkgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2UuXG4gICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC4yNWVtO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUge1xuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZztcbiAgICAgIG1hcmdpbi10b3A6ICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0O1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLW91dGxpbmUtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZyArICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcgKyAkb3V0bGluZS1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIHN0YW5kYXJkIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBAaW5jbHVkZSBtYXQtY29udHJvbC1kaXNhYmxlZC11bmRlcmxpbmUoJHVuZGVybGluZS1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10eXBvZ3JhcGh5KCRjb25maWcpIHt9XG5cblxuLy8gVGhlbWUgc3R5bGVzIHRoYXQgYXBwbHkgdG8gYWxsIGFwcGVhcmFuY2VzIG9mIHRoZSBmb3JtLWZpZWxkLlxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAvLyBMYWJlbCBjb2xvcnMuIFJlcXVpcmVkIGlzIHVzZWQgZm9yIHRoZSBgKmAgc3RhciBzaG93biBpbiB0aGUgbGFiZWwuXG4gICRsYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNywgMC42KSk7XG4gICRmb2N1c2VkLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuICAkcmVxdWlyZWQtbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcblxuICAvLyBVbmRlcmxpbmUgY29sb3JzLlxuICAkdW5kZXJsaW5lLWNvbG9yLWJhc2U6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJHVuZGVybGluZS1jb2xvci1hY2NlbnQ6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgJHVuZGVybGluZS1jb2xvci13YXJuOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1oaW50IHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgY29sb3I6ICRmb2N1c2VkLWxhYmVsLWNvbG9yO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICAgIGNvbG9yOiAkcmVxdWlyZWQtbGFiZWwtY29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWJhc2U7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1mb2N1c2VkLWNvbG9yO1xuXG4gICAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtd2FybiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIHtcbiAgICAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3ItYWNjZW50O1xuICAgIH1cblxuICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxpbmcgZm9yIHRoZSBlcnJvciBzdGF0ZSBvZiB0aGUgZm9ybSBmaWVsZC4gTm90ZSB0aGF0IHdoaWxlIHRoZSBzYW1lIGNhbiBiZVxuICAvLyBhY2hpZXZlZCB3aXRoIHRoZSBuZy0qIGNsYXNzZXMsIHdlIHVzZSB0aGlzIGFwcHJvYWNoIGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHRoZSBzYW1lXG4gIC8vIGxvZ2ljIGlzIHVzZWQgdG8gc3R5bGUgdGhlIGVycm9yIHN0YXRlIGFuZCB0byBzaG93IHRoZSBlcnJvciBtZXNzYWdlcy5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuXG4gICAgICAmLm1hdC1hY2NlbnQsXG4gICAgICAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1lcnJvciB7XG4gICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1maWxsLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhlbWUoJHRoZW1lKTtcbn1cblxuLy8gVXNlZCB0byBtYWtlIGluc3RhbmNlcyBvZiB0aGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nIG1peGluIG5lZ2xpZ2libHkgZGlmZmVyZW50LFxuLy8gYW5kIHByZXZlbnQgR29vZ2xlJ3MgQ1NTIE9wdGltaXplciBmcm9tIGNvbGxhcHNpbmcgdGhlIGRlY2xhcmF0aW9ucy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBzb21lXG4vLyBvZiB0aGUgc2VsZWN0b3JzIGNvbnRhaW4gcHNldWRvLWNsYXNzZXMgbm90IHJlY29nbml6ZWQgaW4gYWxsIGJyb3dzZXJzLiBJZiBhIGJyb3dzZXIgZW5jb3VudGVyc1xuLy8gYW4gdW5rbm93biBwc2V1ZG8tY2xhc3MgaXQgd2lsbCBkaXNjYXJkIHRoZSBlbnRpcmUgcnVsZSBzZXQuXG4kbWF0LWZvcm0tZmllbGQtZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWRlZHVwZSlcbiAgICAgICAgICAgICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBwcmVmaXggYW5kIHN1ZmZpeCBpY29ucy5cbiAgJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlOiAxLjU7XG5cbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZS5cbiAgJGluZml4LXBhZGRpbmc6IDAuNWVtO1xuICAvLyBUaGUgbWFyZ2luIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtaW5maXggdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsLlxuICAkaW5maXgtbWFyZ2luLXRvcDogMWVtICogJGxpbmUtaGVpZ2h0ICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBGb250IHNpemUgdG8gdXNlIGZvciB0aGUgbGFiZWwgYW5kIHN1YnNjcmlwdCB0ZXh0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2l6ZTogJHN1YnNjcmlwdC1mb250LXNjYWxlICogMTAwJTtcbiAgLy8gRm9udCBzaXplIHRvIHVzZSBmb3IgdGhlIGZvciB0aGUgcHJlZml4IGFuZCBzdWZmaXggaWNvbnMuXG4gICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxMDAlO1xuICAvLyBUaGUgc3BhY2UgYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSAubWF0LWZvcm0tZmllbGQtZmxleCBhcmVhIGFuZCB0aGUgc3Vic2NyaXB0IHdyYXBwZXIuXG4gIC8vIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLCBidXQgdGhpcyBtYXJnaW4gaXMgYXBwbGllZCB0byBhbiBlbGVtZW50IHdpdGggdGhlIHN1YnNjcmlwdFxuICAvLyB0ZXh0IGZvbnQgc2l6ZSwgc28gd2UgbmVlZCB0byBkaXZpZGUgYnkgdGhlIHNjYWxlIGZhY3RvciB0byBtYWtlIGl0IGhhbGYgb2YgdGhlIG9yaWdpbmFsIHRleHRcbiAgLy8gc2l6ZS5cbiAgJHN1YnNjcmlwdC1tYXJnaW4tdG9wOiAwLjVlbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGlucHV0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcHJlZml4LFxuICAubWF0LWZvcm0tZmllbGQtc3VmZml4IHtcbiAgICAvLyBBbGxvdyBpY29ucyBpbiBhIHByZWZpeCBvciBzdWZmaXggdG8gYWRhcHQgdG8gdGhlIGNvcnJlY3Qgc2l6ZS5cbiAgICAubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgfVxuXG4gICAgLy8gQWxsb3cgaWNvbiBidXR0b25zIGluIGEgcHJlZml4IG9yIHN1ZmZpeCB0byBhZGFwdCB0byB0aGUgY29ycmVjdCBzaXplLlxuICAgIC5tYXQtaWNvbi1idXR0b24ge1xuICAgICAgaGVpZ2h0OiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxZW07XG4gICAgICB3aWR0aDogJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlICogMWVtO1xuXG4gICAgICAubWF0LWljb24ge1xuICAgICAgICBoZWlnaHQ6ICRsaW5lLWhlaWdodCAqIDFlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgLy8gVGhyb3dzIG9mZiB0aGUgYmFzZWxpbmUgaWYgd2UgZG8gaXQgYXMgYSByZWFsIG1hcmdpbiwgc28gd2UgZG8gaXQgYXMgYSBib3JkZXIgaW5zdGVhZC5cbiAgICBib3JkZXItdG9wOiAkaW5maXgtbWFyZ2luLXRvcCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG5cbiAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAtJGluZml4LW1hcmdpbi10b3A7XG4gICAgcGFkZGluZy10b3A6ICRpbmZpeC1tYXJnaW4tdG9wO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQuXG4gICAgYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAkc3Vic2NyaXB0LWZvbnQtc2l6ZTtcbiAgICBtYXJnaW4tdG9wOiAkc3Vic2NyaXB0LW1hcmdpbi10b3A7XG5cbiAgICAvLyBXZSB3YW50IHRoZSBzdWJzY3JpcHQgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgIHRvcDogY2FsYygxMDAlIC0gI3skd3JhcHBlci1wYWRkaW5nLWJvdHRvbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZX0pO1xuICB9XG5cbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS10eXBvZ3JhcGh5KCRjb25maWcpO1xufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdHJlZS10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXRyZWUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdHJlZS1ub2RlLFxuICAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdHJlZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC10cmVlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10cmVlLW5vZGUsXG4gIC5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlcyBhbGwgb2YgdGhlIHR5cG9ncmFwaGljIHN0eWxlcy5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXR5cG9ncmFwaHkoJGNvbmZpZzogbnVsbCkge1xuICBAaWYgJGNvbmZpZyA9PSBudWxsIHtcbiAgICAkY29uZmlnOiBtYXQtdHlwb2dyYXBoeS1jb25maWcoKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYmFzZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1ib3R0b20tc2hlZXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2FyZC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2hlY2tib3gtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10YWJsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGF0ZXBpY2tlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGlhbG9nLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1leHBhbnNpb24tcGFuZWwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaWNvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaW5wdXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LW1lbnUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3MtYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1zcGlubmVyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yYWRpby10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc2VsZWN0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zaWRlbmF2LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZS10b2dnbGUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc3RlcHBlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdGFicy10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbGJhci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbHRpcC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtb3B0aW9uLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1vcHRncm91cC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10cmVlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG59XG5cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBhcmUgbm90IHRoZW1lLWRlcGVuZGVudC5cbkBtaXhpbiBtYXQtY29yZSgkdHlwb2dyYXBoeS1jb25maWc6IG51bGwpIHtcbiAgQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5LWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yaXBwbGUoKTtcbiAgQGluY2x1ZGUgY2RrLWExMXkoKTtcbiAgQGluY2x1ZGUgY2RrLW92ZXJsYXkoKTtcbiAgQGluY2x1ZGUgY2RrLXRleHQtZmllbGQoKTtcbn1cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBkZXBlbmQgb24gdGhlIHRoZW1lLlxuQG1peGluIG1hdC1jb3JlLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtcmlwcGxlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1vcHRpb24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LW9wdGdyb3VwLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wc2V1ZG8tY2hlY2tib3gtdGhlbWUoJHRoZW1lKTtcblxuICAvLyBQcm92aWRlcyBleHRlcm5hbCBDU1MgY2xhc3NlcyBmb3IgZWFjaCBlbGV2YXRpb24gdmFsdWUuIEVhY2ggQ1NTIGNsYXNzIGlzIGZvcm1hdHRlZCBhc1xuICAvLyBgbWF0LWVsZXZhdGlvbi16JHpWYWx1ZWAgd2hlcmUgYCR6VmFsdWVgIGNvcnJlc3BvbmRzIHRvIHRoZSB6LXNwYWNlIHRvIHdoaWNoIHRoZSBlbGVtZW50IGlzXG4gIC8vIGVsZXZhdGVkLlxuICBAZm9yICR6VmFsdWUgZnJvbSAwIHRocm91Z2ggMjQge1xuICAgIC4jeyRfbWF0LWVsZXZhdGlvbi1wcmVmaXh9I3skelZhbHVlfSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigkelZhbHVlLCAkdGhlbWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdyYXBwZXIgZWxlbWVudCB0aGF0IHByb3ZpZGVzIHRoZSB0aGVtZSBiYWNrZ3JvdW5kIHdoZW4gdGhlIHVzZXIncyBjb250ZW50IGlzbid0XG4gIC8vIGluc2lkZSBvZiBhIGBtYXQtc2lkZW5hdi1jb250YWluZXJgLiBOb3RlIHRoYXQgd2UgbmVlZCB0byBleGNsdWRlIHRoZSBhbXBlcnNhbmRcbiAgLy8gc2VsZWN0b3IgaW4gY2FzZSB0aGUgbWl4aW4gaXMgaW5jbHVkZWQgYXQgdGhlIHRvcCBsZXZlbC5cbiAgLm1hdC1hcHAtYmFja2dyb3VuZCN7aWYoJiwgJywgJi5tYXQtYXBwLWJhY2tncm91bmQnLCAnJyl9IHtcbiAgICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAgICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLy8gTWFya2VyIHRoYXQgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgdXNlciBoYXMgYWRkZWQgYSB0aGVtZSB0byB0aGVpciBwYWdlLlxuICBAYXQtcm9vdCB7XG4gICAgLm1hdC10aGVtZS1sb2FkZWQtbWFya2VyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWRpdmlkZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWRpdmlkZXItdmVydGljYWwge1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vLyBDcmVhdGUgYSB0aGVtZS5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtY29yZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1idXR0b24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWNhcmQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWNoZWNrYm94LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtdGFibGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWRpYWxvZy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWljb24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWlucHV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1saXN0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1tZW51LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wYWdpbmF0b3ItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLWJhci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNlbGVjdC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2lkZW5hdi10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNvcnQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRhYnMtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRyZWUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci10aGVtZSgkdGhlbWUpO1xufVxuIl19 */\"","import { Component, OnInit, Output, EventEmitter, ViewChild, OnDestroy, Input, AfterViewInit, ViewEncapsulation } from '@angular/core';\r\nimport { FormBuilder, FormGroup, FormArray } from '@angular/forms';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { DemoService } from '../../../shared/demo.service';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { request } from 'http';\r\nimport { RequestMetadata, PagedResult } from '../../../../../lib/ng-crud-table';\r\nimport { MatTableDataSource, MatSort } from '@angular/material';\r\nimport { DataSource } from '@angular/cdk/table';\r\nimport { MatDialog, MatDialogConfig, PageEvent, MatPaginator } from '@angular/material';\r\nimport { VquadbtfxoComponent } from 'src/app/statistics/network-status/vquadbtfxo/vquadbtfxo.component';\r\nimport { VquadscrparamsComponent } from 'src/app/statistics/network-status/vquadscrparams/vquadscrparams.component';\r\nimport { CommonFilter } from 'src/app/shared/models/Common/common-filter';\r\nimport { parse } from 'querystring';\r\nimport { NWSTAT_VQUAD } from 'src/app/shared/models/NWSTAT_VQUAD';\r\nimport { NWSTAT_VQUAD_CENTRALIPS } from 'src/app/shared/models/NWSTAT_VQUAD_CENTRALIPS';\r\nimport { environment } from 'src/environments/environment';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { ConfirmDialogComponent } from 'src/app/shared/components/confirm-dialog/confirm-dialog.component';\r\nimport { RemoteCommandType } from 'src/app/shared/models/Remote Operations/remote-operations';\r\nimport { DEVICE_CALL_STATUS } from 'src/app/shared/models/Remote Operations/network-status';\r\nimport { getDateValue, iterateAndWait } from 'lib/common/utils';\r\nimport { tap, delay } from 'rxjs/operators';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { url } from 'inspector';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\nimport { Subscription } from 'rxjs';\r\n//import { MatRadioChange } from '@angular/material';\r\n\r\n@Component({\r\n selector: 'app-vquad',\r\n templateUrl: './vquad.component.html',\r\n styleUrls: ['./vquad.component.scss'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n\r\n trigger('fadeInOut', [\r\n state('in', style({ opacity: 100 })),\r\n transition('* => void', [\r\n animate(300, style({ opacity: 0 }))\r\n ])\r\n ]),\r\n\r\n\r\n //https://www.kdechant.com/blog/angular-animations-fade-in-and-fade-out\r\n // the fade-in/fade-out animation.\r\n trigger('simpleFadeAnimation', [\r\n\r\n // the \"in\" style determines the \"resting\" state of the element when it is visible.\r\n state('in', style({ opacity: 1 })),\r\n\r\n // fade in when created. this could also be written as transition('void => *')\r\n transition(':enter', [\r\n style({ opacity: 0 }),\r\n animate(600)\r\n ]),\r\n\r\n // fade out when destroyed. this could also be written as transition('void => *')\r\n transition(':leave',\r\n animate(600, style({ opacity: 0 })))\r\n ]),\r\n\r\n ],\r\n})\r\nexport class VQUADComponent implements OnInit, AfterViewInit, OnDestroy {//, OnDestroy {\r\n baseUrl: string;\r\n url: string;\r\n rsltType: string = \"Vquad\";\r\n title: string;\r\n staticScreen = true;\r\n isLoading = false;\r\n isSubLoading = {};\r\n data2: any;\r\n goToPage = null;\r\n centralIP1: string;\r\n centralIP2: string;\r\n centralIP3: string;\r\n centralIP4: string;\r\n centralIPsForm: FormGroup;\r\n centralIPsList = [];\r\n vquadID: number = 0;\r\n vquadScriptID: number = 0;\r\n isProfile: boolean = true;\r\n isProfileCheck: boolean = true;\r\n showConnectedNode: boolean = false;\r\n\r\n private commonFilter: CommonFilter;\r\n private nwstatVQUAD: NWSTAT_VQUAD;\r\n\r\n //private generalFilterArray: Array;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n //dataSource = new MatTableDataSource();\r\n\r\n dataSource = new MatTableDataSource([]);//any[]; //new MatTableDataSource(); //[];\r\n dataSource2 = [];\r\n\r\n //'select', 'RowExpand', 'Edit', 'Add', 'NodeIP_Abs'\r\n //'select', \r\n columnsToDisplay = ['RowExpand','NodeIP_Abs', 'NodeVersion_Abs', 'NodeAlias_Abs', 'GPS_Lat_Abs', 'GPS_Long_Abs', 'DevicesCount_Abs'\r\n , 'NodeIPAddr_Abs', 'CentralIP_Abs', 'NodeLocation_Abs', 'DualUTAInfo_Abs',\r\n 'DBTimestamp_Abs', 'ChkBTName_Abs', 'ChkMAC_Abs', 'NodeStatus_Abs'];\r\n\r\n //https://www.dotnetcurry.com/angularjs/1424/angular-interpolation-property-data-binding\r\n //https://www.codementor.io/@adekunleoyaniyi/interpolation-vs-property-binding-in-angular2-eu1tzbyn4?utm_content=68092897&utm_medium=social&utm_source=twitter\r\n //https://stackoverflow.com/questions/47457134/angular-how-can-i-write-a-condition-in-interpolation\r\n //https://stackoverflow.com/questions/52749244/angular-6-function-call-within-html-interpolation-returns-undefined/52749481\r\n SetIPType(LocalIPType_Abs) {\r\n return LocalIPType_Abs == \"0\" ? \"Auto Get Local IP\" : (LocalIPType_Abs == \"1\" ? \"Get Local IP from ..\\\\Profiles\\\\LocalIP.ini\" : \"Use this as Local IP\");\r\n }\r\n isDisabled = {};\r\n onSelectionChanged(matSelected, index) {\r\n //console.log(matSelected.value)\r\n if (matSelected.value == \"2\")\r\n this.isDisabled[index] = false;\r\n else\r\n this.isDisabled[index] = true;\r\n }\r\n GetCentralIPLabel(CentralIPIndex_Abs) {\r\n \r\n return CentralIPIndex_Abs == \"0\" ? \"Primary IP\" : (CentralIPIndex_Abs == \"1\" ? \"Secondary IPs\" : \"\");\r\n }\r\n GetCentralIPInput(CentralIPIndex_Abs) {\r\n\r\n return CentralIPIndex_Abs == \"0\" ? \"Primary IP\" : \"Secondary IP\" + CentralIPIndex_Abs;\r\n }\r\n GetCentralIPLabelClass(CentralIPIndex_Abs) {\r\n\r\n return CentralIPIndex_Abs == \"0\" ? \"PrimaryIPNew\" : (CentralIPIndex_Abs == \"1\" ? \"SecondaryIPNew\" : \"\");\r\n }\r\n SetNodeStatus(NodeTimestamp_Abs, NodeStatus_Abs) {\r\n if (NodeStatus_Abs == '1') {\r\n return 2;\r\n }\r\n\r\n let timeDiffinSec = parseInt(NodeTimestamp_Abs);\r\n //console.log(timeDiffinSec)\r\n if (timeDiffinSec > 60 || timeDiffinSec < -60)\r\n return 1;\r\n else\r\n return 0;\r\n }\r\n SetLatestTSFormat(column) {\r\n return getDateValue(column, \"DBTimestamp_Abs\");\r\n }\r\n //https://medium.com/showpad-engineering/why-you-should-never-use-function-calls-in-angular-template-expressions-e1a50f9c0496\r\n SetNodeStatusClass(ID_Abs) {\r\n let className = \"click\";\r\n //https://stackoverflow.com/a/54805140 - Not used\r\n for (const key in this.scrpitStatuses) {\r\n if (this.scrpitStatuses[key]) {\r\n //debugger;\r\n if (this.scrpitStatuses[key].NodeID == ID_Abs) {\r\n className = this.scrpitStatuses[key].DevicesRunning > 0 ? \"greenTick\" : \"blueTick\";// \"blink\" \"blink click\" : \"click\";\r\n break;\r\n }\r\n }\r\n }\r\n return className;\r\n }\r\n CheckMac(ChkMAC_Abs) {\r\n return ChkMAC_Abs == \"GrabMAC\" ? \"ON\" : \"OFF\";\r\n }\r\n CheckBTName(ChkBTName_Abs) {\r\n return ChkBTName_Abs == \"UseBTName\" ? \"ON\" : \"OFF\";\r\n }\r\n BackCheckMac(ChkMAC_Abs) {\r\n return ChkMAC_Abs == \"ON\" ? \"GrabMAC\" : \"\";\r\n }\r\n BackCheckBTName(ChkBTName_Abs) {\r\n return ChkBTName_Abs == \"ON\" ? \"UseBTName\" : \"\";\r\n }\r\n\r\n SetScriptStatus(ScriptStatus_Abs) {\r\n if (ScriptStatus_Abs == '2')\r\n return 1;\r\n else\r\n return 0;\r\n }\r\n \r\n\r\n vquadScriptColumns = ['DeviceType_Abs', 'DeviceName_Abs', 'ScriptName_Abs', 'Call_Status_Abs', 'Call_Type_Abs', 'GlobalDevice', 'StartStop', 'ScriptStatus_Abs', 'Edit'];\r\n\r\n expandedElement: PeriodicElement | null;\r\n\r\n\r\n tableDef: Array = [\r\n {\r\n key: 'ID_Abs',\r\n header: 'ID'\r\n },\r\n {\r\n key: 'NodeIP_Abs',\r\n header: 'Computer Name'\r\n }, {\r\n key: 'NodeVersion_Abs',\r\n header: 'Version'\r\n }, {\r\n key: 'NodeTimestamp_Abs',\r\n header: 'NodeTimestamp'\r\n },\r\n {\r\n key: 'NodeTimezone_Abs',\r\n header: 'NodeTimezone'\r\n }, {\r\n key: 'NodeAlias_Abs',\r\n header: 'VQuad Name'\r\n }, {\r\n key: 'GPS_Lat_Abs',\r\n header: 'Latitude'\r\n }, {\r\n key: 'GPS_Long_Abs',\r\n header: 'Longitutde'\r\n },\r\n {\r\n key: 'DevicesCount_Abs',\r\n header: 'No.of Devices'\r\n }, {\r\n key: 'NodeIPAddr_Abs',\r\n header: 'IP Address'\r\n }, {\r\n key: 'NodeLocation_Abs',\r\n header: 'Location'\r\n }, {\r\n key: 'DualUTAInfo_Abs',\r\n header: 'Dual UTA'\r\n }, {\r\n key: 'DBTimestamp_Abs',\r\n header: 'Latest Timestamp'\r\n }, {\r\n key: 'NodeStatus_Abs',\r\n header: 'VQuad Status'\r\n },\r\n {\r\n key: 'ChkBTName_Abs',\r\n header: 'Use BT Name'\r\n },\r\n {\r\n key: 'ChkMAC_Abs',\r\n header: 'Grab Mac'\r\n },\r\n {\r\n key: 'CentralIP_Abs',\r\n header: 'CentralDB IP Addresses'\r\n },\r\n\r\n ]\r\n\r\n // MatPaginator Inputs\r\n length = 100;\r\n pageSize = 20;\r\n pageSizeOptions: number[] = [1, 10, 25, 100];\r\n pageIndex = 0;\r\n\r\n // MatPaginator Output\r\n pageEvent: PageEvent;\r\n //mySubscription: any;\r\n\r\n AutoRefreshInfo: any;\r\n interval;\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(private commonFilterService: CommonFilterService, private http: HttpClient, private demoService: DemoService, private dialog: MatDialog, private _formBuilder: FormBuilder, private router: Router) {\r\n\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n this.commonFilterService.setNonFiltersScreen(true);\r\n\r\n this.centralIPsForm = this._formBuilder.group({\r\n dummyCentralIPsArray: this._formBuilder.array(this.centralIPsList)\r\n });\r\n\r\n //Do Refresh\r\n const _broadSubRefresh = this.commonFilterService.componentMethodCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log(res)\r\n this.LoadNSVQuadData();\r\n }\r\n );\r\n this.subscriptions.push(_broadSubRefresh);\r\n\r\n //Do Auto-refresh - start/stop\r\n const _broadSubAutoRefresh = this.commonFilterService.componentMethodWithArgCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.AutoRefreshInfo = res;\r\n //console.log(res)\r\n if (this.AutoRefreshInfo.AutoRefStop) {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n }\r\n }\r\n else {\r\n this.interval = setInterval(() => {\r\n //console.log(this.AutoRefreshInfo.AutoRefStop);\r\n\r\n this.LoadNSVQuadData();\r\n }, this.AutoRefreshInfo.AutoRefSelected);\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAutoRefresh);\r\n }\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n //ngOnDestroy() {\r\n // if (this.mySubscription) {\r\n // this.mySubscription.unsubscribe();\r\n // }\r\n //}\r\n ngAfterViewInit() {\r\n //setTimeout(() => this.dataSource.paginator = this.paginator);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n get dummyCentralIPsArray(): FormArray {\r\n return this.centralIPsForm.get('dummyCentralIPsArray') as FormArray;\r\n }\r\n\r\n //https://javascript.developreference.com/article/11284307/Angular+6+-+How+to+reload+current+page%3F\r\n //https://stackoverflow.com/questions/57325155/how-to-reload-whole-page-without-refresh-in-angular-7-8\r\n //https://blogs.ibs.com/2018/07/10/angular-refreshing-a-route-with-parameters/\r\n //https://www.youtube.com/watch?v=LEI9yrTIrCM\r\n //https://dzone.com/articles/refresh-angular-component-without-reload-or-naviga\r\n //https://medium.com/engineering-on-the-incline/reloading-current-route-on-click-angular-5-1a1bfc740ab2\r\n //https://www.quora.com/How-do-I-auto-reload-my-Angular-2-4-app-after-clicking-a-certain-button\r\n OnReloadRoute() {\r\n //this.router.navigateByUrl('statistics/nsvquad');\r\n this.commonFilterService.basicRefresh();\r\n }\r\n ngOnInit() {\r\n //this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n // return false;\r\n //};\r\n //this.mySubscription = this.router.events.subscribe((event) => {\r\n // if (event instanceof NavigationEnd) {\r\n // // Trick the Router into believing it's last link wasn't previously loaded\r\n // this.router.navigated = false;\r\n\r\n // // if you need to scroll back to top, here is the right place\r\n // window.scrollTo(0, 0);\r\n // }\r\n //});\r\n\r\n\r\n //debugger;\r\n\r\n /////////////////// Call function\r\n\r\n //let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n //let options = {\r\n // headers: headers\r\n //};\r\n\r\n //this.url = environment.urlAddress + '/api/' + requestMeta.rsltType + '/Post' + requestMeta.rsltType;\r\n //this.url = this.url + 'VquadData' + '/Post' + 'VquadNS';\r\n\r\n //return this.http.get(this.url, { params })\r\n //https://www.techiediaries.com/angular-http-client/\r\n //https://stackoverflow.com/questions/50330342/how-to-send-post-in-angular5-with-multiple-params\r\n //https://weblog.west-wind.com/posts/2012/May/08/Passing-multiple-POST-parameters-to-Web-API-Controller-Methods\r\n //https://www.dotnetcurry.com/aspnet/1278/aspnet-webapi-pass-multiple-parameters-action-method\r\n\r\n this.LoadNSVQuadData();\r\n //this.GetData().subscribe((res: any) => {\r\n // //console.log(res);\r\n // let rows: any[] = JSON.parse(res) as any[];\r\n // //console.log(rows);\r\n // this.dataSource = rows;\r\n\r\n //});\r\n\r\n }\r\n\r\n\r\n updateManualPage() {\r\n //debugger;\r\n // this.manualPage = index;\r\n this.paginator.pageIndex = this.goToPage - 1;\r\n this.LoadNSVQuadData(this.paginator);\r\n }\r\n\r\n\r\n //load default data\r\n currentPage: number;\r\n scrpitStatuses: Array = [];\r\n\r\n //radioChange($event) {//: MatRadioChange) {\r\n // //console.log($event.source.name, $event.value);\r\n\r\n // //if ($event.source.name === 'radioOpt1') {\r\n // // // Do whatever you want here\r\n // //}\r\n\r\n // this.LoadNSVQuadData();\r\n //}\r\n\r\n @Input() StatusVquadID: number = 0;\r\n //VQuadOrvMobileOption: string = \"1\";\r\n LoadNSVQuadData(event?: PageEvent) {\r\n if (this.prevRowIndex !== -1)\r\n this.UndoRow(this.prevRowData, this.prevRowIndex);\r\n //debugger;\r\n this.isLoading = true;\r\n this.commonFilter = new CommonFilter();\r\n ///// True =to show Node Connected or show else Show All\r\n this.commonFilter.ShowNodeConnected = this.showConnectedNode;\r\n\r\n //this.commonFilter.TimestampType = parseInt(this.VQuadOrvMobileOption);\r\n if (event != undefined) {\r\n\r\n this.currentPage = +event.pageIndex + +1;\r\n //this.url = this.baseUrl + 'NwStat_VQuad/GetVquads_New?perPage=' + event.pageSize + '&pageNumber=' + this.currentPage;\r\n this.url = this.baseUrl + 'NwStat_VQuad/GetVquads_New';\r\n this.commonFilter.PerPage = event.pageSize.toString();\r\n this.commonFilter.PageNumber = this.currentPage.toString();\r\n\r\n } else {\r\n this.url = this.baseUrl + 'NwStat_VQuad/GetVquads_New';\r\n this.commonFilter.PerPage = this.pageSize.toString();\r\n this.commonFilter.PageNumber = \"1\";\r\n }\r\n //console.log(this.StatusVquadID)\r\n if (this.StatusVquadID != 0) {\r\n this.url = this.baseUrl + 'NwStat_VQuad/GetVquadByID_New';\r\n this.commonFilter.ResultOrFileType = this.StatusVquadID;\r\n }\r\n\r\n this.GetData(this.commonFilter).subscribe((res: any) => {\r\n if (res !== 'null') {\r\n let rows: any[] = JSON.parse(res) as any[];\r\n this.length = rows.length;\r\n this.scrpitStatuses = [];\r\n for (const index in rows) {\r\n rows[index].ChkBTName_Abs = this.CheckBTName(rows[index].ChkBTName_Abs);\r\n rows[index].ChkMAC_Abs = this.CheckMac(rows[index].ChkMAC_Abs);\r\n this.GetVquadScriptsRunningCntData(rows[index].ID_Abs).subscribe((cnt: number) => {\r\n let scriptStatInfo = { NodeID: rows[index].ID_Abs, DevicesRunning: cnt }\r\n this.scrpitStatuses.push(scriptStatInfo)\r\n });\r\n }\r\n\r\n this.dataSource.data = rows;\r\n }\r\n this.isLoading = false;\r\n //this.length = rows.length;\r\n });\r\n\r\n //https://stackoverflow.com/questions/45318164/how-to-use-paginator-from-material-angular\r\n return event;\r\n }\r\n\r\n /// expanded bind\r\n isStartStop = {};\r\n currNodeID = -1;\r\n currElemRowIndex = -1;\r\n CallFunc(nodeID: number, elemRowIndex, column) {\r\n if (this.expandedElement === column) {\r\n if (this.prevSubRowIndex !== -1)\r\n this.UndoScriptRow(this.prevSubRowData, this.prevSubRowIndex);\r\n\r\n this.isSubLoading[elemRowIndex] = true;\r\n //console.log(nodeID);\r\n this.currNodeID = nodeID;\r\n this.currElemRowIndex = elemRowIndex;\r\n this.GetVquadScriptData(nodeID).subscribe((res: any) => {\r\n //console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //console.log(rows);\r\n for (const key in rows) {\r\n if (rows[key]) {\r\n if (rows[key].ScriptStatus_Abs == 2)\r\n this.isStartStop[rows[key].DeviceIndex_Abs - 1] = true;\r\n else\r\n this.isStartStop[rows[key].DeviceIndex_Abs - 1] = false;\r\n }\r\n }\r\n this.dataSource2 = rows;\r\n this.isSubLoading[elemRowIndex] = false;\r\n //this.dataSource2 = ELEMENT_DATA;\r\n //console.log(element);\r\n });\r\n }\r\n }\r\n\r\n //// open dilaog box\r\n btfxo: string[];\r\n OpenBTFXODialog(nodeID: number, NodeTimestamp_Abs, NodeStatus_Abs) {\r\n\r\n //console.log(nodeID);\r\n //this.GetBTFXO(nodeID).subscribe((res: any) => {\r\n //console.log(res);\r\n // let rows: any[] = JSON.parse(res) as any[];\r\n // //console.log(rows[0]);\r\n // this.btfxo = rows[0].BTName_Abs;\r\n\r\n //});\r\n\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"40%\";\r\n dailogConfig.data = { pageValue: nodeID, nodeStatus: this.SetNodeStatus(NodeTimestamp_Abs, NodeStatus_Abs) !== 0 };\r\n\r\n this.dialog.open(VquadbtfxoComponent, dailogConfig);\r\n }\r\n\r\n //// open dilaog box\r\n //https://blog.angular-university.io/angular-material-dialog/\r\n //https://iknowthatnow.com/2018/05/11/angular-material-dialog/\r\n //https://stackoverflow.com/questions/51815455/how-to-pass-data-from-angular-material-dialog-to-parent-component\r\n scrparams: string[];\r\n successMsgGlobalStartVar: boolean = false;\r\n OpenGlobalStartVarDialog(devID: number, rowIndex, NodeTimestamp_Abs, NodeStatus_Abs) {\r\n\r\n //console.log('test');\r\n //console.log(nodeID);\r\n //this.GetBTFXO(nodeID).subscribe((res: any) => {\r\n //console.log(res);\r\n // let rows: any[] = JSON.parse(res) as any[];\r\n // //console.log(rows[0]);\r\n // this.btfxo = rows[0].BTName_Abs;\r\n\r\n //});\r\n\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"55%\";\r\n let nodeStatus = this.SetNodeStatus(NodeTimestamp_Abs, NodeStatus_Abs) === 0;\r\n let finalEditStatus = false;\r\n if (nodeStatus)\r\n finalEditStatus = this.isStartStop[rowIndex];\r\n //console.log(rowIndex)\r\n //dailogConfig.data = { pageValue: devID, devRowEditable: !this.isSubEditable[rowIndex] === undefined ? true : !this.isSubEditable[rowIndex] };\r\n dailogConfig.data = { pageValue: devID, devRowEditable: finalEditStatus };\r\n\r\n const dialogRef = this.dialog.open(VquadscrparamsComponent, dailogConfig);\r\n\r\n dialogRef.afterClosed().subscribe(\r\n data => { this.successMsgGlobalStartVar = data; }\r\n ); \r\n }\r\n\r\n\r\n GetDataBCK() {\r\n\r\n let headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headers\r\n };\r\n\r\n return this.http.post(this.url, options)\r\n .toPromise()\r\n .then(function (res) {\r\n //.subscribe(function (res) {\r\n //debugger;\r\n\r\n let rows: any[] = JSON.parse(res) as VQUADDATA[];\r\n let filteredData = res;//rows;\r\n //console.log(filteredData);\r\n //console.log(rows);\r\n\r\n return rows;\r\n });\r\n //.bind(this))\r\n //.catch(this.handleError.bind(this));\r\n }\r\n\r\n GetData(commFilter: CommonFilter) {\r\n\r\n //debugger;\r\n\r\n // this.url = this.baseUrl + 'NwStat_VQuad/GetVquads_New';\r\n //JSON.stringify({ commonFilter: commFilter, generalFilterArray: generalFilterArr })\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n //var body = {\r\n // PageNumber: this.commonFilter.PageNumber, PerPage: this.commonFilter.PerPage\r\n //}\r\n //return this.http.post(this.url, \"\", { headers: headerOptions }); for post 3 agrument and for get 2 arguments // JSON.stringify({ commonFilter: this.commonFilter })\r\n return this.http.post(this.url, commFilter, options);\r\n // return this.http.get(this.url, options);\r\n\r\n }\r\n\r\n GetVquadScriptData(nodeID: number) {\r\n //let params = new HttpParams()\r\n // .set('TSType', TSType)\r\n // .set('PageNumber', '1')\r\n // .set('TSBetween', TSBetween)\r\n // .set('Sort', 'descending');\r\n\r\n this.url = this.baseUrl + 'NwStat_VQuad/GetScriptsByNodeID_New?nodeID=' + nodeID;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(this.url, { headers: headerOptions });\r\n //.map((data: Response) => {\r\n // return data.json() as EachVqtPolqa[];\r\n //}).toPromise().then(x => {\r\n // this.eachVqtPolqaList = x;\r\n //})\r\n }\r\n GetVquadScriptsRunningCntData(nodeID: number) {\r\n //let params = new HttpParams()\r\n // .set('TSType', TSType)\r\n // .set('PageNumber', '1')\r\n // .set('TSBetween', TSBetween)\r\n // .set('Sort', 'descending');\r\n\r\n this.url = this.baseUrl + 'NwStat_VQuad/GetScriptsRunningCntByNodeID?nodeID=' + nodeID;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(this.url, { headers: headerOptions });\r\n //.map((data: Response) => {\r\n // return data.json() as EachVqtPolqa[];\r\n //}).toPromise().then(x => {\r\n // this.eachVqtPolqaList = x;\r\n //})\r\n }\r\n\r\n GetBTFXO(nodeID: number) {\r\n\r\n this.url = this.baseUrl + 'NwStat_VQuad/GetBtFxosByNodeID_New?nodeID=' + nodeID;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(this.url, { headers: headerOptions });\r\n\r\n }\r\n\r\n parentEvent(title) {\r\n //debugger;\r\n\r\n this.title = title;\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n\r\n //Edit Node network info\r\n isEditable = {};\r\n EditRow(rowData: any, rowIndex) {\r\n if (this.prevRowIndex !== -1)\r\n this.UndoRow(this.prevRowData, this.prevRowIndex);\r\n this.prevRowData = rowData;\r\n this.prevRowIndex = rowIndex;\r\n\r\n this.isEditable[rowIndex] = true;\r\n this.vquadID = rowData.ID_Abs;\r\n\r\n this.centralIPsList = [];\r\n let cntIPs = 0;\r\n for (const key in rowData.CentralIP_Abs) {\r\n if (rowData.CentralIP_Abs[key] !== 'null')\r\n this.centralIPsList.push(rowData.CentralIP_Abs[key]);\r\n else\r\n this.centralIPsList.push(\"\");\r\n cntIPs++;\r\n }\r\n for (var i = cntIPs; i < 4; i++)\r\n this.centralIPsList.push(\"\");\r\n\r\n // if receiving data at a later point, use below instead - IMP\r\n this.centralIPsForm.setControl('dummyCentralIPsArray', this._formBuilder.array(this.centralIPsList));\r\n console.log(rowData.ChkBTName_Abs)\r\n console.log(rowData.ChkMAC_Abs)\r\n //this.dataSource = this.dataSource.filter((value, key) => {\r\n // if (value.ID_Abs == rowData) {\r\n // this.editRow = true;\r\n // }\r\n // else\r\n // this.editRow = false;\r\n // return true;\r\n //});\r\n }\r\n\r\n //Update node info in DB for DataImport to send \r\n UpdateRow(rowData: any, rowIndex) {\r\n this.isEditable[rowIndex] = false;\r\n //console.log(rowData);\r\n this.vquadID = 0;\r\n\r\n rowData.ChkBTName_Abs = this.BackCheckBTName(rowData.ChkBTName_Abs);\r\n rowData.ChkMAC_Abs = this.BackCheckMac(rowData.ChkMAC_Abs);\r\n\r\n //https://stackoverflow.com/questions/15877362/declare-and-initialize-a-dictionary-in-typescript\r\n //https://stackoverflow.com/a/45157258 - Not needed but can be used in array as number type key and value\r\n let newCentralIPList: { [id: number] : string;} = {};//[];\r\n for (var i = 0; i < 4; i++)\r\n newCentralIPList[i] = this.dummyCentralIPsArray.value[i];//this.centralIPsList[i];\r\n\r\n rowData.CentralIP_Abs = newCentralIPList;\r\n //console.log(rowData.CentralIP_Abs)\r\n this.UpdateVquadData(rowData).subscribe((res: any) => {\r\n\r\n rowData.ChkBTName_Abs = this.CheckBTName(rowData.ChkBTName_Abs);\r\n rowData.ChkMAC_Abs = this.CheckMac(rowData.ChkMAC_Abs);\r\n });\r\n\r\n //this.dataSource = this.dataSource.filter((value, key) => {\r\n // if (value.ID_Abs == rowData.ID_Abs) {\r\n // value.ID_Abs = rowData.ID_Abs;\r\n // value.NodeAlias_Abs = rowData.NodeAlias_Abs;\r\n // value.GPS_Lat_Abs = rowData.GPS_Lat_Abs;\r\n // value.GPS_Long_Abs = rowData.GPS_Long_Abs;\r\n // value.NodeLocation_Abs = rowData.NodeLocation_Abs;\r\n // value.NodeIPAddr_Abs = rowData.NodeIPAddr_Abs;\r\n // value.CentralIP_Abs = rowData.CentralIP_Abs;\r\n // value.ChkBTName_Abs = rowData.ChkBTName_Abs;\r\n // value.ChkMAC_Abs = rowData.ChkMAC_Abs;\r\n // }\r\n // return true;\r\n //});\r\n this.isLoading = true;\r\n setTimeout(() => { this.isLoading = false; this.OnReloadRoute(); }, 8000); \r\n }\r\n //change disconnected node to OOS\r\n changeToOOSRow(rowData: any) {//, rowIndex) {\r\n\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"40%\";\r\n dailogConfig.data = { title: \"Confirm Action\", message: \"Are you sure you want to change status to Out of Service?\" };\r\n\r\n this.dialog.open(ConfirmDialogComponent, dailogConfig).afterClosed().subscribe(dialogResult => {\r\n if (dialogResult) {\r\n //this.isEditable[rowIndex] = !this.isEditable[rowIndex];\r\n // console.log(rowData);\r\n this.vquadID = 0;\r\n\r\n rowData.NodeStatus_Abs = 1;\r\n\r\n this.UpdateOOSVquadData(rowData).subscribe((res: any) => {\r\n });\r\n\r\n //this.dataSource = this.dataSource.filter((value, key) => {\r\n // if (value.ID_Abs == rowData.ID_Abs) {\r\n // value.ID_Abs = rowData.ID_Abs;\r\n // value.NodeAlias_Abs = rowData.NodeAlias_Abs;\r\n // value.GPS_Lat_Abs = rowData.GPS_Lat_Abs;\r\n // value.GPS_Long_Abs = rowData.GPS_Long_Abs;\r\n // value.NodeLocation_Abs = rowData.NodeLocation_Abs;\r\n // value.NodeIPAddr_Abs = rowData.NodeIPAddr_Abs;\r\n // value.CentralIP_Abs = rowData.CentralIP_Abs;\r\n // value.ChkBTName_Abs = rowData.ChkBTName_Abs;\r\n // value.ChkMAC_Abs = rowData.ChkMAC_Abs;\r\n // }\r\n // return true;\r\n //});\r\n this.isLoading = true;\r\n setTimeout(() => { this.isLoading = false; this.OnReloadRoute(); }, 3000); \r\n }\r\n }); \r\n\r\n }\r\n\r\n //Cancel editing node\r\n prevRowData: any;\r\n prevRowIndex = -1;\r\n UndoRow(rowData: any, rowIndex) {\r\n this.isEditable[rowIndex] = false;\r\n\r\n this.vquadID = 0;\r\n\r\n this.dataSource.data = this.dataSource.data.filter((value, key) => {\r\n if (value.ID_Abs == rowData.ID_Abs) {\r\n value.ID_Abs = rowData.ID_Abs;\r\n value.NodeAlias_Abs = rowData.NodeAlias_Abs;\r\n value.GPS_Lat_Abs = rowData.GPS_Lat_Abs;\r\n value.GPS_Long_Abs = rowData.GPS_Long_Abs;\r\n value.NodeLocation_Abs = rowData.NodeLocation_Abs;\r\n value.NodeIPAddr_Abs = rowData.NodeIPAddr_Abs;\r\n value.CentralIP_Abs = rowData.CentralIP_Abs;\r\n value.ChkBTName_Abs = rowData.ChkBTName_Abs;\r\n value.ChkMAC_Abs = rowData.ChkMAC_Abs;\r\n }\r\n return true;\r\n });\r\n\r\n }\r\n\r\n UpdateVquadData(rowData: any) {\r\n //debugger;\r\n //console.log(rowData)\r\n this.url = this.baseUrl + 'NwStat_VQuad/UpdateNwStat_Vquad';\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n //var body = {\r\n // PageNumber: this.commonFilter.PageNumber, PerPage: this.commonFilter.PerPage\r\n //}\r\n //return this.http.post(this.url, \"\", { headers: headerOptions }); for post 3 agrument and for get 2 arguments // JSON.stringify({ commonFilter: this.commonFilter })\r\n return this.http.post(this.url, rowData, options);\r\n\r\n }\r\n UpdateOOSVquadData(rowData: any) {\r\n //debugger;\r\n\r\n this.url = this.baseUrl + 'NwStat_VQuad/UpdateNwStatOOS_Vquad';\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n //var body = {\r\n // PageNumber: this.commonFilter.PageNumber, PerPage: this.commonFilter.PerPage\r\n //}\r\n //return this.http.post(this.url, \"\", { headers: headerOptions }); for post 3 agrument and for get 2 arguments // JSON.stringify({ commonFilter: this.commonFilter })\r\n return this.http.post(this.url, rowData, options);\r\n\r\n }\r\n\r\n /// ////////////// Vquad Script\r\n //Edit script row\r\n isSubEditable = {};\r\n selectProfilesScriptsList = [];\r\n currScriptName = \"\";\r\n currScriptWebviewerName = \"\";\r\n //prevScriptName = \"\";\r\n //prevScriptWebviewerName = \"\";\r\n scriptOption: string = \"1\";\r\n selectedNodeIDScriptRef = -1;\r\n ScriptEditRow(rowData: any, rowIndex, elemRowIndex) {\r\n //debugger\r\n this.isSubLoading[elemRowIndex] = true;\r\n if (this.prevSubRowIndex !== -1) \r\n this.UndoScriptRow(this.prevSubRowData, this.prevSubRowIndex);\r\n this.prevSubRowData = rowData;\r\n this.prevSubRowIndex = rowIndex;\r\n\r\n this.isSubEditable[rowIndex] = true;\r\n this.vquadScriptID = rowData.ID_Abs;\r\n\r\n this.currScriptWebviewerName = rowData.Script_Webviewer_Abs;\r\n this.currScriptName = \"\";\r\n this.scriptOption = \"2\";//User defined\r\n if (rowData.ScriptName_Abs !== null && rowData.Script_Webviewer_Abs === null) {\r\n this.currScriptName = rowData.ScriptName_Abs;\r\n this.currScriptWebviewerName = \"\";\r\n this.scriptOption = \"1\";//Profiles\r\n }\r\n //this.prevScriptWebviewerName = this.currScriptWebviewerName;\r\n //this.prevScriptName = this.currScriptName;\r\n\r\n //https://stackoverflow.com/questions/58220642/delay-inside-after-subscribe-in-angular\r\n //https://www.learnrxjs.io/learn-rxjs/operators/utility/delay\r\n //this.UpdateScriptInfoCmd(rowData.NodeID_Abs).pipe(delay(3000)).subscribe((res: any) => {\r\n //this.iterateAndWait();\r\n //});\r\n if (this.selectedNodeIDScriptRef != rowData.NodeID_Abs) {\r\n this.selectedNodeIDScriptRef = rowData.NodeID_Abs;//when a new node's script info request needed\r\n\r\n //this.UpdateScriptInfoCmd(rowData.NodeID_Abs).pipe(\r\n // tap(() => { }),\r\n // delay(5000),\r\n //).subscribe(() => {\r\n //console.log(\"Started\")\r\n //this.UpdateScriptInfoCmd(rowData.NodeID_Abs).subscribe(() => {\r\n //console.log(\"Done\")\r\n this.GetVquadScriptNamesList(rowData.NodeID_Abs).subscribe((res: any) => {\r\n //console.log(\"Next\")\r\n let rows: any[] = JSON.parse(res) as any[];\r\n if (rows.length == 0)//fresh node to be asked to send scripts info for the first time\r\n this.GetLatestScriptsList(rowData, elemRowIndex);\r\n \r\n this.selectProfilesScriptsList = rows;\r\n this.isSubLoading[elemRowIndex] = false;\r\n });\r\n //});\r\n }\r\n else {//get script list from db without requested node for latest script info again\r\n this.GetVquadScriptNamesList(rowData.NodeID_Abs).subscribe((res: any) => {\r\n //console.log(\"Next\")\r\n let rows: any[] = JSON.parse(res) as any[];\r\n if (rows.length == 0)//fresh node to be asked to send scripts info for the first time\r\n this.GetLatestScriptsList(rowData, elemRowIndex);\r\n\r\n this.selectProfilesScriptsList = rows;\r\n this.isSubLoading[elemRowIndex] = false;\r\n });\r\n }\r\n \r\n //this.dataSource2 = this.dataSource.filter((value, key) => {\r\n // if (value.ID_Abs == rowData.ID_Abs) {\r\n // this.scriptEditRow = true; \r\n // }\r\n // else {\r\n // this.scriptEditRow = false;\r\n // }\r\n // return true;\r\n //});\r\n }\r\n GetLatestScriptsList(rowData, elemRowIndex) {\r\n this.isSubLoading[elemRowIndex] = true;\r\n this.UpdateScriptInfoCmd(rowData.NodeID_Abs).subscribe(() => {\r\n this.GetVquadScriptNamesList(rowData.NodeID_Abs).subscribe((res: any) => {\r\n let rows: any[] = JSON.parse(res) as any[];\r\n this.selectProfilesScriptsList = rows;\r\n this.isSubLoading[elemRowIndex] = false;\r\n });\r\n });\r\n }\r\n\r\n //changeControl(control: string) {\r\n // if (control == \"profile\") \r\n // this.isProfile = true;\r\n // else\r\n // this.isProfile = false;\r\n //}\r\n\r\n //Set flag to get script file names list saved under AppInfo table under respective node ID\\\r\n UpdateScriptInfoCmd(nodeID: number) {\r\n\r\n this.url = this.baseUrl + 'NwStat_VQuad/UpdateNwStat_VquadScriptInfoCmd?nodeID=' + nodeID;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n //return this.http.post(this.url, \"\", { headers: headerOptions }); for post 3 agrument and for get 2 arguments // JSON.stringify({ commonFilter: this.commonFilter })\r\n return this.http.get(this.url, options);\r\n }\r\n \r\n GetVquadScriptNamesList(nodeID: number) {\r\n //let params = new HttpParams()\r\n // .set('TSType', TSType)\r\n // .set('PageNumber', '1')\r\n // .set('TSBetween', TSBetween)\r\n // .set('Sort', 'descending');\r\n\r\n this.url = this.baseUrl + 'NwStat_VQuad/GetScriptsNamesByNodeID_New?nodeID=' + nodeID;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(this.url, { headers: headerOptions });\r\n //.map((data: Response) => {\r\n // return data.json() as EachVqtPolqa[];\r\n //}).toPromise().then(x => {\r\n // this.eachVqtPolqaList = x;\r\n //})\r\n }\r\n\r\n\r\n //Update script info in DB for remote control\r\n UpdateScriptRow(rowData: any, rowIndex) {\r\n this.isSubEditable[rowIndex] = false;\r\n this.vquadScriptID = 0;\r\n //debugger;\r\n //console.log(rowData);\r\n\r\n //Load Script operation\r\n //VQuadTestScripts\\Bluetooth\\Bluetooth_Bidirectional_RTD^Stopped;^;^;^;^;^;^;^;^;^;^;^\r\n let loadScript = false;\r\n if (this.currScriptName != rowData.ScriptName_Abs && this.scriptOption === \"1\") {\r\n loadScript = true;\r\n rowData.Script_Webviewer_Abs = \"\";\r\n rowData.ScriptName_Abs = \"C:\\\\\\\\Program Files (x86)\\\\\\\\GL Communications Inc\\\\\\\\VQuad\\\\\\\\Profiles\\\\\\\\\" + this.currScriptName;\r\n }\r\n else if (this.currScriptWebviewerName != rowData.Script_Webviewer_Abs && this.scriptOption === \"2\") {\r\n loadScript = true;\r\n rowData.ScriptName_Abs = \"\";\r\n //https://stackoverflow.com/a/38129176\r\n rowData.Script_Webviewer_Abs = this.currScriptWebviewerName.replace(/\\\\/g, \"\\\\\\\\\");\r\n }\r\n //console.log(rowData)\r\n if ((loadScript == true && ((this.currScriptName.length !== 0 && this.scriptOption === \"1\") || (this.currScriptWebviewerName.length !== 0 && this.scriptOption === \"2\"))) || this.successMsgGlobalStartVar === true) {\r\n this.InsertRemoteOperation(rowData, RemoteCommandType.LOAD_SCRIPT).subscribe((res: any) => {\r\n\r\n });\r\n }\r\n //Set new Call Type for Device index\r\n this.UpdateVquadScriptData(rowData).subscribe((res: any) => {\r\n });\r\n\r\n this.dataSource2 = this.dataSource2.filter((value, key) => {\r\n if (value.ID_Abs == rowData.ID_Abs) {\r\n value.ID_Abs = rowData.ID_Abs;\r\n value.ScriptName_Abs = this.currScriptName;\r\n value.Script_Webviewer_Abs = this.currScriptWebviewerName != null ? (this.currScriptWebviewerName.length > 0 ? this.currScriptWebviewerName : null) : null; \r\n value.Call_Type_Abs = rowData.Call_Type_Abs;\r\n value.GlobalDevice = rowData.GlobalDevice;\r\n }\r\n return true;\r\n });\r\n //this.isSubLoading = true;\r\n //setTimeout(() => { this.isSubLoading = false; this.CallFunc(this.currNodeID, this.currElemRowIndex); }, 6000); \r\n \r\n }\r\n //Cancel back to script original row\r\n prevSubRowData: any;\r\n prevSubRowIndex = -1;\r\n UndoScriptRow(rowData: any, rowIndex) {\r\n this.isSubEditable[rowIndex] = false;\r\n this.vquadScriptID = 0;\r\n this.dataSource2 = this.dataSource2.filter((value, key) => {\r\n if (value.ID_Abs == rowData.ID_Abs) {\r\n value.ID_Abs = rowData.ID_Abs;\r\n value.ScriptName_Abs = rowData.ScriptName_Abs;//this.currScriptName;\r\n value.Script_Webviewer_Abs = rowData.Script_Webviewer_Abs;//this.currScriptWebviewerName != null ? (this.currScriptWebviewerName.length > 0 ? this.currScriptWebviewerName : null) : null; \r\n value.Call_Type_Abs = rowData.Call_Type_Abs;\r\n value.GlobalDevice = rowData.GlobalDevice;\r\n }\r\n return true;\r\n });\r\n }\r\n\r\n UpdateVquadScriptData(rowData: any) {\r\n this.url = this.baseUrl + 'NwStat_VQuad/UpdateNwStat_VquadScripts';\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, rowData, options);\r\n }\r\n\r\n //https://stackoverflow.com/questions/55761565/how-to-store-and-use-angular-pipe-result-to-add-ngclass-in-html-file?rq=1\r\n //https://stackoverflow.com/questions/39622327/angular2-use-enum-in-pipe\r\n //https://stackblitz.com/edit/angular-enum-sample?file=src%2Fapp%2Fhello.component.html\r\n callStatusClass(Call_Status_Abs: DEVICE_CALL_STATUS) {\r\n let callStatus: number = Call_Status_Abs;\r\n if (callStatus == 0)\r\n return 'td_expanded IdleOrDisconn';\r\n else\r\n return 'td_expanded Connected';\r\n }\r\n\r\n ////https://stackoverflow.com/questions/36006894/angular2-get-clicked-element-id\r\n //StartStop(event, elem) {\r\n // var target = event.target || event.srcElement || event.currentTarget;\r\n // var idAttr = target.attributes.id;\r\n // var value = idAttr.nodeValue;\r\n //}\r\n StartStop(elem) {\r\n this.isStartStop[elem.DeviceIndex_Abs - 1] = !this.isStartStop[elem.DeviceIndex_Abs - 1];\r\n //console.log(this.isStartStop[elem.DeviceIndex_Abs - 1])\r\n let remoteCmd = RemoteCommandType.STOP_SCRIPT;\r\n elem.ScriptStatus_Abs = '2';//IMP for script stat icon chnage\r\n if (!this.isStartStop[elem.DeviceIndex_Abs - 1]) {\r\n remoteCmd = RemoteCommandType.START_SCRIPT;\r\n elem.ScriptStatus_Abs = '1';\r\n }\r\n this.InsertRemoteOperation(elem, remoteCmd).subscribe((res: any) => {\r\n });\r\n }\r\n InsertRemoteOperation(rowData: any, remoteCmd: RemoteCommandType) {\r\n this.url = this.baseUrl + 'NwStat_VQuad/InsertNwStat_VquadScriptsRemoteOperation';\r\n let body = JSON.stringify({ nwstat_VQuadScripts_Abs: rowData, remoteCmd: remoteCmd });\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, body, options);\r\n }\r\n\r\n ///////////////////// checkbox selection\r\n selection = new SelectionModel(true, []);\r\n\r\n //** Whether the number of selected elements matches the total number of rows. */\r\n isAllSelected() {\r\n\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data != null ? this.dataSource.data.length : 0;\r\n return numSelected === numRows;\r\n }\r\n\r\n //** Selects all rows if they are not all selected; otherwise clear selection. */\r\n delButton: boolean;\r\n masterToggle() {\r\n this.isAllSelected() ?\r\n this.selection.clear() :\r\n this.dataSource.data.forEach(row => this.selection.select(row));\r\n\r\n this.delbuttonSet(1);\r\n }\r\n delbuttonSet(type, row?) {\r\n if (type == 2)\r\n this.selection.toggle(row);\r\n\r\n if (this.selection.selected.length > 0)\r\n this.delButton = true;\r\n else\r\n this.delButton = false;\r\n }\r\n\r\n //** The label for the checkbox on the passed row */\r\n //checkboxLabel(id: number, row?: any): string {\r\n\r\n // if (id == 1) {\r\n // if (!row) {\r\n // id = 0;\r\n // return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n\r\n // }\r\n // id = 0;\r\n // return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`;\r\n // }\r\n // else {\r\n // this.selection.deselect();\r\n // this.selection.clear();\r\n // }\r\n //}\r\n checkboxLabel(row?: any): string {\r\n\r\n if (!row) {\r\n return `${this.isAllSelected() ? 'select' : 'deselect'} all`;\r\n }\r\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`;\r\n }\r\n selectedRow: string;\r\n DeleteNSVquad(rowData?: any) {\r\n //DeleteNSVquad(ID_Abs) {\r\n this.selectedRow = '';\r\n if (rowData)\r\n this.selectedRow += rowData.ID_Abs + ',';\r\n else {\r\n this.dataSource.data.filter((value, key) => {\r\n if (this.selection.isSelected(value)) {\r\n this.selectedRow += value.ID_Abs + ',';\r\n }\r\n });\r\n }\r\n //this.selectedRow = ID_Abs + ',';\r\n\r\n if (this.selectedRow != '') {\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"40%\";\r\n dailogConfig.data = { title: \"Confirm Action\", message: \"Are you sure, you want to delete selected records?\" };\r\n\r\n this.dialog.open(ConfirmDialogComponent, dailogConfig).afterClosed().subscribe(dialogResult => {\r\n if (dialogResult) {\r\n this.DeleteVquadData(this.selectedRow).subscribe((res: any) => {\r\n //this.LoadNSVQuadData();\r\n this.isLoading = true;\r\n setTimeout(() => { this.isLoading = false; this.OnReloadRoute(); }, 8000); \r\n });\r\n }\r\n });\r\n\r\n //if (confirm(\"Are you sure, you want to delete selected records?\")) {\r\n // this.DeleteVquadData(this.selectedRow).subscribe((res: any) => {\r\n // this.LoadNSVQuadData();\r\n // });\r\n //}\r\n }\r\n\r\n }\r\n\r\n DeleteVquadData(nsVquadID: string) {\r\n this.url = this.baseUrl + 'NwStat_VQuad/DeleteNwStat_Vquad?nsVquaIDs=' + nsVquadID;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, options);\r\n }\r\n ///////////////////////////////////// end checkbox\r\n\r\n ShowNodeConnected() {\r\n this.showConnectedNode = !this.showConnectedNode;\r\n this.LoadNSVQuadData();\r\n }\r\n\r\n}\r\n\r\nexport interface VQUADDATA {\r\n ID: string;\r\n VQuad_Timestamp: string;\r\n GPS_Position: string;\r\n Call_Control_Event: string;\r\n description: string;\r\n}\r\nconst Dummy_Data: VQUADDATA[] =\r\n [\r\n {\r\n \"ID\": \"101\",\r\n \"VQuad_Timestamp\": \"2fdsfdsf\",\r\n \"GPS_Position\": \"gfd\",\r\n \"Call_Control_Event\": \"inner1\",\r\n \"description\": \"a\"\r\n },\r\n {\r\n \"ID\": \"201\",\r\n \"VQuad_Timestamp\": \"453gf7\",\r\n \"GPS_Position\": \"fgdf\",\r\n \"Call_Control_Event\": \"inner1\",\r\n \"description\": \"a\"\r\n\r\n },\r\n {\r\n \"ID\": \"301\",\r\n \"VQuad_Timestamp\": \"gg5\",\r\n \"GPS_Position\": \"hgh\",\r\n \"Call_Control_Event\": \"Speech Analysis event\",\r\n \"description\": \"a\"\r\n\r\n }\r\n ];\r\n\r\nexport interface PeriodicElement {\r\n name: string;\r\n position: number;\r\n weight: number;\r\n symbol: string;\r\n description: string;\r\n}\r\nconst ELEMENT_DATA: PeriodicElement[] = [\r\n {\r\n position: 1,\r\n name: 'Hydrogen',\r\n weight: 1.0079,\r\n symbol: 'H',\r\n description: `Hydrogen is a chemical element with symbol H and atomic number 1. With a standard\r\n atomic weight of 1.008, hydrogen is the lightest element on the periodic table.`\r\n }, {\r\n position: 2,\r\n name: 'Helium',\r\n weight: 4.0026,\r\n symbol: 'He',\r\n description: `Helium is a chemical element with symbol He and atomic number 2. It is a\r\n colorless, odorless, tasteless, non-toxic, inert, monatomic gas, the first in the noble gas\r\n group in the periodic table. Its boiling point is the lowest among all the elements.`\r\n }, {\r\n position: 3,\r\n name: 'Lithium',\r\n weight: 6.941,\r\n symbol: 'Li',\r\n description: `Lithium is a chemical element with symbol Li and atomic number 3. It is a soft,\r\n silvery-white alkali metal. Under standard conditions, it is the lightest metal and the\r\n lightest solid element.`\r\n }\r\n];\r\n\r\n","module.exports = \"/*.example-box {\\n border: solid 1px #ccc;\\n color: rgba(0, 0, 0, 0.87);\\n cursor: move;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n text-align: center;\\n background: #fff;\\n border-radius: 4px;\\n position: relative;\\n z-index: 1;\\n transition: box-shadow 200ms cubic-bezier(0, 0, 0.2, 1);\\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\\n}\\n\\n.example-box:active {\\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}*/\\n/*https: //stackblitz.com/edit/angular-material-theme-secrets?embed=1&file=src%2Ftheme.scss&source=post_page---------------------------*/\\n/*@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic&subset=latin-ext');\\n@import url('https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic&subset=latin-ext');*/\\n/*@import '../css/GoogleFontsOpenSans.css';\\n@import '../css/GoogleFontsRoboto.css';*/\\n/* Theme for the ripple elements.*/\\n/* stylelint-disable material/no-prefixes */\\n/* stylelint-enable */\\n.mat-badge-content {\\n font-weight: 600;\\n font-size: 12px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-badge-small .mat-badge-content {\\n font-size: 9px;\\n}\\n.mat-badge-large .mat-badge-content {\\n font-size: 24px;\\n}\\n.mat-h1, .mat-headline, .mat-typography h1 {\\n font: 400 24px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h2, .mat-title, .mat-typography h2 {\\n font: 500 20px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h3, .mat-subheading-2, .mat-typography h3 {\\n font: 400 16px/28px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h4, .mat-subheading-1, .mat-typography h4 {\\n font: 400 15px/24px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.mat-h5, .mat-typography h5 {\\n font: 400 calc(14px * 0.83)/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n.mat-h6, .mat-typography h6 {\\n font: 400 calc(14px * 0.67)/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n.mat-body-strong, .mat-body-2 {\\n font: 500 14px/24px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-body, .mat-body-1, .mat-typography {\\n font: 400 14px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-body p, .mat-body-1 p, .mat-typography p {\\n margin: 0 0 12px;\\n}\\n.mat-small, .mat-caption {\\n font: 400 12px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-display-4, .mat-typography .mat-display-4 {\\n font: 300 112px/112px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n letter-spacing: -0.05em;\\n margin: 0 0 56px;\\n}\\n.mat-display-3, .mat-typography .mat-display-3 {\\n font: 400 56px/56px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n letter-spacing: -0.02em;\\n margin: 0 0 64px;\\n}\\n.mat-display-2, .mat-typography .mat-display-2 {\\n font: 400 45px/48px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n letter-spacing: -0.005em;\\n margin: 0 0 64px;\\n}\\n.mat-display-1, .mat-typography .mat-display-1 {\\n font: 400 34px/40px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 64px;\\n}\\n.mat-bottom-sheet-container {\\n font: 400 14px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-button, .mat-raised-button, .mat-icon-button, .mat-stroked-button,\\n.mat-flat-button, .mat-fab, .mat-mini-fab {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-button-toggle {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-card {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-card-title {\\n font-size: 24px;\\n font-weight: 500;\\n}\\n.mat-card-header .mat-card-title {\\n font-size: 20px;\\n}\\n.mat-card-subtitle,\\n.mat-card-content {\\n font-size: 14px;\\n}\\n.mat-checkbox {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-checkbox-layout .mat-checkbox-label {\\n line-height: 24px;\\n}\\n.mat-chip {\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-chip .mat-chip-trailing-icon.mat-icon,\\n.mat-chip .mat-chip-remove.mat-icon {\\n font-size: 18px;\\n}\\n.mat-table {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-header-cell {\\n font-size: 12px;\\n font-weight: 500;\\n}\\n.mat-cell, .mat-footer-cell {\\n font-size: 14px;\\n}\\n.mat-calendar {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-calendar-body {\\n font-size: 13px;\\n}\\n.mat-calendar-body-label,\\n.mat-calendar-period-button {\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-calendar-table-header th {\\n font-size: 11px;\\n font-weight: 400;\\n}\\n.mat-dialog-title {\\n font: 500 20px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-expansion-panel-header {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 15px;\\n font-weight: 400;\\n}\\n.mat-expansion-panel-content {\\n font: 400 14px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-form-field {\\n font-size: inherit;\\n font-weight: 400;\\n line-height: 1.125;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-form-field-wrapper {\\n padding-bottom: 1.34375em;\\n}\\n.mat-form-field-prefix .mat-icon,\\n.mat-form-field-suffix .mat-icon {\\n font-size: 150%;\\n line-height: 1.125;\\n}\\n.mat-form-field-prefix .mat-icon-button,\\n.mat-form-field-suffix .mat-icon-button {\\n height: 1.5em;\\n width: 1.5em;\\n}\\n.mat-form-field-prefix .mat-icon-button .mat-icon,\\n.mat-form-field-suffix .mat-icon-button .mat-icon {\\n height: 1.125em;\\n line-height: 1.125;\\n}\\n.mat-form-field-infix {\\n padding: 0.5em 0;\\n border-top: 0.84375em solid transparent;\\n}\\n.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.34375em) scale(0.75);\\n transform: translateY(-1.34375em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.34374em) scale(0.75);\\n transform: translateY(-1.34374em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-form-field-label-wrapper {\\n top: -0.84375em;\\n padding-top: 0.84375em;\\n}\\n.mat-form-field-label {\\n top: 1.34375em;\\n}\\n.mat-form-field-underline {\\n bottom: 1.34375em;\\n}\\n.mat-form-field-subscript-wrapper {\\n font-size: 75%;\\n margin-top: 0.6666666667em;\\n top: calc(100% - 1.7916666667em);\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-wrapper {\\n padding-bottom: 1.25em;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-infix {\\n padding: 0.4375em 0;\\n}\\n.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);\\n -ms-transform: translateY(-1.28125em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);\\n -ms-transform: translateY(-1.28124em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);\\n -ms-transform: translateY(-1.28123em) scale(0.75);\\n width: 133.3333533333%;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-label {\\n top: 1.28125em;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-underline {\\n bottom: 1.25em;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {\\n margin-top: 0.5416666667em;\\n top: calc(100% - 1.6666666667em);\\n}\\n@media print {\\n .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.28122em) scale(0.75);\\n transform: translateY(-1.28122em) scale(0.75);\\n }\\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28121em) scale(0.75);\\n }\\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.2812em) scale(0.75);\\n transform: translateY(-1.2812em) scale(0.75);\\n }\\n}\\n.mat-form-field-appearance-fill .mat-form-field-infix {\\n padding: 0.25em 0 0.75em 0;\\n}\\n.mat-form-field-appearance-fill .mat-form-field-label {\\n top: 1.09375em;\\n margin-top: -0.5em;\\n}\\n.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-0.59375em) scale(0.75);\\n transform: translateY(-0.59375em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-0.59374em) scale(0.75);\\n transform: translateY(-0.59374em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-form-field-appearance-outline .mat-form-field-infix {\\n padding: 1em 0 1em 0;\\n}\\n.mat-form-field-appearance-outline .mat-form-field-label {\\n top: 1.84375em;\\n margin-top: -0.25em;\\n}\\n.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.59375em) scale(0.75);\\n transform: translateY(-1.59375em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.59374em) scale(0.75);\\n transform: translateY(-1.59374em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n.mat-grid-tile-header,\\n.mat-grid-tile-footer {\\n font-size: 14px;\\n}\\n.mat-grid-tile-header .mat-line,\\n.mat-grid-tile-footer .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-grid-tile-header .mat-line:nth-child(n+2),\\n.mat-grid-tile-footer .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\ninput.mat-input-element {\\n margin-top: -0.0625em;\\n}\\n.mat-menu-item {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 400;\\n}\\n.mat-paginator,\\n.mat-paginator-page-size .mat-select-trigger {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n}\\n.mat-radio-button {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-select {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-select-trigger {\\n height: 1.125em;\\n}\\n.mat-slide-toggle-content {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-slider-thumb-label-text {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n.mat-stepper-vertical, .mat-stepper-horizontal {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-step-label {\\n font-size: 14px;\\n font-weight: 400;\\n}\\n.mat-step-sub-label-error {\\n font-weight: normal;\\n}\\n.mat-step-label-error {\\n font-size: 14px;\\n}\\n.mat-step-label-selected {\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-tab-group {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-tab-label, .mat-tab-link {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-toolbar,\\n.mat-toolbar h1,\\n.mat-toolbar h2,\\n.mat-toolbar h3,\\n.mat-toolbar h4,\\n.mat-toolbar h5,\\n.mat-toolbar h6 {\\n font: 500 20px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0;\\n}\\n.mat-tooltip {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 10px;\\n padding-top: 6px;\\n padding-bottom: 6px;\\n}\\n.mat-tooltip-handset {\\n font-size: 14px;\\n padding-top: 8px;\\n padding-bottom: 8px;\\n}\\n.mat-list-item {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-list-option {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-list-base .mat-list-item {\\n font-size: 16px;\\n}\\n.mat-list-base .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n.mat-list-base .mat-list-option {\\n font-size: 16px;\\n}\\n.mat-list-base .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n.mat-list-base .mat-subheader {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n.mat-list-base[dense] .mat-list-item {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-list-option {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n.mat-list-base[dense] .mat-subheader {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n.mat-option {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n}\\n.mat-optgroup-label {\\n font: 500 14px/24px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-simple-snackbar {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n}\\n.mat-simple-snackbar-action {\\n line-height: 1;\\n font-family: inherit;\\n font-size: inherit;\\n font-weight: 500;\\n}\\n.mat-tree {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.mat-tree-node,\\n.mat-nested-tree-node {\\n font-weight: 400;\\n font-size: 14px;\\n}\\n.mat-ripple {\\n overflow: hidden;\\n position: relative;\\n}\\n.mat-ripple.mat-ripple-unbounded {\\n overflow: visible;\\n}\\n.mat-ripple-element {\\n position: absolute;\\n border-radius: 50%;\\n pointer-events: none;\\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\\n -ms-transform: scale(0);\\n transform: scale(0);\\n}\\n@media (-ms-high-contrast: active) {\\n .mat-ripple-element {\\n display: none;\\n }\\n}\\n.cdk-visually-hidden {\\n border: 0;\\n clip: rect(0 0 0 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n outline: 0;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n}\\n.cdk-overlay-container, .cdk-global-overlay-wrapper {\\n pointer-events: none;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n}\\n.cdk-overlay-container {\\n position: fixed;\\n z-index: 1000;\\n}\\n.cdk-overlay-container:empty {\\n display: none;\\n}\\n.cdk-global-overlay-wrapper {\\n display: -ms-flexbox;\\n display: flex;\\n position: absolute;\\n z-index: 1000;\\n}\\n.cdk-overlay-pane {\\n position: absolute;\\n pointer-events: auto;\\n box-sizing: border-box;\\n z-index: 1000;\\n display: -ms-flexbox;\\n display: flex;\\n max-width: 100%;\\n max-height: 100%;\\n}\\n.cdk-overlay-backdrop {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n z-index: 1000;\\n pointer-events: auto;\\n -webkit-tap-highlight-color: transparent;\\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\\n opacity: 0;\\n}\\n.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\\n opacity: 1;\\n}\\n@media screen and (-ms-high-contrast: active) {\\n .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\\n opacity: 0.6;\\n }\\n}\\n.cdk-overlay-dark-backdrop {\\n background: rgba(0, 0, 0, 0.32);\\n}\\n.cdk-overlay-transparent-backdrop, .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {\\n opacity: 0;\\n}\\n.cdk-overlay-connected-position-bounding-box {\\n position: absolute;\\n z-index: 1000;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n min-width: 1px;\\n min-height: 1px;\\n}\\n.cdk-global-scrollblock {\\n position: fixed;\\n width: 100%;\\n overflow-y: scroll;\\n}\\n@-webkit-keyframes cdk-text-field-autofill-start {\\n /*!*/\\n}\\n@keyframes cdk-text-field-autofill-start {\\n /*!*/\\n}\\n@-webkit-keyframes cdk-text-field-autofill-end {\\n /*!*/\\n}\\n@keyframes cdk-text-field-autofill-end {\\n /*!*/\\n}\\n.cdk-text-field-autofill-monitored:-webkit-autofill {\\n -webkit-animation-name: cdk-text-field-autofill-start;\\n animation-name: cdk-text-field-autofill-start;\\n}\\n.cdk-text-field-autofill-monitored:not(:-webkit-autofill) {\\n -webkit-animation-name: cdk-text-field-autofill-end;\\n animation-name: cdk-text-field-autofill-end;\\n}\\ntextarea.cdk-textarea-autosize {\\n resize: none;\\n}\\ntextarea.cdk-textarea-autosize-measuring {\\n height: auto !important;\\n overflow: hidden !important;\\n padding: 2px 0 !important;\\n box-sizing: content-box !important;\\n}\\n.mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.mat-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-option:hover:not(.mat-option-disabled), .mat-option:focus:not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.mat-option.mat-active {\\n background: rgba(0, 0, 0, 0.04);\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-option.mat-option-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #64b5f6;\\n}\\n.mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: yellow;\\n}\\n.mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #f44336;\\n}\\n.mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-optgroup-disabled .mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-pseudo-checkbox {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-pseudo-checkbox::after {\\n color: #fafafa;\\n}\\n.mat-pseudo-checkbox-disabled {\\n color: #b0b0b0;\\n}\\n.mat-pseudo-checkbox-checked,\\n.mat-pseudo-checkbox-indeterminate,\\n.mat-accent .mat-pseudo-checkbox-checked,\\n.mat-accent .mat-pseudo-checkbox-indeterminate {\\n background: yellow;\\n}\\n.mat-primary .mat-pseudo-checkbox-checked,\\n.mat-primary .mat-pseudo-checkbox-indeterminate {\\n background: #64b5f6;\\n}\\n.mat-warn .mat-pseudo-checkbox-checked,\\n.mat-warn .mat-pseudo-checkbox-indeterminate {\\n background: #f44336;\\n}\\n.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\\n.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\\n background: #b0b0b0;\\n}\\n.mat-elevation-z0 {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z1 {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z2 {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z3 {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z4 {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z5 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z6 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z7 {\\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z8 {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z9 {\\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z10 {\\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z11 {\\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z12 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z13 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z14 {\\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z15 {\\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z16 {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z17 {\\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z18 {\\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z19 {\\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z20 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z21 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z22 {\\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z23 {\\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\\n}\\n.mat-elevation-z24 {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n}\\n.mat-app-background {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-theme-loaded-marker {\\n display: none;\\n}\\n.mat-autocomplete-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-autocomplete-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\\n background: white;\\n}\\n.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-badge-content {\\n color: rgba(0, 0, 0, 0.87);\\n background: #64b5f6;\\n}\\n@media (-ms-high-contrast: active) {\\n .mat-badge-content {\\n outline: solid 1px;\\n border-radius: 0;\\n }\\n}\\n.mat-badge-accent .mat-badge-content {\\n background: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-badge-warn .mat-badge-content {\\n color: white;\\n background: #f44336;\\n}\\n.mat-badge {\\n position: relative;\\n}\\n.mat-badge-hidden .mat-badge-content {\\n display: none;\\n}\\n.mat-badge-disabled .mat-badge-content {\\n background: #b9b9b9;\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-badge-content {\\n position: absolute;\\n text-align: center;\\n display: inline-block;\\n border-radius: 50%;\\n transition: transform 200ms ease-in-out;\\n -ms-transform: scale(0.6);\\n transform: scale(0.6);\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n pointer-events: none;\\n}\\n.ng-animate-disabled .mat-badge-content,\\n.mat-badge-content._mat-animation-noopable {\\n transition: none;\\n}\\n.mat-badge-content.mat-badge-active {\\n -ms-transform: none;\\n transform: none;\\n}\\n.mat-badge-small .mat-badge-content {\\n width: 16px;\\n height: 16px;\\n line-height: 16px;\\n}\\n.mat-badge-small.mat-badge-above .mat-badge-content {\\n top: -8px;\\n}\\n.mat-badge-small.mat-badge-below .mat-badge-content {\\n bottom: -8px;\\n}\\n.mat-badge-small.mat-badge-before .mat-badge-content {\\n left: -16px;\\n}\\n[dir=rtl] .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -16px;\\n}\\n.mat-badge-small.mat-badge-after .mat-badge-content {\\n right: -16px;\\n}\\n[dir=rtl] .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -16px;\\n}\\n.mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -8px;\\n}\\n[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -8px;\\n}\\n.mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -8px;\\n}\\n[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -8px;\\n}\\n.mat-badge-medium .mat-badge-content {\\n width: 22px;\\n height: 22px;\\n line-height: 22px;\\n}\\n.mat-badge-medium.mat-badge-above .mat-badge-content {\\n top: -11px;\\n}\\n.mat-badge-medium.mat-badge-below .mat-badge-content {\\n bottom: -11px;\\n}\\n.mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: -22px;\\n}\\n[dir=rtl] .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -22px;\\n}\\n.mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: -22px;\\n}\\n[dir=rtl] .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -22px;\\n}\\n.mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -11px;\\n}\\n[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -11px;\\n}\\n.mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -11px;\\n}\\n[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -11px;\\n}\\n.mat-badge-large .mat-badge-content {\\n width: 28px;\\n height: 28px;\\n line-height: 28px;\\n}\\n.mat-badge-large.mat-badge-above .mat-badge-content {\\n top: -14px;\\n}\\n.mat-badge-large.mat-badge-below .mat-badge-content {\\n bottom: -14px;\\n}\\n.mat-badge-large.mat-badge-before .mat-badge-content {\\n left: -28px;\\n}\\n[dir=rtl] .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -28px;\\n}\\n.mat-badge-large.mat-badge-after .mat-badge-content {\\n right: -28px;\\n}\\n[dir=rtl] .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -28px;\\n}\\n.mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -14px;\\n}\\n[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -14px;\\n}\\n.mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -14px;\\n}\\n[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -14px;\\n}\\n.mat-bottom-sheet-container {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-button, .mat-icon-button, .mat-stroked-button {\\n color: inherit;\\n background: transparent;\\n}\\n.mat-button.mat-primary, .mat-icon-button.mat-primary, .mat-stroked-button.mat-primary {\\n color: #64b5f6;\\n}\\n.mat-button.mat-accent, .mat-icon-button.mat-accent, .mat-stroked-button.mat-accent {\\n color: yellow;\\n}\\n.mat-button.mat-warn, .mat-icon-button.mat-warn, .mat-stroked-button.mat-warn {\\n color: #f44336;\\n}\\n.mat-button.mat-primary[disabled], .mat-button.mat-accent[disabled], .mat-button.mat-warn[disabled], .mat-button[disabled][disabled], .mat-icon-button.mat-primary[disabled], .mat-icon-button.mat-accent[disabled], .mat-icon-button.mat-warn[disabled], .mat-icon-button[disabled][disabled], .mat-stroked-button.mat-primary[disabled], .mat-stroked-button.mat-accent[disabled], .mat-stroked-button.mat-warn[disabled], .mat-stroked-button[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-button.mat-primary .mat-button-focus-overlay, .mat-icon-button.mat-primary .mat-button-focus-overlay, .mat-stroked-button.mat-primary .mat-button-focus-overlay {\\n background-color: #64b5f6;\\n}\\n.mat-button.mat-accent .mat-button-focus-overlay, .mat-icon-button.mat-accent .mat-button-focus-overlay, .mat-stroked-button.mat-accent .mat-button-focus-overlay {\\n background-color: yellow;\\n}\\n.mat-button.mat-warn .mat-button-focus-overlay, .mat-icon-button.mat-warn .mat-button-focus-overlay, .mat-stroked-button.mat-warn .mat-button-focus-overlay {\\n background-color: #f44336;\\n}\\n.mat-button[disabled] .mat-button-focus-overlay, .mat-icon-button[disabled] .mat-button-focus-overlay, .mat-stroked-button[disabled] .mat-button-focus-overlay {\\n background-color: transparent;\\n}\\n.mat-button .mat-ripple-element, .mat-icon-button .mat-ripple-element, .mat-stroked-button .mat-ripple-element {\\n opacity: 0.1;\\n background-color: currentColor;\\n}\\n.mat-button-focus-overlay {\\n background: black;\\n}\\n.mat-stroked-button:not([disabled]) {\\n border-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-flat-button, .mat-raised-button, .mat-fab, .mat-mini-fab {\\n color: rgba(0, 0, 0, 0.87);\\n background-color: white;\\n}\\n.mat-flat-button.mat-primary, .mat-raised-button.mat-primary, .mat-fab.mat-primary, .mat-mini-fab.mat-primary {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-flat-button.mat-accent, .mat-raised-button.mat-accent, .mat-fab.mat-accent, .mat-mini-fab.mat-accent {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-flat-button.mat-warn, .mat-raised-button.mat-warn, .mat-fab.mat-warn, .mat-mini-fab.mat-warn {\\n color: white;\\n}\\n.mat-flat-button.mat-primary[disabled], .mat-flat-button.mat-accent[disabled], .mat-flat-button.mat-warn[disabled], .mat-flat-button[disabled][disabled], .mat-raised-button.mat-primary[disabled], .mat-raised-button.mat-accent[disabled], .mat-raised-button.mat-warn[disabled], .mat-raised-button[disabled][disabled], .mat-fab.mat-primary[disabled], .mat-fab.mat-accent[disabled], .mat-fab.mat-warn[disabled], .mat-fab[disabled][disabled], .mat-mini-fab.mat-primary[disabled], .mat-mini-fab.mat-accent[disabled], .mat-mini-fab.mat-warn[disabled], .mat-mini-fab[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-flat-button.mat-primary, .mat-raised-button.mat-primary, .mat-fab.mat-primary, .mat-mini-fab.mat-primary {\\n background-color: #64b5f6;\\n}\\n.mat-flat-button.mat-accent, .mat-raised-button.mat-accent, .mat-fab.mat-accent, .mat-mini-fab.mat-accent {\\n background-color: yellow;\\n}\\n.mat-flat-button.mat-warn, .mat-raised-button.mat-warn, .mat-fab.mat-warn, .mat-mini-fab.mat-warn {\\n background-color: #f44336;\\n}\\n.mat-flat-button.mat-primary[disabled], .mat-flat-button.mat-accent[disabled], .mat-flat-button.mat-warn[disabled], .mat-flat-button[disabled][disabled], .mat-raised-button.mat-primary[disabled], .mat-raised-button.mat-accent[disabled], .mat-raised-button.mat-warn[disabled], .mat-raised-button[disabled][disabled], .mat-fab.mat-primary[disabled], .mat-fab.mat-accent[disabled], .mat-fab.mat-warn[disabled], .mat-fab[disabled][disabled], .mat-mini-fab.mat-primary[disabled], .mat-mini-fab.mat-accent[disabled], .mat-mini-fab.mat-warn[disabled], .mat-mini-fab[disabled][disabled] {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-flat-button.mat-primary .mat-ripple-element, .mat-raised-button.mat-primary .mat-ripple-element, .mat-fab.mat-primary .mat-ripple-element, .mat-mini-fab.mat-primary .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.mat-flat-button.mat-accent .mat-ripple-element, .mat-raised-button.mat-accent .mat-ripple-element, .mat-fab.mat-accent .mat-ripple-element, .mat-mini-fab.mat-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.mat-flat-button.mat-warn .mat-ripple-element, .mat-raised-button.mat-warn .mat-ripple-element, .mat-fab.mat-warn .mat-ripple-element, .mat-mini-fab.mat-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.mat-stroked-button:not([class*=mat-elevation-z]), .mat-flat-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-raised-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-fab:not([class*=mat-elevation-z]), .mat-mini-fab:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.mat-fab[disabled]:not([class*=mat-elevation-z]), .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-button-toggle-standalone,\\n.mat-button-toggle-group {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.mat-button-toggle-group-appearance-standard {\\n box-shadow: none;\\n}\\n.mat-button-toggle {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-button-toggle .mat-button-toggle-focus-overlay {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n background: white;\\n}\\n.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\\n background-color: black;\\n}\\n.mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: none;\\n border-top: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.mat-button-toggle-checked {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-button-toggle-checked.mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-button-toggle-disabled {\\n color: rgba(0, 0, 0, 0.26);\\n background-color: #eeeeee;\\n}\\n.mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\\n background: white;\\n}\\n.mat-button-toggle-disabled.mat-button-toggle-checked {\\n background-color: #bdbdbd;\\n}\\n.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.mat-button-toggle-group-appearance-standard {\\n border: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.mat-card {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-card:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-card-subtitle {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-checkbox-frame {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-checkbox-checkmark {\\n fill: #fafafa;\\n}\\n.mat-checkbox-checkmark-path {\\n stroke: #fafafa !important;\\n}\\n@media (-ms-high-contrast: black-on-white) {\\n .mat-checkbox-checkmark-path {\\n stroke: #000 !important;\\n }\\n}\\n.mat-checkbox-mixedmark {\\n background-color: #fafafa;\\n}\\n.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .mat-checkbox-checked.mat-primary .mat-checkbox-background {\\n background-color: #64b5f6;\\n}\\n.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .mat-checkbox-checked.mat-accent .mat-checkbox-background {\\n background-color: yellow;\\n}\\n.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .mat-checkbox-checked.mat-warn .mat-checkbox-background {\\n background-color: #f44336;\\n}\\n.mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: #b0b0b0;\\n}\\n.mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\\n border-color: #b0b0b0;\\n}\\n.mat-checkbox-disabled .mat-checkbox-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n@media (-ms-high-contrast: active) {\\n .mat-checkbox-disabled {\\n opacity: 0.5;\\n }\\n}\\n@media (-ms-high-contrast: active) {\\n .mat-checkbox-background {\\n background: none;\\n }\\n}\\n.mat-checkbox .mat-ripple-element {\\n background-color: black;\\n}\\n.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\\n.mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\\n background: #64b5f6;\\n}\\n.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\\n.mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\\n background: yellow;\\n}\\n.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\\n.mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\\n background: #f44336;\\n}\\n.mat-chip.mat-standard-chip {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-chip.mat-standard-chip .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\\n opacity: 0.54;\\n}\\n.mat-chip.mat-standard-chip.mat-chip-disabled {\\n opacity: 0.4;\\n}\\n.mat-chip.mat-standard-chip::after {\\n background: black;\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\\n background-color: #64b5f6;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\\n background-color: #f44336;\\n color: white;\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\\n background-color: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.mat-table {\\n background: white;\\n}\\n.mat-table thead, .mat-table tbody, .mat-table tfoot,\\nmat-header-row, mat-row, mat-footer-row,\\n[mat-header-row], [mat-row], [mat-footer-row],\\n.mat-table-sticky {\\n background: inherit;\\n}\\nmat-row, mat-header-row, mat-footer-row,\\nth.mat-header-cell, td.mat-cell, td.mat-footer-cell {\\n border-bottom-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-header-cell {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-cell, .mat-footer-cell {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-calendar-arrow {\\n border-top-color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-datepicker-toggle,\\n.mat-datepicker-content .mat-calendar-next-button,\\n.mat-datepicker-content .mat-calendar-previous-button {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-calendar-table-header {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-calendar-table-header-divider::after {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n.mat-calendar-body-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-calendar-body-cell-content {\\n color: rgba(0, 0, 0, 0.87);\\n border-color: transparent;\\n}\\n.mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n.mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.18);\\n}\\n.mat-calendar-body-selected {\\n background-color: #64b5f6;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(100, 181, 246, 0.4);\\n}\\n.mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n.mat-datepicker-content {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-datepicker-content.mat-accent .mat-calendar-body-selected {\\n background-color: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(255, 255, 0, 0.4);\\n}\\n.mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n.mat-datepicker-content.mat-warn .mat-calendar-body-selected {\\n background-color: #f44336;\\n color: white;\\n}\\n.mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(244, 67, 54, 0.4);\\n}\\n.mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.mat-datepicker-content-touch {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-datepicker-toggle-active {\\n color: #64b5f6;\\n}\\n.mat-datepicker-toggle-active.mat-accent {\\n color: yellow;\\n}\\n.mat-datepicker-toggle-active.mat-warn {\\n color: #f44336;\\n}\\n.mat-dialog-container {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-divider {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-divider-vertical {\\n border-right-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-expansion-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-expansion-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-action-row {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused, .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused, .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n@media (hover: none) {\\n .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\\n background: white;\\n }\\n}\\n.mat-expansion-panel-header-title {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-expansion-panel-header-description,\\n.mat-expansion-indicator::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-expansion-panel-header[aria-disabled=true] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\\n.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\\n color: inherit;\\n}\\n.mat-form-field-label {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n.mat-hint {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n.mat-form-field.mat-focused .mat-form-field-label {\\n color: #64b5f6;\\n}\\n.mat-form-field.mat-focused .mat-form-field-label.mat-accent {\\n color: yellow;\\n}\\n.mat-form-field.mat-focused .mat-form-field-label.mat-warn {\\n color: #f44336;\\n}\\n.mat-focused .mat-form-field-required-marker {\\n color: yellow;\\n}\\n.mat-form-field-ripple {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-form-field.mat-focused .mat-form-field-ripple {\\n background-color: #64b5f6;\\n}\\n.mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\\n background-color: yellow;\\n}\\n.mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\\n background-color: #f44336;\\n}\\n.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\\n color: #64b5f6;\\n}\\n.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\\n color: yellow;\\n}\\n.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n.mat-form-field.mat-form-field-invalid .mat-form-field-label {\\n color: #f44336;\\n}\\n.mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\\n.mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\\n color: #f44336;\\n}\\n.mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\\n.mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\\n background-color: #f44336;\\n}\\n.mat-error {\\n color: #f44336;\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-form-field-appearance-legacy .mat-hint {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-form-field-appearance-legacy .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.mat-form-field-appearance-standard .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.mat-form-field-appearance-fill .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.02);\\n}\\n.mat-form-field-appearance-fill .mat-form-field-underline::before {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\\n background-color: transparent;\\n}\\n.mat-form-field-appearance-outline .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-form-field-appearance-outline .mat-form-field-outline-thick {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\\n color: #64b5f6;\\n}\\n.mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\\n color: yellow;\\n}\\n.mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n.mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.06);\\n}\\n.mat-icon.mat-primary {\\n color: #64b5f6;\\n}\\n.mat-icon.mat-accent {\\n color: yellow;\\n}\\n.mat-icon.mat-warn {\\n color: #f44336;\\n}\\n.mat-form-field-type-mat-native-select .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-input-element:disabled,\\n.mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-input-element {\\n caret-color: #64b5f6;\\n}\\n.mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-input-element:-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-input-element::-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-input-element::placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-input-element::-webkit-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-input-element:-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-accent .mat-input-element {\\n caret-color: yellow;\\n}\\n.mat-warn .mat-input-element,\\n.mat-form-field-invalid .mat-input-element {\\n caret-color: #f44336;\\n}\\n.mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n.mat-list-base .mat-list-item {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-list-base .mat-list-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-list-base .mat-subheader {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-list-item-disabled {\\n background-color: #eeeeee;\\n}\\n.mat-list-option:hover, .mat-list-option:focus,\\n.mat-nav-list .mat-list-item:hover,\\n.mat-nav-list .mat-list-item:focus,\\n.mat-action-list .mat-list-item:hover,\\n.mat-action-list .mat-list-item:focus {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.mat-menu-panel {\\n background: white;\\n}\\n.mat-menu-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-menu-item {\\n background: transparent;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-menu-item[disabled], .mat-menu-item[disabled]::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-menu-item .mat-icon-no-color,\\n.mat-menu-item-submenu-trigger::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-menu-item:hover:not([disabled]),\\n.mat-menu-item.cdk-program-focused:not([disabled]),\\n.mat-menu-item.cdk-keyboard-focused:not([disabled]),\\n.mat-menu-item-highlighted:not([disabled]) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.mat-paginator {\\n background: white;\\n}\\n.mat-paginator,\\n.mat-paginator-page-size .mat-select-trigger {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-paginator-decrement,\\n.mat-paginator-increment {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n border-right: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n.mat-paginator-first,\\n.mat-paginator-last {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n.mat-icon-button[disabled] .mat-paginator-decrement,\\n.mat-icon-button[disabled] .mat-paginator-increment,\\n.mat-icon-button[disabled] .mat-paginator-first,\\n.mat-icon-button[disabled] .mat-paginator-last {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-progress-bar-background {\\n fill: #bbdefb;\\n}\\n.mat-progress-bar-buffer {\\n background-color: #bbdefb;\\n}\\n.mat-progress-bar-fill::after {\\n background-color: #64b5f6;\\n}\\n.mat-progress-bar.mat-accent .mat-progress-bar-background {\\n fill: #ffff8d;\\n}\\n.mat-progress-bar.mat-accent .mat-progress-bar-buffer {\\n background-color: #ffff8d;\\n}\\n.mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\\n background-color: yellow;\\n}\\n.mat-progress-bar.mat-warn .mat-progress-bar-background {\\n fill: #ffcdd2;\\n}\\n.mat-progress-bar.mat-warn .mat-progress-bar-buffer {\\n background-color: #ffcdd2;\\n}\\n.mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\\n background-color: #f44336;\\n}\\n.mat-progress-spinner circle, .mat-spinner circle {\\n stroke: #64b5f6;\\n}\\n.mat-progress-spinner.mat-accent circle, .mat-spinner.mat-accent circle {\\n stroke: yellow;\\n}\\n.mat-progress-spinner.mat-warn circle, .mat-spinner.mat-warn circle {\\n stroke: #f44336;\\n}\\n.mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #64b5f6;\\n}\\n.mat-radio-button.mat-primary .mat-radio-inner-circle,\\n.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\\n background-color: #64b5f6;\\n}\\n.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\\n border-color: yellow;\\n}\\n.mat-radio-button.mat-accent .mat-radio-inner-circle,\\n.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\\n background-color: yellow;\\n}\\n.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #f44336;\\n}\\n.mat-radio-button.mat-warn .mat-radio-inner-circle,\\n.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\\n background-color: #f44336;\\n}\\n.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\\n.mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\\n.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-radio-button.mat-radio-disabled .mat-radio-label-content {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-radio-button .mat-ripple-element {\\n background-color: black;\\n}\\n.mat-select-value {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-select-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.mat-select-disabled .mat-select-value {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-select-arrow {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-select-panel {\\n background: white;\\n}\\n.mat-select-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n.mat-form-field.mat-focused.mat-primary .mat-select-arrow {\\n color: #64b5f6;\\n}\\n.mat-form-field.mat-focused.mat-accent .mat-select-arrow {\\n color: yellow;\\n}\\n.mat-form-field.mat-focused.mat-warn .mat-select-arrow {\\n color: #f44336;\\n}\\n.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\\n color: #f44336;\\n}\\n.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-drawer-container {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-drawer {\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-drawer.mat-drawer-push {\\n background-color: white;\\n}\\n.mat-drawer:not(.mat-drawer-side) {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.mat-drawer-side {\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.mat-drawer-side.mat-drawer-end {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n[dir=rtl] .mat-drawer-side {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n[dir=rtl] .mat-drawer-side.mat-drawer-end {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.mat-drawer-backdrop.mat-drawer-shown {\\n background-color: rgba(0, 0, 0, 0.6);\\n}\\n.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\\n background-color: yellow;\\n}\\n.mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(255, 255, 0, 0.54);\\n}\\n.mat-slide-toggle.mat-checked .mat-ripple-element {\\n background-color: yellow;\\n}\\n.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\\n background-color: #64b5f6;\\n}\\n.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(100, 181, 246, 0.54);\\n}\\n.mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\\n background-color: #64b5f6;\\n}\\n.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\\n background-color: #f44336;\\n}\\n.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(244, 67, 54, 0.54);\\n}\\n.mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\\n background-color: #f44336;\\n}\\n.mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\\n background-color: black;\\n}\\n.mat-slide-toggle-thumb {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n background-color: #fafafa;\\n}\\n.mat-slide-toggle-bar {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-primary .mat-slider-track-fill,\\n.mat-primary .mat-slider-thumb,\\n.mat-primary .mat-slider-thumb-label {\\n background-color: #64b5f6;\\n}\\n.mat-primary .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-accent .mat-slider-track-fill,\\n.mat-accent .mat-slider-thumb,\\n.mat-accent .mat-slider-thumb-label {\\n background-color: yellow;\\n}\\n.mat-accent .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-warn .mat-slider-track-fill,\\n.mat-warn .mat-slider-thumb,\\n.mat-warn .mat-slider-thumb-label {\\n background-color: #f44336;\\n}\\n.mat-warn .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.mat-slider-focus-ring {\\n background-color: rgba(255, 255, 0, 0.2);\\n}\\n.mat-slider:hover .mat-slider-track-background,\\n.cdk-focused .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-slider-disabled .mat-slider-track-background,\\n.mat-slider-disabled .mat-slider-track-fill,\\n.mat-slider-disabled .mat-slider-thumb {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-slider-disabled:hover .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-slider-min-value .mat-slider-focus-ring {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\\n.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\\n.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n background-color: transparent;\\n}\\n.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n}\\n.mat-slider-has-ticks .mat-slider-wrapper::after {\\n border-color: rgba(0, 0, 0, 0.7);\\n}\\n.mat-slider-horizontal .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to right, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n.mat-slider-vertical .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n.mat-step-header.cdk-keyboard-focused, .mat-step-header.cdk-program-focused, .mat-step-header:hover {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n@media (hover: none) {\\n .mat-step-header:hover {\\n background: none;\\n }\\n}\\n.mat-step-header .mat-step-label,\\n.mat-step-header .mat-step-optional {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.mat-step-header .mat-step-icon {\\n background-color: rgba(0, 0, 0, 0.54);\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-step-header .mat-step-icon-selected,\\n.mat-step-header .mat-step-icon-state-done,\\n.mat-step-header .mat-step-icon-state-edit {\\n background-color: #64b5f6;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-step-header .mat-step-icon-state-error {\\n background-color: transparent;\\n color: #f44336;\\n}\\n.mat-step-header .mat-step-label.mat-step-label-active {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-step-header .mat-step-label.mat-step-label-error {\\n color: #f44336;\\n}\\n.mat-stepper-horizontal, .mat-stepper-vertical {\\n background-color: white;\\n}\\n.mat-stepper-vertical-line::before {\\n border-left-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-horizontal-stepper-header::before,\\n.mat-horizontal-stepper-header::after,\\n.mat-stepper-horizontal-line {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-sort-header-arrow {\\n color: #757575;\\n}\\n.mat-tab-nav-bar,\\n.mat-tab-header {\\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\\n}\\n.mat-tab-group-inverted-header .mat-tab-nav-bar,\\n.mat-tab-group-inverted-header .mat-tab-header {\\n border-top: 1px solid rgba(0, 0, 0, 0.12);\\n border-bottom: none;\\n}\\n.mat-tab-label, .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-label.mat-tab-disabled, .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.mat-tab-group[class*=mat-background-] .mat-tab-header,\\n.mat-tab-nav-bar[class*=mat-background-] {\\n border-bottom: none;\\n border-top: none;\\n}\\n.mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(187, 222, 251, 0.3);\\n}\\n.mat-tab-group.mat-primary .mat-ink-bar, .mat-tab-nav-bar.mat-primary .mat-ink-bar {\\n background-color: #64b5f6;\\n}\\n.mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 255, 141, 0.3);\\n}\\n.mat-tab-group.mat-accent .mat-ink-bar, .mat-tab-nav-bar.mat-accent .mat-ink-bar {\\n background-color: yellow;\\n}\\n.mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n.mat-tab-group.mat-warn .mat-ink-bar, .mat-tab-nav-bar.mat-warn .mat-ink-bar {\\n background-color: #f44336;\\n}\\n.mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\\n background-color: white;\\n}\\n.mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(187, 222, 251, 0.3);\\n}\\n.mat-tab-group.mat-background-primary .mat-tab-header, .mat-tab-group.mat-background-primary .mat-tab-links, .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\\n background-color: #64b5f6;\\n}\\n.mat-tab-group.mat-background-primary .mat-tab-label, .mat-tab-group.mat-background-primary .mat-tab-link, .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n.mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n.mat-tab-group.mat-background-primary .mat-ripple-element, .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 255, 141, 0.3);\\n}\\n.mat-tab-group.mat-background-accent .mat-tab-header, .mat-tab-group.mat-background-accent .mat-tab-links, .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\\n background-color: yellow;\\n}\\n.mat-tab-group.mat-background-accent .mat-tab-label, .mat-tab-group.mat-background-accent .mat-tab-link, .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n.mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n.mat-tab-group.mat-background-accent .mat-ripple-element, .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n.mat-tab-group.mat-background-warn .mat-tab-header, .mat-tab-group.mat-background-warn .mat-tab-links, .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\\n background-color: #f44336;\\n}\\n.mat-tab-group.mat-background-warn .mat-tab-label, .mat-tab-group.mat-background-warn .mat-tab-link, .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\\n color: white;\\n}\\n.mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.mat-tab-group.mat-background-warn .mat-ripple-element, .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.mat-toolbar {\\n background: whitesmoke;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-toolbar.mat-primary {\\n background: #64b5f6;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-toolbar.mat-accent {\\n background: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-toolbar.mat-warn {\\n background: #f44336;\\n color: white;\\n}\\n.mat-toolbar .mat-form-field-underline,\\n.mat-toolbar .mat-form-field-ripple,\\n.mat-toolbar .mat-focused .mat-form-field-ripple {\\n background-color: currentColor;\\n}\\n.mat-toolbar .mat-form-field-label,\\n.mat-toolbar .mat-focused .mat-form-field-label,\\n.mat-toolbar .mat-select-value,\\n.mat-toolbar .mat-select-arrow,\\n.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\\n color: inherit;\\n}\\n.mat-toolbar .mat-input-element {\\n caret-color: currentColor;\\n}\\n.mat-tooltip {\\n background: rgba(97, 97, 97, 0.9);\\n}\\n.mat-tree {\\n background: white;\\n}\\n.mat-tree-node,\\n.mat-nested-tree-node {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-snack-bar-container {\\n color: rgba(255, 255, 255, 0.7);\\n background: #323232;\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.mat-simple-snackbar-action {\\n color: yellow;\\n}\\n.unicorn-dark-theme .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.unicorn-dark-theme .mat-option {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-option:hover:not(.mat-option-disabled), .unicorn-dark-theme .mat-option:focus:not(.mat-option-disabled) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.unicorn-dark-theme .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.unicorn-dark-theme .mat-option.mat-active {\\n background: rgba(255, 255, 255, 0.04);\\n color: white;\\n}\\n.unicorn-dark-theme .mat-option.mat-option-disabled {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-optgroup-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-optgroup-disabled .mat-optgroup-label {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-pseudo-checkbox {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-pseudo-checkbox::after {\\n color: #303030;\\n}\\n.unicorn-dark-theme .mat-pseudo-checkbox-disabled {\\n color: #686868;\\n}\\n.unicorn-dark-theme .mat-pseudo-checkbox-checked,\\n.unicorn-dark-theme .mat-pseudo-checkbox-indeterminate,\\n.unicorn-dark-theme .mat-accent .mat-pseudo-checkbox-checked,\\n.unicorn-dark-theme .mat-accent .mat-pseudo-checkbox-indeterminate {\\n background: #ffd740;\\n}\\n.unicorn-dark-theme .mat-primary .mat-pseudo-checkbox-checked,\\n.unicorn-dark-theme .mat-primary .mat-pseudo-checkbox-indeterminate {\\n background: #607d8b;\\n}\\n.unicorn-dark-theme .mat-warn .mat-pseudo-checkbox-checked,\\n.unicorn-dark-theme .mat-warn .mat-pseudo-checkbox-indeterminate {\\n background: #ff5722;\\n}\\n.unicorn-dark-theme .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\\n.unicorn-dark-theme .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\\n background: #686868;\\n}\\n.unicorn-dark-theme .mat-elevation-z0 {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z1 {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z2 {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z3 {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z4 {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z5 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z6 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z7 {\\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z8 {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z9 {\\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z10 {\\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z11 {\\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z12 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z13 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z14 {\\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z15 {\\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z16 {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z17 {\\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z18 {\\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z19 {\\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z20 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z21 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z22 {\\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z23 {\\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-elevation-z24 {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-app-background, .unicorn-dark-theme.mat-app-background {\\n background-color: #303030;\\n color: white;\\n}\\n.mat-theme-loaded-marker {\\n display: none;\\n}\\n.unicorn-dark-theme .mat-autocomplete-panel {\\n background: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-badge-content {\\n color: white;\\n background: #607d8b;\\n}\\n@media (-ms-high-contrast: active) {\\n .unicorn-dark-theme .mat-badge-content {\\n outline: solid 1px;\\n border-radius: 0;\\n }\\n}\\n.unicorn-dark-theme .mat-badge-accent .mat-badge-content {\\n background: #ffd740;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-badge-warn .mat-badge-content {\\n color: white;\\n background: #ff5722;\\n}\\n.unicorn-dark-theme .mat-badge {\\n position: relative;\\n}\\n.unicorn-dark-theme .mat-badge-hidden .mat-badge-content {\\n display: none;\\n}\\n.unicorn-dark-theme .mat-badge-disabled .mat-badge-content {\\n background: #6e6e6e;\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-badge-content {\\n position: absolute;\\n text-align: center;\\n display: inline-block;\\n border-radius: 50%;\\n transition: transform 200ms ease-in-out;\\n -ms-transform: scale(0.6);\\n transform: scale(0.6);\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n pointer-events: none;\\n}\\n.unicorn-dark-theme .ng-animate-disabled .mat-badge-content,\\n.unicorn-dark-theme .mat-badge-content._mat-animation-noopable {\\n transition: none;\\n}\\n.unicorn-dark-theme .mat-badge-content.mat-badge-active {\\n -ms-transform: none;\\n transform: none;\\n}\\n.unicorn-dark-theme .mat-badge-small .mat-badge-content {\\n width: 16px;\\n height: 16px;\\n line-height: 16px;\\n}\\n.unicorn-dark-theme .mat-badge-small.mat-badge-above .mat-badge-content {\\n top: -8px;\\n}\\n.unicorn-dark-theme .mat-badge-small.mat-badge-below .mat-badge-content {\\n bottom: -8px;\\n}\\n.unicorn-dark-theme .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: -16px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -16px;\\n}\\n.unicorn-dark-theme .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: -16px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -16px;\\n}\\n.unicorn-dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -8px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -8px;\\n}\\n.unicorn-dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -8px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -8px;\\n}\\n.unicorn-dark-theme .mat-badge-medium .mat-badge-content {\\n width: 22px;\\n height: 22px;\\n line-height: 22px;\\n}\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-above .mat-badge-content {\\n top: -11px;\\n}\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-below .mat-badge-content {\\n bottom: -11px;\\n}\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: -22px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -22px;\\n}\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: -22px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -22px;\\n}\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -11px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -11px;\\n}\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -11px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -11px;\\n}\\n.unicorn-dark-theme .mat-badge-large .mat-badge-content {\\n width: 28px;\\n height: 28px;\\n line-height: 28px;\\n}\\n.unicorn-dark-theme .mat-badge-large.mat-badge-above .mat-badge-content {\\n top: -14px;\\n}\\n.unicorn-dark-theme .mat-badge-large.mat-badge-below .mat-badge-content {\\n bottom: -14px;\\n}\\n.unicorn-dark-theme .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: -28px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -28px;\\n}\\n.unicorn-dark-theme .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: -28px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -28px;\\n}\\n.unicorn-dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -14px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -14px;\\n}\\n.unicorn-dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -14px;\\n}\\n[dir=rtl] .unicorn-dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -14px;\\n}\\n.unicorn-dark-theme .mat-bottom-sheet-container {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n background: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-button, .unicorn-dark-theme .mat-icon-button, .unicorn-dark-theme .mat-stroked-button {\\n color: inherit;\\n background: transparent;\\n}\\n.unicorn-dark-theme .mat-button.mat-primary, .unicorn-dark-theme .mat-icon-button.mat-primary, .unicorn-dark-theme .mat-stroked-button.mat-primary {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-button.mat-accent, .unicorn-dark-theme .mat-icon-button.mat-accent, .unicorn-dark-theme .mat-stroked-button.mat-accent {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-button.mat-warn, .unicorn-dark-theme .mat-icon-button.mat-warn, .unicorn-dark-theme .mat-stroked-button.mat-warn {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-button.mat-primary[disabled], .unicorn-dark-theme .mat-button.mat-accent[disabled], .unicorn-dark-theme .mat-button.mat-warn[disabled], .unicorn-dark-theme .mat-button[disabled][disabled], .unicorn-dark-theme .mat-icon-button.mat-primary[disabled], .unicorn-dark-theme .mat-icon-button.mat-accent[disabled], .unicorn-dark-theme .mat-icon-button.mat-warn[disabled], .unicorn-dark-theme .mat-icon-button[disabled][disabled], .unicorn-dark-theme .mat-stroked-button.mat-primary[disabled], .unicorn-dark-theme .mat-stroked-button.mat-accent[disabled], .unicorn-dark-theme .mat-stroked-button.mat-warn[disabled], .unicorn-dark-theme .mat-stroked-button[disabled][disabled] {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-button.mat-primary .mat-button-focus-overlay, .unicorn-dark-theme .mat-icon-button.mat-primary .mat-button-focus-overlay, .unicorn-dark-theme .mat-stroked-button.mat-primary .mat-button-focus-overlay {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-button.mat-accent .mat-button-focus-overlay, .unicorn-dark-theme .mat-icon-button.mat-accent .mat-button-focus-overlay, .unicorn-dark-theme .mat-stroked-button.mat-accent .mat-button-focus-overlay {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-button.mat-warn .mat-button-focus-overlay, .unicorn-dark-theme .mat-icon-button.mat-warn .mat-button-focus-overlay, .unicorn-dark-theme .mat-stroked-button.mat-warn .mat-button-focus-overlay {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-button[disabled] .mat-button-focus-overlay, .unicorn-dark-theme .mat-icon-button[disabled] .mat-button-focus-overlay, .unicorn-dark-theme .mat-stroked-button[disabled] .mat-button-focus-overlay {\\n background-color: transparent;\\n}\\n.unicorn-dark-theme .mat-button .mat-ripple-element, .unicorn-dark-theme .mat-icon-button .mat-ripple-element, .unicorn-dark-theme .mat-stroked-button .mat-ripple-element {\\n opacity: 0.1;\\n background-color: currentColor;\\n}\\n.unicorn-dark-theme .mat-button-focus-overlay {\\n background: white;\\n}\\n.unicorn-dark-theme .mat-stroked-button:not([disabled]) {\\n border-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-flat-button, .unicorn-dark-theme .mat-raised-button, .unicorn-dark-theme .mat-fab, .unicorn-dark-theme .mat-mini-fab {\\n color: white;\\n background-color: #424242;\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-primary, .unicorn-dark-theme .mat-raised-button.mat-primary, .unicorn-dark-theme .mat-fab.mat-primary, .unicorn-dark-theme .mat-mini-fab.mat-primary {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-accent, .unicorn-dark-theme .mat-raised-button.mat-accent, .unicorn-dark-theme .mat-fab.mat-accent, .unicorn-dark-theme .mat-mini-fab.mat-accent {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-warn, .unicorn-dark-theme .mat-raised-button.mat-warn, .unicorn-dark-theme .mat-fab.mat-warn, .unicorn-dark-theme .mat-mini-fab.mat-warn {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-primary[disabled], .unicorn-dark-theme .mat-flat-button.mat-accent[disabled], .unicorn-dark-theme .mat-flat-button.mat-warn[disabled], .unicorn-dark-theme .mat-flat-button[disabled][disabled], .unicorn-dark-theme .mat-raised-button.mat-primary[disabled], .unicorn-dark-theme .mat-raised-button.mat-accent[disabled], .unicorn-dark-theme .mat-raised-button.mat-warn[disabled], .unicorn-dark-theme .mat-raised-button[disabled][disabled], .unicorn-dark-theme .mat-fab.mat-primary[disabled], .unicorn-dark-theme .mat-fab.mat-accent[disabled], .unicorn-dark-theme .mat-fab.mat-warn[disabled], .unicorn-dark-theme .mat-fab[disabled][disabled], .unicorn-dark-theme .mat-mini-fab.mat-primary[disabled], .unicorn-dark-theme .mat-mini-fab.mat-accent[disabled], .unicorn-dark-theme .mat-mini-fab.mat-warn[disabled], .unicorn-dark-theme .mat-mini-fab[disabled][disabled] {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-primary, .unicorn-dark-theme .mat-raised-button.mat-primary, .unicorn-dark-theme .mat-fab.mat-primary, .unicorn-dark-theme .mat-mini-fab.mat-primary {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-accent, .unicorn-dark-theme .mat-raised-button.mat-accent, .unicorn-dark-theme .mat-fab.mat-accent, .unicorn-dark-theme .mat-mini-fab.mat-accent {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-warn, .unicorn-dark-theme .mat-raised-button.mat-warn, .unicorn-dark-theme .mat-fab.mat-warn, .unicorn-dark-theme .mat-mini-fab.mat-warn {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-primary[disabled], .unicorn-dark-theme .mat-flat-button.mat-accent[disabled], .unicorn-dark-theme .mat-flat-button.mat-warn[disabled], .unicorn-dark-theme .mat-flat-button[disabled][disabled], .unicorn-dark-theme .mat-raised-button.mat-primary[disabled], .unicorn-dark-theme .mat-raised-button.mat-accent[disabled], .unicorn-dark-theme .mat-raised-button.mat-warn[disabled], .unicorn-dark-theme .mat-raised-button[disabled][disabled], .unicorn-dark-theme .mat-fab.mat-primary[disabled], .unicorn-dark-theme .mat-fab.mat-accent[disabled], .unicorn-dark-theme .mat-fab.mat-warn[disabled], .unicorn-dark-theme .mat-fab[disabled][disabled], .unicorn-dark-theme .mat-mini-fab.mat-primary[disabled], .unicorn-dark-theme .mat-mini-fab.mat-accent[disabled], .unicorn-dark-theme .mat-mini-fab.mat-warn[disabled], .unicorn-dark-theme .mat-mini-fab[disabled][disabled] {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-primary .mat-ripple-element, .unicorn-dark-theme .mat-raised-button.mat-primary .mat-ripple-element, .unicorn-dark-theme .mat-fab.mat-primary .mat-ripple-element, .unicorn-dark-theme .mat-mini-fab.mat-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-accent .mat-ripple-element, .unicorn-dark-theme .mat-raised-button.mat-accent .mat-ripple-element, .unicorn-dark-theme .mat-fab.mat-accent .mat-ripple-element, .unicorn-dark-theme .mat-mini-fab.mat-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.unicorn-dark-theme .mat-flat-button.mat-warn .mat-ripple-element, .unicorn-dark-theme .mat-raised-button.mat-warn .mat-ripple-element, .unicorn-dark-theme .mat-fab.mat-warn .mat-ripple-element, .unicorn-dark-theme .mat-mini-fab.mat-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.unicorn-dark-theme .mat-stroked-button:not([class*=mat-elevation-z]), .unicorn-dark-theme .mat-flat-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-raised-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-fab:not([class*=mat-elevation-z]), .unicorn-dark-theme .mat-mini-fab:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .unicorn-dark-theme .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-fab[disabled]:not([class*=mat-elevation-z]), .unicorn-dark-theme .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-button-toggle-standalone,\\n.unicorn-dark-theme .mat-button-toggle-group {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.unicorn-dark-theme .mat-button-toggle-group-appearance-standard {\\n box-shadow: none;\\n}\\n.unicorn-dark-theme .mat-button-toggle {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-button-toggle .mat-button-toggle-focus-overlay {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-button-toggle-appearance-standard {\\n color: white;\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: none;\\n border-top: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-button-toggle-checked {\\n background-color: #212121;\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-button-toggle-disabled {\\n color: rgba(255, 255, 255, 0.3);\\n background-color: black;\\n}\\n.unicorn-dark-theme .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-button-toggle-disabled.mat-button-toggle-checked {\\n background-color: #424242;\\n}\\n.unicorn-dark-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.unicorn-dark-theme .mat-button-toggle-group-appearance-standard {\\n border: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-card {\\n background: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-card:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-card-subtitle {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-checkbox-frame {\\n border-color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-checkbox-checkmark {\\n fill: #303030;\\n}\\n.unicorn-dark-theme .mat-checkbox-checkmark-path {\\n stroke: #303030 !important;\\n}\\n@media (-ms-high-contrast: black-on-white) {\\n .unicorn-dark-theme .mat-checkbox-checkmark-path {\\n stroke: #000 !important;\\n }\\n}\\n.unicorn-dark-theme .mat-checkbox-mixedmark {\\n background-color: #303030;\\n}\\n.unicorn-dark-theme .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .unicorn-dark-theme .mat-checkbox-checked.mat-primary .mat-checkbox-background {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .unicorn-dark-theme .mat-checkbox-checked.mat-accent .mat-checkbox-background {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .unicorn-dark-theme .mat-checkbox-checked.mat-warn .mat-checkbox-background {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .unicorn-dark-theme .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: #686868;\\n}\\n.unicorn-dark-theme .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\\n border-color: #686868;\\n}\\n.unicorn-dark-theme .mat-checkbox-disabled .mat-checkbox-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n@media (-ms-high-contrast: active) {\\n .unicorn-dark-theme .mat-checkbox-disabled {\\n opacity: 0.5;\\n }\\n}\\n@media (-ms-high-contrast: active) {\\n .unicorn-dark-theme .mat-checkbox-background {\\n background: none;\\n }\\n}\\n.unicorn-dark-theme .mat-checkbox .mat-ripple-element {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\\n.unicorn-dark-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\\n background: #607d8b;\\n}\\n.unicorn-dark-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\\n.unicorn-dark-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\\n background: #ffd740;\\n}\\n.unicorn-dark-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\\n.unicorn-dark-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\\n background: #ff5722;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip {\\n background-color: #616161;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\\n opacity: 0.54;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-disabled {\\n opacity: 0.4;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip::after {\\n background: white;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\\n background-color: #607d8b;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\\n background-color: #ff5722;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\\n background-color: #ffd740;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.unicorn-dark-theme .mat-table {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-table thead, .unicorn-dark-theme .mat-table tbody, .unicorn-dark-theme .mat-table tfoot,\\n.unicorn-dark-theme mat-header-row, .unicorn-dark-theme mat-row, .unicorn-dark-theme mat-footer-row,\\n.unicorn-dark-theme [mat-header-row], .unicorn-dark-theme [mat-row], .unicorn-dark-theme [mat-footer-row],\\n.unicorn-dark-theme .mat-table-sticky {\\n background: inherit;\\n}\\n.unicorn-dark-theme mat-row, .unicorn-dark-theme mat-header-row, .unicorn-dark-theme mat-footer-row,\\n.unicorn-dark-theme th.mat-header-cell, .unicorn-dark-theme td.mat-cell, .unicorn-dark-theme td.mat-footer-cell {\\n border-bottom-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-header-cell {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-cell, .unicorn-dark-theme .mat-footer-cell {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-calendar-arrow {\\n border-top-color: white;\\n}\\n.unicorn-dark-theme .mat-datepicker-toggle,\\n.unicorn-dark-theme .mat-datepicker-content .mat-calendar-next-button,\\n.unicorn-dark-theme .mat-datepicker-content .mat-calendar-previous-button {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-calendar-table-header {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-calendar-table-header-divider::after {\\n background: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-calendar-body-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-calendar-body-cell-content {\\n color: white;\\n border-color: transparent;\\n}\\n.unicorn-dark-theme .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.unicorn-dark-theme .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.unicorn-dark-theme .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n background-color: rgba(255, 255, 255, 0.04);\\n}\\n.unicorn-dark-theme .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-calendar-body-selected {\\n background-color: #607d8b;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(96, 125, 139, 0.4);\\n}\\n.unicorn-dark-theme .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.unicorn-dark-theme .mat-datepicker-content {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n background-color: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\\n background-color: #ffd740;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(255, 215, 64, 0.4);\\n}\\n.unicorn-dark-theme .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\\n background-color: #ff5722;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(255, 87, 34, 0.4);\\n}\\n.unicorn-dark-theme .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.unicorn-dark-theme .mat-datepicker-content-touch {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-datepicker-toggle-active {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-datepicker-toggle-active.mat-accent {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-datepicker-toggle-active.mat-warn {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-dialog-container {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n background: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-divider {\\n border-top-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-divider-vertical {\\n border-right-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-expansion-panel {\\n background: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-expansion-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-action-row {\\n border-top-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused, .unicorn-dark-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused, .unicorn-dark-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n@media (hover: none) {\\n .unicorn-dark-theme .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\\n background: #424242;\\n }\\n}\\n.unicorn-dark-theme .mat-expansion-panel-header-title {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-expansion-panel-header-description,\\n.unicorn-dark-theme .mat-expansion-indicator::after {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-expansion-panel-header[aria-disabled=true] {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\\n.unicorn-dark-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\\n color: inherit;\\n}\\n.unicorn-dark-theme .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-hint {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-label {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-focused .mat-form-field-required-marker {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-form-field-ripple {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-ripple {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-error {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-legacy .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-legacy .mat-hint {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-legacy .mat-form-field-underline {\\n background-color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-standard .mat-form-field-underline {\\n background-color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-fill .mat-form-field-flex {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\\n background-color: rgba(255, 255, 255, 0.05);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-fill .mat-form-field-underline::before {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\\n background-color: transparent;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline .mat-form-field-outline {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline .mat-form-field-outline-thick {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\\n color: rgba(255, 255, 255, 0.15);\\n}\\n.unicorn-dark-theme .mat-icon.mat-primary {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-icon.mat-accent {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-icon.mat-warn {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-input-element:disabled,\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element {\\n caret-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-input-element::-moz-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element:-ms-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element::-ms-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element::placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element::-moz-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element::-webkit-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element:-ms-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-input-element option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-input-element option:disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.unicorn-dark-theme .mat-accent .mat-input-element {\\n caret-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-warn .mat-input-element,\\n.unicorn-dark-theme .mat-form-field-invalid .mat-input-element {\\n caret-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-list-base .mat-list-item {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-list-base .mat-list-option {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-list-base .mat-subheader {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-list-item-disabled {\\n background-color: black;\\n}\\n.unicorn-dark-theme .mat-list-option:hover, .unicorn-dark-theme .mat-list-option:focus,\\n.unicorn-dark-theme .mat-nav-list .mat-list-item:hover,\\n.unicorn-dark-theme .mat-nav-list .mat-list-item:focus,\\n.unicorn-dark-theme .mat-action-list .mat-list-item:hover,\\n.unicorn-dark-theme .mat-action-list .mat-list-item:focus {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.unicorn-dark-theme .mat-menu-panel {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-menu-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-menu-item {\\n background: transparent;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-menu-item[disabled], .unicorn-dark-theme .mat-menu-item[disabled]::after {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-menu-item .mat-icon-no-color,\\n.unicorn-dark-theme .mat-menu-item-submenu-trigger::after {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-menu-item:hover:not([disabled]),\\n.unicorn-dark-theme .mat-menu-item.cdk-program-focused:not([disabled]),\\n.unicorn-dark-theme .mat-menu-item.cdk-keyboard-focused:not([disabled]),\\n.unicorn-dark-theme .mat-menu-item-highlighted:not([disabled]) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n.unicorn-dark-theme .mat-paginator {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-paginator,\\n.unicorn-dark-theme .mat-paginator-page-size .mat-select-trigger {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-paginator-decrement,\\n.unicorn-dark-theme .mat-paginator-increment {\\n border-top: 2px solid white;\\n border-right: 2px solid white;\\n}\\n.unicorn-dark-theme .mat-paginator-first,\\n.unicorn-dark-theme .mat-paginator-last {\\n border-top: 2px solid white;\\n}\\n.unicorn-dark-theme .mat-icon-button[disabled] .mat-paginator-decrement,\\n.unicorn-dark-theme .mat-icon-button[disabled] .mat-paginator-increment,\\n.unicorn-dark-theme .mat-icon-button[disabled] .mat-paginator-first,\\n.unicorn-dark-theme .mat-icon-button[disabled] .mat-paginator-last {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-progress-bar-background {\\n fill: #cfd8dc;\\n}\\n.unicorn-dark-theme .mat-progress-bar-buffer {\\n background-color: #cfd8dc;\\n}\\n.unicorn-dark-theme .mat-progress-bar-fill::after {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-progress-bar.mat-accent .mat-progress-bar-background {\\n fill: #ffe57f;\\n}\\n.unicorn-dark-theme .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\\n background-color: #ffe57f;\\n}\\n.unicorn-dark-theme .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-progress-bar.mat-warn .mat-progress-bar-background {\\n fill: #ffccbc;\\n}\\n.unicorn-dark-theme .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\\n background-color: #ffccbc;\\n}\\n.unicorn-dark-theme .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-progress-spinner circle, .unicorn-dark-theme .mat-spinner circle {\\n stroke: #607d8b;\\n}\\n.unicorn-dark-theme .mat-progress-spinner.mat-accent circle, .unicorn-dark-theme .mat-spinner.mat-accent circle {\\n stroke: #ffd740;\\n}\\n.unicorn-dark-theme .mat-progress-spinner.mat-warn circle, .unicorn-dark-theme .mat-spinner.mat-warn circle {\\n stroke: #ff5722;\\n}\\n.unicorn-dark-theme .mat-radio-outer-circle {\\n border-color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-primary .mat-radio-inner-circle,\\n.unicorn-dark-theme .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .unicorn-dark-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .unicorn-dark-theme .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-accent .mat-radio-inner-circle,\\n.unicorn-dark-theme .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .unicorn-dark-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .unicorn-dark-theme .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-warn .mat-radio-inner-circle,\\n.unicorn-dark-theme .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .unicorn-dark-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .unicorn-dark-theme .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-radio-button .mat-ripple-element {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-select-value {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-select-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-select-disabled .mat-select-value {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-select-arrow {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-select-panel {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-select-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\\n background: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\\n color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\\n color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-drawer-container {\\n background-color: #303030;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-drawer {\\n background-color: #424242;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-drawer.mat-drawer-push {\\n background-color: #424242;\\n}\\n.unicorn-dark-theme .mat-drawer:not(.mat-drawer-side) {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-drawer-side {\\n border-right: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-drawer-side.mat-drawer-end {\\n border-left: solid 1px rgba(255, 255, 255, 0.12);\\n border-right: none;\\n}\\n.unicorn-dark-theme [dir=rtl] .mat-drawer-side {\\n border-left: solid 1px rgba(255, 255, 255, 0.12);\\n border-right: none;\\n}\\n.unicorn-dark-theme [dir=rtl] .mat-drawer-side.mat-drawer-end {\\n border-left: none;\\n border-right: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-drawer-backdrop.mat-drawer-shown {\\n background-color: rgba(189, 189, 189, 0.6);\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(255, 215, 64, 0.54);\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-checked .mat-ripple-element {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(96, 125, 139, 0.54);\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(255, 87, 34, 0.54);\\n}\\n.unicorn-dark-theme .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-slide-toggle-thumb {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n background-color: #bdbdbd;\\n}\\n.unicorn-dark-theme .mat-slide-toggle-bar {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-slider-track-background {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-primary .mat-slider-track-fill,\\n.unicorn-dark-theme .mat-primary .mat-slider-thumb,\\n.unicorn-dark-theme .mat-primary .mat-slider-thumb-label {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-primary .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-accent .mat-slider-track-fill,\\n.unicorn-dark-theme .mat-accent .mat-slider-thumb,\\n.unicorn-dark-theme .mat-accent .mat-slider-thumb-label {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-accent .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-warn .mat-slider-track-fill,\\n.unicorn-dark-theme .mat-warn .mat-slider-thumb,\\n.unicorn-dark-theme .mat-warn .mat-slider-thumb-label {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-warn .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-slider-focus-ring {\\n background-color: rgba(255, 215, 64, 0.2);\\n}\\n.unicorn-dark-theme .mat-slider:hover .mat-slider-track-background,\\n.unicorn-dark-theme .cdk-focused .mat-slider-track-background {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-slider-disabled .mat-slider-track-background,\\n.unicorn-dark-theme .mat-slider-disabled .mat-slider-track-fill,\\n.unicorn-dark-theme .mat-slider-disabled .mat-slider-thumb {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-slider-disabled:hover .mat-slider-track-background {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-slider-min-value .mat-slider-focus-ring {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\\n.unicorn-dark-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\\n.unicorn-dark-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\\n border-color: rgba(255, 255, 255, 0.3);\\n background-color: transparent;\\n}\\n.unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\\n border-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\\n border-color: rgba(255, 255, 255, 0.3);\\n}\\n.unicorn-dark-theme .mat-slider-has-ticks .mat-slider-wrapper::after {\\n border-color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-slider-horizontal .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to right, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\\n}\\n.unicorn-dark-theme .mat-slider-vertical .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to bottom, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\\n}\\n.unicorn-dark-theme .mat-step-header.cdk-keyboard-focused, .unicorn-dark-theme .mat-step-header.cdk-program-focused, .unicorn-dark-theme .mat-step-header:hover {\\n background-color: rgba(255, 255, 255, 0.04);\\n}\\n@media (hover: none) {\\n .unicorn-dark-theme .mat-step-header:hover {\\n background: none;\\n }\\n}\\n.unicorn-dark-theme .mat-step-header .mat-step-label,\\n.unicorn-dark-theme .mat-step-header .mat-step-optional {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.unicorn-dark-theme .mat-step-header .mat-step-icon {\\n background-color: rgba(255, 255, 255, 0.7);\\n color: white;\\n}\\n.unicorn-dark-theme .mat-step-header .mat-step-icon-selected,\\n.unicorn-dark-theme .mat-step-header .mat-step-icon-state-done,\\n.unicorn-dark-theme .mat-step-header .mat-step-icon-state-edit {\\n background-color: #607d8b;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-step-header .mat-step-icon-state-error {\\n background-color: transparent;\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-step-header .mat-step-label.mat-step-label-active {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-step-header .mat-step-label.mat-step-label-error {\\n color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-stepper-horizontal, .unicorn-dark-theme .mat-stepper-vertical {\\n background-color: #424242;\\n}\\n.unicorn-dark-theme .mat-stepper-vertical-line::before {\\n border-left-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-horizontal-stepper-header::before,\\n.unicorn-dark-theme .mat-horizontal-stepper-header::after,\\n.unicorn-dark-theme .mat-stepper-horizontal-line {\\n border-top-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-sort-header-arrow {\\n color: #c6c6c6;\\n}\\n.unicorn-dark-theme .mat-tab-nav-bar,\\n.unicorn-dark-theme .mat-tab-header {\\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-tab-group-inverted-header .mat-tab-nav-bar,\\n.unicorn-dark-theme .mat-tab-group-inverted-header .mat-tab-header {\\n border-top: 1px solid rgba(255, 255, 255, 0.12);\\n border-bottom: none;\\n}\\n.unicorn-dark-theme .mat-tab-label, .unicorn-dark-theme .mat-tab-link {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.unicorn-dark-theme .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n.unicorn-dark-theme .mat-tab-group[class*=mat-background-] .mat-tab-header,\\n.unicorn-dark-theme .mat-tab-nav-bar[class*=mat-background-] {\\n border-bottom: none;\\n border-top: none;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(207, 216, 220, 0.3);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-primary .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-ink-bar {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 229, 127, 0.3);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-accent .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-ink-bar {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 204, 188, 0.3);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-warn .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-ink-bar {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\\n background-color: white;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(207, 216, 220, 0.3);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-header, .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-links, .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\\n background-color: #607d8b;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-label, .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-link, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-ripple-element, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 229, 127, 0.3);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-header, .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-links, .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\\n background-color: #ffd740;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-label, .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-link, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-ripple-element, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 204, 188, 0.3);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-header, .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-links, .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\\n background-color: #ff5722;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-label, .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-link, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-ripple-element, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.unicorn-dark-theme .mat-toolbar {\\n background: #212121;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-toolbar.mat-primary {\\n background: #607d8b;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-toolbar.mat-accent {\\n background: #ffd740;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.unicorn-dark-theme .mat-toolbar.mat-warn {\\n background: #ff5722;\\n color: white;\\n}\\n.unicorn-dark-theme .mat-toolbar .mat-form-field-underline,\\n.unicorn-dark-theme .mat-toolbar .mat-form-field-ripple,\\n.unicorn-dark-theme .mat-toolbar .mat-focused .mat-form-field-ripple {\\n background-color: currentColor;\\n}\\n.unicorn-dark-theme .mat-toolbar .mat-form-field-label,\\n.unicorn-dark-theme .mat-toolbar .mat-focused .mat-form-field-label,\\n.unicorn-dark-theme .mat-toolbar .mat-select-value,\\n.unicorn-dark-theme .mat-toolbar .mat-select-arrow,\\n.unicorn-dark-theme .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\\n color: inherit;\\n}\\n.unicorn-dark-theme .mat-toolbar .mat-input-element {\\n caret-color: currentColor;\\n}\\n.unicorn-dark-theme .mat-tooltip {\\n background: rgba(97, 97, 97, 0.9);\\n}\\n.unicorn-dark-theme .mat-tree {\\n background: #424242;\\n}\\n.unicorn-dark-theme .mat-tree-node,\\n.unicorn-dark-theme .mat-nested-tree-node {\\n color: white;\\n}\\n.unicorn-dark-theme .mat-snack-bar-container {\\n color: rgba(0, 0, 0, 0.87);\\n background: #fafafa;\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.unicorn-dark-theme .mat-simple-snackbar-action {\\n color: inherit;\\n}\\n/*\\n https: //stackblitz.com/edit/angular-material-theme-secrets?embed=1&file=src%2Ftheme.scss&source=post_page---------------------------\\n https://material.angular.io/guide/typography\\n https://material-ui.com/customization/color/\\n*/\\n.defaultMat {\\n /*.mat-checkbox-inner-container, {\\n height: 40px;\\n width: 40px;\\n }*/\\n /*https: //stackoverflow.com/questions/46812064/how-to-set-the-color-of-an-icon-in-angular-material\\n https: //css-tricks.com/solved-with-css-colorizing-svg-backgrounds/*/\\n /* Note: If you're using an SVG icon, you should make the class target the `` element */\\n /*.white-icon svg {\\n fill: white;\\n filter:brightness(100);\\n }*/\\n /*.mat-menu-item {\\n height:20px;\\n }\\n button.mat-menu-item {\\n height: 30px;\\n font-size: 15px;\\n }*/\\n}\\n.defaultMat .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.defaultMat .mat-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-option:hover:not(.mat-option-disabled), .defaultMat .mat-option:focus:not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.defaultMat .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.defaultMat .mat-option.mat-active {\\n background: rgba(0, 0, 0, 0.04);\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-option.mat-option-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #2196f3;\\n}\\n.defaultMat .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: yellow;\\n}\\n.defaultMat .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #f44336;\\n}\\n.defaultMat .mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-optgroup-disabled .mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-pseudo-checkbox {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-pseudo-checkbox::after {\\n color: #fafafa;\\n}\\n.defaultMat .mat-pseudo-checkbox-disabled {\\n color: #b0b0b0;\\n}\\n.defaultMat .mat-pseudo-checkbox-checked,\\n.defaultMat .mat-pseudo-checkbox-indeterminate,\\n.defaultMat .mat-accent .mat-pseudo-checkbox-checked,\\n.defaultMat .mat-accent .mat-pseudo-checkbox-indeterminate {\\n background: yellow;\\n}\\n.defaultMat .mat-primary .mat-pseudo-checkbox-checked,\\n.defaultMat .mat-primary .mat-pseudo-checkbox-indeterminate {\\n background: #2196f3;\\n}\\n.defaultMat .mat-warn .mat-pseudo-checkbox-checked,\\n.defaultMat .mat-warn .mat-pseudo-checkbox-indeterminate {\\n background: #f44336;\\n}\\n.defaultMat .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\\n.defaultMat .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\\n background: #b0b0b0;\\n}\\n.defaultMat .mat-elevation-z0 {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z1 {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z2 {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z3 {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z4 {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z5 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z6 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z7 {\\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z8 {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z9 {\\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z10 {\\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z11 {\\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z12 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z13 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z14 {\\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z15 {\\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z16 {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z17 {\\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z18 {\\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z19 {\\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z20 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z21 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z22 {\\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z23 {\\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-elevation-z24 {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-app-background, .defaultMat.mat-app-background {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.mat-theme-loaded-marker {\\n display: none;\\n}\\n.defaultMat .mat-autocomplete-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\\n background: white;\\n}\\n.defaultMat .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-badge-content {\\n color: white;\\n background: #2196f3;\\n}\\n@media (-ms-high-contrast: active) {\\n .defaultMat .mat-badge-content {\\n outline: solid 1px;\\n border-radius: 0;\\n }\\n}\\n.defaultMat .mat-badge-accent .mat-badge-content {\\n background: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-badge-warn .mat-badge-content {\\n color: white;\\n background: #f44336;\\n}\\n.defaultMat .mat-badge {\\n position: relative;\\n}\\n.defaultMat .mat-badge-hidden .mat-badge-content {\\n display: none;\\n}\\n.defaultMat .mat-badge-disabled .mat-badge-content {\\n background: #b9b9b9;\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-badge-content {\\n position: absolute;\\n text-align: center;\\n display: inline-block;\\n border-radius: 50%;\\n transition: transform 200ms ease-in-out;\\n -ms-transform: scale(0.6);\\n transform: scale(0.6);\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n pointer-events: none;\\n}\\n.defaultMat .ng-animate-disabled .mat-badge-content,\\n.defaultMat .mat-badge-content._mat-animation-noopable {\\n transition: none;\\n}\\n.defaultMat .mat-badge-content.mat-badge-active {\\n -ms-transform: none;\\n transform: none;\\n}\\n.defaultMat .mat-badge-small .mat-badge-content {\\n width: 16px;\\n height: 16px;\\n line-height: 16px;\\n}\\n.defaultMat .mat-badge-small.mat-badge-above .mat-badge-content {\\n top: -8px;\\n}\\n.defaultMat .mat-badge-small.mat-badge-below .mat-badge-content {\\n bottom: -8px;\\n}\\n.defaultMat .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: -16px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -16px;\\n}\\n.defaultMat .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: -16px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -16px;\\n}\\n.defaultMat .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -8px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -8px;\\n}\\n.defaultMat .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -8px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -8px;\\n}\\n.defaultMat .mat-badge-medium .mat-badge-content {\\n width: 22px;\\n height: 22px;\\n line-height: 22px;\\n}\\n.defaultMat .mat-badge-medium.mat-badge-above .mat-badge-content {\\n top: -11px;\\n}\\n.defaultMat .mat-badge-medium.mat-badge-below .mat-badge-content {\\n bottom: -11px;\\n}\\n.defaultMat .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: -22px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -22px;\\n}\\n.defaultMat .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: -22px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -22px;\\n}\\n.defaultMat .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -11px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -11px;\\n}\\n.defaultMat .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -11px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -11px;\\n}\\n.defaultMat .mat-badge-large .mat-badge-content {\\n width: 28px;\\n height: 28px;\\n line-height: 28px;\\n}\\n.defaultMat .mat-badge-large.mat-badge-above .mat-badge-content {\\n top: -14px;\\n}\\n.defaultMat .mat-badge-large.mat-badge-below .mat-badge-content {\\n bottom: -14px;\\n}\\n.defaultMat .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: -28px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -28px;\\n}\\n.defaultMat .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: -28px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -28px;\\n}\\n.defaultMat .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -14px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -14px;\\n}\\n.defaultMat .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -14px;\\n}\\n[dir=rtl] .defaultMat .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -14px;\\n}\\n.defaultMat .mat-bottom-sheet-container {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-button, .defaultMat .mat-icon-button, .defaultMat .mat-stroked-button {\\n color: inherit;\\n background: transparent;\\n}\\n.defaultMat .mat-button.mat-primary, .defaultMat .mat-icon-button.mat-primary, .defaultMat .mat-stroked-button.mat-primary {\\n color: #2196f3;\\n}\\n.defaultMat .mat-button.mat-accent, .defaultMat .mat-icon-button.mat-accent, .defaultMat .mat-stroked-button.mat-accent {\\n color: yellow;\\n}\\n.defaultMat .mat-button.mat-warn, .defaultMat .mat-icon-button.mat-warn, .defaultMat .mat-stroked-button.mat-warn {\\n color: #f44336;\\n}\\n.defaultMat .mat-button.mat-primary[disabled], .defaultMat .mat-button.mat-accent[disabled], .defaultMat .mat-button.mat-warn[disabled], .defaultMat .mat-button[disabled][disabled], .defaultMat .mat-icon-button.mat-primary[disabled], .defaultMat .mat-icon-button.mat-accent[disabled], .defaultMat .mat-icon-button.mat-warn[disabled], .defaultMat .mat-icon-button[disabled][disabled], .defaultMat .mat-stroked-button.mat-primary[disabled], .defaultMat .mat-stroked-button.mat-accent[disabled], .defaultMat .mat-stroked-button.mat-warn[disabled], .defaultMat .mat-stroked-button[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-button.mat-primary .mat-button-focus-overlay, .defaultMat .mat-icon-button.mat-primary .mat-button-focus-overlay, .defaultMat .mat-stroked-button.mat-primary .mat-button-focus-overlay {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-button.mat-accent .mat-button-focus-overlay, .defaultMat .mat-icon-button.mat-accent .mat-button-focus-overlay, .defaultMat .mat-stroked-button.mat-accent .mat-button-focus-overlay {\\n background-color: yellow;\\n}\\n.defaultMat .mat-button.mat-warn .mat-button-focus-overlay, .defaultMat .mat-icon-button.mat-warn .mat-button-focus-overlay, .defaultMat .mat-stroked-button.mat-warn .mat-button-focus-overlay {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-button[disabled] .mat-button-focus-overlay, .defaultMat .mat-icon-button[disabled] .mat-button-focus-overlay, .defaultMat .mat-stroked-button[disabled] .mat-button-focus-overlay {\\n background-color: transparent;\\n}\\n.defaultMat .mat-button .mat-ripple-element, .defaultMat .mat-icon-button .mat-ripple-element, .defaultMat .mat-stroked-button .mat-ripple-element {\\n opacity: 0.1;\\n background-color: currentColor;\\n}\\n.defaultMat .mat-button-focus-overlay {\\n background: black;\\n}\\n.defaultMat .mat-stroked-button:not([disabled]) {\\n border-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-flat-button, .defaultMat .mat-raised-button, .defaultMat .mat-fab, .defaultMat .mat-mini-fab {\\n color: rgba(0, 0, 0, 0.87);\\n background-color: white;\\n}\\n.defaultMat .mat-flat-button.mat-primary, .defaultMat .mat-raised-button.mat-primary, .defaultMat .mat-fab.mat-primary, .defaultMat .mat-mini-fab.mat-primary {\\n color: white;\\n}\\n.defaultMat .mat-flat-button.mat-accent, .defaultMat .mat-raised-button.mat-accent, .defaultMat .mat-fab.mat-accent, .defaultMat .mat-mini-fab.mat-accent {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-flat-button.mat-warn, .defaultMat .mat-raised-button.mat-warn, .defaultMat .mat-fab.mat-warn, .defaultMat .mat-mini-fab.mat-warn {\\n color: white;\\n}\\n.defaultMat .mat-flat-button.mat-primary[disabled], .defaultMat .mat-flat-button.mat-accent[disabled], .defaultMat .mat-flat-button.mat-warn[disabled], .defaultMat .mat-flat-button[disabled][disabled], .defaultMat .mat-raised-button.mat-primary[disabled], .defaultMat .mat-raised-button.mat-accent[disabled], .defaultMat .mat-raised-button.mat-warn[disabled], .defaultMat .mat-raised-button[disabled][disabled], .defaultMat .mat-fab.mat-primary[disabled], .defaultMat .mat-fab.mat-accent[disabled], .defaultMat .mat-fab.mat-warn[disabled], .defaultMat .mat-fab[disabled][disabled], .defaultMat .mat-mini-fab.mat-primary[disabled], .defaultMat .mat-mini-fab.mat-accent[disabled], .defaultMat .mat-mini-fab.mat-warn[disabled], .defaultMat .mat-mini-fab[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-flat-button.mat-primary, .defaultMat .mat-raised-button.mat-primary, .defaultMat .mat-fab.mat-primary, .defaultMat .mat-mini-fab.mat-primary {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-flat-button.mat-accent, .defaultMat .mat-raised-button.mat-accent, .defaultMat .mat-fab.mat-accent, .defaultMat .mat-mini-fab.mat-accent {\\n background-color: yellow;\\n}\\n.defaultMat .mat-flat-button.mat-warn, .defaultMat .mat-raised-button.mat-warn, .defaultMat .mat-fab.mat-warn, .defaultMat .mat-mini-fab.mat-warn {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-flat-button.mat-primary[disabled], .defaultMat .mat-flat-button.mat-accent[disabled], .defaultMat .mat-flat-button.mat-warn[disabled], .defaultMat .mat-flat-button[disabled][disabled], .defaultMat .mat-raised-button.mat-primary[disabled], .defaultMat .mat-raised-button.mat-accent[disabled], .defaultMat .mat-raised-button.mat-warn[disabled], .defaultMat .mat-raised-button[disabled][disabled], .defaultMat .mat-fab.mat-primary[disabled], .defaultMat .mat-fab.mat-accent[disabled], .defaultMat .mat-fab.mat-warn[disabled], .defaultMat .mat-fab[disabled][disabled], .defaultMat .mat-mini-fab.mat-primary[disabled], .defaultMat .mat-mini-fab.mat-accent[disabled], .defaultMat .mat-mini-fab.mat-warn[disabled], .defaultMat .mat-mini-fab[disabled][disabled] {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-flat-button.mat-primary .mat-ripple-element, .defaultMat .mat-raised-button.mat-primary .mat-ripple-element, .defaultMat .mat-fab.mat-primary .mat-ripple-element, .defaultMat .mat-mini-fab.mat-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.defaultMat .mat-flat-button.mat-accent .mat-ripple-element, .defaultMat .mat-raised-button.mat-accent .mat-ripple-element, .defaultMat .mat-fab.mat-accent .mat-ripple-element, .defaultMat .mat-mini-fab.mat-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n.defaultMat .mat-flat-button.mat-warn .mat-ripple-element, .defaultMat .mat-raised-button.mat-warn .mat-ripple-element, .defaultMat .mat-fab.mat-warn .mat-ripple-element, .defaultMat .mat-mini-fab.mat-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.defaultMat .mat-stroked-button:not([class*=mat-elevation-z]), .defaultMat .mat-flat-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-raised-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-fab:not([class*=mat-elevation-z]), .defaultMat .mat-mini-fab:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .defaultMat .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-fab[disabled]:not([class*=mat-elevation-z]), .defaultMat .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-button-toggle-standalone,\\n.defaultMat .mat-button-toggle-group {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.defaultMat .mat-button-toggle-group-appearance-standard {\\n box-shadow: none;\\n}\\n.defaultMat .mat-button-toggle {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-button-toggle .mat-button-toggle-focus-overlay {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n background: white;\\n}\\n.defaultMat .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\\n background-color: black;\\n}\\n.defaultMat .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: none;\\n border-top: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-button-toggle-checked {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-button-toggle-disabled {\\n color: rgba(0, 0, 0, 0.26);\\n background-color: #eeeeee;\\n}\\n.defaultMat .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\\n background: white;\\n}\\n.defaultMat .mat-button-toggle-disabled.mat-button-toggle-checked {\\n background-color: #bdbdbd;\\n}\\n.defaultMat .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.defaultMat .mat-button-toggle-group-appearance-standard {\\n border: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-card {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-card:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-card-subtitle {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-checkbox-frame {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-checkbox-checkmark {\\n fill: #fafafa;\\n}\\n.defaultMat .mat-checkbox-checkmark-path {\\n stroke: #fafafa !important;\\n}\\n@media (-ms-high-contrast: black-on-white) {\\n .defaultMat .mat-checkbox-checkmark-path {\\n stroke: #000 !important;\\n }\\n}\\n.defaultMat .mat-checkbox-mixedmark {\\n background-color: #fafafa;\\n}\\n.defaultMat .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .defaultMat .mat-checkbox-checked.mat-primary .mat-checkbox-background {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .defaultMat .mat-checkbox-checked.mat-accent .mat-checkbox-background {\\n background-color: yellow;\\n}\\n.defaultMat .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .defaultMat .mat-checkbox-checked.mat-warn .mat-checkbox-background {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .defaultMat .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: #b0b0b0;\\n}\\n.defaultMat .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\\n border-color: #b0b0b0;\\n}\\n.defaultMat .mat-checkbox-disabled .mat-checkbox-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n@media (-ms-high-contrast: active) {\\n .defaultMat .mat-checkbox-disabled {\\n opacity: 0.5;\\n }\\n}\\n@media (-ms-high-contrast: active) {\\n .defaultMat .mat-checkbox-background {\\n background: none;\\n }\\n}\\n.defaultMat .mat-checkbox .mat-ripple-element {\\n background-color: black;\\n}\\n.defaultMat .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\\n.defaultMat .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\\n background: #2196f3;\\n}\\n.defaultMat .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\\n.defaultMat .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\\n background: yellow;\\n}\\n.defaultMat .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\\n.defaultMat .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\\n background: #f44336;\\n}\\n.defaultMat .mat-chip.mat-standard-chip {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-chip.mat-standard-chip .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.defaultMat .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\\n opacity: 0.54;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-disabled {\\n opacity: 0.4;\\n}\\n.defaultMat .mat-chip.mat-standard-chip::after {\\n background: black;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\\n background-color: #2196f3;\\n color: white;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\\n background-color: #f44336;\\n color: white;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\\n background-color: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n.defaultMat .mat-table {\\n background: white;\\n}\\n.defaultMat .mat-table thead, .defaultMat .mat-table tbody, .defaultMat .mat-table tfoot,\\n.defaultMat mat-header-row, .defaultMat mat-row, .defaultMat mat-footer-row,\\n.defaultMat [mat-header-row], .defaultMat [mat-row], .defaultMat [mat-footer-row],\\n.defaultMat .mat-table-sticky {\\n background: inherit;\\n}\\n.defaultMat mat-row, .defaultMat mat-header-row, .defaultMat mat-footer-row,\\n.defaultMat th.mat-header-cell, .defaultMat td.mat-cell, .defaultMat td.mat-footer-cell {\\n border-bottom-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-header-cell {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-cell, .defaultMat .mat-footer-cell {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-calendar-arrow {\\n border-top-color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-datepicker-toggle,\\n.defaultMat .mat-datepicker-content .mat-calendar-next-button,\\n.defaultMat .mat-datepicker-content .mat-calendar-previous-button {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-calendar-table-header {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-calendar-table-header-divider::after {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-calendar-body-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-calendar-body-cell-content {\\n color: rgba(0, 0, 0, 0.87);\\n border-color: transparent;\\n}\\n.defaultMat .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.defaultMat .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.defaultMat .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n.defaultMat .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.18);\\n}\\n.defaultMat .mat-calendar-body-selected {\\n background-color: #2196f3;\\n color: white;\\n}\\n.defaultMat .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(33, 150, 243, 0.4);\\n}\\n.defaultMat .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.defaultMat .mat-datepicker-content {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\\n background-color: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(255, 255, 0, 0.4);\\n}\\n.defaultMat .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\\n background-color: #f44336;\\n color: white;\\n}\\n.defaultMat .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(244, 67, 54, 0.4);\\n}\\n.defaultMat .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n.defaultMat .mat-datepicker-content-touch {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-datepicker-toggle-active {\\n color: #2196f3;\\n}\\n.defaultMat .mat-datepicker-toggle-active.mat-accent {\\n color: yellow;\\n}\\n.defaultMat .mat-datepicker-toggle-active.mat-warn {\\n color: #f44336;\\n}\\n.defaultMat .mat-dialog-container {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-divider {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-divider-vertical {\\n border-right-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-expansion-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-expansion-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-action-row {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused, .defaultMat .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused, .defaultMat .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n@media (hover: none) {\\n .defaultMat .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\\n background: white;\\n }\\n}\\n.defaultMat .mat-expansion-panel-header-title {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-expansion-panel-header-description,\\n.defaultMat .mat-expansion-indicator::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-expansion-panel-header[aria-disabled=true] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\\n.defaultMat .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\\n color: inherit;\\n}\\n.defaultMat .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n.defaultMat .mat-hint {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-label {\\n color: #2196f3;\\n}\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\\n color: yellow;\\n}\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\\n color: #f44336;\\n}\\n.defaultMat .mat-focused .mat-form-field-required-marker {\\n color: yellow;\\n}\\n.defaultMat .mat-form-field-ripple {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-ripple {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\\n background-color: yellow;\\n}\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\\n color: #2196f3;\\n}\\n.defaultMat .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\\n color: yellow;\\n}\\n.defaultMat .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-label {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-error {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-hint {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.defaultMat .mat-form-field-appearance-standard .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n.defaultMat .mat-form-field-appearance-fill .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.02);\\n}\\n.defaultMat .mat-form-field-appearance-fill .mat-form-field-underline::before {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\\n background-color: transparent;\\n}\\n.defaultMat .mat-form-field-appearance-outline .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-form-field-appearance-outline .mat-form-field-outline-thick {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\\n color: #2196f3;\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\\n color: yellow;\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.06);\\n}\\n.defaultMat .mat-icon.mat-primary {\\n color: #2196f3;\\n}\\n.defaultMat .mat-icon.mat-accent {\\n color: yellow;\\n}\\n.defaultMat .mat-icon.mat-warn {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-input-element:disabled,\\n.defaultMat .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-input-element {\\n caret-color: #2196f3;\\n}\\n.defaultMat .mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-input-element:-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-input-element::-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-input-element::placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-input-element::-webkit-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-input-element:-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-accent .mat-input-element {\\n caret-color: yellow;\\n}\\n.defaultMat .mat-warn .mat-input-element,\\n.defaultMat .mat-form-field-invalid .mat-input-element {\\n caret-color: #f44336;\\n}\\n.defaultMat .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n.defaultMat .mat-list-base .mat-list-item {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-list-base .mat-list-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-list-base .mat-subheader {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-list-item-disabled {\\n background-color: #eeeeee;\\n}\\n.defaultMat .mat-list-option:hover, .defaultMat .mat-list-option:focus,\\n.defaultMat .mat-nav-list .mat-list-item:hover,\\n.defaultMat .mat-nav-list .mat-list-item:focus,\\n.defaultMat .mat-action-list .mat-list-item:hover,\\n.defaultMat .mat-action-list .mat-list-item:focus {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.defaultMat .mat-menu-panel {\\n background: white;\\n}\\n.defaultMat .mat-menu-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-menu-item {\\n background: transparent;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-menu-item[disabled], .defaultMat .mat-menu-item[disabled]::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-menu-item .mat-icon-no-color,\\n.defaultMat .mat-menu-item-submenu-trigger::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-menu-item:hover:not([disabled]),\\n.defaultMat .mat-menu-item.cdk-program-focused:not([disabled]),\\n.defaultMat .mat-menu-item.cdk-keyboard-focused:not([disabled]),\\n.defaultMat .mat-menu-item-highlighted:not([disabled]) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n.defaultMat .mat-paginator {\\n background: white;\\n}\\n.defaultMat .mat-paginator,\\n.defaultMat .mat-paginator-page-size .mat-select-trigger {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-paginator-decrement,\\n.defaultMat .mat-paginator-increment {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n border-right: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-paginator-first,\\n.defaultMat .mat-paginator-last {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-icon-button[disabled] .mat-paginator-decrement,\\n.defaultMat .mat-icon-button[disabled] .mat-paginator-increment,\\n.defaultMat .mat-icon-button[disabled] .mat-paginator-first,\\n.defaultMat .mat-icon-button[disabled] .mat-paginator-last {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-progress-bar-background {\\n fill: #bbdefb;\\n}\\n.defaultMat .mat-progress-bar-buffer {\\n background-color: #bbdefb;\\n}\\n.defaultMat .mat-progress-bar-fill::after {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-progress-bar.mat-accent .mat-progress-bar-background {\\n fill: #ffff8d;\\n}\\n.defaultMat .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\\n background-color: #ffff8d;\\n}\\n.defaultMat .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\\n background-color: yellow;\\n}\\n.defaultMat .mat-progress-bar.mat-warn .mat-progress-bar-background {\\n fill: #ffcdd2;\\n}\\n.defaultMat .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\\n background-color: #ffcdd2;\\n}\\n.defaultMat .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-progress-spinner circle, .defaultMat .mat-spinner circle {\\n stroke: #2196f3;\\n}\\n.defaultMat .mat-progress-spinner.mat-accent circle, .defaultMat .mat-spinner.mat-accent circle {\\n stroke: yellow;\\n}\\n.defaultMat .mat-progress-spinner.mat-warn circle, .defaultMat .mat-spinner.mat-warn circle {\\n stroke: #f44336;\\n}\\n.defaultMat .mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #2196f3;\\n}\\n.defaultMat .mat-radio-button.mat-primary .mat-radio-inner-circle,\\n.defaultMat .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .defaultMat .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .defaultMat .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\\n border-color: yellow;\\n}\\n.defaultMat .mat-radio-button.mat-accent .mat-radio-inner-circle,\\n.defaultMat .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .defaultMat .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .defaultMat .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\\n background-color: yellow;\\n}\\n.defaultMat .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #f44336;\\n}\\n.defaultMat .mat-radio-button.mat-warn .mat-radio-inner-circle,\\n.defaultMat .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .defaultMat .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .defaultMat .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\\n.defaultMat .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\\n.defaultMat .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-radio-button .mat-ripple-element {\\n background-color: black;\\n}\\n.defaultMat .mat-select-value {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-select-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n.defaultMat .mat-select-disabled .mat-select-value {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-select-arrow {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-select-panel {\\n background: white;\\n}\\n.defaultMat .mat-select-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\\n color: #2196f3;\\n}\\n.defaultMat .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\\n color: yellow;\\n}\\n.defaultMat .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\\n color: #f44336;\\n}\\n.defaultMat .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-drawer-container {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-drawer {\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-drawer.mat-drawer-push {\\n background-color: white;\\n}\\n.defaultMat .mat-drawer:not(.mat-drawer-side) {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-drawer-side {\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-drawer-side.mat-drawer-end {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n.defaultMat [dir=rtl] .mat-drawer-side {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n.defaultMat [dir=rtl] .mat-drawer-side.mat-drawer-end {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-drawer-backdrop.mat-drawer-shown {\\n background-color: rgba(0, 0, 0, 0.6);\\n}\\n.defaultMat .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\\n background-color: yellow;\\n}\\n.defaultMat .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(255, 255, 0, 0.54);\\n}\\n.defaultMat .mat-slide-toggle.mat-checked .mat-ripple-element {\\n background-color: yellow;\\n}\\n.defaultMat .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(33, 150, 243, 0.54);\\n}\\n.defaultMat .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(244, 67, 54, 0.54);\\n}\\n.defaultMat .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\\n background-color: black;\\n}\\n.defaultMat .mat-slide-toggle-thumb {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n background-color: #fafafa;\\n}\\n.defaultMat .mat-slide-toggle-bar {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-primary .mat-slider-track-fill,\\n.defaultMat .mat-primary .mat-slider-thumb,\\n.defaultMat .mat-primary .mat-slider-thumb-label {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-primary .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.defaultMat .mat-accent .mat-slider-track-fill,\\n.defaultMat .mat-accent .mat-slider-thumb,\\n.defaultMat .mat-accent .mat-slider-thumb-label {\\n background-color: yellow;\\n}\\n.defaultMat .mat-accent .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-warn .mat-slider-track-fill,\\n.defaultMat .mat-warn .mat-slider-thumb,\\n.defaultMat .mat-warn .mat-slider-thumb-label {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-warn .mat-slider-thumb-label-text {\\n color: white;\\n}\\n.defaultMat .mat-slider-focus-ring {\\n background-color: rgba(255, 255, 0, 0.2);\\n}\\n.defaultMat .mat-slider:hover .mat-slider-track-background,\\n.defaultMat .cdk-focused .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-slider-disabled .mat-slider-track-background,\\n.defaultMat .mat-slider-disabled .mat-slider-track-fill,\\n.defaultMat .mat-slider-disabled .mat-slider-thumb {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-slider-disabled:hover .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-slider-min-value .mat-slider-focus-ring {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\\n.defaultMat .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\\n.defaultMat .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n background-color: transparent;\\n}\\n.defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n}\\n.defaultMat .mat-slider-has-ticks .mat-slider-wrapper::after {\\n border-color: rgba(0, 0, 0, 0.7);\\n}\\n.defaultMat .mat-slider-horizontal .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to right, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n.defaultMat .mat-slider-vertical .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n.defaultMat .mat-step-header.cdk-keyboard-focused, .defaultMat .mat-step-header.cdk-program-focused, .defaultMat .mat-step-header:hover {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n@media (hover: none) {\\n .defaultMat .mat-step-header:hover {\\n background: none;\\n }\\n}\\n.defaultMat .mat-step-header .mat-step-label,\\n.defaultMat .mat-step-header .mat-step-optional {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n.defaultMat .mat-step-header .mat-step-icon {\\n background-color: rgba(0, 0, 0, 0.54);\\n color: white;\\n}\\n.defaultMat .mat-step-header .mat-step-icon-selected,\\n.defaultMat .mat-step-header .mat-step-icon-state-done,\\n.defaultMat .mat-step-header .mat-step-icon-state-edit {\\n background-color: #2196f3;\\n color: white;\\n}\\n.defaultMat .mat-step-header .mat-step-icon-state-error {\\n background-color: transparent;\\n color: #f44336;\\n}\\n.defaultMat .mat-step-header .mat-step-label.mat-step-label-active {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-step-header .mat-step-label.mat-step-label-error {\\n color: #f44336;\\n}\\n.defaultMat .mat-stepper-horizontal, .defaultMat .mat-stepper-vertical {\\n background-color: white;\\n}\\n.defaultMat .mat-stepper-vertical-line::before {\\n border-left-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-horizontal-stepper-header::before,\\n.defaultMat .mat-horizontal-stepper-header::after,\\n.defaultMat .mat-stepper-horizontal-line {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-sort-header-arrow {\\n color: #757575;\\n}\\n.defaultMat .mat-tab-nav-bar,\\n.defaultMat .mat-tab-header {\\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-tab-group-inverted-header .mat-tab-nav-bar,\\n.defaultMat .mat-tab-group-inverted-header .mat-tab-header {\\n border-top: 1px solid rgba(0, 0, 0, 0.12);\\n border-bottom: none;\\n}\\n.defaultMat .mat-tab-label, .defaultMat .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n.defaultMat .mat-tab-group[class*=mat-background-] .mat-tab-header,\\n.defaultMat .mat-tab-nav-bar[class*=mat-background-] {\\n border-bottom: none;\\n border-top: none;\\n}\\n.defaultMat .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(187, 222, 251, 0.3);\\n}\\n.defaultMat .mat-tab-group.mat-primary .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-primary .mat-ink-bar {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\\n background-color: white;\\n}\\n.defaultMat .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 255, 141, 0.3);\\n}\\n.defaultMat .mat-tab-group.mat-accent .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-accent .mat-ink-bar {\\n background-color: yellow;\\n}\\n.defaultMat .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n.defaultMat .mat-tab-group.mat-warn .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-warn .mat-ink-bar {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\\n background-color: white;\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(187, 222, 251, 0.3);\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-header, .defaultMat .mat-tab-group.mat-background-primary .mat-tab-links, .defaultMat .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\\n background-color: #2196f3;\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-label, .defaultMat .mat-tab-group.mat-background-primary .mat-tab-link, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\\n color: white;\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.defaultMat .mat-tab-group.mat-background-primary .mat-ripple-element, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 255, 141, 0.3);\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-header, .defaultMat .mat-tab-group.mat-background-accent .mat-tab-links, .defaultMat .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\\n background-color: yellow;\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-label, .defaultMat .mat-tab-group.mat-background-accent .mat-tab-link, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n.defaultMat .mat-tab-group.mat-background-accent .mat-ripple-element, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-header, .defaultMat .mat-tab-group.mat-background-warn .mat-tab-links, .defaultMat .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\\n background-color: #f44336;\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-label, .defaultMat .mat-tab-group.mat-background-warn .mat-tab-link, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\\n color: white;\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n.defaultMat .mat-tab-group.mat-background-warn .mat-ripple-element, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n.defaultMat .mat-toolbar {\\n background: whitesmoke;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-toolbar.mat-primary {\\n background: #2196f3;\\n color: white;\\n}\\n.defaultMat .mat-toolbar.mat-accent {\\n background: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-toolbar.mat-warn {\\n background: #f44336;\\n color: white;\\n}\\n.defaultMat .mat-toolbar .mat-form-field-underline,\\n.defaultMat .mat-toolbar .mat-form-field-ripple,\\n.defaultMat .mat-toolbar .mat-focused .mat-form-field-ripple {\\n background-color: currentColor;\\n}\\n.defaultMat .mat-toolbar .mat-form-field-label,\\n.defaultMat .mat-toolbar .mat-focused .mat-form-field-label,\\n.defaultMat .mat-toolbar .mat-select-value,\\n.defaultMat .mat-toolbar .mat-select-arrow,\\n.defaultMat .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\\n color: inherit;\\n}\\n.defaultMat .mat-toolbar .mat-input-element {\\n caret-color: currentColor;\\n}\\n.defaultMat .mat-tooltip {\\n background: rgba(97, 97, 97, 0.9);\\n}\\n.defaultMat .mat-tree {\\n background: white;\\n}\\n.defaultMat .mat-tree-node,\\n.defaultMat .mat-nested-tree-node {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-snack-bar-container {\\n color: rgba(255, 255, 255, 0.7);\\n background: #323232;\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.defaultMat .mat-simple-snackbar-action {\\n color: yellow;\\n}\\n.defaultMat .mat-badge-content {\\n font-weight: 600;\\n font-size: 12px;\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-badge-small .mat-badge-content {\\n font-size: 9px;\\n}\\n.defaultMat .mat-badge-large .mat-badge-content {\\n font-size: 24px;\\n}\\n.defaultMat .mat-h1, .defaultMat .mat-headline, .defaultMat .mat-typography h1 {\\n font: 600 24px/32px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.defaultMat .mat-h2, .defaultMat .mat-title, .defaultMat .mat-typography h2 {\\n font: 600 20px/32px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.defaultMat .mat-h3, .defaultMat .mat-subheading-2, .defaultMat .mat-typography h3 {\\n font: 600 16px/22px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.defaultMat .mat-h4, .defaultMat .mat-subheading-1, .defaultMat .mat-typography h4 {\\n font: 600 15px/24px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n.defaultMat .mat-h5, .defaultMat .mat-typography h5 {\\n font: 600 calc(14px * 0.83)/30px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n.defaultMat .mat-h6, .defaultMat .mat-typography h6 {\\n font: 600 calc(14px * 0.67)/30px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n.defaultMat .mat-body-strong, .defaultMat .mat-body-2 {\\n font: 600 14px/24px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-body, .defaultMat .mat-body-1, .defaultMat .mat-typography {\\n font: 600 14px/30px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-body p, .defaultMat .mat-body-1 p, .defaultMat .mat-typography p {\\n margin: 0 0 12px;\\n}\\n.defaultMat .mat-small, .defaultMat .mat-caption {\\n font: 600 12px/20px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-display-4, .defaultMat .mat-typography .mat-display-4 {\\n font: 300 112px/112px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 56px;\\n}\\n.defaultMat .mat-display-3, .defaultMat .mat-typography .mat-display-3 {\\n font: 600 56px/56px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 64px;\\n}\\n.defaultMat .mat-display-2, .defaultMat .mat-typography .mat-display-2 {\\n font: 400 45px/48px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 64px;\\n}\\n.defaultMat .mat-display-1, .defaultMat .mat-typography .mat-display-1 {\\n font: 600 34px/40px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 64px;\\n}\\n.defaultMat .mat-bottom-sheet-container {\\n font: 600 14px/30px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-button, .defaultMat .mat-raised-button, .defaultMat .mat-icon-button, .defaultMat .mat-stroked-button,\\n.defaultMat .mat-flat-button, .defaultMat .mat-fab, .defaultMat .mat-mini-fab {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 10px;\\n font-weight: 800;\\n}\\n.defaultMat .mat-button-toggle {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-card {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-card-title {\\n font-size: 24px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-card-header .mat-card-title {\\n font-size: 20px;\\n}\\n.defaultMat .mat-card-subtitle,\\n.defaultMat .mat-card-content {\\n font-size: 14px;\\n}\\n.defaultMat .mat-checkbox {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-checkbox-layout .mat-checkbox-label {\\n line-height: 24px;\\n}\\n.defaultMat .mat-chip {\\n font-size: 14px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-chip .mat-chip-trailing-icon.mat-icon,\\n.defaultMat .mat-chip .mat-chip-remove.mat-icon {\\n font-size: 18px;\\n}\\n.defaultMat .mat-table {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-header-cell {\\n font-size: 12px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-cell, .defaultMat .mat-footer-cell {\\n font-size: 14px;\\n}\\n.defaultMat .mat-calendar {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-calendar-body {\\n font-size: 13px;\\n}\\n.defaultMat .mat-calendar-body-label,\\n.defaultMat .mat-calendar-period-button {\\n font-size: 10px;\\n font-weight: 800;\\n}\\n.defaultMat .mat-calendar-table-header th {\\n font-size: 11px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-dialog-title {\\n font: 600 20px/32px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-expansion-panel-header {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 15px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-expansion-panel-content {\\n font: 600 14px/30px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-form-field {\\n font-size: inherit;\\n font-weight: 400;\\n line-height: 1.125;\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-form-field-wrapper {\\n padding-bottom: 1.34375em;\\n}\\n.defaultMat .mat-form-field-prefix .mat-icon,\\n.defaultMat .mat-form-field-suffix .mat-icon {\\n font-size: 150%;\\n line-height: 1.125;\\n}\\n.defaultMat .mat-form-field-prefix .mat-icon-button,\\n.defaultMat .mat-form-field-suffix .mat-icon-button {\\n height: 1.5em;\\n width: 1.5em;\\n}\\n.defaultMat .mat-form-field-prefix .mat-icon-button .mat-icon,\\n.defaultMat .mat-form-field-suffix .mat-icon-button .mat-icon {\\n height: 1.125em;\\n line-height: 1.125;\\n}\\n.defaultMat .mat-form-field-infix {\\n padding: 0.5em 0;\\n border-top: 0.84375em solid transparent;\\n}\\n.defaultMat .mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.34373em) scale(0.75);\\n transform: translateY(-1.34373em) scale(0.75);\\n width: 133.3333533333%;\\n}\\n.defaultMat .mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.34372em) scale(0.75);\\n transform: translateY(-1.34372em) scale(0.75);\\n width: 133.3333633333%;\\n}\\n.defaultMat .mat-form-field-label-wrapper {\\n top: -0.84375em;\\n padding-top: 0.84375em;\\n}\\n.defaultMat .mat-form-field-label {\\n top: 1.34375em;\\n}\\n.defaultMat .mat-form-field-underline {\\n bottom: 1.34375em;\\n}\\n.defaultMat .mat-form-field-subscript-wrapper {\\n font-size: 75%;\\n margin-top: 0.6666666667em;\\n top: calc(100% - 1.7916666667em);\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-wrapper {\\n padding-bottom: 1.25em;\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-infix {\\n padding: 0.4375em 0;\\n}\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00106px);\\n -ms-transform: translateY(-1.28119em) scale(0.75);\\n width: 133.3333933333%;\\n}\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00107px);\\n -ms-transform: translateY(-1.28118em) scale(0.75);\\n width: 133.3334033333%;\\n}\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00108px);\\n -ms-transform: translateY(-1.28117em) scale(0.75);\\n width: 133.3334133333%;\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-label {\\n top: 1.28125em;\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-underline {\\n bottom: 1.25em;\\n}\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {\\n margin-top: 0.5416666667em;\\n top: calc(100% - 1.6666666667em);\\n}\\n@media print {\\n .defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.28116em) scale(0.75);\\n transform: translateY(-1.28116em) scale(0.75);\\n }\\n .defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28115em) scale(0.75);\\n }\\n .defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.28114em) scale(0.75);\\n transform: translateY(-1.28114em) scale(0.75);\\n }\\n}\\n.defaultMat .mat-form-field-appearance-fill .mat-form-field-infix {\\n padding: 0.25em 0 0.75em 0;\\n}\\n.defaultMat .mat-form-field-appearance-fill .mat-form-field-label {\\n top: 1.09375em;\\n margin-top: -0.5em;\\n}\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-0.59373em) scale(0.75);\\n transform: translateY(-0.59373em) scale(0.75);\\n width: 133.3333533333%;\\n}\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-0.59372em) scale(0.75);\\n transform: translateY(-0.59372em) scale(0.75);\\n width: 133.3333633333%;\\n}\\n.defaultMat .mat-form-field-appearance-outline .mat-form-field-infix {\\n padding: 1em 0 1em 0;\\n}\\n.defaultMat .mat-form-field-appearance-outline .mat-form-field-label {\\n top: 1.84375em;\\n margin-top: -0.25em;\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.59373em) scale(0.75);\\n transform: translateY(-1.59373em) scale(0.75);\\n width: 133.3333533333%;\\n}\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.59372em) scale(0.75);\\n transform: translateY(-1.59372em) scale(0.75);\\n width: 133.3333633333%;\\n}\\n.defaultMat .mat-grid-tile-header,\\n.defaultMat .mat-grid-tile-footer {\\n font-size: 14px;\\n}\\n.defaultMat .mat-grid-tile-header .mat-line,\\n.defaultMat .mat-grid-tile-footer .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.defaultMat .mat-grid-tile-header .mat-line:nth-child(n+2),\\n.defaultMat .mat-grid-tile-footer .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n.defaultMat input.mat-input-element {\\n margin-top: -0.0625em;\\n}\\n.defaultMat .mat-menu-item {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-paginator,\\n.defaultMat .mat-paginator-page-size .mat-select-trigger {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n}\\n.defaultMat .mat-radio-button {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-select {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-select-trigger {\\n height: 1.125em;\\n}\\n.defaultMat .mat-slide-toggle-content {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-slider-thumb-label-text {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-stepper-vertical, .defaultMat .mat-stepper-horizontal {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-step-label {\\n font-size: 14px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-step-sub-label-error {\\n font-weight: normal;\\n}\\n.defaultMat .mat-step-label-error {\\n font-size: 14px;\\n}\\n.defaultMat .mat-step-label-selected {\\n font-size: 14px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-tab-group {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-tab-label, .defaultMat .mat-tab-link {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 10px;\\n font-weight: 800;\\n}\\n.defaultMat .mat-toolbar,\\n.defaultMat .mat-toolbar h1,\\n.defaultMat .mat-toolbar h2,\\n.defaultMat .mat-toolbar h3,\\n.defaultMat .mat-toolbar h4,\\n.defaultMat .mat-toolbar h5,\\n.defaultMat .mat-toolbar h6 {\\n font: 600 20px/32px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0;\\n}\\n.defaultMat .mat-tooltip {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 10px;\\n padding-top: 6px;\\n padding-bottom: 6px;\\n}\\n.defaultMat .mat-tooltip-handset {\\n font-size: 14px;\\n padding-top: 8px;\\n padding-bottom: 8px;\\n}\\n.defaultMat .mat-list-item {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-list-option {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-list-base .mat-list-item {\\n font-size: 16px;\\n}\\n.defaultMat .mat-list-base .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.defaultMat .mat-list-base .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n.defaultMat .mat-list-base .mat-list-option {\\n font-size: 16px;\\n}\\n.defaultMat .mat-list-base .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.defaultMat .mat-list-base .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n.defaultMat .mat-list-base .mat-subheader {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-list-base[dense] .mat-list-item {\\n font-size: 12px;\\n}\\n.defaultMat .mat-list-base[dense] .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.defaultMat .mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n.defaultMat .mat-list-base[dense] .mat-list-option {\\n font-size: 12px;\\n}\\n.defaultMat .mat-list-base[dense] .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n.defaultMat .mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n.defaultMat .mat-list-base[dense] .mat-subheader {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 600;\\n}\\n.defaultMat .mat-option {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n}\\n.defaultMat .mat-optgroup-label {\\n font: 600 14px/24px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-simple-snackbar {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n}\\n.defaultMat .mat-simple-snackbar-action {\\n line-height: 1;\\n font-family: inherit;\\n font-size: inherit;\\n font-weight: 800;\\n}\\n.defaultMat .mat-tree {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n.defaultMat .mat-tree-node,\\n.defaultMat .mat-nested-tree-node {\\n font-weight: 600;\\n font-size: 14px;\\n}\\n.defaultMat main {\\n background-color: #F0F0F0;\\n}\\n.defaultMat .menu {\\n /*background-color: $background;\\n text-align: center;*/\\n color: black;\\n display: -ms-flexbox;\\n display: flex;\\n}\\n.defaultMat a, .defaultMat a:hover, .defaultMat a:hover span {\\n text-decoration: none;\\n outline: none;\\n}\\n.defaultMat .mat-raised-button:not([class*=mat-elevation-z]),\\n.defaultMat .mat-button,\\n.defaultMat .mat-fab:not([class*=mat-elevation-z]),\\n.defaultMat .mat-mini-fab:not([class*=mat-elevation-z]),\\n.defaultMat .mat-icon-button {\\n box-sizing: border-box;\\n border-width: 1px;\\n border-style: solid;\\n border-color: rgba(0, 0, 0, 0.12);\\n box-shadow: none;\\n}\\n.defaultMat .mat-chip {\\n box-sizing: border-box;\\n border-width: 1px;\\n border-style: solid;\\n border-color: rgba(0, 0, 0, 0.12);\\n border-radius: 10px;\\n}\\n.defaultMat .mat-raised-button.back {\\n color: white;\\n background-color: #616161;\\n}\\n.defaultMat .mat-card {\\n margin: 10px 10px 0 10px;\\n}\\n.defaultMat .mat-checkbox-layout .mat-checkbox-label {\\n line-height: 40px;\\n}\\n.defaultMat .mat-list .mat-list-item .mat-list-text h4.mat-line {\\n font-weight: 800;\\n}\\n.defaultMat .mat-list .mat-list-item .mat-list-text p.mat-line {\\n color: #82b1ff;\\n}\\n.defaultMat .mat-card:not([class*=mat-elevation-z]) {\\n box-sizing: border-box;\\n -ms-flex: 1;\\n flex: 1;\\n border-width: 1px;\\n border-style: solid;\\n border-color: rgba(0, 0, 0, 0.12);\\n box-shadow: none;\\n}\\n.defaultMat .mat-toolbar {\\n background-color: white;\\n border-width: 1px;\\n border-style: solid;\\n border-color: rgba(0, 0, 0, 0.12);\\n box-shadow: none;\\n}\\n.defaultMat .mat-card.mat-card-accent {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n.defaultMat .mat-card.mat-card-warn {\\n color: white;\\n}\\n.defaultMat .white-icon {\\n color: white;\\n filter: brightness(100);\\n}\\n.Save {\\n color: #64b5f6;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc3RhdGlzdGljcy9uZXR3b3JrLXN0YXR1cy92cXVhZGJ0ZnhvL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9zcmNcXGFwcFxcc3RhdGlzdGljc1xcbmV0d29yay1zdGF0dXNcXHZxdWFkYnRmeG9cXHZxdWFkYnRmeG8uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3N0YXRpc3RpY3MvbmV0d29yay1zdGF0dXMvdnF1YWRidGZ4by9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvc3JjXFx0aGVtZXNcXHRoZW1lLnNjc3MiLCJzcmMvYXBwL3N0YXRpc3RpY3MvbmV0d29yay1zdGF0dXMvdnF1YWRidGZ4by9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhclxcbWF0ZXJpYWxcXF90aGVtaW5nLnNjc3MiLCJzcmMvYXBwL3N0YXRpc3RpY3MvbmV0d29yay1zdGF0dXMvdnF1YWRidGZ4by92cXVhZGJ0ZnhvLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFBQTtBQ0FBLHdJQUFBO0FBQ0E7OEdBQUE7QUFFQTt3Q0FBQTtBQ3UxQ0Esa0NBQUE7QUFnaURBLDJDQUFBO0FBd0NBLHFCQUFBO0FBNytCRTtFQUNFLGdCQXJMb0I7RUFzTHBCLGVBdkxrQjtFQXdMbEIsaURBQUE7QUN6NURKO0FENDVERTtFQUVFLGNBQUE7QUMxNURKO0FENjVERTtFQUNFLGVBQUE7QUMxNURKO0FEK2xERTtFQTVORSx3REFBQTtFQThOQSxnQkFBQTtBQzVsREo7QUQrbERFO0VBak9FLHdEQUFBO0VBbU9BLGdCQUFBO0FD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QkU7RUFDRSxjQUFBO0FDbTJCSjtBRGgyQkU7RUFDRSxjQUFBO0FDazJCSjtBRC8xQkU7RUFDRSxjQUFBO0FDaTJCSjtBRDcwQkU7RUFDRSwrQkFBQTtBQyswQko7QUQ1MEJFO0VBQ0UsK0JBQUE7QUM4MEJKO0FEbnpCRTtFQUNFLCtCQUFBO0FDcXpCSjtBRG56Qkk7RUFDRSxjQUFBO0FDcXpCTjtBRGp6QkU7RUFDRSxjQVplO0FDK3pCbkI7QUQ3eUJFOzs7O0VBSUUsbUJBQUE7QUMreUJKO0FENXlCRTs7RUFFRSxtQkFBQTtBQzh5Qko7QUQzeUJFOztFQUVFLG1CQUFBO0FDNnlCSjtBRHh5Qkk7O0VBQ0UsbUJBdENhO0FDaTFCbkI7QUQ0K0VJO0VBdDVJRix3SEFBQTtBQzY2REY7QUR5K0VJO0VBdDVJRix5SEFBQTtBQ2c3REY7QURzK0VJO0VBdDVJRix5SEFBQTtBQ203REY7QURtK0VJO0VBdDVJRix5SEFBQTtBQ3M3REY7QURnK0VJO0VBdDVJRiwwSEFBQTtBQ3k3REY7QUQ2OUVJO0VBdDVJRiwwSEFBQTtBQzQ3REY7QUQwOUVJO0VBdDVJRiwySEFBQTtBQys3REY7QUR1OUVJO0VBdDVJRiwySEFBQTtBQ2s4REY7QURvOUVJO0VBdDVJRiwySEFBQTtBQ3E4REY7QURpOUVJO0VBdDVJRiwySEFBQTtBQ3c4REY7QUQ4OEVJO0VBdDVJRiw0SEFBQTtBQzI4REY7QUQyOEVJO0VBdDVJRiw0SEFBQTtBQzg4REY7QUR3OEVJO0VBdDVJRiw0SEFBQTtBQ2k5REY7QURxOEVJO0VBdDVJRiw0SEFBQTtBQ285REY7QURrOEVJO0VBdDVJRiw0SEFBQTtBQ3U5REY7QUQrN0VJO0VBdDVJRiw0SEFBQTtBQzA5REY7QUQ0N0VJO0VBdDVJRiw2SEFBQTtBQzY5REY7QUR5N0VJO0VBdDVJRiw2SEFBQTtBQ2crREY7QURzN0VJO0VBdDVJRiw2SEFBQTtBQ20rREY7QURtN0VJO0VBdDVJRiw2SEFBQTtBQ3MrREY7QURnN0VJO0VBdDVJRiw4SEFBQTtBQ3krREY7QUQ2NkVJO0VBdDVJRiw4SEFBQTtBQzQrREY7QUQwNkVJ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QVplO0FDMndFbkI7QUR6dkVFOzs7O0VBSUUsa0JBQUE7QUMydkVKO0FEeHZFRTs7RUFFRSxtQkFBQTtBQzB2RUo7QUR2dkVFOztFQUVFLG1CQUFBO0FDeXZFSjtBRHB2RUk7O0VBQ0UsbUJBdENhO0FDNnhFbkI7QURnaUNJO0VBdDVJRix3SEFBQTtBQ3kzR0Y7QUQ2aENJO0VBdDVJRix5SEFBQTtBQzQzR0Y7QUQwaENJO0VBdDVJRix5SEFBQTtBQyszR0Y7QUR1aENJO0VBdDVJRix5SEFBQTtBQ2s0R0Y7QURvaENJO0VBdDVJRiwwSEFBQTtBQ3E0R0Y7QURpaENJO0VBdDVJRiwwSEFBQTtBQ3c0R0Y7QUQ4Z0NJO0VBdDVJRiwySEFBQTtBQzI0R0Y7QUQyZ0NJO0VBdDVJRiwySEFBQTtBQzg0R0Y7QUR3Z0NJO0VBdDVJRiwySEFBQTtBQ2k1R0Y7QURxZ0NJO0VBdDVJRiwySEFBQTtBQ281R0Y7QURrZ0NJO0VBdDVJRiw0SEFBQTtBQ3U1R0Y7QUQrL0JJO0VBdDVJRiw0SEFBQTtBQzA1R0Y7QUQ0L0JJO0VBdDVJRiw0SEFBQTtBQzY1R0Y7QUR5L0JJO0VBdDVJRiw0SEFBQTtBQ2c2R0Y7QURzL0JJO0VBdDVJRiw0SEFBQTtBQ202R0Y7QURtL0JJO0VBdDVJRiw0SEFBQTtBQ3M2R0Y7QURnL0JJO0VBdDVJRiw2SEFBQTtBQ3k2R0Y7QUQ2K0JJO0VBdDVJRiw2SEFBQTtBQzQ2R0Y7QUQwK0JJO0VBdDVJRiw2SEFBQTtBQys2R0Y7QUR1K0JJO0VBdDVJRiw2SEFBQTtBQ2s3R0Y7QURvK0JJO0VBdDVJRiw4SEFBQTtBQ3E3R0Y7QURpK0JJO0VBdDVJRiw4SEFBQTtBQ3c3R0Y7QUQ4OUJJO0VBdDVJRiw4SEFBQTtBQzI3R0Y7QUQyOUJJO0VBdDVJRiw4SEFBQTtBQzg3R0Y7QUR3OUJJO0VBdDVJRiw4SEFBQTtBQ2k4R0Y7QUQ2OUJFO0VBSUUseUJBQUE7RUFDQSwwQkFBQTtBQzk5Qko7QURtK0JJO0VBQ0UsYUFBQTtBQ2orQk47QURocUVFO0VBRUUsaUJBQUE7RUFDQSwwQkFBQTtBQ2txRUo7QUQxN0dFO0VB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cUlKO0FEL2dERTtFQUVJLHlDQUFBO0VBQ0EsZUFBQTtBQ2doRE47QUQ1Z0RFO0VBQ0UsY0FBQTtFQUVFLG9CQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtBQzZnRE47QUR6MUJFO0VBQ0UseUNBQUE7QUMyMUJKO0FEeDFCRTs7RUFFRSxnQkFBQTtFQUNBLGVBQUE7QUMwMUJKO0FGNy9LRTtFQUNFLHlCQU5XO0FFcWdMZjtBRjUvS0U7RUFDRTtzQkFBQTtFQUVBLFlBQUE7RUFDQSxvQkFBQTtFQUFBLGFBQUE7QUU4L0tKO0FGMy9LRTtFQUVFLHFCQUFBO0VBQ0EsYUFBQTtBRTQvS0o7QUZyL0tFOzs7OztFQUtFLHNCQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLGlDQUFBO0VBQ0EsZ0JBQUE7QUV1L0tKO0FGcC9LRTtFQUNFLHNCQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLGlDQUFBO0VBQ0EsbUJBQUE7QUVzL0tKO0FGbi9LRTtFQUNFLFlDbVlpQjtFRGxZakIseUJBQUE7QUVxL0tKO0FGbC9LRTtFQUNFLHdCQUFBO0FFby9LSjtBRjUrS0U7RUFDRSxpQkFBQTtBRTgrS0o7QUYzK0tFO0VBQ0UsZ0JBQUE7QUU2K0tKO0FGeitLRTtFQUNFLGNBQUE7QUUyK0tKO0FGeCtLRTtFQUNFLHNCQUFBO0VBQ0EsV0FBQTtNQUFBLE9BQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsaUNBQUE7RUFDQSxnQkFBQTtBRTArS0o7QUZ2K0tFO0VBQ0UsdUJBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsaUNBQUE7RUFDQSxnQkFBQTtBRXkrS0o7QUZ0K0tFO0VBRUUsMEJDaVZnQjtBQ3NwS3BCO0FGcCtLRTtFQUVFLFlDaVZpQjtBQ29wS3JCO0FGaitLRTtFQUNFLFlBQUE7RUFDQSx1QkFBQTtBRW0rS0o7QUhocExBO0VBQ0UsY0FBQTtBR21wTEYiLCJmaWxlIjoic3JjL2FwcC9zdGF0aXN0aWNzL25ldHdvcmstc3RhdHVzL3ZxdWFkYnRmeG8vdnF1YWRidGZ4by5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qLmV4YW1wbGUtYm94IHtcclxuICBib3JkZXI6IHNvbGlkIDFweCAjY2NjO1xyXG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xyXG4gIGN1cnNvcjogbW92ZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB6LWluZGV4OiAxO1xyXG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XHJcbiAgYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xyXG59XHJcblxyXG4uZXhhbXBsZS1ib3g6YWN0aXZlIHtcclxuICBib3gtc2hhZG93OiAwIDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XHJcbn0qL1xyXG5cclxuXHJcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL3RoZW1lcy90aGVtZS5zY3NzJztcclxuJHByaW1hcnk6IG1hcC1nZXQoJGN1c3RvbS10aGVtZSwgcHJpbWFyeSk7XHJcbiR3YXJuOiBtYXAtZ2V0KCRjdXN0b20tdGhlbWUsIHdhcm4pO1xyXG4kYWNjZW50OiBtYXAtZ2V0KCRjdXN0b20tdGhlbWUsIGFjY2VudCk7XHJcblxyXG4uU2F2ZSB7XHJcbiAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XHJcbn1cclxuIiwiLypodHRwczogLy9zdGFja2JsaXR6LmNvbS9lZGl0L2FuZ3VsYXItbWF0ZXJpYWwtdGhlbWUtc2VjcmV0cz9lbWJlZD0xJmZpbGU9c3JjJTJGdGhlbWUuc2NzcyZzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLypAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PU9wZW4rU2Fuczo0MDAsMzAwLDMwMGl0YWxpYyw0MDBpdGFsaWMsNjAwLDYwMGl0YWxpYyw3MDAsNzAwaXRhbGljLDgwMCw4MDBpdGFsaWMmc3Vic2V0PWxhdGluLWV4dCcpO1xyXG5AaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzozMDAsNDAwLDUwMCw3MDAsNDAwaXRhbGljJmFtcDtzdWJzZXQ9bGF0aW4tZXh0Jyk7Ki9cclxuLypAaW1wb3J0ICcuLi9jc3MvR29vZ2xlRm9udHNPcGVuU2Fucy5jc3MnO1xyXG5AaW1wb3J0ICcuLi9jc3MvR29vZ2xlRm9udHNSb2JvdG8uY3NzJzsqL1xyXG5cclxuQGltcG9ydCAnfkBhbmd1bGFyL21hdGVyaWFsL3RoZW1pbmcnO1xyXG5cclxuQGluY2x1ZGUgbWF0LWNvcmUoKTtcclxuXHJcbi8vaHR0cHM6Ly9tZWRpdW0uY29tL3RlbnN1bHQvYW5ndWxhci1tYXRlcmlhbC1jdXN0b20tdGhlbWUtaW1wbGVtZW50YXRpb24taW4tYW5ndWxhci02LWQ0MjRhMmE0N2U0Y1xyXG4vL2h0dHBzOi8vbWF0ZXJpYWwtdWkuY29tL2N1c3RvbWl6YXRpb24vY29sb3IvXHJcbi8vQ3VzdG9tIHRoZW1lXHJcbiRjdXN0b20tdGhlbWUtcHJpbWFyeTogbWF0LXBhbGV0dGUoJG1hdC1ibHVlLCAzMDApO1xyXG4kY3VzdG9tLXRoZW1lLWFjY2VudDogbWF0LXBhbGV0dGUoJG1hdC15ZWxsb3csIEEyMDAsIEExMDAsIEE0MDApOy8vbWF0LXBhbGV0dGUoJG1hdC1waW5rLCBBMjAwLCBBMTAwLCBBNDAwKTtcclxuJGN1c3RvbS10aGVtZS13YXJuOiBtYXQtcGFsZXR0ZSgkbWF0LXJlZCk7XHJcbiRjdXN0b20tdGhlbWU6IG1hdC1saWdodC10aGVtZSgkY3VzdG9tLXRoZW1lLXByaW1hcnksICRjdXN0b20tdGhlbWUtYWNjZW50LCAkY3VzdG9tLXRoZW1lLXdhcm4pO1xyXG5cclxuLy9BZGQgdG8gYW5ndWxhciBtYXRlcmlhbFxyXG5AaW5jbHVkZSBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKCRjdXN0b20tdGhlbWUpO1xyXG5cclxuXHJcblxyXG4vL2h0dHBzOi8vbWF0ZXJpYWwuYW5ndWxhci5pby9ndWlkZS90aGVtaW5nXHJcbi8vaHR0cHM6Ly93d3cuZnJlZWNvZGVjYW1wLm9yZy9uZXdzL2hvdy10by1tYWtlLWEtY3VzdG9tLXRoZW1lLWluLWFuZ3VsYXItbWF0ZXJpYWwtZDQ3MTIyYTFlMzYxL1xyXG4vLyBEZWZpbmUgYW4gYWx0ZXJuYXRlIGRhcmsgdGhlbWUuXHJcbiRkYXJrLXByaW1hcnk6IG1hdC1wYWxldHRlKCRtYXQtYmx1ZS1ncmV5KTtcclxuJGRhcmstYWNjZW50OiBtYXQtcGFsZXR0ZSgkbWF0LWFtYmVyLCBBMjAwLCBBMTAwLCBBNDAwKTtcclxuJGRhcmstd2FybjogbWF0LXBhbGV0dGUoJG1hdC1kZWVwLW9yYW5nZSk7XHJcbiRkYXJrLXRoZW1lOiBtYXQtZGFyay10aGVtZSgkZGFyay1wcmltYXJ5LCAkZGFyay1hY2NlbnQsICRkYXJrLXdhcm4pO1xyXG5cclxuLy8gSW5jbHVkZSB0aGUgYWx0ZXJuYXRpdmUgdGhlbWUgc3R5bGVzIGluc2lkZSBvZiBhIGJsb2NrIHdpdGggYSBDU1MgY2xhc3MuIFlvdSBjYW4gbWFrZSB0aGlzXHJcbi8vIENTUyBjbGFzcyB3aGF0ZXZlciB5b3Ugd2FudC4gSW4gdGhpcyBleGFtcGxlLCBhbnkgY29tcG9uZW50IGluc2lkZSBvZiBhbiBlbGVtZW50IHdpdGhcclxuLy8gYC51bmljb3JuLWRhcmstdGhlbWVgIHdpbGwgYmUgYWZmZWN0ZWQgYnkgdGhpcyBhbHRlcm5hdGUgZGFyayB0aGVtZSBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IHRoZW1lLlxyXG4udW5pY29ybi1kYXJrLXRoZW1lIHtcclxuICBAaW5jbHVkZSBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKCRkYXJrLXRoZW1lKTtcclxufVxyXG5cclxuXHJcbi8qXHJcbiAgaHR0cHM6IC8vc3RhY2tibGl0ei5jb20vZWRpdC9hbmd1bGFyLW1hdGVyaWFsLXRoZW1lLXNlY3JldHM/ZW1iZWQ9MSZmaWxlPXNyYyUyRnRoZW1lLnNjc3Mmc291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIGh0dHBzOi8vbWF0ZXJpYWwuYW5ndWxhci5pby9ndWlkZS90eXBvZ3JhcGh5XHJcbiAgaHR0cHM6Ly9tYXRlcmlhbC11aS5jb20vY3VzdG9taXphdGlvbi9jb2xvci9cclxuKi9cclxuJGRlZmF1bHRNYXQtdHlwb2dyYXBoeTogbWF0LXR5cG9ncmFwaHktY29uZmlnKFxyXG4gICRmb250LWZhbWlseTogJ1wiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZicsXHJcbiAgJGRpc3BsYXktNDogbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTEycHgsIDExMnB4LCAzMDApLFxyXG4gICRkaXNwbGF5LTM6IG1hdC10eXBvZ3JhcGh5LWxldmVsKDU2cHgsIDU2cHgsIDYwMCksXHJcbiAgJGRpc3BsYXktMjogbWF0LXR5cG9ncmFwaHktbGV2ZWwoNDVweCwgNDhweCwgNDAwKSxcclxuICAkZGlzcGxheS0xOiBtYXQtdHlwb2dyYXBoeS1sZXZlbCgzNHB4LCA0MHB4LCA2MDApLCAkaGVhZGxpbmU6IG1hdC10eXBvZ3JhcGh5LWxldmVsKDI0cHgsIDMycHgsIDYwMCksXHJcbiAgJHRpdGxlOiBtYXQtdHlwb2dyYXBoeS1sZXZlbCgyMHB4LCAzMnB4LCA2MDApLCAkc3ViaGVhZGluZy0yOiBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNnB4LCAyMnB4LCA2MDApLFxyXG4gICRzdWJoZWFkaW5nLTE6IG1hdC10eXBvZ3JhcGh5LWxldmVsKDE1cHgsIDI0cHgsIDYwMCksICRib2R5LTI6IG1hdC10eXBvZ3JhcGh5LWxldmVsKDE0cHgsIDI0cHgsIDYwMCksXHJcbiAgJGJvZHktMTogbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMzBweCwgNjAwKSwgJGNhcHRpb246IG1hdC10eXBvZ3JhcGh5LWxldmVsKDEycHgsIDIwcHgsIDYwMCksXHJcbiAgJGJ1dHRvbjogbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTBweCwgMTRweCwgODAwKSxcclxuICAvLyBMaW5lLWhlaWdodCBtdXN0IGJlIHVuaXQtbGVzcyBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplLlxyXG4gICRpbnB1dDogbWF0LXR5cG9ncmFwaHktbGV2ZWwoaW5oZXJpdCwgMS4xMjUsIDQwMClcclxuKTtcclxuXHJcbiRkZWZhdWx0TWF0LXByaW1hcnktY29sb3I6IChcclxuLy8gTm9uLWFjY2VudCBCYWNrZ3JvdW5kc1xyXG4vLyBHZW5lcmFsXHJcbjUwOiAjZTNmMmZkLCAvLyBNb3N0IGZhciBhd2F5XHJcbjEwMDogI2JiZGVmYiwgLy8gRmFyIGZhciBhd2F5XHJcbjIwMDogIzkwY2FmOSwgLy8gRmFyIGF3YXlcclxuMzAwOiAjNjRiNWY2LCAvLyBNaWRkbGUgZmFyXHJcbjQwMDogIzQyYTVmNSwgLy8gTWlkZGxlXHJcbjUwMDogIzIxOTZmMywgLy8gTWlkZGxlIGNsb3NlIFxcLSAzRjUxQjVcclxuNjAwOiAjMWU4OGU1LCAvLyBDbG9zZVxyXG43MDA6ICMxOTc2ZDIsIC8vIFZlcnkgY2xvc2UgLSA1QjlCRDVcclxuODAwOiAjMTU2NWMwLCAvLyBWZXJ5IHZlcnkgQ2xvc2VcclxuOTAwOiAjMGQ0N2ExLCAvLyBDbG9zZXN0XHJcbkExMDA6ICM4MmIxZmYsIC8vIE1vc3QgZmFyIGF3YXlcclxuQTIwMDogIzQ0OGFmZiwgLy8gTWlkZGxlXHJcbkE0MDA6ICMyOTc5ZmYsIC8vIENsb3NlXHJcbkE3MDA6ICMyOTYyZmYsIC8vIENsb3Nlc3RcclxuY29udHJhc3Q6ICggNTA6ICRkYXJrLXByaW1hcnktdGV4dCwgLy8gTW9zdCBmYXIgYXdheVxyXG4xMDA6ICRkYXJrLXByaW1hcnktdGV4dCwgLy8gRmFyIGZhciBhd2F5XHJcbjIwMDogJGRhcmstcHJpbWFyeS10ZXh0LCAvLyBGYXIgYXdheVxyXG4zMDA6ICRkYXJrLXByaW1hcnktdGV4dCwgLy8gTWlkZGxlIGZhclxyXG40MDA6ICRkYXJrLXByaW1hcnktdGV4dCwgLy8gTWlkZGxlXHJcbjUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCwgLy8gTWlkZGxlIGNsb3NlXHJcbjYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCwgLy8gQ2xvc2VcclxuNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LCAvLyBWZXJ5IGNsb3NlXHJcbjgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCwgLy8gVmVyeSB2ZXJ5IENsb3NlXHJcbjkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCwgLy8gQ2xvc2VzdFxyXG5BMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsIC8vIE1vc3QgZmFyIGF3YXlcclxuQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCwgLy8gTWlkZGxlXHJcbkE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsIC8vIENsb3NlXHJcbkE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsIC8vIENsb3Nlc3RcclxuKSApO1xyXG5cclxuJGRlZmF1bHRNYXQtdGhlbWU6IG1hdC1saWdodC10aGVtZSggbWF0LXBhbGV0dGUoJGRlZmF1bHRNYXQtcHJpbWFyeS1jb2xvciksIG1hdC1wYWxldHRlKCRtYXQteWVsbG93LCBBMjAwLCBBMTAwLCBBNDAwKSwgbWF0LXBhbGV0dGUoJG1hdC1yZWQpICk7XHJcblxyXG4uZGVmYXVsdE1hdCB7XHJcbiAgQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10aGVtZSgkZGVmYXVsdE1hdC10aGVtZSk7XHJcbiAgQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10eXBvZ3JhcGh5KCRkZWZhdWx0TWF0LXR5cG9ncmFwaHkpO1xyXG4gICRiYWNrZ3JvdW5kOiAjRjBGMEYwOyAvL21hdC1jb2xvcigkZGVmYXVsdE1hdC1wcmltYXJ5LWNvbG9yLCA3MDApOyAtIElNUFxyXG4gICRwcmltYXJ5OiBtYXQtY29sb3IoJGRlZmF1bHRNYXQtcHJpbWFyeS1jb2xvcik7XHJcbiAgJGFjY2VudDogbWF0LWNvbG9yKCRtYXQteWVsbG93KTtcclxuICAkd2FybjogbWF0LWNvbG9yKCRtYXQtcmVkKTtcclxuXHJcbiAgbWFpbiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcclxuICB9XHJcblxyXG4gIC5tZW51IHtcclxuICAgIC8qYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Ki9cclxuICAgIGNvbG9yOiBibGFjaztcclxuICAgIGRpc3BsYXk6ZmxleDtcclxuICB9XHJcblxyXG4gIGEsIGE6aG92ZXIsIGE6aG92ZXIgc3BhbiB7XHJcbiAgICBjb2xvcjogJHByaW1hcnk7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gIH1cclxuXHJcbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgaDcge1xyXG4gICAgY29sb3I6ICRwcmltYXJ5O1xyXG4gIH1cclxuXHJcbiAgLm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbY2xhc3MqPVwibWF0LWVsZXZhdGlvbi16XCJdKSxcclxuICAubWF0LWJ1dHRvbixcclxuICAubWF0LWZhYjpub3QoW2NsYXNzKj1cIm1hdC1lbGV2YXRpb24telwiXSksXHJcbiAgLm1hdC1taW5pLWZhYjpub3QoW2NsYXNzKj1cIm1hdC1lbGV2YXRpb24telwiXSksXHJcbiAgLm1hdC1pY29uLWJ1dHRvbiB7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxuICB9XHJcblxyXG4gIC5tYXQtY2hpcCB7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICB9XHJcblxyXG4gIC5tYXQtcmFpc2VkLWJ1dHRvbi5iYWNrIHtcclxuICAgIGNvbG9yOiAkbGlnaHQtcHJpbWFyeS10ZXh0O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRtYXQtZ3JleSwgQTcwMCk7XHJcbiAgfVxyXG5cclxuICAubWF0LWNhcmQge1xyXG4gICAgbWFyZ2luOiAxMHB4IDEwcHggMCAxMHB4O1xyXG4gIH1cclxuXHJcbiAgLyoubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lciwge1xyXG4gICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgd2lkdGg6IDQwcHg7XHJcbiAgfSovXHJcblxyXG4gIC5tYXQtY2hlY2tib3gtbGF5b3V0IC5tYXQtY2hlY2tib3gtbGFiZWwge1xyXG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XHJcbiAgfVxyXG5cclxuICAubWF0LWxpc3QgLm1hdC1saXN0LWl0ZW0gLm1hdC1saXN0LXRleHQgaDQubWF0LWxpbmUge1xyXG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICAgIGNvbG9yOiAkcHJpbWFyeTtcclxuICB9XHJcblxyXG4gIC5tYXQtbGlzdCAubWF0LWxpc3QtaXRlbSAubWF0LWxpc3QtdGV4dCBwLm1hdC1saW5lIHtcclxuICAgIGNvbG9yOiBtYXQtY29sb3IoJGRlZmF1bHRNYXQtcHJpbWFyeS1jb2xvciwgQTEwMCk7XHJcbiAgfVxyXG5cclxuICAubWF0LWNhcmQ6bm90KFtjbGFzcyo9XCJtYXQtZWxldmF0aW9uLXpcIl0pIHtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XHJcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xyXG4gICAgYm94LXNoYWRvdzogbm9uZTtcclxuICB9XHJcblxyXG4gIC5tYXQtdG9vbGJhciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgIGJvcmRlci13aWR0aDogMXB4O1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAubWF0LWNhcmQubWF0LWNhcmQtYWNjZW50IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XHJcbiAgICBjb2xvcjogJGRhcmstcHJpbWFyeS10ZXh0O1xyXG4gIH1cclxuXHJcbiAgLm1hdC1jYXJkLm1hdC1jYXJkLXdhcm4ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdhcm47XHJcbiAgICBjb2xvcjogJGxpZ2h0LXByaW1hcnktdGV4dDtcclxuICB9XHJcbiAgLypodHRwczogLy9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDY4MTIwNjQvaG93LXRvLXNldC10aGUtY29sb3Itb2YtYW4taWNvbi1pbi1hbmd1bGFyLW1hdGVyaWFsXHJcbmh0dHBzOiAvL2Nzcy10cmlja3MuY29tL3NvbHZlZC13aXRoLWNzcy1jb2xvcml6aW5nLXN2Zy1iYWNrZ3JvdW5kcy8qL1xyXG4gIC53aGl0ZS1pY29uIHtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGZpbHRlcjogYnJpZ2h0bmVzcygxMDApO1xyXG4gIH1cclxuICAvKiBOb3RlOiBJZiB5b3UncmUgdXNpbmcgYW4gU1ZHIGljb24sIHlvdSBzaG91bGQgbWFrZSB0aGUgY2xhc3MgdGFyZ2V0IHRoZSBgPHN2Zz5gIGVsZW1lbnQgKi9cclxuICAvKi53aGl0ZS1pY29uIHN2ZyB7XHJcbiAgZmlsbDogd2hpdGU7XHJcbiAgZmlsdGVyOmJyaWdodG5lc3MoMTAwKTtcclxufSovXHJcbiAgLyoubWF0LW1lbnUtaXRlbSB7XHJcbiAgICBoZWlnaHQ6MjBweDtcclxuICB9XHJcbiAgYnV0dG9uLm1hdC1tZW51LWl0ZW0ge1xyXG4gICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgZm9udC1zaXplOiAxNXB4O1xyXG4gIH0qL1xyXG59XHJcbiIsIi8vIEltcG9ydCBhbGwgdGhlIHRoZW1pbmcgZnVuY3Rpb25hbGl0eS5cbi8vIFdlIGNhbiB1c2UgcmVsYXRpdmUgaW1wb3J0cyBmb3IgaW1wb3J0cyBmcm9tIHRoZSBjZGsgYmVjYXVzZSB3ZSBidW5kbGUgZXZlcnl0aGluZ1xuLy8gdXAgaW50byBhIHNpbmdsZSBmbGF0IHNjc3MgZmlsZSBmb3IgbWF0ZXJpYWwuXG4vLyBXZSB3YW50IG92ZXJsYXlzIHRvIGFsd2F5cyBhcHBlYXIgb3ZlciB1c2VyIGNvbnRlbnQsIHNvIHNldCBhIGJhc2VsaW5lXG4vLyB2ZXJ5IGhpZ2ggei1pbmRleCBmb3IgdGhlIG92ZXJsYXkgY29udGFpbmVyLCB3aGljaCBpcyB3aGVyZSB3ZSBjcmVhdGUgdGhlIG5ld1xuLy8gc3RhY2tpbmcgY29udGV4dCBmb3IgYWxsIG92ZXJsYXlzLlxuJGNkay16LWluZGV4LW92ZXJsYXktY29udGFpbmVyOiAxMDAwICFkZWZhdWx0O1xuJGNkay16LWluZGV4LW92ZXJsYXk6IDEwMDAgIWRlZmF1bHQ7XG4kY2RrLXotaW5kZXgtb3ZlcmxheS1iYWNrZHJvcDogMTAwMCAhZGVmYXVsdDtcblxuLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYWxsIG9mIHRoZSBiYWNrZHJvcHNcbiRjZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wLWJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zMikgIWRlZmF1bHQ7XG5cbi8vIERlZmF1bHQgYmFja2Ryb3AgYW5pbWF0aW9uIGlzIGJhc2VkIG9uIHRoZSBNYXRlcmlhbCBEZXNpZ24gc3dpZnQtZWFzZS1vdXQuXG4kYmFja2Ryb3AtYW5pbWF0aW9uLWR1cmF0aW9uOiA0MDBtcyAhZGVmYXVsdDtcbiRiYWNrZHJvcC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSAhZGVmYXVsdDtcblxuXG5AbWl4aW4gY2RrLW92ZXJsYXkoKSB7XG4gIC5jZGstb3ZlcmxheS1jb250YWluZXIsIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gICAgLy8gRGlzYWJsZSBldmVudHMgZnJvbSBiZWluZyBjYXB0dXJlZCBvbiB0aGUgb3ZlcmxheSBjb250YWluZXIuXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAvLyBUaGUgY29udGFpbmVyIHNob3VsZCBiZSB0aGUgc2l6ZSBvZiB0aGUgdmlld3BvcnQuXG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gVGhlIG92ZXJsYXktY29udGFpbmVyIGlzIGFuIGludmlzaWJsZSBlbGVtZW50IHdoaWNoIGNvbnRhaW5zIGFsbCBpbmRpdmlkdWFsIG92ZXJsYXlzLlxuICAuY2RrLW92ZXJsYXktY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXktY29udGFpbmVyO1xuXG4gICAgJjplbXB0eSB7XG4gICAgICAvLyBIaWRlIHRoZSBlbGVtZW50IHdoZW4gaXQgZG9lc24ndCBoYXZlIGFueSBjaGlsZCBub2Rlcy4gVGhpcyBkb2Vzbid0XG4gICAgICAvLyBpbmNsdWRlIG92ZXJsYXlzIHRoYXQgaGF2ZSBiZWVuIGRldGFjaGVkLCByYXRoZXIgdGhhbiBkaXNwb3NlZC5cbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gV2UgdXNlIGFuIGV4dHJhIHdyYXBwZXIgZWxlbWVudCBpbiBvcmRlciB0byB1c2UgbWFrZSB0aGUgb3ZlcmxheSBpdHNlbGYgYSBmbGV4IGl0ZW0uXG4gIC8vIFRoaXMgbWFrZXMgY2VudGVyaW5nIHRoZSBvdmVybGF5IGVhc3kgd2l0aG91dCBydW5uaW5nIGludG8gdGhlIHN1YnBpeGVsIHJlbmRlcmluZ1xuICAvLyBwcm9ibGVtcyB0aWVkIHRvIHVzaW5nIGB0cmFuc2Zvcm1gIGFuZCB3aXRob3V0IGludGVyZmVyaW5nIHdpdGggdGhlIG90aGVyIHBvc2l0aW9uXG4gIC8vIHN0cmF0ZWdpZXMuXG4gIC5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXk7XG4gIH1cblxuICAvLyBBIHNpbmdsZSBvdmVybGF5IHBhbmUuXG4gIC5jZGstb3ZlcmxheS1wYW5lIHtcbiAgICAvLyBOb3RlOiBpdCdzIGltcG9ydGFudCBmb3IgdGhpcyBvbmUgdG8gc3RhcnQgb2ZmIGBhYnNvbHV0ZWAsXG4gICAgLy8gaW4gb3JkZXIgZm9yIHVzIHRvIGJlIGFibGUgdG8gbWVhc3VyZSBpdCBjb3JyZWN0bHkuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXk7XG5cbiAgICAvLyBGb3IgY29ubmVjdGVkLXBvc2l0aW9uIG92ZXJsYXlzLCB3ZSBzZXQgYGRpc3BsYXk6IGZsZXhgIGluXG4gICAgLy8gb3JkZXIgdG8gZm9yY2UgYG1heC13aWR0aGAgYW5kIGBtYXgtaGVpZ2h0YCB0byB0YWtlIGVmZmVjdC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LWJhY2tkcm9wIHtcbiAgICAvLyBUT0RPKGplbGJvdXJuKTogcmV1c2Ugc2lkZW5hdiBmdWxsc2NyZWVuIG1peGluLlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG5cbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheS1iYWNrZHJvcDtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJGJhY2tkcm9wLWFuaW1hdGlvbi1kdXJhdGlvbiAkYmFja2Ryb3AtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgIC8vIEluIGhpZ2ggY29udHJhc3QgbW9kZSB0aGUgcmdiYSBiYWNrZ3JvdW5kIHdpbGwgYmVjb21lIHNvbGlkIHNvIHdlIG5lZWQgdG8gZmFsbCBiYWNrXG4gICAgICAvLyB0byBtYWtpbmcgaXQgb3BhcXVlIHVzaW5nIGBvcGFjaXR5YC4gTm90ZSB0aGF0IHdlIGNhbid0IHVzZSB0aGUgYGNkay1oaWdoLWNvbnRyYXN0YFxuICAgICAgLy8gbWl4aW4sIGJlY2F1c2Ugd2UgY2FuJ3Qgbm9ybWFsaXplIHRoZSBpbXBvcnQgcGF0aCB0byB0aGUgX2ExMXkuc2NzcyBib3RoIGZvciB0aGVcbiAgICAgIC8vIHNvdXJjZSBhbmQgd2hlbiB0aGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQuIFNlZSAjMTA5MDguXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3Age1xuICAgIGJhY2tncm91bmQ6ICRjZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wLWJhY2tncm91bmQ7XG4gIH1cblxuICAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3Age1xuICAgIC8vIE5vdGU6IGFzIG9mIEZpcmVmb3ggNTcsIGhhdmluZyB0aGUgYmFja2Ryb3AgYmUgYGJhY2tncm91bmQ6IG5vbmVgIHdpbGwgcHJldmVudCBpdCBmcm9tXG4gICAgLy8gY2FwdHVyaW5nIHRoZSB1c2VyJ3MgbW91c2Ugc2Nyb2xsIGV2ZW50cy4gU2luY2Ugd2UgYWxzbyBjYW4ndCB1c2Ugc29tZXRoaW5nIGxpa2VcbiAgICAvLyBgcmdiYSgwLCAwLCAwLCAwKWAsIHdlIHdvcmsgYXJvdW5kIHRoZSBpbmNvbnNpc3RlbmN5IGJ5IG5vdCBzZXR0aW5nIHRoZSBiYWNrZ3JvdW5kIGF0XG4gICAgLy8gYWxsIGFuZCB1c2luZyBgb3BhY2l0eWAgdG8gbWFrZSB0aGUgZWxlbWVudCB0cmFuc3BhcmVudC5cbiAgICAmLCAmLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBPdmVybGF5IHBhcmVudCBlbGVtZW50IHVzZWQgd2l0aCB0aGUgY29ubmVjdGVkIHBvc2l0aW9uIHN0cmF0ZWd5LiBVc2VkIHRvIGNvbnN0cmFpbiB0aGVcbiAgLy8gb3ZlcmxheSBlbGVtZW50J3Mgc2l6ZSB0byBmaXQgd2l0aGluIHRoZSB2aWV3cG9ydC5cbiAgLmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3gge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheTtcblxuICAgIC8vIFdlIHVzZSBgZGlzcGxheTogZmxleGAgb24gdGhpcyBlbGVtZW50IGV4Y2x1c2l2ZWx5IGZvciBjZW50ZXJpbmcgY29ubmVjdGVkIG92ZXJsYXlzLlxuICAgIC8vIFdoZW4gKm5vdCogY2VudGVyaW5nLCBhIHRvcC9sZWZ0L2JvdHRvbS9yaWdodCB3aWxsIGJlIHNldCB3aGljaCBvdmVycmlkZXMgdGhlIG5vcm1hbFxuICAgIC8vIGZsZXggbGF5b3V0LlxuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAvLyBXZSB1c2UgdGhlIGBjb2x1bW5gIGRpcmVjdGlvbiBoZXJlIHRvIGF2b2lkIHNvbWUgZmxleGJveCBpc3N1ZXMgaW4gRWRnZVxuICAgIC8vIHdoZW4gdXNpbmcgdGhlIFwiZ3JvdyBhZnRlciBvcGVuXCIgb3B0aW9ucy5cbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgLy8gQWRkIHNvbWUgZGltZW5zaW9ucyBzbyB0aGUgZWxlbWVudCBoYXMgYW4gYGlubmVyVGV4dGAgd2hpY2ggc29tZSBwZW9wbGUgZGVwZW5kIG9uIGluIHRlc3RzLlxuICAgIG1pbi13aWR0aDogMXB4O1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgfVxuXG4gIC8vIFVzZWQgd2hlbiBkaXNhYmxpbmcgZ2xvYmFsIHNjcm9sbGluZy5cbiAgLmNkay1nbG9iYWwtc2Nyb2xsYmxvY2sge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcblxuICAgIC8vIE5lY2Vzc2FyeSBmb3IgdGhlIGNvbnRlbnQgbm90IHRvIGxvc2UgaXRzIHdpZHRoLiBOb3RlIHRoYXQgd2UncmUgdXNpbmcgMTAwJSwgaW5zdGVhZCBvZlxuICAgIC8vIDEwMHZ3LCBiZWNhdXNlIDEwMHZ3IGluY2x1ZGVzIHRoZSB3aWR0aCBwbHVzIHRoZSBzY3JvbGxiYXIsIHdoZXJlYXMgMTAwJSBpcyB0aGUgd2lkdGhcbiAgICAvLyB0aGF0IHRoZSBlbGVtZW50IGhhZCBiZWZvcmUgd2UgbWFkZSBpdCBgZml4ZWRgLlxuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLy8gTm90ZTogdGhpcyB3aWxsIGFsd2F5cyBhZGQgYSBzY3JvbGxiYXIgdG8gd2hhdGV2ZXIgZWxlbWVudCBpdCBpcyBvbiwgd2hpY2ggY2FuXG4gICAgLy8gcG90ZW50aWFsbHkgcmVzdWx0IGluIGRvdWJsZSBzY3JvbGxiYXJzLiBJdCBzaG91bGRuJ3QgYmUgYW4gaXNzdWUsIGJlY2F1c2Ugd2Ugd29uJ3RcbiAgICAvLyBibG9jayBzY3JvbGxpbmcgb24gYSBwYWdlIHRoYXQgZG9lc24ndCBoYXZlIGEgc2Nyb2xsYmFyIGluIHRoZSBmaXJzdCBwbGFjZS5cbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIH1cbn1cblxuQG1peGluIGNkay1hMTF5IHtcbiAgLmNkay12aXN1YWxseS1oaWRkZW4ge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG5cbiAgICAvLyBBdm9pZCBicm93c2VycyByZW5kZXJpbmcgdGhlIGZvY3VzIHJpbmcgaW4gc29tZSBjYXNlcy5cbiAgICBvdXRsaW5lOiAwO1xuXG4gICAgLy8gQXZvaWQgc29tZSBjYXNlcyB3aGVyZSB0aGUgYnJvd3NlciB3aWxsIHN0aWxsIHJlbmRlciB0aGUgbmF0aXZlIGNvbnRyb2xzIChzZWUgIzkwNDkpLlxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cbn1cblxuLy8gQXBwbGllcyBzdHlsZXMgZm9yIHVzZXJzIGluIGhpZ2ggY29udHJhc3QgbW9kZS4gTm90ZSB0aGF0IHRoaXMgb25seSBhcHBsaWVzXG4vLyB0byBNaWNyb3NvZnQgYnJvd3NlcnMuIENocm9tZSBjYW4gYmUgaW5jbHVkZWQgYnkgY2hlY2tpbmcgZm9yIHRoZSBgaHRtbFtoY11gXG4vLyBhdHRyaWJ1dGUsIGhvd2V2ZXIgQ2hyb21lIGhhbmRsZXMgaGlnaCBjb250cmFzdCBkaWZmZXJlbnRseS5cbi8vXG4vLyBAcGFyYW0gdGFyZ2V0IFdoaWNoIGtpbmQgb2YgaGlnaCBjb250cmFzdCBzZXR0aW5nIHRvIHRhcmdldC4gRGVmYXVsdHMgdG8gYGFjdGl2ZWAsIGNhbiBiZVxuLy8gICAgYHdoaXRlLW9uLWJsYWNrYCBvciBgYmxhY2stb24td2hpdGVgLlxuQG1peGluIGNkay1oaWdoLWNvbnRyYXN0KCR0YXJnZXQ6IGFjdGl2ZSkge1xuICBAbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiAkdGFyZ2V0KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gQ29yZSBzdHlsZXMgdGhhdCBlbmFibGUgbW9uaXRvcmluZyBhdXRvZmlsbCBzdGF0ZSBvZiB0ZXh0IGZpZWxkcy5cbkBtaXhpbiBjZGstdGV4dC1maWVsZCB7XG4gIC8vIEtleWZyYW1lcyB0aGF0IGFwcGx5IG5vIHN0eWxlcywgYnV0IGFsbG93IHVzIHRvIG1vbml0b3Igd2hlbiBhbiB0ZXh0IGZpZWxkIGJlY29tZXMgYXV0b2ZpbGxlZFxuICAvLyBieSB3YXRjaGluZyBmb3IgdGhlIGFuaW1hdGlvbiBldmVudHMgdGhhdCBhcmUgZmlyZWQgd2hlbiB0aGV5IHN0YXJ0LiBOb3RlOiB0aGUgLyohKi8gY29tbWVudCBpc1xuICAvLyBuZWVkZWQgdG8gcHJldmVudCBMaWJTYXNzIGZyb20gc3RyaXBwaW5nIHRoZSBrZXlmcmFtZXMgb3V0LlxuICAvLyBCYXNlZCBvbjogaHR0cHM6Ly9tZWRpdW0uY29tL0BicnVubi9kZXRlY3RpbmctYXV0b2ZpbGxlZC1maWVsZHMtaW4tamF2YXNjcmlwdC1hZWQ1OThkMjVkYTdcbiAgQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCB7LyohKi99XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIHsvKiEqL31cblxuICAuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydDtcbiAgfVxuXG4gIC5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6bm90KDotd2Via2l0LWF1dG9maWxsKSB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZDtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgcmVzaXplIGhhbmRsZSBvbiBhdXRvc2l6aW5nIHRleHRhcmVhcywgYmVjYXVzZSB3aGF0ZXZlciBoZWlnaHRcbiAgLy8gdGhlIHVzZXIgcmVzaXplZCB0byB3aWxsIGJlIG92ZXJ3cml0dGVuIG9uY2UgdGhleSBzdGFydCB0eXBpbmcgYWdhaW4uXG4gIHRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZSB7XG4gICAgcmVzaXplOiBub25lO1xuICB9XG5cbiAgLy8gVGhpcyBjbGFzcyBpcyB0ZW1wb3JhcmlseSBhcHBsaWVkIHRvIHRoZSB0ZXh0YXJlYSB3aGVuIGl0IGlzIGJlaW5nIG1lYXN1cmVkLiBJdCBpcyBpbW1lZGlhdGVseVxuICAvLyByZW1vdmVkIHdoZW4gbWVhc3VyaW5nIGlzIGNvbXBsZXRlLiBXZSB1c2UgYCFpbXBvcnRhbnRgIHJ1bGVzIGhlcmUgdG8gbWFrZSBzdXJlIHVzZXItc3BlY2lmaWVkXG4gIC8vIHJ1bGVzIGRvIG5vdCBpbnRlcmZlcmUgd2l0aCB0aGUgbWVhc3VyZW1lbnQuXG4gIHRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmcge1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICAvLyBIYXZpbmcgMnB4IHRvcCBhbmQgYm90dG9tIHBhZGRpbmcgc2VlbXMgdG8gZml4IGEgYnVnIHdoZXJlIENocm9tZSBnZXRzIGFuIGluY29ycmVjdFxuICAgIC8vIG1lYXN1cmVtZW50LiBXZSBqdXN0IGhhdmUgdG8gYWNjb3VudCBmb3IgaXQgbGF0ZXIgYW5kIHN1YnRyYWN0IGl0IG9mZiB0aGUgZmluYWwgcmVzdWx0LlxuICAgIHBhZGRpbmc6IDJweCAwICFpbXBvcnRhbnQ7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3ggIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLyBVc2VkIHRvIGdlbmVyYXRlIFVJRHMgZm9yIGtleWZyYW1lcyB1c2VkIHRvIGNoYW5nZSB0aGUgdGV4dCBmaWVsZCBhdXRvZmlsbCBzdHlsZXMuXG4kY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnQ6IDA7XG5cbi8vIE1peGluIHVzZWQgdG8gYXBwbHkgY3VzdG9tIGJhY2tncm91bmQgYW5kIGZvcmVncm91bmQgY29sb3JzIHRvIGFuIGF1dG9maWxsZWQgdGV4dCBmaWVsZC5cbi8vIEJhc2VkIG9uOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yNzgxNTQ5L1xuLy8gcmVtb3ZpbmctaW5wdXQtYmFja2dyb3VuZC1jb2xvdXItZm9yLWNocm9tZS1hdXRvY29tcGxldGUjYW5zd2VyLTM3NDMyMjYwXG5AbWl4aW4gY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3IoJGJhY2tncm91bmQsICRmb3JlZ3JvdW5kOicnKSB7XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9IHtcbiAgICB0byB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgIEBpZiAkZm9yZWdyb3VuZCAhPSAnJyB7IGNvbG9yOiAkZm9yZWdyb3VuZDsgfVxuICAgIH1cbiAgfVxuXG4gICY6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fTtcbiAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICB9XG5cbiAgJi5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0LFxuICAgICAgICAgICAgICAgICAgICBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH07XG4gIH1cblxuICAkY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnQ6XG4gICAgICAkY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnQgKyAxICFnbG9iYWw7XG59XG5cblxuLy8gQ29yZSBzdHlsZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBhcHBseSBtYXRlcmlhbCBkZXNpZ24gdHJlYXRtZW50cyB0byBhbnkgZWxlbWVudC5cbi8vIE1lZGlhIHF1ZXJpZXNcbi8vIFRPRE8oam9zZXBocGVycm90dCk6IENoYW5nZSAkbWF0LXhzbWFsbCBhbmQgJG1hdC1zbWFsbCB1c2FnZXMgdG8gcmVseSBvbiBCcmVha3BvaW50T2JzZXJ2ZXIsXG4kbWF0LXhzbWFsbDogJ21heC13aWR0aDogNTk5cHgnO1xuJG1hdC1zbWFsbDogJ21heC13aWR0aDogOTU5cHgnO1xuXG4vLyBUT0RPOiBSZXZpc2l0IGFsbCB6LWluZGljZXMgYmVmb3JlIGJldGFcbi8vIHotaW5kZXggbWFzdGVyIGxpc3RcblxuJHotaW5kZXgtZmFiOiAyMCAhZGVmYXVsdDtcbiR6LWluZGV4LWRyYXdlcjogMTAwICFkZWZhdWx0O1xuXG4vLyBHbG9iYWwgY29uc3RhbnRzXG4kcGk6IDMuMTQxNTkyNjU7XG5cbi8vIFBhZGRpbmcgYmV0d2VlbiBpbnB1dCB0b2dnbGVzIGFuZCB0aGVpciBsYWJlbHNcbiRtYXQtdG9nZ2xlLXBhZGRpbmc6IDhweCAhZGVmYXVsdDtcbi8vIFdpZHRoIGFuZCBoZWlnaHQgb2YgaW5wdXQgdG9nZ2xlc1xuJG1hdC10b2dnbGUtc2l6ZTogMjBweCAhZGVmYXVsdDtcblxuLy8gRWFzaW5nIEN1cnZlc1xuLy8gVE9ETyhqZWxib3Vybik6IGFsbCBvZiB0aGVzZSBuZWVkIHRvIGJlIHJldmlzaXRlZFxuXG4vLyBUaGUgZGVmYXVsdCBhbmltYXRpb24gY3VydmVzIHVzZWQgYnkgbWF0ZXJpYWwgZGVzaWduLlxuJG1hdC1saW5lYXItb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpICFkZWZhdWx0O1xuJG1hdC1mYXN0LW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhZGVmYXVsdDtcbiRtYXQtZmFzdC1vdXQtbGluZWFyLWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSkgIWRlZmF1bHQ7XG5cbiRlYXNlLWluLW91dC1jdXJ2ZS1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpICFkZWZhdWx0O1xuXG4kc3dpZnQtZWFzZS1vdXQtZHVyYXRpb246IDQwMG1zICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2Utb3V0LXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSkgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1vdXQ6IGFsbCAkc3dpZnQtZWFzZS1vdXQtZHVyYXRpb24gJHN3aWZ0LWVhc2Utb3V0LXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2UtaW4tZHVyYXRpb246IDMwMG1zICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2UtaW4tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMCwgMC41NSwgMC4yKSAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluOiBhbGwgJHN3aWZ0LWVhc2UtaW4tZHVyYXRpb24gJHN3aWZ0LWVhc2UtaW4tdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG4kc3dpZnQtZWFzZS1pbi1vdXQtZHVyYXRpb246IDUwMG1zICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2UtaW4tb3V0LXRpbWluZy1mdW5jdGlvbjogJGVhc2UtaW4tb3V0LWN1cnZlLWZ1bmN0aW9uICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2UtaW4tb3V0OiBhbGwgJHN3aWZ0LWVhc2UtaW4tb3V0LWR1cmF0aW9uICRzd2lmdC1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG5cbiRzd2lmdC1saW5lYXItZHVyYXRpb246IDgwbXMgIWRlZmF1bHQ7XG4kc3dpZnQtbGluZWFyLXRpbWluZy1mdW5jdGlvbjogbGluZWFyICFkZWZhdWx0O1xuJHN3aWZ0LWxpbmVhcjogYWxsICRzd2lmdC1saW5lYXItZHVyYXRpb24gJHN3aWZ0LWxpbmVhci10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG5cblxuXG4vLyBBIGNvbGxlY3Rpb24gb2YgbWl4aW5zIGFuZCBDU1MgY2xhc3NlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFwcGx5IGVsZXZhdGlvbiB0byBhIG1hdGVyaWFsXG4vLyBlbGVtZW50LlxuLy8gU2VlOiBodHRwczovL21hdGVyaWFsLmlvL2Rlc2lnbi9lbnZpcm9ubWVudC9lbGV2YXRpb24uaHRtbFxuLy8gRXhhbXBsZXM6XG4vL1xuLy9cbi8vIC5tYXQtZm9vIHtcbi8vICAgQGluY2x1ZGUgJG1hdC1lbGV2YXRpb24oMik7XG4vL1xuLy8gICAmOmFjdGl2ZSB7XG4vLyAgICAgQGluY2x1ZGUgJG1hdC1lbGV2YXRpb24oOCk7XG4vLyAgIH1cbi8vIH1cbi8vXG4vLyA8ZGl2IGlkPVwiZXh0ZXJuYWwtY2FyZFwiIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16MlwiPjxwPlNvbWUgY29udGVudDwvcD48L2Rpdj5cbi8vXG4vLyBGb3IgYW4gZXhwbGFuYXRpb24gb2YgdGhlIGRlc2lnbiBiZWhpbmQgaG93IGVsZXZhdGlvbiBpcyBpbXBsZW1lbnRlZCwgc2VlIHRoZSBkZXNpZ24gZG9jIGF0XG4vLyBodHRwczovL2dvby5nbC9LcTBrOVouXG5cbi8vIENvbG9ycyBmb3IgdW1icmEsIHBlbnVtYnJhLCBhbmQgYW1iaWVudCBzaGFkb3dzLiBBcyBkZXNjcmliZWQgaW4gdGhlIGRlc2lnbiBkb2MsIGVhY2ggZWxldmF0aW9uXG4vLyBsZXZlbCBpcyBjcmVhdGVkIHVzaW5nIGEgc2V0IG9mIDMgc2hhZG93IHZhbHVlcywgb25lIGZvciB1bWJyYSAodGhlIHNoYWRvdyByZXByZXNlbnRpbmcgdGhlXG4vLyBzcGFjZSBjb21wbGV0ZWx5IG9ic2N1cmVkIGJ5IGFuIG9iamVjdCByZWxhdGl2ZSB0byBpdHMgbGlnaHQgc291cmNlKSwgb25lIGZvciBwZW51bWJyYSAodGhlXG4vLyBzcGFjZSBwYXJ0aWFsbHkgb2JzY3VyZWQgYnkgYW4gb2JqZWN0KSwgYW5kIG9uZSBmb3IgYW1iaWVudCAodGhlIHNwYWNlIHdoaWNoIGNvbnRhaW5zIHRoZSBvYmplY3Rcbi8vIGl0c2VsZikuIEZvciBhIGZ1cnRoZXIgZXhwbGFuYXRpb24gb2YgdGhlc2UgdGVybXMgYW5kIHRoZWlyIG1lYW5pbmdzLCBzZWVcbi8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1VtYnJhLF9wZW51bWJyYV9hbmRfYW50dW1icmEuXG5cbi8vIE1hcHMgZm9yIHRoZSBkaWZmZXJlbnQgc2hhZG93IHNldHMgYW5kIHRoZWlyIHZhbHVlcyB3aXRoaW4gZWFjaCB6LXNwYWNlLiBUaGVzZSB2YWx1ZXMgd2VyZVxuLy8gY3JlYXRlZCBieSB0YWtpbmcgYSBmZXcgcmVmZXJlbmNlIHNoYWRvdyBzZXRzIGNyZWF0ZWQgYnkgR29vZ2xlJ3MgRGVzaWduZXJzIGFuZCBpbnRlcnBvbGF0aW5nXG4vLyBhbGwgb2YgdGhlIHZhbHVlcyBiZXR3ZWVuIHRoZW0uXG5cbkBmdW5jdGlvbiBfZ2V0LXVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSB7XG4gICRzaGFkb3ctY29sb3I6IGlmKHR5cGUtb2YoJGNvbG9yKSA9PSBjb2xvciwgcmdiYSgkY29sb3IsICRvcGFjaXR5ICogMC4yKSwgJGNvbG9yKTtcblxuICBAcmV0dXJuIChcbiAgICAwOiAnMHB4IDBweCAwcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE6ICcwcHggMnB4IDFweCAtMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI6ICcwcHggM3B4IDFweCAtMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDM6ICcwcHggM3B4IDNweCAtMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDQ6ICcwcHggMnB4IDRweCAtMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDU6ICcwcHggM3B4IDVweCAtMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDY6ICcwcHggM3B4IDVweCAtMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDc6ICcwcHggNHB4IDVweCAtMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDg6ICcwcHggNXB4IDVweCAtM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDk6ICcwcHggNXB4IDZweCAtM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEwOiAnMHB4IDZweCA2cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMTogJzBweCA2cHggN3B4IC00cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTI6ICcwcHggN3B4IDhweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEzOiAnMHB4IDdweCA4cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNDogJzBweCA3cHggOXB4IC00cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTU6ICcwcHggOHB4IDlweCAtNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE2OiAnMHB4IDhweCAxMHB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTc6ICcwcHggOHB4IDExcHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxODogJzBweCA5cHggMTFweCAtNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE5OiAnMHB4IDlweCAxMnB4IC02cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjA6ICcwcHggMTBweCAxM3B4IC02cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjE6ICcwcHggMTBweCAxM3B4IC02cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggMTBweCAxNHB4IC02cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjM6ICcwcHggMTFweCAxNHB4IC03cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjQ6ICcwcHggMTFweCAxNXB4IC03cHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuQGZ1bmN0aW9uIF9nZXQtcGVudW1icmEtbWFwKCRjb2xvciwgJG9wYWNpdHkpIHtcbiAgJHNoYWRvdy1jb2xvcjogaWYodHlwZS1vZigkY29sb3IpID09IGNvbG9yLCByZ2JhKCRjb2xvciwgJG9wYWNpdHkgKiAwLjE0KSwgJGNvbG9yKTtcblxuICBAcmV0dXJuIChcbiAgICAwOiAnMHB4IDBweCAwcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE6ICcwcHggMXB4IDFweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjogJzBweCAycHggMnB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAzOiAnMHB4IDNweCA0cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDQ6ICcwcHggNHB4IDVweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNTogJzBweCA1cHggOHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA2OiAnMHB4IDZweCAxMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA3OiAnMHB4IDdweCAxMHB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA4OiAnMHB4IDhweCAxMHB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA5OiAnMHB4IDlweCAxMnB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMDogJzBweCAxMHB4IDE0cHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDExOiAnMHB4IDExcHggMTVweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTI6ICcwcHggMTJweCAxN3B4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMzogJzBweCAxM3B4IDE5cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE0OiAnMHB4IDE0cHggMjFweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTU6ICcwcHggMTVweCAyMnB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNjogJzBweCAxNnB4IDI0cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDE3cHggMjZweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTg6ICcwcHggMThweCAyOHB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOTogJzBweCAxOXB4IDI5cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDIwcHggMzFweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjE6ICcwcHggMjFweCAzM3B4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMjogJzBweCAyMnB4IDM1cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDIzcHggMzZweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjQ6ICcwcHggMjRweCAzOHB4IDNweCAjeyRzaGFkb3ctY29sb3J9J1xuICApO1xufVxuXG5AZnVuY3Rpb24gX2dldC1hbWJpZW50LW1hcCgkY29sb3IsICRvcGFjaXR5KSB7XG4gICRzaGFkb3ctY29sb3I6IGlmKHR5cGUtb2YoJGNvbG9yKSA9PSBjb2xvciwgcmdiYSgkY29sb3IsICRvcGFjaXR5ICogMC4xMiksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDFweCAzcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI6ICcwcHggMXB4IDVweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMzogJzBweCAxcHggOHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDFweCAxMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA1OiAnMHB4IDFweCAxNHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA2OiAnMHB4IDFweCAxOHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA3OiAnMHB4IDJweCAxNnB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA4OiAnMHB4IDNweCAxNHB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA5OiAnMHB4IDNweCAxNnB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMDogJzBweCA0cHggMThweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTE6ICcwcHggNHB4IDIwcHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDVweCAyMnB4IDRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMzogJzBweCA1cHggMjRweCA0cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTQ6ICcwcHggNXB4IDI2cHggNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDZweCAyOHB4IDVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNjogJzBweCA2cHggMzBweCA1cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTc6ICcwcHggNnB4IDMycHggNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE4OiAnMHB4IDdweCAzNHB4IDZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOTogJzBweCA3cHggMzZweCA2cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjA6ICcwcHggOHB4IDM4cHggN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDhweCA0MHB4IDdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMjogJzBweCA4cHggNDJweCA3cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjM6ICcwcHggOXB4IDQ0cHggOHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDlweCA0NnB4IDhweCAjeyRzaGFkb3ctY29sb3J9J1xuICApO1xufVxuXG4vLyBUaGUgZGVmYXVsdCBkdXJhdGlvbiB2YWx1ZSBmb3IgZWxldmF0aW9uIHRyYW5zaXRpb25zLlxuJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbjogMjgwbXMgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGVhc2luZyB2YWx1ZSBmb3IgZWxldmF0aW9uIHRyYW5zaXRpb25zLlxuJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICRtYXQtZmFzdC1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb247XG5cbi8vIFRoZSBkZWZhdWx0IGNvbG9yIGZvciBlbGV2YXRpb24gc2hhZG93cy5cbiRtYXQtZWxldmF0aW9uLWNvbG9yOiBibGFjayAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgb3BhY2l0eSBzY2FsaW5nIHZhbHVlIGZvciBlbGV2YXRpb24gc2hhZG93cy5cbiRtYXQtZWxldmF0aW9uLW9wYWNpdHk6IDEgIWRlZmF1bHQ7XG5cbi8vIFByZWZpeCBmb3IgZWxldmF0aW9uLXJlbGF0ZWQgc2VsZWN0b3JzLlxuJF9tYXQtZWxldmF0aW9uLXByZWZpeDogJ21hdC1lbGV2YXRpb24teic7XG5cbi8vIEFwcGxpZXMgdGhlIGNvcnJlY3QgY3NzIHJ1bGVzIHRvIGFuIGVsZW1lbnQgdG8gZ2l2ZSBpdCB0aGUgZWxldmF0aW9uIHNwZWNpZmllZCBieSAkelZhbHVlLlxuLy8gVGhlICR6VmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0LlxuQG1peGluIG1hdC1lbGV2YXRpb24oJHpWYWx1ZSwgJGNvbG9yOiAkbWF0LWVsZXZhdGlvbi1jb2xvciwgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgQGlmIHR5cGUtb2YoJHpWYWx1ZSkgIT0gbnVtYmVyIG9yIG5vdCB1bml0bGVzcygkelZhbHVlKSB7XG4gICAgQGVycm9yICckelZhbHVlIG11c3QgYmUgYSB1bml0bGVzcyBudW1iZXInO1xuICB9XG4gIEBpZiAkelZhbHVlIDwgMCBvciAkelZhbHVlID4gMjQge1xuICAgIEBlcnJvciAnJHpWYWx1ZSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjQnO1xuICB9XG5cbiAgYm94LXNoYWRvdzogI3ttYXAtZ2V0KF9nZXQtdW1icmEtbWFwKCRjb2xvciwgJG9wYWNpdHkpLCAkelZhbHVlKX0sXG4gICAgICAgICAgICAgICN7bWFwLWdldChfZ2V0LXBlbnVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSwgJHpWYWx1ZSl9LFxuICAgICAgICAgICAgICAje21hcC1nZXQoX2dldC1hbWJpZW50LW1hcCgkY29sb3IsICRvcGFjaXR5KSwgJHpWYWx1ZSl9O1xufVxuXG5AbWl4aW4gX21hdC10aGVtZS1lbGV2YXRpb24oJHpWYWx1ZSwgJHRoZW1lLCAkb3BhY2l0eTogJG1hdC1lbGV2YXRpb24tb3BhY2l0eSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkZWxldmF0aW9uLWNvbG9yOiBtYXAtZ2V0KCRmb3JlZ3JvdW5kLCBlbGV2YXRpb24pO1xuICAkZWxldmF0aW9uLWNvbG9yLW9yLWRlZmF1bHQ6IGlmKCRlbGV2YXRpb24tY29sb3IgPT0gbnVsbCwgJG1hdC1lbGV2YXRpb24tY29sb3IsICRlbGV2YXRpb24tY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1hdC1lbGV2YXRpb24oJHpWYWx1ZSwgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0LCAkb3BhY2l0eSk7XG59XG5cbi8vIEFwcGxpZXMgdGhlIGVsZXZhdGlvbiB0byBhbiBlbGVtZW50IGluIGEgbWFubmVyIHRoYXQgYWxsb3dzXG4vLyBjb25zdW1lcnMgdG8gb3ZlcnJpZGUgaXQgdmlhIHRoZSBNYXRlcmlhbCBlbGV2YXRpb24gY2xhc3Nlcy5cbkBtaXhpbiBtYXQtb3ZlcnJpZGFibGUtZWxldmF0aW9uKFxuICAgICR6VmFsdWUsXG4gICAgJGNvbG9yOiAkbWF0LWVsZXZhdGlvbi1jb2xvcixcbiAgICAkb3BhY2l0eTogJG1hdC1lbGV2YXRpb24tb3BhY2l0eSkge1xuICAmOm5vdChbY2xhc3MqPScjeyRfbWF0LWVsZXZhdGlvbi1wcmVmaXh9J10pIHtcbiAgICBAaW5jbHVkZSBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRjb2xvciwgJG9wYWNpdHkpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigkelZhbHVlLCAkdGhlbWUsICRvcGFjaXR5OiAkbWF0LWVsZXZhdGlvbi1vcGFjaXR5KSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRlbGV2YXRpb24tY29sb3I6IG1hcC1nZXQoJGZvcmVncm91bmQsIGVsZXZhdGlvbik7XG4gICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdDogaWYoJGVsZXZhdGlvbi1jb2xvciA9PSBudWxsLCAkbWF0LWVsZXZhdGlvbi1jb2xvciwgJGVsZXZhdGlvbi1jb2xvcik7XG5cbiAgQGluY2x1ZGUgbWF0LW92ZXJyaWRhYmxlLWVsZXZhdGlvbigkelZhbHVlLCAkZWxldmF0aW9uLWNvbG9yLW9yLWRlZmF1bHQsICRvcGFjaXR5KTtcbn1cblxuLy8gUmV0dXJucyBhIHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIGFzIHRoZSB2YWx1ZSBmb3IgYSB0cmFuc2l0aW9uIHByb3BlcnR5IGZvciBlbGV2YXRpb24uXG4vLyBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gZGlyZWN0bHkgaXMgdXNlZnVsIGluIHNpdHVhdGlvbnMgd2hlcmUgYSBjb21wb25lbnQgbmVlZHMgdG8gdHJhbnNpdGlvblxuLy8gbW9yZSB0aGFuIG9uZSBwcm9wZXJ0eS5cbi8vXG4vLyAuZm9vIHtcbi8vICAgdHJhbnNpdGlvbjogbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKCksIG9wYWNpdHkgMTAwbXMgZWFzZTtcbi8vIH1cbkBmdW5jdGlvbiBtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tcHJvcGVydHktdmFsdWUoXG4gICAgJGR1cmF0aW9uOiAkbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uLFxuICAgICRlYXNpbmc6ICRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKSB7XG4gIEByZXR1cm4gYm94LXNoYWRvdyAjeyRkdXJhdGlvbn0gI3skZWFzaW5nfTtcbn1cblxuLy8gQXBwbGllcyB0aGUgY29ycmVjdCBjc3MgcnVsZXMgbmVlZGVkIHRvIGhhdmUgYW4gZWxlbWVudCB0cmFuc2l0aW9uIGJldHdlZW4gZWxldmF0aW9ucy5cbi8vIFRoaXMgbWl4aW4gc2hvdWxkIGJlIGFwcGxpZWQgdG8gZWxlbWVudHMgd2hvc2UgZWxldmF0aW9uIHZhbHVlcyB3aWxsIGNoYW5nZSBkZXBlbmRpbmcgb24gdGhlaXJcbi8vIGNvbnRleHQgKGUuZy4gd2hlbiBhY3RpdmUgb3IgZGlzYWJsZWQpLlxuLy9cbi8vIE5PVEUodHJhdmlza2F1Zm1hbik6IEJvdGggdGhpcyBtaXhpbiBhbmQgdGhlIGFib3ZlIGZ1bmN0aW9uIHVzZSBkZWZhdWx0IHBhcmFtZXRlcnMgc28gdGhleSBjYW5cbi8vIGJlIHVzZWQgaW4gdGhlIHNhbWUgd2F5IGJ5IGNsaWVudHMuXG5AbWl4aW4gbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uKFxuICAgICRkdXJhdGlvbjogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgICAkZWFzaW5nOiAkbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikge1xuICB0cmFuc2l0aW9uOiBtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tcHJvcGVydHktdmFsdWUoJGR1cmF0aW9uLCAkZWFzaW5nKTtcbn1cblxuLy8gQ29sb3IgcGFsZXR0ZXMgZnJvbSB0aGUgTWF0ZXJpYWwgRGVzaWduIHNwZWMuXG4vLyBTZWUgaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29sb3IvXG4vL1xuLy8gQ29udHJhc3QgY29sb3JzIGFyZSBoYXJkLWNvZGVkIGJlY2F1c2UgaXQgaXMgdG9vIGRpZmZpY3VsdCAocHJvYmFibHkgaW1wb3NzaWJsZSkgdG9cbi8vIGNhbGN1bGF0ZSB0aGVtLiBUaGVzZSBjb250cmFzdCBjb2xvcnMgYXJlIHB1bGxlZCBmcm9tIHRoZSBwdWJsaWMgTWF0ZXJpYWwgRGVzaWduIHNwZWMgc3dhdGNoZXMuXG4vLyBXaGlsZSB0aGUgY29udHJhc3QgY29sb3JzIGluIHRoZSBzcGVjIGFyZSBub3QgcHJlc2NyaXB0aXZlLCB3ZSB1c2UgdGhlbSBmb3IgY29udmVuaWVuY2UuXG5cblxuLy8gQGRlcHJlY2F0ZWQgcmVuYW1lZCB0byAkZGFyay1wcmltYXJ5LXRleHQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kYmxhY2stODctb3BhY2l0eTogcmdiYShibGFjaywgMC44Nyk7XG4vLyBAZGVwcmVjYXRlZCByZW5hbWVkIHRvICRsaWdodC1wcmltYXJ5LXRleHQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kd2hpdGUtODctb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC44Nyk7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGRhcmstW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiRibGFjay0xMi1vcGFjaXR5OiByZ2JhKGJsYWNrLCAwLjEyKTtcbi8vIEBkZXByZWNhdGVkIHVzZSAkbGlnaHQtW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiR3aGl0ZS0xMi1vcGFjaXR5OiByZ2JhKHdoaXRlLCAwLjEyKTtcbi8vIEBkZXByZWNhdGVkIHVzZSAkZGFyay1bc2Vjb25kYXJ5LXRleHQsZGlzYWJsZWQtdGV4dCxkaXZpZGVycyxmb2N1c2VkXSBpbnN0ZWFkLlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJGJsYWNrLTYtb3BhY2l0eTogcmdiYShibGFjaywgMC4wNik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGxpZ2h0LVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kd2hpdGUtNi1vcGFjaXR5OiByZ2JhKHdoaXRlLCAwLjA2KTtcblxuJGRhcmstcHJpbWFyeS10ZXh0OiByZ2JhKGJsYWNrLCAwLjg3KTtcbiRkYXJrLXNlY29uZGFyeS10ZXh0OiByZ2JhKGJsYWNrLCAwLjU0KTtcbiRkYXJrLWRpc2FibGVkLXRleHQ6IHJnYmEoYmxhY2ssIDAuMzgpO1xuJGRhcmstZGl2aWRlcnM6IHJnYmEoYmxhY2ssIDAuMTIpO1xuJGRhcmstZm9jdXNlZDogcmdiYShibGFjaywgMC4xMik7XG4kbGlnaHQtcHJpbWFyeS10ZXh0OiB3aGl0ZTtcbiRsaWdodC1zZWNvbmRhcnktdGV4dDogcmdiYSh3aGl0ZSwgMC43KTtcbiRsaWdodC1kaXNhYmxlZC10ZXh0OiByZ2JhKHdoaXRlLCAwLjUpO1xuJGxpZ2h0LWRpdmlkZXJzOiByZ2JhKHdoaXRlLCAwLjEyKTtcbiRsaWdodC1mb2N1c2VkOiByZ2JhKHdoaXRlLCAwLjEyKTtcblxuJG1hdC1yZWQ6IChcbiAgNTA6ICNmZmViZWUsXG4gIDEwMDogI2ZmY2RkMixcbiAgMjAwOiAjZWY5YTlhLFxuICAzMDA6ICNlNTczNzMsXG4gIDQwMDogI2VmNTM1MCxcbiAgNTAwOiAjZjQ0MzM2LFxuICA2MDA6ICNlNTM5MzUsXG4gIDcwMDogI2QzMmYyZixcbiAgODAwOiAjYzYyODI4LFxuICA5MDA6ICNiNzFjMWMsXG4gIEExMDA6ICNmZjhhODAsXG4gIEEyMDA6ICNmZjUyNTIsXG4gIEE0MDA6ICNmZjE3NDQsXG4gIEE3MDA6ICNkNTAwMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1waW5rOiAoXG4gIDUwOiAjZmNlNGVjLFxuICAxMDA6ICNmOGJiZDAsXG4gIDIwMDogI2Y0OGZiMSxcbiAgMzAwOiAjZjA2MjkyLFxuICA0MDA6ICNlYzQwN2EsXG4gIDUwMDogI2U5MWU2MyxcbiAgNjAwOiAjZDgxYjYwLFxuICA3MDA6ICNjMjE4NWIsXG4gIDgwMDogI2FkMTQ1NyxcbiAgOTAwOiAjODgwZTRmLFxuICBBMTAwOiAjZmY4MGFiLFxuICBBMjAwOiAjZmY0MDgxLFxuICBBNDAwOiAjZjUwMDU3LFxuICBBNzAwOiAjYzUxMTYyLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtcHVycGxlOiAoXG4gIDUwOiAjZjNlNWY1LFxuICAxMDA6ICNlMWJlZTcsXG4gIDIwMDogI2NlOTNkOCxcbiAgMzAwOiAjYmE2OGM4LFxuICA0MDA6ICNhYjQ3YmMsXG4gIDUwMDogIzljMjdiMCxcbiAgNjAwOiAjOGUyNGFhLFxuICA3MDA6ICM3YjFmYTIsXG4gIDgwMDogIzZhMWI5YSxcbiAgOTAwOiAjNGExNDhjLFxuICBBMTAwOiAjZWE4MGZjLFxuICBBMjAwOiAjZTA0MGZiLFxuICBBNDAwOiAjZDUwMGY5LFxuICBBNzAwOiAjYWEwMGZmLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1kZWVwLXB1cnBsZTogKFxuICA1MDogI2VkZTdmNixcbiAgMTAwOiAjZDFjNGU5LFxuICAyMDA6ICNiMzlkZGIsXG4gIDMwMDogIzk1NzVjZCxcbiAgNDAwOiAjN2U1N2MyLFxuICA1MDA6ICM2NzNhYjcsXG4gIDYwMDogIzVlMzViMSxcbiAgNzAwOiAjNTEyZGE4LFxuICA4MDA6ICM0NTI3YTAsXG4gIDkwMDogIzMxMWI5MixcbiAgQTEwMDogI2IzODhmZixcbiAgQTIwMDogIzdjNGRmZixcbiAgQTQwMDogIzY1MWZmZixcbiAgQTcwMDogIzYyMDBlYSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtaW5kaWdvOiAoXG4gIDUwOiAjZThlYWY2LFxuICAxMDA6ICNjNWNhZTksXG4gIDIwMDogIzlmYThkYSxcbiAgMzAwOiAjNzk4NmNiLFxuICA0MDA6ICM1YzZiYzAsXG4gIDUwMDogIzNmNTFiNSxcbiAgNjAwOiAjMzk0OWFiLFxuICA3MDA6ICMzMDNmOWYsXG4gIDgwMDogIzI4MzU5MyxcbiAgOTAwOiAjMWEyMzdlLFxuICBBMTAwOiAjOGM5ZWZmLFxuICBBMjAwOiAjNTM2ZGZlLFxuICBBNDAwOiAjM2Q1YWZlLFxuICBBNzAwOiAjMzA0ZmZlLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1ibHVlOiAoXG4gIDUwOiAjZTNmMmZkLFxuICAxMDA6ICNiYmRlZmIsXG4gIDIwMDogIzkwY2FmOSxcbiAgMzAwOiAjNjRiNWY2LFxuICA0MDA6ICM0MmE1ZjUsXG4gIDUwMDogIzIxOTZmMyxcbiAgNjAwOiAjMWU4OGU1LFxuICA3MDA6ICMxOTc2ZDIsXG4gIDgwMDogIzE1NjVjMCxcbiAgOTAwOiAjMGQ0N2ExLFxuICBBMTAwOiAjODJiMWZmLFxuICBBMjAwOiAjNDQ4YWZmLFxuICBBNDAwOiAjMjk3OWZmLFxuICBBNzAwOiAjMjk2MmZmLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGlnaHQtYmx1ZTogKFxuICA1MDogI2UxZjVmZSxcbiAgMTAwOiAjYjNlNWZjLFxuICAyMDA6ICM4MWQ0ZmEsXG4gIDMwMDogIzRmYzNmNyxcbiAgNDAwOiAjMjliNmY2LFxuICA1MDA6ICMwM2E5ZjQsXG4gIDYwMDogIzAzOWJlNSxcbiAgNzAwOiAjMDI4OGQxLFxuICA4MDA6ICMwMjc3YmQsXG4gIDkwMDogIzAxNTc5YixcbiAgQTEwMDogIzgwZDhmZixcbiAgQTIwMDogIzQwYzRmZixcbiAgQTQwMDogIzAwYjBmZixcbiAgQTcwMDogIzAwOTFlYSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1jeWFuOiAoXG4gIDUwOiAjZTBmN2ZhLFxuICAxMDA6ICNiMmViZjIsXG4gIDIwMDogIzgwZGVlYSxcbiAgMzAwOiAjNGRkMGUxLFxuICA0MDA6ICMyNmM2ZGEsXG4gIDUwMDogIzAwYmNkNCxcbiAgNjAwOiAjMDBhY2MxLFxuICA3MDA6ICMwMDk3YTcsXG4gIDgwMDogIzAwODM4ZixcbiAgOTAwOiAjMDA2MDY0LFxuICBBMTAwOiAjODRmZmZmLFxuICBBMjAwOiAjMThmZmZmLFxuICBBNDAwOiAjMDBlNWZmLFxuICBBNzAwOiAjMDBiOGQ0LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtdGVhbDogKFxuICA1MDogI2UwZjJmMSxcbiAgMTAwOiAjYjJkZmRiLFxuICAyMDA6ICM4MGNiYzQsXG4gIDMwMDogIzRkYjZhYyxcbiAgNDAwOiAjMjZhNjlhLFxuICA1MDA6ICMwMDk2ODgsXG4gIDYwMDogIzAwODk3YixcbiAgNzAwOiAjMDA3OTZiLFxuICA4MDA6ICMwMDY5NWMsXG4gIDkwMDogIzAwNGQ0MCxcbiAgQTEwMDogI2E3ZmZlYixcbiAgQTIwMDogIzY0ZmZkYSxcbiAgQTQwMDogIzFkZTliNixcbiAgQTcwMDogIzAwYmZhNSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWdyZWVuOiAoXG4gIDUwOiAjZThmNWU5LFxuICAxMDA6ICNjOGU2YzksXG4gIDIwMDogI2E1ZDZhNyxcbiAgMzAwOiAjODFjNzg0LFxuICA0MDA6ICM2NmJiNmEsXG4gIDUwMDogIzRjYWY1MCxcbiAgNjAwOiAjNDNhMDQ3LFxuICA3MDA6ICMzODhlM2MsXG4gIDgwMDogIzJlN2QzMixcbiAgOTAwOiAjMWI1ZTIwLFxuICBBMTAwOiAjYjlmNmNhLFxuICBBMjAwOiAjNjlmMGFlLFxuICBBNDAwOiAjMDBlNjc2LFxuICBBNzAwOiAjMDBjODUzLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1saWdodC1ncmVlbjogKFxuICA1MDogI2YxZjhlOSxcbiAgMTAwOiAjZGNlZGM4LFxuICAyMDA6ICNjNWUxYTUsXG4gIDMwMDogI2FlZDU4MSxcbiAgNDAwOiAjOWNjYzY1LFxuICA1MDA6ICM4YmMzNGEsXG4gIDYwMDogIzdjYjM0MixcbiAgNzAwOiAjNjg5ZjM4LFxuICA4MDA6ICM1NThiMmYsXG4gIDkwMDogIzMzNjkxZSxcbiAgQTEwMDogI2NjZmY5MCxcbiAgQTIwMDogI2IyZmY1OSxcbiAgQTQwMDogIzc2ZmYwMyxcbiAgQTcwMDogIzY0ZGQxNyxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1saW1lOiAoXG4gIDUwOiAjZjlmYmU3LFxuICAxMDA6ICNmMGY0YzMsXG4gIDIwMDogI2U2ZWU5YyxcbiAgMzAwOiAjZGNlNzc1LFxuICA0MDA6ICNkNGUxNTcsXG4gIDUwMDogI2NkZGMzOSxcbiAgNjAwOiAjYzBjYTMzLFxuICA3MDA6ICNhZmI0MmIsXG4gIDgwMDogIzllOWQyNCxcbiAgOTAwOiAjODI3NzE3LFxuICBBMTAwOiAjZjRmZjgxLFxuICBBMjAwOiAjZWVmZjQxLFxuICBBNDAwOiAjYzZmZjAwLFxuICBBNzAwOiAjYWVlYTAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC15ZWxsb3c6IChcbiAgNTA6ICNmZmZkZTcsXG4gIDEwMDogI2ZmZjljNCxcbiAgMjAwOiAjZmZmNTlkLFxuICAzMDA6ICNmZmYxNzYsXG4gIDQwMDogI2ZmZWU1OCxcbiAgNTAwOiAjZmZlYjNiLFxuICA2MDA6ICNmZGQ4MzUsXG4gIDcwMDogI2ZiYzAyZCxcbiAgODAwOiAjZjlhODI1LFxuICA5MDA6ICNmNTdmMTcsXG4gIEExMDA6ICNmZmZmOGQsXG4gIEEyMDA6ICNmZmZmMDAsXG4gIEE0MDA6ICNmZmVhMDAsXG4gIEE3MDA6ICNmZmQ2MDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtYW1iZXI6IChcbiAgNTA6ICNmZmY4ZTEsXG4gIDEwMDogI2ZmZWNiMyxcbiAgMjAwOiAjZmZlMDgyLFxuICAzMDA6ICNmZmQ1NGYsXG4gIDQwMDogI2ZmY2EyOCxcbiAgNTAwOiAjZmZjMTA3LFxuICA2MDA6ICNmZmIzMDAsXG4gIDcwMDogI2ZmYTAwMCxcbiAgODAwOiAjZmY4ZjAwLFxuICA5MDA6ICNmZjZmMDAsXG4gIEExMDA6ICNmZmU1N2YsXG4gIEEyMDA6ICNmZmQ3NDAsXG4gIEE0MDA6ICNmZmM0MDAsXG4gIEE3MDA6ICNmZmFiMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtb3JhbmdlOiAoXG4gIDUwOiAjZmZmM2UwLFxuICAxMDA6ICNmZmUwYjIsXG4gIDIwMDogI2ZmY2M4MCxcbiAgMzAwOiAjZmZiNzRkLFxuICA0MDA6ICNmZmE3MjYsXG4gIDUwMDogI2ZmOTgwMCxcbiAgNjAwOiAjZmI4YzAwLFxuICA3MDA6ICNmNTdjMDAsXG4gIDgwMDogI2VmNmMwMCxcbiAgOTAwOiAjZTY1MTAwLFxuICBBMTAwOiAjZmZkMTgwLFxuICBBMjAwOiAjZmZhYjQwLFxuICBBNDAwOiAjZmY5MTAwLFxuICBBNzAwOiAjZmY2ZDAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiBibGFjayxcbiAgKVxuKTtcblxuJG1hdC1kZWVwLW9yYW5nZTogKFxuICA1MDogI2ZiZTllNyxcbiAgMTAwOiAjZmZjY2JjLFxuICAyMDA6ICNmZmFiOTEsXG4gIDMwMDogI2ZmOGE2NSxcbiAgNDAwOiAjZmY3MDQzLFxuICA1MDA6ICNmZjU3MjIsXG4gIDYwMDogI2Y0NTExZSxcbiAgNzAwOiAjZTY0YTE5LFxuICA4MDA6ICNkODQzMTUsXG4gIDkwMDogI2JmMzYwYyxcbiAgQTEwMDogI2ZmOWU4MCxcbiAgQTIwMDogI2ZmNmU0MCxcbiAgQTQwMDogI2ZmM2QwMCxcbiAgQTcwMDogI2RkMmMwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtYnJvd246IChcbiAgNTA6ICNlZmViZTksXG4gIDEwMDogI2Q3Y2NjOCxcbiAgMjAwOiAjYmNhYWE0LFxuICAzMDA6ICNhMTg4N2YsXG4gIDQwMDogIzhkNmU2MyxcbiAgNTAwOiAjNzk1NTQ4LFxuICA2MDA6ICM2ZDRjNDEsXG4gIDcwMDogIzVkNDAzNyxcbiAgODAwOiAjNGUzNDJlLFxuICA5MDA6ICMzZTI3MjMsXG4gIEExMDA6ICNkN2NjYzgsXG4gIEEyMDA6ICNiY2FhYTQsXG4gIEE0MDA6ICM4ZDZlNjMsXG4gIEE3MDA6ICM1ZDQwMzcsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtZ3JleTogKFxuICA1MDogI2ZhZmFmYSxcbiAgMTAwOiAjZjVmNWY1LFxuICAyMDA6ICNlZWVlZWUsXG4gIDMwMDogI2UwZTBlMCxcbiAgNDAwOiAjYmRiZGJkLFxuICA1MDA6ICM5ZTllOWUsXG4gIDYwMDogIzc1NzU3NSxcbiAgNzAwOiAjNjE2MTYxLFxuICA4MDA6ICM0MjQyNDIsXG4gIDkwMDogIzIxMjEyMSxcbiAgQTEwMDogI2ZmZmZmZixcbiAgQTIwMDogI2VlZWVlZSxcbiAgQTQwMDogI2JkYmRiZCxcbiAgQTcwMDogIzYxNjE2MSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4vLyBBbGlhcyBmb3IgYWx0ZXJuYXRlIHNwZWxsaW5nLlxuJG1hdC1ncmF5OiAkbWF0LWdyZXk7XG5cbiRtYXQtYmx1ZS1ncmV5OiAoXG4gIDUwOiAjZWNlZmYxLFxuICAxMDA6ICNjZmQ4ZGMsXG4gIDIwMDogI2IwYmVjNSxcbiAgMzAwOiAjOTBhNGFlLFxuICA0MDA6ICM3ODkwOWMsXG4gIDUwMDogIzYwN2Q4YixcbiAgNjAwOiAjNTQ2ZTdhLFxuICA3MDA6ICM0NTVhNjQsXG4gIDgwMDogIzM3NDc0ZixcbiAgOTAwOiAjMjYzMjM4LFxuICBBMTAwOiAjY2ZkOGRjLFxuICBBMjAwOiAjYjBiZWM1LFxuICBBNDAwOiAjNzg5MDljLFxuICBBNzAwOiAjNDU1YTY0LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbi8vIEFsaWFzIGZvciBhbHRlcm5hdGUgc3BlbGxpbmcuXG4kbWF0LWJsdWUtZ3JheTogJG1hdC1ibHVlLWdyZXk7XG5cblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBsaWdodCB0aGVtZXMuXG4kbWF0LWxpZ2h0LXRoZW1lLWJhY2tncm91bmQ6IChcbiAgc3RhdHVzLWJhcjogbWFwX2dldCgkbWF0LWdyZXksIDMwMCksXG4gIGFwcC1iYXI6ICAgIG1hcF9nZXQoJG1hdC1ncmV5LCAxMDApLFxuICBiYWNrZ3JvdW5kOiBtYXBfZ2V0KCRtYXQtZ3JleSwgNTApLFxuICBob3ZlcjogICAgICByZ2JhKGJsYWNrLCAwLjA0KSwgLy8gVE9ETyhrYXJhKTogY2hlY2sgc3R5bGUgd2l0aCBNYXRlcmlhbCBEZXNpZ24gVVhcbiAgY2FyZDogICAgICAgd2hpdGUsXG4gIGRpYWxvZzogICAgIHdoaXRlLFxuICBkaXNhYmxlZC1idXR0b246IHJnYmEoYmxhY2ssIDAuMTIpLFxuICByYWlzZWQtYnV0dG9uOiB3aGl0ZSxcbiAgZm9jdXNlZC1idXR0b246ICRkYXJrLWZvY3VzZWQsXG4gIHNlbGVjdGVkLWJ1dHRvbjogbWFwX2dldCgkbWF0LWdyZXksIDMwMCksXG4gIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbjogbWFwX2dldCgkbWF0LWdyZXksIDQwMCksXG4gIGRpc2FibGVkLWJ1dHRvbi10b2dnbGU6IG1hcF9nZXQoJG1hdC1ncmV5LCAyMDApLFxuICB1bnNlbGVjdGVkLWNoaXA6IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBkaXNhYmxlZC1saXN0LW9wdGlvbjogbWFwX2dldCgkbWF0LWdyZXksIDIwMCksXG4pO1xuXG4vLyBCYWNrZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJG1hdC1kYXJrLXRoZW1lLWJhY2tncm91bmQ6IChcbiAgc3RhdHVzLWJhcjogYmxhY2ssXG4gIGFwcC1iYXI6ICAgIG1hcF9nZXQoJG1hdC1ncmV5LCA5MDApLFxuICBiYWNrZ3JvdW5kOiAjMzAzMDMwLFxuICBob3ZlcjogICAgICByZ2JhKHdoaXRlLCAwLjA0KSwgLy8gVE9ETyhrYXJhKTogY2hlY2sgc3R5bGUgd2l0aCBNYXRlcmlhbCBEZXNpZ24gVVhcbiAgY2FyZDogICAgICAgbWFwX2dldCgkbWF0LWdyZXksIDgwMCksXG4gIGRpYWxvZzogICAgIG1hcF9nZXQoJG1hdC1ncmV5LCA4MDApLFxuICBkaXNhYmxlZC1idXR0b246IHJnYmEod2hpdGUsIDAuMTIpLFxuICByYWlzZWQtYnV0dG9uOiBtYXAtZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZm9jdXNlZC1idXR0b246ICRsaWdodC1mb2N1c2VkLFxuICBzZWxlY3RlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCA5MDApLFxuICBzZWxlY3RlZC1kaXNhYmxlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCA4MDApLFxuICBkaXNhYmxlZC1idXR0b24tdG9nZ2xlOiBibGFjayxcbiAgdW5zZWxlY3RlZC1jaGlwOiBtYXBfZ2V0KCRtYXQtZ3JleSwgNzAwKSxcbiAgZGlzYWJsZWQtbGlzdC1vcHRpb246IGJsYWNrLFxuKTtcblxuLy8gRm9yZWdyb3VuZCBwYWxldHRlIGZvciBsaWdodCB0aGVtZXMuXG4kbWF0LWxpZ2h0LXRoZW1lLWZvcmVncm91bmQ6IChcbiAgYmFzZTogICAgICAgICAgICAgIGJsYWNrLFxuICBkaXZpZGVyOiAgICAgICAgICAgJGRhcmstZGl2aWRlcnMsXG4gIGRpdmlkZXJzOiAgICAgICAgICAkZGFyay1kaXZpZGVycyxcbiAgZGlzYWJsZWQ6ICAgICAgICAgICRkYXJrLWRpc2FibGVkLXRleHQsXG4gIGRpc2FibGVkLWJ1dHRvbjogICByZ2JhKGJsYWNrLCAwLjI2KSxcbiAgZGlzYWJsZWQtdGV4dDogICAgICRkYXJrLWRpc2FibGVkLXRleHQsXG4gIGVsZXZhdGlvbjogICAgICAgICBibGFjayxcbiAgaGludC10ZXh0OiAgICAgICAgICRkYXJrLWRpc2FibGVkLXRleHQsXG4gIHNlY29uZGFyeS10ZXh0OiAgICAkZGFyay1zZWNvbmRhcnktdGV4dCxcbiAgaWNvbjogICAgICAgICAgICAgIHJnYmEoYmxhY2ssIDAuNTQpLFxuICBpY29uczogICAgICAgICAgICAgcmdiYShibGFjaywgMC41NCksXG4gIHRleHQ6ICAgICAgICAgICAgICByZ2JhKGJsYWNrLCAwLjg3KSxcbiAgc2xpZGVyLW1pbjogICAgICAgIHJnYmEoYmxhY2ssIDAuODcpLFxuICBzbGlkZXItb2ZmOiAgICAgICAgcmdiYShibGFjaywgMC4yNiksXG4gIHNsaWRlci1vZmYtYWN0aXZlOiByZ2JhKGJsYWNrLCAwLjM4KSxcbik7XG5cbi8vIEZvcmVncm91bmQgcGFsZXR0ZSBmb3IgZGFyayB0aGVtZXMuXG4kbWF0LWRhcmstdGhlbWUtZm9yZWdyb3VuZDogKFxuICBiYXNlOiAgICAgICAgICAgICAgd2hpdGUsXG4gIGRpdmlkZXI6ICAgICAgICAgICAkbGlnaHQtZGl2aWRlcnMsXG4gIGRpdmlkZXJzOiAgICAgICAgICAkbGlnaHQtZGl2aWRlcnMsXG4gIGRpc2FibGVkOiAgICAgICAgICAkbGlnaHQtZGlzYWJsZWQtdGV4dCxcbiAgZGlzYWJsZWQtYnV0dG9uOiAgIHJnYmEod2hpdGUsIDAuMyksXG4gIGRpc2FibGVkLXRleHQ6ICAgICAkbGlnaHQtZGlzYWJsZWQtdGV4dCxcbiAgZWxldmF0aW9uOiAgICAgICAgIGJsYWNrLFxuICBoaW50LXRleHQ6ICAgICAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIHNlY29uZGFyeS10ZXh0OiAgICAkbGlnaHQtc2Vjb25kYXJ5LXRleHQsXG4gIGljb246ICAgICAgICAgICAgICB3aGl0ZSxcbiAgaWNvbnM6ICAgICAgICAgICAgIHdoaXRlLFxuICB0ZXh0OiAgICAgICAgICAgICAgd2hpdGUsXG4gIHNsaWRlci1taW46ICAgICAgICB3aGl0ZSxcbiAgc2xpZGVyLW9mZjogICAgICAgIHJnYmEod2hpdGUsIDAuMyksXG4gIHNsaWRlci1vZmYtYWN0aXZlOiByZ2JhKHdoaXRlLCAwLjMpLFxuKTtcblxuXG5cbi8vIEZvciBhIGdpdmVuIGh1ZSBpbiBhIHBhbGV0dGUsIHJldHVybiB0aGUgY29udHJhc3QgY29sb3IgZnJvbSB0aGUgbWFwIG9mIGNvbnRyYXN0IHBhbGV0dGVzLlxuLy8gQHBhcmFtICRjb2xvci1tYXBcbi8vIEBwYXJhbSAkaHVlXG5AZnVuY3Rpb24gbWF0LWNvbnRyYXN0KCRwYWxldHRlLCAkaHVlKSB7XG4gIEByZXR1cm4gbWFwLWdldChtYXAtZ2V0KCRwYWxldHRlLCBjb250cmFzdCksICRodWUpO1xufVxuXG5cbi8vIENyZWF0ZXMgYSBtYXAgb2YgaHVlcyB0byBjb2xvcnMgZm9yIGEgdGhlbWUuIFRoaXMgaXMgdXNlZCB0byBkZWZpbmUgYSB0aGVtZSBwYWxldHRlIGluIHRlcm1zXG4vLyBvZiB0aGUgTWF0ZXJpYWwgRGVzaWduIGh1ZXMuXG4vLyBAcGFyYW0gJGNvbG9yLW1hcFxuLy8gQHBhcmFtICRwcmltYXJ5XG4vLyBAcGFyYW0gJGxpZ2h0ZXJcbkBmdW5jdGlvbiBtYXQtcGFsZXR0ZSgkYmFzZS1wYWxldHRlLCAkZGVmYXVsdDogNTAwLCAkbGlnaHRlcjogMTAwLCAkZGFya2VyOiA3MDAsICR0ZXh0OiAkZGVmYXVsdCkge1xuICAkcmVzdWx0OiBtYXBfbWVyZ2UoJGJhc2UtcGFsZXR0ZSwgKFxuICAgIGRlZmF1bHQ6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQpLFxuICAgIGxpZ2h0ZXI6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJGxpZ2h0ZXIpLFxuICAgIGRhcmtlcjogbWFwLWdldCgkYmFzZS1wYWxldHRlLCAkZGFya2VyKSxcbiAgICB0ZXh0OiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICR0ZXh0KSxcblxuICAgIGRlZmF1bHQtY29udHJhc3Q6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkZGVmYXVsdCksXG4gICAgbGlnaHRlci1jb250cmFzdDogbWF0LWNvbnRyYXN0KCRiYXNlLXBhbGV0dGUsICRsaWdodGVyKSxcbiAgICBkYXJrZXItY29udHJhc3Q6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkZGFya2VyKVxuICApKTtcblxuICAvLyBGb3IgZWFjaCBodWUgaW4gdGhlIHBhbGV0dGUsIGFkZCBhIFwiLWNvbnRyYXN0XCIgY29sb3IgdG8gdGhlIG1hcC5cbiAgQGVhY2ggJGh1ZSwgJGNvbG9yIGluICRiYXNlLXBhbGV0dGUge1xuICAgICRyZXN1bHQ6IG1hcF9tZXJnZSgkcmVzdWx0LCAoXG4gICAgICAnI3skaHVlfS1jb250cmFzdCc6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkaHVlKVxuICAgICkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG5cbi8vIEdldHMgYSBjb2xvciBmcm9tIGEgdGhlbWUgcGFsZXR0ZSAodGhlIG91dHB1dCBvZiBtYXQtcGFsZXR0ZSkuXG4vLyBUaGUgaHVlIGNhbiBiZSBvbmUgb2YgdGhlIHN0YW5kYXJkIHZhbHVlcyAoNTAwLCBBNDAwLCBldGMuKSwgb25lIG9mIHRoZSB0aHJlZSBwcmVjb25maWd1cmVkXG4vLyBodWVzIChkZWZhdWx0LCBsaWdodGVyLCBkYXJrZXIpLCBvciBhbnkgb2YgdGhlIGFmb3JlbWVudGlvbmVkIHByZWZpeGVkIHdpdGggXCItY29udHJhc3RcIi5cbi8vXG4vLyBAcGFyYW0gJGNvbG9yLW1hcCBUaGUgdGhlbWUgcGFsZXR0ZSAob3V0cHV0IG9mIG1hdC1wYWxldHRlKS5cbi8vIEBwYXJhbSAkaHVlIFRoZSBodWUgZnJvbSB0aGUgcGFsZXR0ZSB0byB1c2UuIElmIHRoaXMgaXMgYSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEsIGl0IHdpbGxcbi8vICAgICBiZSB0cmVhdGVkIGFzIG9wYWNpdHkuXG4vLyBAcGFyYW0gJG9wYWNpdHkgVGhlIGFscGhhIGNoYW5uZWwgdmFsdWUgZm9yIHRoZSBjb2xvci5cbkBmdW5jdGlvbiBtYXQtY29sb3IoJHBhbGV0dGUsICRodWU6IGRlZmF1bHQsICRvcGFjaXR5OiBudWxsKSB7XG4gIC8vIElmIGh1ZUtleSBpcyBhIG51bWJlciBiZXR3ZWVuIHplcm8gYW5kIG9uZSwgdGhlbiBpdCBhY3R1YWxseSBjb250YWlucyBhblxuICAvLyBvcGFjaXR5IHZhbHVlLCBzbyByZWNhbGwgdGhpcyBmdW5jdGlvbiB3aXRoIHRoZSBkZWZhdWx0IGh1ZSBhbmQgdGhhdCBnaXZlbiBvcGFjaXR5LlxuICBAaWYgdHlwZS1vZigkaHVlKSA9PSBudW1iZXIgYW5kICRodWUgPj0gMCBhbmQgJGh1ZSA8PSAxIHtcbiAgICBAcmV0dXJuIG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdCwgJGh1ZSk7XG4gIH1cblxuICAkY29sb3I6IG1hcC1nZXQoJHBhbGV0dGUsICRodWUpO1xuXG4gIEBpZiAodHlwZS1vZigkY29sb3IpICE9IGNvbG9yKSB7XG4gICAgLy8gSWYgdGhlICRjb2xvciByZXNvbHZlZCB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gYSBjb2xvciAoZS5nLiBhIENTUyB2YXJpYWJsZSksXG4gICAgLy8gd2UgY2FuJ3QgYXBwbHkgdGhlIG9wYWNpdHkgYW55d2F5IHNvIHdlIHJldHVybiB0aGUgdmFsdWUgYXMgaXMsIG90aGVyd2lzZSBTYXNzIGNhblxuICAgIC8vIHRocm93IGFuIGVycm9yIG9yIG91dHB1dCBzb21ldGhpbmcgaW52YWxpZC5cbiAgICBAcmV0dXJuICRjb2xvcjtcbiAgfVxuXG4gIEByZXR1cm4gcmdiYSgkY29sb3IsIGlmKCRvcGFjaXR5ID09IG51bGwsIG9wYWNpdHkoJGNvbG9yKSwgJG9wYWNpdHkpKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBmb3IgYSBsaWdodCB0aGVtZSB0byBiZSBnaXZlbiB0byBpbmRpdmlkdWFsIGNvbXBvbmVudCB0aGVtZSBtaXhpbnMuXG5AZnVuY3Rpb24gbWF0LWxpZ2h0LXRoZW1lKCRwcmltYXJ5LCAkYWNjZW50LCAkd2FybjogbWF0LXBhbGV0dGUoJG1hdC1yZWQpKSB7XG4gIEByZXR1cm4gKFxuICAgIHByaW1hcnk6ICRwcmltYXJ5LFxuICAgIGFjY2VudDogJGFjY2VudCxcbiAgICB3YXJuOiAkd2FybixcbiAgICBpcy1kYXJrOiBmYWxzZSxcbiAgICBmb3JlZ3JvdW5kOiAkbWF0LWxpZ2h0LXRoZW1lLWZvcmVncm91bmQsXG4gICAgYmFja2dyb3VuZDogJG1hdC1saWdodC10aGVtZS1iYWNrZ3JvdW5kLFxuICApO1xufVxuXG5cbi8vIENyZWF0ZXMgYSBjb250YWluZXIgb2JqZWN0IGZvciBhIGRhcmsgdGhlbWUgdG8gYmUgZ2l2ZW4gdG8gaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLlxuQGZ1bmN0aW9uIG1hdC1kYXJrLXRoZW1lKCRwcmltYXJ5LCAkYWNjZW50LCAkd2FybjogbWF0LXBhbGV0dGUoJG1hdC1yZWQpKSB7XG4gIEByZXR1cm4gKFxuICAgIHByaW1hcnk6ICRwcmltYXJ5LFxuICAgIGFjY2VudDogJGFjY2VudCxcbiAgICB3YXJuOiAkd2FybixcbiAgICBpcy1kYXJrOiB0cnVlLFxuICAgIGZvcmVncm91bmQ6ICRtYXQtZGFyay10aGVtZS1mb3JlZ3JvdW5kLFxuICAgIGJhY2tncm91bmQ6ICRtYXQtZGFyay10aGVtZS1iYWNrZ3JvdW5kLFxuICApO1xufVxuXG5cblxuJG1hdC1yaXBwbGUtY29sb3Itb3BhY2l0eTogMC4xO1xuXG5AbWl4aW4gbWF0LXJpcHBsZSgpIHtcblxuICAvLyBUaGUgaG9zdCBlbGVtZW50IG9mIGFuIG1hdC1yaXBwbGUgZGlyZWN0aXZlIHNob3VsZCBhbHdheXMgaGF2ZSBhIHBvc2l0aW9uIG9mIFwiYWJzb2x1dGVcIiBvclxuICAvLyBcInJlbGF0aXZlXCIgc28gdGhhdCB0aGUgcmlwcGxlcyBpbnNpZGUgYXJlIGNvcnJlY3RseSBwb3NpdGlvbmVkIHJlbGF0aXZlbHkgdG8gdGhlIGNvbnRhaW5lci5cbiAgLm1hdC1yaXBwbGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAvLyBCeSBkZWZhdWx0LCBldmVyeSByaXBwbGUgY29udGFpbmVyIHNob3VsZCBoYXZlIHBvc2l0aW9uOiByZWxhdGl2ZSBpbiBmYXZvciBvZiBjcmVhdGluZyBhblxuICAgIC8vIGVhc3kgQVBJIGZvciBkZXZlbG9wZXJzIHVzaW5nIHRoZSBNYXRSaXBwbGUgZGlyZWN0aXZlLlxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5LCB0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG5cbiAgICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlIHJpcHBsZSBpcyBvcGFxdWUsIGNhdXNpbmcgaXQgdG8gb2JzdHJ1Y3QgdGhlIGNvbnRlbnQuXG4gICAgQGluY2x1ZGUgY2RrLWhpZ2gtY29udHJhc3Qge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLyogVGhlbWUgZm9yIHRoZSByaXBwbGUgZWxlbWVudHMuKi9cbkBtaXhpbiBtYXQtcmlwcGxlLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwX2dldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkZm9yZWdyb3VuZC1iYXNlOiBtYXBfZ2V0KCRmb3JlZ3JvdW5kLCBiYXNlKTtcblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAvLyBJZiB0aGUgcmlwcGxlIGNvbG9yIGlzIHJlc29sdmVzIHRvIGEgY29sb3IgKnR5cGUqLCB3ZSBjYW4gdXNlIGl0IGRpcmVjdGx5LCBvdGhlcndpc2VcbiAgICAvLyAoZS5nLiBpdCByZXNvbHZlcyB0byBhIENTUyB2YXJpYWJsZSkgd2UgZmFsbCBiYWNrIHRvIHVzaW5nIHRoZSBjb2xvciBhbmQgc2V0dGluZyBhbiBvcGFjaXR5LlxuICAgIEBpZiAodHlwZS1vZigkZm9yZWdyb3VuZC1iYXNlKSA9PSBjb2xvcikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkZm9yZWdyb3VuZC1iYXNlLCAkbWF0LXJpcHBsZS1jb2xvci1vcGFjaXR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZvcmVncm91bmQtYmFzZTtcbiAgICAgIG9wYWNpdHk6ICRtYXQtcmlwcGxlLWNvbG9yLW9wYWNpdHk7XG4gICAgfVxuICB9XG59XG5cblxuXG4vLyBVdGlsaXR5IGZvciBmZXRjaGluZyBhIG5lc3RlZCB2YWx1ZSBmcm9tIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsICRuYW1lKSB7XG4gIEByZXR1cm4gbWFwLWdldChtYXAtZ2V0KCRjb25maWcsICRsZXZlbCksICRuYW1lKTtcbn1cblxuLy8gR2V0cyB0aGUgZm9udCBzaXplIGZvciBhIGxldmVsIGluc2lkZSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIG1hdC1mb250LXNpemUoJGNvbmZpZywgJGxldmVsKSB7XG4gIEByZXR1cm4gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGZvbnQtc2l6ZSk7XG59XG5cbi8vIEdldHMgdGhlIGxpbmUgaGVpZ2h0IGZvciBhIGxldmVsIGluc2lkZSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgbGluZS1oZWlnaHQpO1xufVxuXG4vLyBHZXRzIHRoZSBmb250IHdlaWdodCBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgJGxldmVsKSB7XG4gIEByZXR1cm4gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGZvbnQtd2VpZ2h0KTtcbn1cblxuLy8gR2V0cyB0aGUgbGV0dGVyIHNwYWNpbmcgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWxldHRlci1zcGFjaW5nKCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBsZXR0ZXItc3BhY2luZyk7XG59XG5cbi8vIEdldHMgdGhlIGZvbnQtZmFtaWx5IGZyb20gYSB0eXBvZ3JhcGh5IGNvbmZpZyBhbmQgcmVtb3ZlcyB0aGUgcXVvdGVzIGFyb3VuZCBpdC5cbkBmdW5jdGlvbiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgJGxldmVsOiBudWxsKSB7XG4gICRmb250LWZhbWlseTogbWFwLWdldCgkY29uZmlnLCBmb250LWZhbWlseSk7XG5cbiAgQGlmICRsZXZlbCAhPSBudWxsIHtcbiAgICAkZm9udC1mYW1pbHk6IF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LWZhbWlseSk7XG4gIH1cblxuICAvLyBHdWFyZCBhZ2FpbnN0IHVucXVvdGluZyBub24tc3RyaW5nIHZhbHVlcywgYmVjYXVzZSBpdCdzIGRlcHJlY2F0ZWQuXG4gIEByZXR1cm4gaWYodHlwZS1vZigkZm9udC1mYW1pbHkpID09IHN0cmluZywgdW5xdW90ZSgkZm9udC1mYW1pbHkpLCAkZm9udC1mYW1pbHkpO1xufVxuXG4vLyBPdXRwdXRzIHRoZSBzaG9ydGhhbmQgYGZvbnRgIENTUyBwcm9wZXJ0eSwgYmFzZWQgb24gYSBzZXQgb2YgdHlwb2dyYXBoeSB2YWx1ZXMuIEZhbGxzIGJhY2sgdG9cbi8vIHRoZSBpbmRpdmlkdWFsIHByb3BlcnRpZXMgaWYgYSB2YWx1ZSB0aGF0IGlzbid0IGFsbG93ZWQgaW4gdGhlIHNob3J0aGFuZCBpcyBwYXNzZWQgaW4uXG5AbWl4aW4gbWF0LXR5cG9ncmFwaHktZm9udC1zaG9ydGhhbmQoJGZvbnQtc2l6ZSwgJGZvbnQtd2VpZ2h0LCAkbGluZS1oZWlnaHQsICRmb250LWZhbWlseSkge1xuICAvLyBJZiBhbnkgb2YgdGhlIHZhbHVlcyBhcmUgc2V0IHRvIGBpbmhlcml0YCwgd2UgY2FuJ3QgdXNlIHRoZSBzaG9ydGhhbmRcbiAgLy8gc28gd2UgZmFsbCBiYWNrIHRvIHBhc3NpbmcgaW4gdGhlIGluZGl2aWR1YWwgcHJvcGVydGllcy5cbiAgQGlmICgkZm9udC1zaXplID09IGluaGVyaXQgb3JcbiAgICAgICAkZm9udC13ZWlnaHQgPT0gaW5oZXJpdCBvclxuICAgICAgICRsaW5lLWhlaWdodCA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtZmFtaWx5ID09IGluaGVyaXQgb3JcbiAgICAgICAkZm9udC1zaXplID09IG51bGwgb3JcbiAgICAgICAkZm9udC13ZWlnaHQgPT0gbnVsbCBvclxuICAgICAgICRsaW5lLWhlaWdodCA9PSBudWxsIG9yXG4gICAgICAgJGZvbnQtZmFtaWx5ID09IG51bGwpIHtcblxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gT3RoZXJ3aXNlIHVzZSB0aGUgc2hvcnRoYW5kIGBmb250YCwgYmVjYXVzZSBpdCdzIHRoZSBsZWFzdCBhbW91bnQgb2YgYnl0ZXMuIE5vdGVcbiAgICAvLyB0aGF0IHdlIG5lZWQgdG8gdXNlIGludGVycG9sYXRpb24gZm9yIGBmb250LXNpemUvbGluZS1oZWlnaHRgIGluIG9yZGVyIHRvIHByZXZlbnRcbiAgICAvLyBTYXNzIGZyb20gZGl2aWRpbmcgdGhlIHR3byB2YWx1ZXMuXG4gICAgZm9udDogJGZvbnQtd2VpZ2h0ICN7JGZvbnQtc2l6ZX0vI3skbGluZS1oZWlnaHR9ICRmb250LWZhbWlseTtcbiAgfVxufVxuXG4vLyBDb252ZXJ0cyBhIHR5cG9ncmFwaHkgbGV2ZWwgaW50byBDU1Mgc3R5bGVzLlxuQG1peGluIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCAkbGV2ZWwpIHtcbiAgJGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCAkbGV2ZWwpO1xuICAkZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCAkbGV2ZWwpO1xuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCAkbGV2ZWwpO1xuICAkZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCAkbGV2ZWwpO1xuXG4gIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWZvbnQtc2hvcnRoYW5kKCRmb250LXNpemUsICRmb250LXdlaWdodCwgJGxpbmUtaGVpZ2h0LCAkZm9udC1mYW1pbHkpO1xuICBsZXR0ZXItc3BhY2luZzogbWF0LWxldHRlci1zcGFjaW5nKCRjb25maWcsICRsZXZlbCk7XG59XG5cblxuQG1peGluIG1hdC1vcHRpb24tdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtb3B0aW9uIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICY6aG92ZXI6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSxcbiAgICAmOmZvY3VzOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuXG4gICAgLy8gSW4gbXVsdGlwbGUgbW9kZSB0aGVyZSBpcyBhIGNoZWNrYm94IHRvIHNob3cgdGhhdCB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkLlxuICAgICYubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSk6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAmLm1hdC1vcHRpb24tZGlzYWJsZWQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaGludC10ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LXByaW1hcnkgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuICB9XG5cbiAgLm1hdC1hY2NlbnQgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gIH1cblxuICAubWF0LXdhcm4gLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtb3B0aW9uLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LW9wdGlvbiB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMik7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC1vcHRncm91cC10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LW9wdGdyb3VwLWRpc2FibGVkIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1vcHRncm91cC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMik7XG4gIH1cbn1cblxuXG5cbkBtaXhpbiBtYXQtcHNldWRvLWNoZWNrYm94LXRoZW1lKCR0aGVtZSkge1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcblxuICAvLyBOT1RFKHRyYXZpc2thdWZtYW4pOiBXaGlsZSB0aGUgc3BlYyBjYWxscyBmb3IgdHJhbnNsdWNlbnQgYmxhY2tzL3doaXRlcyBmb3IgZGlzYWJsZWQgY29sb3JzLFxuICAvLyB0aGlzIGRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGVsZW1lbnRzIGxheWVyZWQgb24gdG9wIG9mIG9uZSBhbm90aGVyLiBUbyBnZXQgYXJvdW5kIHRoaXMgd2VcbiAgLy8gYmxlbmQgdGhlIGNvbG9ycyB0b2dldGhlciBiYXNlZCBvbiB0aGUgYmFzZSBjb2xvciBhbmQgdGhlIHRoZW1lIGJhY2tncm91bmQuXG4gICR3aGl0ZS0zMHBjdC1vcGFjaXR5LW9uLWRhcms6ICM2ODY4Njg7XG4gICRibGFjay0yNnBjdC1vcGFjaXR5LW9uLWxpZ2h0OiAjYjBiMGIwO1xuICAkZGlzYWJsZWQtY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrLCAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodCk7XG4gICRjb2xvcmVkLWJveC1zZWxlY3RvcjogJy5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUnO1xuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94IHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKSwgc2Vjb25kYXJ5LXRleHQpO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYmFja2dyb3VuZCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICAgIGNvbG9yOiAkZGlzYWJsZWQtY29sb3I7XG4gIH1cblxuICAvLyBEZWZhdWx0IHRvIHRoZSBhY2NlbnQgY29sb3IuIE5vdGUgdGhhdCB0aGUgcHNldWRvIGNoZWNrYm94ZXMgYXJlIG1lYW50IHRvIGluaGVyaXQgdGhlXG4gIC8vIHRoZW1lIGZyb20gdGhlaXIgcGFyZW50LCByYXRoZXIgdGhhbiBpbXBsZW1lbnRpbmcgdGhlaXIgb3duIHRoZW1pbmcsIHdoaWNoIGlzIHdoeSB3ZVxuICAvLyBkb24ndCBhdHRhY2ggdG8gdGhlIGBtYXQtKmAgY2xhc3Nlcy5cbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSxcbiAgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpKTtcbiAgfVxuXG4gIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KSk7XG4gIH1cblxuICAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgd2FybikpO1xuICB9XG5cbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gICAgJi5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICAgIGJhY2tncm91bmQ6ICRkaXNhYmxlZC1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuXG5cbi8vIFJlcHJlc2VudHMgYSB0eXBvZ3JhcGh5IGxldmVsIGZyb20gdGhlIE1hdGVyaWFsIGRlc2lnbiBzcGVjLlxuQGZ1bmN0aW9uIG1hdC10eXBvZ3JhcGh5LWxldmVsKFxuICAkZm9udC1zaXplLFxuICAkbGluZS1oZWlnaHQ6ICRmb250LXNpemUsXG4gICRmb250LXdlaWdodDogNDAwLFxuICAkZm9udC1mYW1pbHk6IG51bGwsXG4gICRsZXR0ZXItc3BhY2luZzogbnVsbCkge1xuXG4gIEByZXR1cm4gKFxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZSxcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LFxuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQsXG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseSxcbiAgICBsZXR0ZXItc3BhY2luZzogJGxldHRlci1zcGFjaW5nXG4gICk7XG59XG5cbi8vIFJlcHJlc2VudHMgYSBjb2xsZWN0aW9uIG9mIHR5cG9ncmFwaHkgbGV2ZWxzLlxuLy8gRGVmYXVsdHMgY29tZSBmcm9tIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZ3VpZGVsaW5lcy9zdHlsZS90eXBvZ3JhcGh5Lmh0bWxcbi8vIE5vdGU6IFRoZSBzcGVjIGRvZXNuJ3QgbWVudGlvbiBsZXR0ZXIgc3BhY2luZy4gVGhlIHZhbHVlcyBoZXJlIGNvbWUgZnJvbVxuLy8gZXllYmFsbGluZyBpdCB1bnRpbCBpdCBsb29rZWQgZXhhY3RseSBsaWtlIHRoZSBzcGVjIGV4YW1wbGVzLlxuQGZ1bmN0aW9uIG1hdC10eXBvZ3JhcGh5LWNvbmZpZyhcbiAgJGZvbnQtZmFtaWx5OiAgICdSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZicsXG4gICRkaXNwbGF5LTQ6ICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxMTJweCwgMTEycHgsIDMwMCwgJGxldHRlci1zcGFjaW5nOiAtMC4wNWVtKSxcbiAgJGRpc3BsYXktMzogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDU2cHgsIDU2cHgsIDQwMCwgJGxldHRlci1zcGFjaW5nOiAtMC4wMmVtKSxcbiAgJGRpc3BsYXktMjogICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDQ1cHgsIDQ4cHgsIDQwMCwgJGxldHRlci1zcGFjaW5nOiAtMC4wMDVlbSksXG4gICRkaXNwbGF5LTE6ICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgzNHB4LCA0MHB4LCA0MDApLFxuICAkaGVhZGxpbmU6ICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMjRweCwgMzJweCwgNDAwKSxcbiAgJHRpdGxlOiAgICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDIwcHgsIDMycHgsIDUwMCksXG4gICRzdWJoZWFkaW5nLTI6ICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNnB4LCAyOHB4LCA0MDApLFxuICAkc3ViaGVhZGluZy0xOiAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTVweCwgMjRweCwgNDAwKSxcbiAgJGJvZHktMjogICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE0cHgsIDI0cHgsIDUwMCksXG4gICRib2R5LTE6ICAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNHB4LCAyMHB4LCA0MDApLFxuICAkY2FwdGlvbjogICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTJweCwgMjBweCwgNDAwKSxcbiAgJGJ1dHRvbjogICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE0cHgsIDE0cHgsIDUwMCksXG4gIC8vIExpbmUtaGVpZ2h0IG11c3QgYmUgdW5pdC1sZXNzIGZyYWN0aW9uIG9mIHRoZSBmb250LXNpemUuXG4gICRpbnB1dDogICAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbChpbmhlcml0LCAxLjEyNSwgNDAwKVxuKSB7XG5cbiAgLy8gRGVjbGFyZSBhbiBpbml0aWFsIG1hcCB3aXRoIGFsbCBvZiB0aGUgbGV2ZWxzLlxuICAkY29uZmlnOiAoXG4gICAgZGlzcGxheS00OiAgICAgICRkaXNwbGF5LTQsXG4gICAgZGlzcGxheS0zOiAgICAgICRkaXNwbGF5LTMsXG4gICAgZGlzcGxheS0yOiAgICAgICRkaXNwbGF5LTIsXG4gICAgZGlzcGxheS0xOiAgICAgICRkaXNwbGF5LTEsXG4gICAgaGVhZGxpbmU6ICAgICAgICRoZWFkbGluZSxcbiAgICB0aXRsZTogICAgICAgICAgJHRpdGxlLFxuICAgIHN1YmhlYWRpbmctMjogICAkc3ViaGVhZGluZy0yLFxuICAgIHN1YmhlYWRpbmctMTogICAkc3ViaGVhZGluZy0xLFxuICAgIGJvZHktMjogICAgICAgICAkYm9keS0yLFxuICAgIGJvZHktMTogICAgICAgICAkYm9keS0xLFxuICAgIGNhcHRpb246ICAgICAgICAkY2FwdGlvbixcbiAgICBidXR0b246ICAgICAgICAgJGJ1dHRvbixcbiAgICBpbnB1dDogICAgICAgICAgJGlucHV0LFxuICApO1xuXG4gIC8vIExvb3AgdGhyb3VnaCB0aGUgbGV2ZWxzIGFuZCBzZXQgdGhlIGBmb250LWZhbWlseWAgb2YgdGhlIG9uZXMgdGhhdCBkb24ndCBoYXZlIG9uZSB0byB0aGUgYmFzZS5cbiAgLy8gTm90ZSB0aGF0IFNhc3MgY2FuJ3QgbW9kaWZ5IG1hcHMgaW4gcGxhY2UsIHdoaWNoIG1lYW5zIHRoYXQgd2UgbmVlZCB0byBtZXJnZSBhbmQgcmUtYXNzaWduLlxuICBAZWFjaCAka2V5LCAkbGV2ZWwgaW4gJGNvbmZpZyB7XG4gICAgQGlmIG1hcC1nZXQoJGxldmVsLCBmb250LWZhbWlseSkgPT0gbnVsbCB7XG4gICAgICAkbmV3LWxldmVsOiBtYXAtbWVyZ2UoJGxldmVsLCAoZm9udC1mYW1pbHk6ICRmb250LWZhbWlseSkpO1xuICAgICAgJGNvbmZpZzogbWFwLW1lcmdlKCRjb25maWcsICgka2V5OiAkbmV3LWxldmVsKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQWRkIHRoZSBiYXNlIGZvbnQgZmFtaWx5IHRvIHRoZSBjb25maWcuXG4gIEByZXR1cm4gbWFwLW1lcmdlKCRjb25maWcsIChmb250LWZhbWlseTogJGZvbnQtZmFtaWx5KSk7XG59XG5cbi8vIEFkZHMgdGhlIGJhc2UgdHlwb2dyYXBoeSBzdHlsZXMsIGJhc2VkIG9uIGEgY29uZmlnLlxuQG1peGluIG1hdC1iYXNlLXR5cG9ncmFwaHkoJGNvbmZpZywgJHNlbGVjdG9yOiAnLm1hdC10eXBvZ3JhcGh5Jykge1xuICAubWF0LWgxLCAubWF0LWhlYWRsaW5lLCAjeyRzZWxlY3Rvcn0gaDEge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBoZWFkbGluZSk7XG4gICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgfVxuXG4gIC5tYXQtaDIsIC5tYXQtdGl0bGUsICN7JHNlbGVjdG9yfSBoMiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHRpdGxlKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oMywgLm1hdC1zdWJoZWFkaW5nLTIsICN7JHNlbGVjdG9yfSBoMyB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHN1YmhlYWRpbmctMik7XG4gICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgfVxuXG4gIC5tYXQtaDQsIC5tYXQtc3ViaGVhZGluZy0xLCAjeyRzZWxlY3Rvcn0gaDQge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gIH1cblxuICAvLyBOb3RlOiB0aGUgc3BlYyBkb2Vzbid0IGhhdmUgYW55dGhpbmcgdGhhdCB3b3VsZCBjb3JyZXNwb25kIHRvIGg1IGFuZCBoNiwgYnV0IHdlIGFkZCB0aGVzZSBmb3JcbiAgLy8gY29uc2lzdGVuY3kuIFRoZSBmb250IHNpemVzIGNvbWUgZnJvbSB0aGUgQ2hyb21lIHVzZXIgYWdlbnQgc3R5bGVzIHdoaWNoIGhhdmUgaDUgYXQgMC44M2VtXG4gIC8vIGFuZCBoNiBhdCAwLjY3ZW0uXG4gIC5tYXQtaDUsICN7JHNlbGVjdG9yfSBoNSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktZm9udC1zaG9ydGhhbmQoXG4gICAgICAgLy8gY2FsYyBpcyB1c2VkIGhlcmUgdG8gc3VwcG9ydCBjc3MgdmFyaWFibGVzXG4gICAgICBjYWxjKCN7bWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpfSAqIDAuODMpLFxuICAgICAgbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSksXG4gICAgICBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTEpXG4gICAgKTtcblxuICAgIG1hcmdpbjogMCAwIDEycHg7XG4gIH1cblxuICAubWF0LWg2LCAjeyRzZWxlY3Rvcn0gaDYge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWZvbnQtc2hvcnRoYW5kKFxuICAgICAgIC8vIGNhbGMgaXMgdXNlZCBoZXJlIHRvIHN1cHBvcnQgY3NzIHZhcmlhYmxlc1xuICAgICAgY2FsYygje21hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKX0gKiAwLjY3KSxcbiAgICAgIG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGJvZHktMSksXG4gICAgICBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKVxuICAgICk7XG5cbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICB9XG5cbiAgLm1hdC1ib2R5LXN0cm9uZywgLm1hdC1ib2R5LTIge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTIpO1xuICB9XG5cbiAgLm1hdC1ib2R5LCAubWF0LWJvZHktMSwgI3skc2VsZWN0b3J9IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgYm9keS0xKTtcblxuICAgIHAge1xuICAgICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgICB9XG4gIH1cblxuICAubWF0LXNtYWxsLCAubWF0LWNhcHRpb24ge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBjYXB0aW9uKTtcbiAgfVxuXG4gIC5tYXQtZGlzcGxheS00LCAjeyRzZWxlY3Rvcn0gLm1hdC1kaXNwbGF5LTQge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBkaXNwbGF5LTQpO1xuICAgIG1hcmdpbjogMCAwIDU2cHg7XG4gIH1cblxuICAubWF0LWRpc3BsYXktMywgI3skc2VsZWN0b3J9IC5tYXQtZGlzcGxheS0zIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgZGlzcGxheS0zKTtcbiAgICBtYXJnaW46IDAgMCA2NHB4O1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTIsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktMiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktMik7XG4gICAgbWFyZ2luOiAwIDAgNjRweDtcbiAgfVxuXG4gIC5tYXQtZGlzcGxheS0xLCAjeyRzZWxlY3Rvcn0gLm1hdC1kaXNwbGF5LTEge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBkaXNwbGF5LTEpO1xuICAgIG1hcmdpbjogMCAwIDY0cHg7XG4gIH1cbn1cblxuXG5cblxuQG1peGluIG1hdC1hdXRvY29tcGxldGUtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG5cbiAgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDQsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgIC8vIFNlbGVjdGVkIG9wdGlvbnMgaW4gYXV0b2NvbXBsZXRlcyBzaG91bGQgbm90IGJlIGdyYXksIGJ1dCB3ZVxuICAgIC8vIG9ubHkgd2FudCB0byBvdmVycmlkZSB0aGUgYmFja2dyb3VuZCBmb3Igc2VsZWN0ZWQgb3B0aW9ucyBpZlxuICAgIC8vIHRoZXkgYXJlICpub3QqIGluIGhvdmVyIG9yIGZvY3VzIHN0YXRlLiBUaGlzIGNoYW5nZSBoYXMgdG8gYmVcbiAgICAvLyBtYWRlIGhlcmUgYmVjYXVzZSBiYXNlIG9wdGlvbiBzdHlsZXMgYXJlIHNoYXJlZCBiZXR3ZWVuIHRoZVxuICAgIC8vIGF1dG9jb21wbGV0ZSBhbmQgdGhlIHNlbGVjdC5cbiAgICAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKSB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuXG4gICAgICAmOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG5AbWl4aW4gbWF0LWF1dG9jb21wbGV0ZS10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG4vLyBUaGlzIGNvbnRhaW5zIGFsbCBvZiB0aGUgc3R5bGVzIGZvciB0aGUgYmFkZ2Vcbi8vIHJhdGhlciB0aGFuIGp1c3QgdGhlIGNvbG9yL3RoZW1lIGJlY2F1c2Ugb2Zcbi8vIG5vIHN0eWxlIHNoZWV0IHN1cHBvcnQgZm9yIGRpcmVjdGl2ZXMuXG5cblxuXG5cblxuJG1hdC1iYWRnZS1mb250LXNpemU6IDEycHg7XG4kbWF0LWJhZGdlLWZvbnQtd2VpZ2h0OiA2MDA7XG4kbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZTogMjJweCAhZGVmYXVsdDtcbiRtYXQtYmFkZ2Utc21hbGwtc2l6ZTogJG1hdC1iYWRnZS1kZWZhdWx0LXNpemUgLSA2O1xuJG1hdC1iYWRnZS1sYXJnZS1zaXplOiAkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSArIDY7XG5cbi8vIE1peGluIGZvciBidWlsZGluZyBvZmZzZXQgZ2l2ZW4gZGlmZmVyZW50IHNpemVzXG5AbWl4aW4gX21hdC1iYWRnZS1zaXplKCRzaXplKSB7XG4gIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgd2lkdGg6ICRzaXplO1xuICAgIGhlaWdodDogJHNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRzaXplO1xuICB9XG5cbiAgJi5tYXQtYmFkZ2UtYWJvdmUge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICB0b3A6IC0kc2l6ZSAvIDI7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2UtYmVsb3cge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBib3R0b206IC0kc2l6ZSAvIDI7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgbGVmdDogLSRzaXplO1xuICAgIH1cbiAgfVxuXG4gIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWJlZm9yZSB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogLSRzaXplO1xuICAgIH1cbiAgfVxuXG4gICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgcmlnaHQ6IC0kc2l6ZTtcbiAgICB9XG4gIH1cblxuICBbZGlyPSdydGwnXSAmLm1hdC1iYWRnZS1hZnRlciB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgbGVmdDogLSRzaXplO1xuICAgIH1cbiAgfVxuXG4gICYubWF0LWJhZGdlLW92ZXJsYXAge1xuICAgICYubWF0LWJhZGdlLWJlZm9yZSB7XG4gICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICBsZWZ0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWJlZm9yZSB7XG4gICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICByaWdodDogLSRzaXplIC8gMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1iYWRnZS1hZnRlciB7XG4gICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICByaWdodDogLSRzaXplIC8gMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBbZGlyPSdydGwnXSAmLm1hdC1iYWRnZS1hZnRlciB7XG4gICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbGVmdDogLSRzaXplIC8gMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1iYWRnZS10aGVtZSgkdGhlbWUpIHtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuXG4gICAgQGluY2x1ZGUgY2RrLWhpZ2gtY29udHJhc3Qge1xuICAgICAgb3V0bGluZTogc29saWQgMXB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlLWFjY2VudCB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZS13YXJuIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHdhcm4pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5tYXQtYmFkZ2UtaGlkZGVuIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlLWRpc2FibGVkIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgJGFwcC1iYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdiYWNrZ3JvdW5kJyk7XG4gICAgICAkYmFkZ2UtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtYnV0dG9uKTtcblxuICAgICAgLy8gVGhlIGRpc2FibGVkIGNvbG9yIHVzdWFsbHkgaGFzIHNvbWUga2luZCBvZiBvcGFjaXR5LCBidXQgYmVjYXVzZSB0aGUgYmFkZ2UgaXMgb3ZlcmxheWVkXG4gICAgICAvLyBvbiB0b3Agb2Ygc29tZXRoaW5nIGVsc2UsIGl0IHdvbid0IGxvb2sgZ29vZCBpZiBpdCdzIG9wYXF1ZS4gSWYgaXQgaXMgYSBjb2xvciAqdHlwZSosXG4gICAgICAvLyB3ZSBjb252ZXJ0IGl0IGludG8gYSBzb2xpZCBjb2xvciBieSB0YWtpbmcgdGhlIG9wYWNpdHkgZnJvbSB0aGUgcmdiYSB2YWx1ZSBhbmQgdXNpbmdcbiAgICAgIC8vIHRoZSB2YWx1ZSB0byBkZXRlcm1pbmUgdGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhY2tncm91bmQgdG8gcHV0IGludG8gZm9yZWdyb3VuZCB3aGVuXG4gICAgICAvLyBtaXhpbmcgdGhlIGNvbG9ycyB0b2dldGhlci5cbiAgICAgIEBpZiAodHlwZS1vZigkYmFkZ2UtY29sb3IpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRhcHAtYmFja2dyb3VuZCkgPT0gY29sb3IpIHtcbiAgICAgICAgJGJhZGdlLW9wYWNpdHk6IG9wYWNpdHkoJGJhZGdlLWNvbG9yKTtcbiAgICAgICAgYmFja2dyb3VuZDogbWl4KCRhcHAtYmFja2dyb3VuZCwgcmdiYSgkYmFkZ2UtY29sb3IsIDEpLCAoMSAtICRiYWRnZS1vcGFjaXR5KSAqIDEwMCUpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYmFkZ2UtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlLWluLW91dDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgLm5nLWFuaW1hdGUtZGlzYWJsZWQgLm1hdC1iYWRnZS1jb250ZW50LFxuICAubWF0LWJhZGdlLWNvbnRlbnQuX21hdC1hbmltYXRpb24tbm9vcGFibGUge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBUaGUgYWN0aXZlIGNsYXNzIGlzIGFkZGVkIGFmdGVyIHRoZSBlbGVtZW50IGlzIGFkZGVkXG4gIC8vIHNvIGl0IGNhbiBhbmltYXRlIHNjYWxlIHRvIGRlZmF1bHRcbiAgLm1hdC1iYWRnZS1jb250ZW50Lm1hdC1iYWRnZS1hY3RpdmUge1xuICAgIC8vIFNjYWxlIHRvIGBub25lYCBpbnN0ZWFkIG9mIGAxYCB0byBhdm9pZCBibHVycnkgdGV4dCBpbiBzb21lIGJyb3dzZXJzLlxuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC5tYXQtYmFkZ2Utc21hbGwge1xuICAgIEBpbmNsdWRlIF9tYXQtYmFkZ2Utc2l6ZSgkbWF0LWJhZGdlLXNtYWxsLXNpemUpO1xuICB9XG4gIC5tYXQtYmFkZ2UtbWVkaXVtIHtcbiAgICBAaW5jbHVkZSBfbWF0LWJhZGdlLXNpemUoJG1hdC1iYWRnZS1kZWZhdWx0LXNpemUpO1xuICB9XG4gIC5tYXQtYmFkZ2UtbGFyZ2Uge1xuICAgIEBpbmNsdWRlIF9tYXQtYmFkZ2Utc2l6ZSgkbWF0LWJhZGdlLWxhcmdlLXNpemUpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYmFkZ2UtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgZm9udC13ZWlnaHQ6ICRtYXQtYmFkZ2UtZm9udC13ZWlnaHQ7XG4gICAgZm9udC1zaXplOiAkbWF0LWJhZGdlLWZvbnQtc2l6ZTtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1zbWFsbCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIC8vIFNldCB0aGUgZm9udCBzaXplIHRvIDc1JSBvZiB0aGUgb3JpZ2luYWwuXG4gICAgZm9udC1zaXplOiAkbWF0LWJhZGdlLWZvbnQtc2l6ZSAqIDAuNzU7XG4gIH1cblxuICAubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgZm9udC1zaXplOiAkbWF0LWJhZGdlLWZvbnQtc2l6ZSAqIDI7XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LWJvdHRvbS1zaGVldC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDE2LCAkdGhlbWUpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlhbG9nKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJvdHRvbS1zaGVldC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgYm9keS0xKTtcbiAgfVxufVxuXG5cblxuXG5cbiRfbWF0LWJ1dHRvbi1yaXBwbGUtb3BhY2l0eTogMC4xO1xuXG4vLyBBcHBsaWVzIGEgZm9jdXMgc3R5bGUgdG8gYW4gbWF0LWJ1dHRvbiBlbGVtZW50IGZvciBlYWNoIG9mIHRoZSBzdXBwb3J0ZWQgcGFsZXR0ZXMuXG5AbWl4aW4gX21hdC1idXR0b24tZm9jdXMtb3ZlcmxheS1jb2xvcigkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgJi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICB9XG5cbiAgJi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgfVxuXG4gICYubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgfVxuXG4gICZbZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1yaXBwbGUtY29sb3IoJHRoZW1lLCAkaHVlLCAkb3BhY2l0eTogJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5KSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gICYubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cblxuICAmLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsICRodWUsICRvcGFjaXR5KTtcbiAgfVxuXG4gICYubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuLCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cbn1cblxuLy8gQXBwbGllcyBhIHByb3BlcnR5IHRvIGFuIG1hdC1idXR0b24gZWxlbWVudCBmb3IgZWFjaCBvZiB0aGUgc3VwcG9ydGVkIHBhbGV0dGVzLlxuQG1peGluIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJHByb3BlcnR5LCAkaHVlKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICYubWF0LXByaW1hcnkge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwcmltYXJ5LCAkaHVlKTtcbiAgfVxuICAmLm1hdC1hY2NlbnQge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRhY2NlbnQsICRodWUpO1xuICB9XG4gICYubWF0LXdhcm4ge1xuICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCR3YXJuLCAkaHVlKTtcbiAgfVxuXG4gICYubWF0LXByaW1hcnksICYubWF0LWFjY2VudCwgJi5tYXQtd2FybiwgJltkaXNhYmxlZF0ge1xuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICRwYWxldHRlOiBpZigkcHJvcGVydHkgPT0gJ2NvbG9yJywgJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKTtcbiAgICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwYWxldHRlLCBkaXNhYmxlZC1idXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJ1dHRvbi10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24ge1xuICAgIC8vIEJ1dHRvbnMgd2l0aG91dCBhIGJhY2tncm91bmQgY29sb3Igc2hvdWxkIGluaGVyaXQgdGhlIGZvbnQgY29sb3IuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvXG4gICAgLy8gZW5zdXJlIHRoYXQgdGhlIGJ1dHRvbiBpcyByZWFkYWJsZSBvbiBjdXN0b20gYmFja2dyb3VuZCBjb2xvcnMuIEl0J3Mgd3JvbmcgdG8gYWx3YXlzIGFzc3VtZVxuICAgIC8vIHRoYXQgdGhvc2UgYnV0dG9ucyBhcmUgYWx3YXlzIHBsYWNlZCBpbnNpZGUgb2YgY29udGFpbmVycyB3aXRoIHRoZSBkZWZhdWx0IGJhY2tncm91bmRcbiAgICAvLyBjb2xvciBvZiB0aGUgdGhlbWUgKGUuZy4gdGhlbWVkIHRvb2xiYXJzKS5cbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJ2NvbG9yJywgdGV4dCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tZm9jdXMtb3ZlcmxheS1jb2xvcigkdGhlbWUpO1xuXG4gICAgLy8gU2V0dXAgdGhlIHJpcHBsZSBjb2xvciB0byBiZSBiYXNlZCBvbiB0aGUgdGV4dCBjb2xvci4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHJpcHBsZXNcbiAgICAvLyBhcmUgbWF0Y2hpbmcgd2l0aCB0aGUgY3VycmVudCB0aGVtZSBwYWxldHRlIGFuZCBhcmUgaW4gY29udHJhc3QgdG8gdGhlIGJhY2tncm91bmQgY29sb3JcbiAgICAvLyAoZS5nIGluIHRoZW1lZCB0b29sYmFycykuXG4gICAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBvcGFjaXR5OiAkX21hdC1idXR0b24tcmlwcGxlLW9wYWNpdHk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZDogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gIH1cblxuICAvLyBOb3RlOiB0aGlzIG5lZWRzIGEgYml0IGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHdlJ3JlIG5vdCBndWFyYW50ZWVkIHRoZSBpbmNsdXNpb25cbiAgLy8gb3JkZXIgb2YgdGhlIHRoZW1lIHN0eWxlcyBhbmQgdGhlIGJ1dHRvbiByZXNldCBtYXkgZW5kIHVwIHJlc2V0dGluZyB0aGlzIGFzIHdlbGwuXG4gIC5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWZsYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICAvLyBEZWZhdWx0IGZvbnQgYW5kIGJhY2tncm91bmQgY29sb3Igd2hlbiBub3QgdXNpbmcgYW55IGNvbG9yIHBhbGV0dGUuXG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCByYWlzZWQtYnV0dG9uKTtcblxuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJ2NvbG9yJywgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tdGhlbWUtcHJvcGVydHkoJHRoZW1lLCAnYmFja2dyb3VuZC1jb2xvcicsIGRlZmF1bHQpO1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1jb2xvcigkdGhlbWUsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC1zdHJva2VkLWJ1dHRvbiwgLm1hdC1mbGF0LWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtcmFpc2VkLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcblxuICAgICY6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig4LCAkdGhlbWUpO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mYWIsIC5tYXQtbWluaS1mYWIge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDYsICR0aGVtZSk7XG5cbiAgICAmOm5vdChbZGlzYWJsZWRdKTphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMTIsICR0aGVtZSk7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJHRoZW1lKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1idXR0b24tdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24sXG4gIC5tYXQtZmxhdC1idXR0b24sIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYnV0dG9uKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGRpdmlkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBmb2N1c2VkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGZvY3VzZWQtYnV0dG9uLCAxKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggJGRpdmlkZXItY29sb3I7XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJvcmRlci1yaWdodDogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwge1xuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCAkZGl2aWRlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBzZWxlY3RlZC1idXR0b24pO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLWJ1dHRvbik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24tdG9nZ2xlKTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIH1cblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGJvcmRlcjogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtY2FyZC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWNhcmQge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDEsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgIC8vIE5lZWRzIGV4dHJhIHNwZWNpZmljaXR5IHRvIGJlIGFibGUgdG8gb3ZlcnJpZGUgdGhlIGVsZXZhdGlvbiBzZWxlY3RvcnMuXG4gICAgJi5tYXQtY2FyZC1mbGF0IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jYXJkLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWNhcmQge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhcmQtdGl0bGUge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgaGVhZGxpbmUpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgdGl0bGUpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxlIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgdGl0bGUpO1xuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlLFxuICAubWF0LWNhcmQtY29udGVudCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtY2hlY2tib3gtdGhlbWUoJHRoZW1lKSB7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG5cbiAgLy8gVGhlIGNvbG9yIG9mIHRoZSBjaGVja2JveCdzIGNoZWNrbWFyayAvIG1peGVkbWFyay5cbiAgJGNoZWNrYm94LW1hcmstY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuXG4gIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gICAgZmlsbDogJGNoZWNrYm94LW1hcmstY29sb3I7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgICAvLyAhaW1wb3J0YW50IGlzIG5lZWRlZCBoZXJlIGJlY2F1c2UgYSBzdHJva2UgbXVzdCBiZSBzZXQgYXMgYW5cbiAgICAvLyBhdHRyaWJ1dGUgb24gdGhlIFNWRyBpbiBvcmRlciBmb3IgbGluZSBhbmltYXRpb24gdG8gd29yayBwcm9wZXJseS5cbiAgICBzdHJva2U6ICRjaGVja2JveC1tYXJrLWNvbG9yICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdChibGFjay1vbi13aGl0ZSkge1xuICAgICAgLy8gSGF2aW5nIHRoZSBvbmUgYWJvdmUgYmUgIWltcG9ydGFudCBlbmRzIHVwIG92ZXJyaWRpbmcgdGhlIGJyb3dzZXIncyBhdXRvbWF0aWNcbiAgICAgIC8vIGNvbG9yIGludmVyc2lvbiBzbyB3ZSBuZWVkIHRvIHJlLWludmVydCBpdCBvdXJzZWx2ZXMgZm9yIGJsYWNrLW9uLXdoaXRlLlxuICAgICAgc3Ryb2tlOiAjMDAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGVja2JveC1tYXJrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLCAubWF0LWNoZWNrYm94LWNoZWNrZWQge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICAmLm1hdC1jaGVja2JveC1jaGVja2VkLFxuICAgICYubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tib3gtY2hlY2tlZCkge1xuICAgICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG4gIH1cblxuICAvLyBUaGlzIG9uZSBpcyBtb3ZlZCBkb3duIGhlcmUgc28gaXQgY2FuIHRhcmdldCBib3RoXG4gIC8vIHRoZSB0aGVtZSBjb2xvcnMgYW5kIHRoZSBkaXNhYmxlZCBzdGF0ZS5cbiAgQGluY2x1ZGUgY2RrLWhpZ2gtY29udHJhc3Qge1xuICAgIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICAvLyBOZWVkcyB0byBiZSByZW1vdmVkIGJlY2F1c2UgaXQgaGlkZXMgdGhlIGNoZWNrYm94IG91dGxpbmUuXG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gIC8vIHRvIGNvbnRyb2wgaG93IG9wYXF1ZSB0aGUgcmlwcGxlIHNob3VsZCBiZS5cbiAgLm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXBfZ2V0KG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKSwgYmFzZSk7XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLFxuICAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGVja2JveC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1jaGVja2JveCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC8vIFRPRE8oa2FyYSk6IFJlbW92ZSB0aGlzIHN0eWxlIHdoZW4gZml4aW5nIHZlcnRpY2FsIGJhc2VsaW5lXG4gIC5tYXQtY2hlY2tib3gtbGF5b3V0IC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgIGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxufVxuXG5cblxuXG5cblxuJG1hdC1jaGlwLXJlbW92ZS1mb250LXNpemU6IDE4cHg7XG5cbkBtaXhpbiBtYXQtY2hpcHMtY29sb3IoJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBjb2xvcjogJGZvcmVncm91bmQ7XG5cbiAgLm1hdC1jaGlwLXJlbW92ZSB7XG4gICAgY29sb3I6ICRmb3JlZ3JvdW5kO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCRwYWxldHRlKSB7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy1jb2xvcihtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpLCBtYXQtY29sb3IoJHBhbGV0dGUpKTtcblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QsIDAuMSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgJHVuc2VsZWN0ZWQtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCB1bnNlbGVjdGVkLWNoaXApO1xuICAkdW5zZWxlY3RlZC1mb3JlZ3JvdW5kOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCB7XG4gICAgQGluY2x1ZGUgbWF0LWNoaXBzLWNvbG9yKCR1bnNlbGVjdGVkLWZvcmVncm91bmQsICR1bnNlbGVjdGVkLWJhY2tncm91bmQpO1xuXG4gICAgJjpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSB7XG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDMsICR0aGVtZSk7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjU0O1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWNoaXAtZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogMC40O1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hcF9nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZCB7XG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2hpcHMtdGhlbWUtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWNoaXAge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcblxuICAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uLFxuICAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkbWF0LWNoaXAtcmVtb3ZlLWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXRhYmxlLXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdGFibGUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdGFibGUgdGhlYWQsIC5tYXQtdGFibGUgdGJvZHksIC5tYXQtdGFibGUgdGZvb3QsXG4gIG1hdC1oZWFkZXItcm93LCBtYXQtcm93LCBtYXQtZm9vdGVyLXJvdyxcbiAgW21hdC1oZWFkZXItcm93XSwgW21hdC1yb3ddLCBbbWF0LWZvb3Rlci1yb3ddLFxuICAubWF0LXRhYmxlLXN0aWNreSB7XG4gICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgfVxuXG4gIG1hdC1yb3csIG1hdC1oZWFkZXItcm93LCBtYXQtZm9vdGVyLXJvdyxcbiAgdGgubWF0LWhlYWRlci1jZWxsLCB0ZC5tYXQtY2VsbCwgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYmxlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRhYmxlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1oZWFkZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtY2VsbCwgLm1hdC1mb290ZXItY2VsbCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuXG5cblxuJG1hdC1kYXRlcGlja2VyLXNlbGVjdGVkLXRvZGF5LWJveC1zaGFkb3ctd2lkdGg6IDFweDtcbiRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudDogMC42O1xuJG1hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50OiAwLjI7XG4kbWF0LWNhbGVuZGFyLWJvZHktZm9udC1zaXplOiAxM3B4ICFkZWZhdWx0O1xuJG1hdC1jYWxlbmRhci13ZWVrZGF5LXRhYmxlLWZvbnQtc2l6ZTogMTFweCAhZGVmYXVsdDtcblxuQG1peGluIF9tYXQtZGF0ZXBpY2tlci1jb2xvcigkcGFsZXR0ZSkge1xuICAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgICRiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRiYWNrZ3JvdW5kKSA9PSBjb2xvcikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZmFkZS1vdXQoJGJhY2tncm91bmQsICRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIElmIHdlIGNvdWxkbid0IHJlc29sdmUgdG8gYmFja2dyb3VuZCB0byBhIGNvbG9yIChlLmcuIGl0J3MgYSBDU1MgdmFyaWFibGUpLFxuICAgICAgLy8gZmFsbCBiYWNrIHRvIGZhZGluZyB0aGUgY29udGVudCBvdXQgdmlhIGBvcGFjaXR5YC5cbiAgICAgIG9wYWNpdHk6ICRtYXQtZGF0ZXBpY2tlci10b2RheS1mYWRlLWFtb3VudDtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwICRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC10b2RheS1ib3gtc2hhZG93LXdpZHRoXG4gICAgICAgICAgICAgICAgbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG5cbiAgLm1hdC1jYWxlbmRhci1hcnJvdyB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC8vIFRoZSBwcmV2L25leHQgYnV0dG9ucyBuZWVkIGEgYml0IG1vcmUgc3BlY2lmaWNpdHkgdG9cbiAgLy8gYXZvaWQgYmVpbmcgb3ZlcndyaXR0ZW4gYnkgdGhlIC5tYXQtaWNvbi1idXR0b24uXG4gIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItcHJldmlvdXMtYnV0dG9uIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBpY29uKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQpOmhvdmVyLFxuICAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSxcbiAgLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSB7XG4gICAgJiA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICAvLyBOb3RlOiB0aG91Z2ggaXQncyBub3QgdGV4dCwgdGhlIGJvcmRlciBpcyBhIGhpbnQgYWJvdXQgdGhlIGZhY3QgdGhhdCB0aGlzIGlzIHRvZGF5J3MgZGF0ZSxcbiAgICAvLyBzbyB3ZSB1c2UgdGhlIGhpbnQgY29sb3IuXG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICAgICRjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogZmFkZS1vdXQoJGNvbG9yLCAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBJZiB0aGUgY29sb3IgZGlkbid0IHJlc29sdmUgdG8gYSBjb2xvciB2YWx1ZSwgYnV0IHNvbWV0aGluZyBsaWtlIGEgQ1NTIHZhcmlhYmxlLCB3ZSBjYW4ndFxuICAgICAgLy8gZmFkZSBpdCBvdXQgc28gd2UgZmFsbCBiYWNrIHRvIHJlZHVjaW5nIHRoZSBlbGVtZW50IG9wYWNpdHkuIE5vdGUgdGhhdCB3ZSBkb24ndCB1c2UgdGhlXG4gICAgICAvLyAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQsIGJlY2F1c2UgaGludCB0ZXh0IHVzdWFsbHkgaGFzIHNvbWUgb3BhY2l0eSBhcHBsaWVkXG4gICAgICAvLyB0byBpdCBhbHJlYWR5IGFuZCB3ZSBkb24ndCB3YW50IHRoZW0gdG8gc3RhY2sgb24gdG9wIG9mIGVhY2ggb3RoZXIuXG4gICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KSk7XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDQsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItY29sb3IobWFwLWdldCgkdGhlbWUsIGFjY2VudCkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJHRoZW1lLCB3YXJuKSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQtdG91Y2gge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gIH1cblxuICAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSksIHRleHQpO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIGFjY2VudCksIHRleHQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgd2FybiksIHRleHQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWRhdGVwaWNrZXItdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtY2FsZW5kYXIge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHkge1xuICAgIGZvbnQtc2l6ZTogJG1hdC1jYWxlbmRhci1ib2R5LWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCxcbiAgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHRoIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiAkbWF0LWNhbGVuZGFyLXdlZWtkYXktdGFibGUtZm9udC1zaXplO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1kaWFsb2ctdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1kaWFsb2ctY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigyNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpYWxvZyk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1kaWFsb2ctdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWV4cGFuc2lvbi1wYW5lbC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMiwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1hY3Rpb24tcm93IHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gICAgJjpub3QoW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSkge1xuICAgICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAgICYuY2RrLXByb2dyYW0tZm9jdXNlZCxcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlIHRoZSBob3ZlciBvbiB0b3VjaCBkZXZpY2VzIHNpbmNlIGl0IGNhbiBhcHBlYXIgbGlrZSBpdCBpcyBzdHVjay4gV2UgY2FuJ3QgdXNlXG4gIC8vIGBAbWVkaWEgKGhvdmVyKWAgYWJvdmUsIGJlY2F1c2UgdGhlIGRlc2t0b3Agc3VwcG9ydCBicm93c2VyIHN1cHBvcnQgaXNuJ3QgZ3JlYXQuXG4gIEBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPSd0cnVlJ10pXG4gICAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuICAubWF0LWV4cGFuc2lvbi1pbmRpY2F0b3I6OmFmdGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24pO1xuXG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlLFxuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1leHBhbnNpb24tcGFuZWwtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgc3ViaGVhZGluZy0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgc3ViaGVhZGluZy0xKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuLy8gVGhpcyBtaXhpbiB3aWxsIGVuc3VyZSB0aGF0IGxpbmVzIHRoYXQgb3ZlcmZsb3cgdGhlIGNvbnRhaW5lciB3aWxsIGhpZGUgdGhlIG92ZXJmbG93IGFuZFxuLy8gdHJ1bmNhdGUgbmVhdGx5IHdpdGggYW4gZWxsaXBzaXMuXG5AbWl4aW4gbWF0LXRydW5jYXRlLWxpbmUoKSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4vLyBNaXhpbiB0byBwcm92aWRlIGFsbCBtYXQtbGluZSBzdHlsZXMsIGNoYW5naW5nIHNlY29uZGFyeSBmb250IHNpemUgYmFzZWQgb24gd2hldGhlciB0aGUgbGlzdFxuLy8gaXMgaW4gZGVuc2UgbW9kZS5cbkBtaXhpbiBtYXQtbGluZS1iYXNlKCRzZWNvbmRhcnktZm9udC1zaXplKSB7XG4gIC5tYXQtbGluZSB7XG4gICAgQGluY2x1ZGUgbWF0LXRydW5jYXRlLWxpbmUoKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgLy8gYWxsIGxpbmVzIGJ1dCB0aGUgdG9wIGxpbmUgc2hvdWxkIGhhdmUgc21hbGxlciB0ZXh0XG4gICAgJjpudGgtY2hpbGQobisyKSB7XG4gICAgICBmb250LXNpemU6ICRzZWNvbmRhcnktZm9udC1zaXplO1xuICAgIH1cbiAgfVxufVxuXG4vLyBUaGlzIG1peGluIG5vcm1hbGl6ZXMgZGVmYXVsdCBlbGVtZW50IHN0eWxlcywgZS5nLiBmb250IHdlaWdodCBmb3IgaGVhZGluZyB0ZXh0LlxuQG1peGluIG1hdC1ub3JtYWxpemUtdGV4dCgpIHtcbiAgJiA+ICoge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICB9XG59XG5cbi8vIFRoaXMgbWl4aW4gcHJvdmlkZXMgYmFzZSBzdHlsZXMgZm9yIHRoZSB3cmFwcGVyIGFyb3VuZCBtYXQtbGluZSBlbGVtZW50cyBpbiBhIGxpc3QuXG5AbWl4aW4gbWF0LWxpbmUtd3JhcHBlci1iYXNlKCkge1xuICBAaW5jbHVkZSBtYXQtbm9ybWFsaXplLXRleHQoKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAvLyBNdXN0IHJlbW92ZSB3cmFwcGVyIHdoZW4gbGluZXMgYXJlIGVtcHR5IG9yIGl0IHRha2VzIHVwIGhvcml6b250YWxcbiAgLy8gc3BhY2UgYW5kIHB1c2hlcyBvdGhlciBlbGVtZW50cyB0byB0aGUgcmlnaHQuXG4gICY6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuXG5cbi8vIEluY2x1ZGUgdGhpcyBlbXB0eSBtaXhpbiBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgb3RoZXIgY29tcG9uZW50cy5cbkBtaXhpbiBtYXQtZ3JpZC1saXN0LXRoZW1lKCR0aGVtZSkgeyB9XG5cbkBtaXhpbiBtYXQtZ3JpZC1saXN0LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWdyaWQtdGlsZS1oZWFkZXIsXG4gIC5tYXQtZ3JpZC10aWxlLWZvb3RlciB7XG4gICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pKTtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgfVxufVxuXG5cblxuXG4vLyBJbmNsdWRlIHRoaXMgZW1wdHkgbWl4aW4gZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIG90aGVyIGNvbXBvbmVudHMuXG5AbWl4aW4gbWF0LWljb24tdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtaWNvbiB7XG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWljb24tdHlwb2dyYXBoeSgkY29uZmlnKSB7IH1cblxuXG5cblxuXG4vLyBSZW5kZXJzIGEgZ3JhZGllbnQgZm9yIHNob3dpbmcgdGhlIGRhc2hlZCBsaW5lIHdoZW4gdGhlIGlucHV0IGlzIGRpc2FibGVkLlxuLy8gVW5saWtlIHVzaW5nIGEgYm9yZGVyLCBhIGdyYWRpZW50IGFsbG93cyB1cyB0byBhZGp1c3QgdGhlIHNwYWNpbmcgb2YgdGhlIGRvdHRlZCBsaW5lXG4vLyB0byBtYXRjaCB0aGUgTWF0ZXJpYWwgRGVzaWduIHNwZWMuXG5AbWl4aW4gbWF0LWNvbnRyb2wtZGlzYWJsZWQtdW5kZXJsaW5lKCRjb2xvcikge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRjb2xvciAwJSwgJGNvbG9yIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG5cbi8vIEZpZ3VyZXMgb3V0IHRoZSBjb2xvciBvZiB0aGUgcGxhY2Vob2xkZXIgZm9yIGEgZm9ybSBjb250cm9sLlxuLy8gVXNlZCBwcmltYXJpbHkgdG8gcHJldmVudCB0aGUgdmFyaW91cyBmb3JtIGNvbnRyb2xzIGZyb21cbi8vIGJlY29taW5nIG91dCBvZiBzeW5jIHNpbmNlIHRoZXNlIGNvbG9ycyBhcmVuJ3QgaW4gYSBwYWxldHRlLlxuQGZ1bmN0aW9uIF9tYXQtY29udHJvbC1wbGFjZWhvbGRlci1jb2xvcigkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgQHJldHVybiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0LCBpZigkaXMtZGFyay10aGVtZSwgMC41LCAwLjQyKSk7XG59XG5cblxuLyogc3R5bGVsaW50LWRpc2FibGUgbWF0ZXJpYWwvbm8tcHJlZml4ZXMgKi9cbkBtaXhpbiB1c2VyLXNlbGVjdCgkdmFsdWUpIHtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogJHZhbHVlO1xuICAtbW96LXVzZXItc2VsZWN0OiAkdmFsdWU7XG4gIC1tcy11c2VyLXNlbGVjdDogJHZhbHVlO1xuICB1c2VyLXNlbGVjdDogJHZhbHVlO1xufVxuXG5AbWl4aW4gaW5wdXQtcGxhY2Vob2xkZXIge1xuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAmOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBjdXJzb3ItZ3JhYiB7XG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiO1xuICBjdXJzb3I6IGdyYWI7XG59XG5cbkBtaXhpbiBjdXJzb3ItZ3JhYmJpbmcge1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYmJpbmc7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG5cbkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2YWx1ZSkge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6ICR2YWx1ZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogJHZhbHVlO1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuXG5cblxuQG1peGluIG1hdC1pbnB1dC10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1pbnB1dC1lbGVtZW50OmRpc2FibGVkLFxuICAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgY2FyZXQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG5cbiAgICBAaW5jbHVkZSBpbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogX21hdC1jb250cm9sLXBsYWNlaG9sZGVyLWNvbG9yKCR0aGVtZSk7XG4gICAgfVxuXG4gICAgLy8gT24gZGFyayB0aGVtZXMgd2Ugc2V0IHRoZSBuYXRpdmUgYHNlbGVjdGAgY29sb3IgdG8gc29tZSBzaGFkZSBvZiB3aGl0ZSxcbiAgICAvLyBob3dldmVyIHRoZSBjb2xvciBwcm9wYWdhdGVzIHRvIGFsbCBvZiB0aGUgYG9wdGlvbmAgZWxlbWVudHMsIHdoaWNoIGFyZVxuICAgIC8vIGFsd2F5cyBvbiBhIHdoaXRlIGJhY2tncm91bmQgaW5zaWRlIHRoZSBkcm9wZG93biwgY2F1c2luZyB0aGVtIHRvIGJsZW5kIGluLlxuICAgIC8vIFNpbmNlIHdlIGNhbid0IGNoYW5nZSBiYWNrZ3JvdW5kIG9mIHRoZSBkcm9wZG93biwgd2UgbmVlZCB0byBleHBsaWNpdGx5XG4gICAgLy8gcmVzZXQgdGhlIGNvbG9yIG9mIHRoZSBvcHRpb25zIHRvIHNvbWV0aGluZyBkYXJrLlxuICAgIEBpZiAobWFwLWdldCgkdGhlbWUsIGlzLWRhcmspKSB7XG4gICAgICBvcHRpb24ge1xuICAgICAgICBjb2xvcjogJGRhcmstcHJpbWFyeS10ZXh0O1xuICAgICAgfVxuXG4gICAgICBvcHRpb246ZGlzYWJsZWQge1xuICAgICAgICBjb2xvcjogJGRhcmstZGlzYWJsZWQtdGV4dDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWFjY2VudCAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gIH1cblxuICAubWF0LXdhcm4gLm1hdC1pbnB1dC1lbGVtZW50LFxuICAubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWlucHV0LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG5cbiAgLy8gVGhlIGFtb3VudCBvZiBzcGFjZSBiZXR3ZWVuIHRoZSB0b3Agb2YgdGhlIGxpbmUgYW5kIHRoZSB0b3Agb2YgdGhlIGFjdHVhbCB0ZXh0XG4gIC8vIChhcyBhIGZyYWN0aW9uIG9mIHRoZSBmb250LXNpemUpLlxuICAkbGluZS1zcGFjaW5nOiAoJGxpbmUtaGVpZ2h0IC0gMSkgLyAyO1xuXG4gIC8vIDxpbnB1dD4gZWxlbWVudHMgc2VlbSB0byBoYXZlIHRoZWlyIGhlaWdodCBzZXQgc2xpZ2h0bHkgdG9vIGxhcmdlIG9uIFNhZmFyaSBjYXVzaW5nIHRoZSB0ZXh0IHRvXG4gIC8vIGJlIG1pc2FsaWduZWQgdy5yLnQuIHRoZSBwbGFjZWhvbGRlci4gQWRkaW5nIHRoaXMgbWFyZ2luIGNvcnJlY3RzIGl0LlxuICBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgbWFyZ2luLXRvcDogLSRsaW5lLXNwYWNpbmcgKiAxZW07XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1saXN0LXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtbGlzdC1iYXNlIHtcbiAgICAubWF0LWxpc3QtaXRlbSB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3ViaGVhZGVyIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWxpc3QtaXRlbS1kaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaXNhYmxlZC1saXN0LW9wdGlvbik7XG4gIH1cblxuICAubWF0LWxpc3Qtb3B0aW9uLFxuICAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtLFxuICAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtIHtcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2hvdmVyJyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgJGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG5cbiAgLm1hdC1saXN0LWl0ZW0ge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gIH1cblxuICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBsaXN0XG4gIC5tYXQtbGlzdC1iYXNlIHtcbiAgICAubWF0LWxpc3QtaXRlbSB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpKTtcbiAgICB9XG5cbiAgICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTIpO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSkpO1xuICAgIH1cblxuICAgIC5tYXQtc3ViaGVhZGVyIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0yKTtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlbnNlIGxpc3RcbiAgLm1hdC1saXN0LWJhc2VbZGVuc2VdIHtcbiAgICAubWF0LWxpc3QtaXRlbSB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbikpO1xuICAgIH1cblxuICAgIC5tYXQtbGlzdC1vcHRpb24ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pKTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LW1lbnUtdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1tZW51LXBhbmVsIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig0LCAkdGhlbWUpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtbWVudS1pdGVtIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAndGV4dCcpO1xuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgJiwgJjo6YWZ0ZXIge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnZGlzYWJsZWQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LW1lbnUtaXRlbSAubWF0LWljb24tbm8tY29sb3IsXG4gIC5tYXQtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcjo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsICdpY29uJyk7XG4gIH1cblxuICAubWF0LW1lbnUtaXRlbTpob3ZlcixcbiAgLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZCxcbiAgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQsXG4gIC5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVkIHtcbiAgICAmOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdob3ZlcicpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LW1lbnUtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtbWVudS1pdGVtIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTEpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtcGFnaW5hdG9yLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuXG4gIC5tYXQtcGFnaW5hdG9yIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvcixcbiAgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbiAgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50IHtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnaWNvbicpO1xuICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgfVxuXG4gIC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuICAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnaWNvbicpO1xuICB9XG5cbiAgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0ge1xuICAgIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbiAgICAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQsXG4gICAgLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4gICAgLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gICAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2Rpc2FibGVkJyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcGFnaW5hdG9yLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXBhZ2luYXRvcixcbiAgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXByb2dyZXNzLWJhci10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gICAgZmlsbDogbWF0LWNvbG9yKCRwcmltYXJ5LCBsaWdodGVyKTtcbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCBsaWdodGVyKTtcbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICB9XG5cbiAgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCB7XG4gICAgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gICAgICBmaWxsOiBtYXQtY29sb3IoJGFjY2VudCwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCBsaWdodGVyKTtcbiAgICB9XG5cbiAgICAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4ge1xuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgICAgZmlsbDogbWF0LWNvbG9yKCR3YXJuLCBsaWdodGVyKTtcbiAgICB9XG5cbiAgICAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuLCBsaWdodGVyKTtcbiAgICB9XG5cbiAgICAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXByb2dyZXNzLWJhci10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cblxuQG1peGluIG1hdC1wcm9ncmVzcy1zcGlubmVyLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAubWF0LXByb2dyZXNzLXNwaW5uZXIsIC5tYXQtc3Bpbm5lciB7XG4gICAgY2lyY2xlIHtcbiAgICAgIHN0cm9rZTogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQgY2lyY2xlIHtcbiAgICAgIHN0cm9rZTogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4gY2lyY2xlIHtcbiAgICAgIHN0cm9rZTogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wcm9ncmVzcy1zcGlubmVyLXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cblxuXG5cblxuQG1peGluIF9tYXQtcmFkaW8tY29sb3IoJHBhbGV0dGUpIHtcbiAgJi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG5cbiAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4gIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLFxuICAmLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsXG4gICY6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1yYWRpby10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXJhZGlvLWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC1yYWRpby1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcmFkaW8tY29sb3IoJHdhcm4pO1xuICAgIH1cblxuICAgIC8vIFRoaXMgbmVlZHMgZXh0cmEgc3BlY2lmaWNpdHksIGJlY2F1c2UgdGhlIGNsYXNzZXMgYWJvdmUgYXJlIGNvbWJpbmVkXG4gICAgLy8gKGUuZy4gYC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnRgKSB3aGljaCBpbmNyZWFzZXMgdGhlaXIgc3BlY2lmaWNpdHkgYSBsb3QuXG4gICAgLy8gVE9ETzogY29uc2lkZXIgbWFraW5nIHRoZSBzZWxlY3RvcnMgaW50byBkZXNjZW5kYW50cyAoYC5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLWJ1dHRvbmApLlxuICAgICYubWF0LXJhZGlvLWRpc2FibGVkIHtcbiAgICAgICYubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUsXG4gICAgICAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZCk7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4gICAgICAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuXG4gICAgICAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU3dpdGNoIHRoaXMgdG8gYSBzb2xpZCBjb2xvciBzaW5jZSB3ZSdyZSB1c2luZyBgb3BhY2l0eWBcbiAgICAvLyB0byBjb250cm9sIGhvdyBvcGFxdWUgdGhlIHJpcHBsZSBzaG91bGQgYmUuXG4gICAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXBfZ2V0KCRmb3JlZ3JvdW5kLCBiYXNlKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1yYWRpby10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1yYWRpby1idXR0b24ge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cbn1cblxuXG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXNlbGVjdC10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiBfbWF0LWNvbnRyb2wtcGxhY2Vob2xkZXItY29sb3IoJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1wYW5lbCB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig0LCAkdGhlbWUpO1xuXG4gICAgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3ZlciwgMC4xMik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkIHtcbiAgICAmLm1hdC1mb2N1c2VkIHtcbiAgICAgICYubWF0LXByaW1hcnkgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtYWNjZW50IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtd2FybiAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtaW52YWxpZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNlbGVjdC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC5tYXQtc2VsZWN0IHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgaGVpZ2h0OiAkbGluZS1oZWlnaHQgKiAxZW07XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtc2lkZW5hdi10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgJGRyYXdlci1iYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpYWxvZyk7XG4gICRkcmF3ZXItY29udGFpbmVyLWJhY2tncm91bmQtY29sb3I6ICBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAkZHJhd2VyLXB1c2gtYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAkZHJhd2VyLXNpZGUtYm9yZGVyOiBzb2xpZCAxcHggbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcblxuICAubWF0LWRyYXdlci1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItY29udGFpbmVyLWJhY2tncm91bmQtY29sb3I7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cblxuICAubWF0LWRyYXdlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRyYXdlci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtZHJhd2VyLXB1c2gge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRyYXdlci1wdXNoLWJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1kcmF3ZXItc2lkZSkge1xuICAgICAgLy8gVGhlIGVsZXZhdGlvbiBvZiB6LTE2IGlzIG5vdGVkIGluIHRoZSBkZXNpZ24gc3BlY2lmaWNhdGlvbnMuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29tcG9uZW50cy9uYXZpZ2F0aW9uLWRyYXdlci5odG1sXG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigxNiwgJHRoZW1lKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWRyYXdlci1zaWRlIHtcbiAgICBib3JkZXItcmlnaHQ6ICRkcmF3ZXItc2lkZS1ib3JkZXI7XG5cbiAgICAmLm1hdC1kcmF3ZXItZW5kIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIFtkaXI9J3J0bCddIC5tYXQtZHJhd2VyLXNpZGUge1xuICAgIGJvcmRlci1sZWZ0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcblxuICAgICYubWF0LWRyYXdlci1lbmQge1xuICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICBib3JkZXItcmlnaHQ6ICRkcmF3ZXItc2lkZS1ib3JkZXI7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kcmF3ZXItYmFja2Ryb3AubWF0LWRyYXdlci1zaG93biB7XG4gICAgJG9wYWNpdHk6IDAuNjtcbiAgICAkYmFja2Ryb3AtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCwgJG9wYWNpdHkpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRiYWNrZHJvcC1jb2xvcikgPT0gY29sb3IpIHtcbiAgICAgIC8vIFdlIHVzZSBpbnZlcnQoKSBoZXJlIHRvIGhhdmUgdGhlIGRhcmtlbiB0aGUgYmFja2dyb3VuZCBjb2xvciBleHBlY3RlZCB0byBiZSB1c2VkLiBJZiB0aGVcbiAgICAgIC8vIGJhY2tncm91bmQgaXMgbGlnaHQsIHdlIHVzZSBhIGRhcmsgYmFja2Ryb3AuIElmIHRoZSBiYWNrZ3JvdW5kIGlzIGRhcmssXG4gICAgICAvLyB3ZSB1c2UgYSBsaWdodCBiYWNrZHJvcC5cbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGludmVydCgkYmFja2Ryb3AtY29sb3IpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBJZiB3ZSBjb3VsZG4ndCByZXNvbHZlIHRoZSBiYWNrZHJvcCBjb2xvciB0byBhIGNvbG9yIHZhbHVlLCBmYWxsIGJhY2sgdG8gdXNpbmdcbiAgICAgIC8vIGBvcGFjaXR5YCB0byBtYWtlIGl0IG9wYXF1ZSBzaW5jZSBpdHMgZW5kIHZhbHVlIGNvdWxkIGJlIGEgc29saWQgY29sb3IuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2Ryb3AtY29sb3I7XG4gICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zaWRlbmF2LXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cblxuXG5cblxuXG5AbWl4aW4gX21hdC1zbGlkZS10b2dnbGUtY2hlY2tlZCgkcGFsZXR0ZSwgJHRodW1iLWNoZWNrZWQtaHVlKSB7XG4gICYubWF0LWNoZWNrZWQge1xuICAgIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgJHRodW1iLWNoZWNrZWQtaHVlKTtcbiAgICB9XG5cbiAgICAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgICAgLy8gT3BhY2l0eSBpcyBkZXRlcm1pbmVkIGZyb20gdGhlIHNwZWNzIGZvciB0aGUgc2VsZWN0aW9uIGNvbnRyb2xzLlxuICAgICAgLy8gU2VlOiBodHRwczovL21hdGVyaWFsLmlvL2Rlc2lnbi9jb21wb25lbnRzL3NlbGVjdGlvbi1jb250cm9scy5odG1sI3NwZWNzXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSwgMC41NCk7XG4gICAgfVxuXG4gICAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICAvLyBTZXQgbm8gb3BhY2l0eSBmb3IgdGhlIHJpcHBsZXMgYmVjYXVzZSB0aGUgcmlwcGxlIG9wYWNpdHkgd2lsbCBiZSBhZGp1c3RlZCBkeW5hbWljYWxseVxuICAgICAgLy8gYmFzZWQgb24gdGhlIHR5cGUgb2YgaW50ZXJhY3Rpb24gd2l0aCB0aGUgc2xpZGUtdG9nZ2xlIChlLmcuIGZvciBob3ZlciwgZm9jdXMpXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc2xpZGUtdG9nZ2xlLXRoZW1lKCR0aGVtZSkge1xuICAkaXMtZGFyazogbWFwX2dldCgkdGhlbWUsIGlzLWRhcmspO1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAvLyBDb2xvciBodWVzIGFyZSBiYXNlZCBvbiB0aGUgc3BlY3Mgd2hpY2ggYnJpZWZseSBzaG93IHRoZSBodWVzIHRoYXQgYXJlIGFwcGxpZWQgdG8gYSBzd2l0Y2guXG4gIC8vIFRoZSAyMDE4IHNwZWNzIG5vIGxvbmdlciBkZXNjcmliZSBob3cgZGFyayBzd2l0Y2hlcyBzaG91bGQgbG9vayBsaWtlLiBEdWUgdG8gdGhlIGxhY2sgb2ZcbiAgLy8gaW5mb3JtYXRpb24gZm9yIGRhcmsgdGhlbWVkIHN3aXRjaGVzLCB3ZSBwYXJ0aWFsbHkga2VlcCB0aGUgb2xkIGJlaGF2aW9yIHRoYXQgaXMgYmFzZWQgb25cbiAgLy8gdGhlIHByZXZpb3VzIHNwZWNpZmljYXRpb25zLiBGb3IgdGhlIGNoZWNrZWQgY29sb3Igd2UgYWx3YXlzIHVzZSB0aGUgYGRlZmF1bHRgIGh1ZSBiZWNhdXNlXG4gIC8vIHRoYXQgZm9sbG93cyBNREMgYW5kIGFsc28gbWFrZXMgaXQgZWFzaWVyIGZvciBwZW9wbGUgdG8gY3JlYXRlIGEgY3VzdG9tIHRoZW1lIHdpdGhvdXQgbmVlZGluZ1xuICAvLyB0byBzcGVjaWZ5IGVhY2ggaHVlIGluZGl2aWR1YWxseS5cbiAgJHRodW1iLXVuY2hlY2tlZC1odWU6IGlmKCRpcy1kYXJrLCA0MDAsIDUwKTtcbiAgJHRodW1iLWNoZWNrZWQtaHVlOiBkZWZhdWx0O1xuXG4gICRiYXItdW5jaGVja2VkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgJHJpcHBsZS11bmNoZWNrZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSk7XG5cbiAgLm1hdC1zbGlkZS10b2dnbGUge1xuICAgIEBpbmNsdWRlIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJGFjY2VudCwgJHRodW1iLWNoZWNrZWQtaHVlKTtcblxuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC1zbGlkZS10b2dnbGUtY2hlY2tlZCgkcHJpbWFyeSwgJHRodW1iLWNoZWNrZWQtaHVlKTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHdhcm4sICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1jaGVja2VkKSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIC8vIFNldCBubyBvcGFjaXR5IGZvciB0aGUgcmlwcGxlcyBiZWNhdXNlIHRoZSByaXBwbGUgb3BhY2l0eSB3aWxsIGJlIGFkanVzdGVkIGR5bmFtaWNhbGx5XG4gICAgICAvLyBiYXNlZCBvbiB0aGUgdHlwZSBvZiBpbnRlcmFjdGlvbiB3aXRoIHRoZSBzbGlkZS10b2dnbGUgKGUuZy4gZm9yIGhvdmVyLCBmb2N1cylcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyaXBwbGUtdW5jaGVja2VkLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigxLCAkdGhlbWUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkbWF0LWdyZXksICR0aHVtYi11bmNoZWNrZWQtaHVlKTtcbiAgfVxuXG4gIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhci11bmNoZWNrZWQtY29sb3I7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbGlkZS10b2dnbGUtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnQge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gX21hdC1zbGlkZXItaW5uZXItY29udGVudC10aGVtZSgkcGFsZXR0ZSkge1xuICAubWF0LXNsaWRlci10cmFjay1maWxsLFxuICAubWF0LXNsaWRlci10aHVtYixcbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG4gIH1cblxuICAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlci10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgJG1hdC1zbGlkZXItb2ZmLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1vZmYpO1xuICAkbWF0LXNsaWRlci1vZmYtZm9jdXNlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmLWFjdGl2ZSk7XG4gICRtYXQtc2xpZGVyLWRpc2FibGVkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1vZmYpO1xuICAkbWF0LXNsaWRlci1sYWJlbGVkLW1pbi12YWx1ZS10aHVtYi1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItbWluKTtcbiAgJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW9mZik7XG4gICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCBkZWZhdWx0LCAwLjIpO1xuICAkbWF0LXNsaWRlci1mb2N1cy1yaW5nLW1pbi12YWx1ZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCAwLjEyKTtcbiAgJG1hdC1zbGlkZXItdGljay1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCAwLjcpO1xuICAkbWF0LXNsaWRlci10aWNrLXNpemU6IDJweDtcblxuICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtY29sb3I7XG4gIH1cblxuICAubWF0LXByaW1hcnkge1xuICAgIEBpbmNsdWRlIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHByaW1hcnkpO1xuICB9XG5cbiAgLm1hdC1hY2NlbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJGFjY2VudCk7XG4gIH1cblxuICAubWF0LXdhcm4ge1xuICAgIEBpbmNsdWRlIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHdhcm4pO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItZm9jdXMtcmluZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZm9jdXMtcmluZy1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyOmhvdmVyLFxuICAuY2RrLWZvY3VzZWQge1xuICAgIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWZvY3VzZWQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbGlkZXItZGlzYWJsZWQge1xuICAgIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4gICAgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbiAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlci1taW4tdmFsdWUge1xuICAgIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZm9jdXMtcmluZy1taW4tdmFsdWUtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcge1xuICAgICAgLm1hdC1zbGlkZXItdGh1bWIsXG4gICAgICAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWNvbG9yO1xuICAgICAgfVxuXG4gICAgICAmLmNkay1mb2N1c2VkIHtcbiAgICAgICAgLm1hdC1zbGlkZXItdGh1bWIsXG4gICAgICAgIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1sYWJlbGVkLW1pbi12YWx1ZS10aHVtYi1sYWJlbC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIHtcbiAgICAgIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJi5jZGstZm9jdXNlZCB7XG4gICAgICAgIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRtYXQtc2xpZGVyLW9mZi1mb2N1c2VkLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRtYXQtc2xpZGVyLWRpc2FibGVkLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6ICRtYXQtc2xpZGVyLXRpY2stY29sb3I7XG4gIH1cblxuICAubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkbWF0LXNsaWRlci10aWNrLWNvbG9yLFxuICAgICAgICAkbWF0LXNsaWRlci10aWNrLWNvbG9yICRtYXQtc2xpZGVyLXRpY2stc2l6ZSwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuICAgIC8vIEZpcmVmb3ggZG9lc24ndCBkcmF3IHRoZSBncmFkaWVudCBjb3JyZWN0bHkgd2l0aCAndG8gcmlnaHQnXG4gICAgLy8gKHNlZSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzE0MzE5KS5cbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCAkbWF0LXNsaWRlci10aWNrLWNvbG9yLFxuICAgICAgICAkbWF0LXNsaWRlci10aWNrLWNvbG9yICRtYXQtc2xpZGVyLXRpY2stc2l6ZSwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItdmVydGljYWwgLm1hdC1zbGlkZXItdGlja3Mge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkbWF0LXNsaWRlci10aWNrLWNvbG9yLFxuICAgICAgICAkbWF0LXNsaWRlci10aWNrLWNvbG9yICRtYXQtc2xpZGVyLXRpY2stc2l6ZSwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc2xpZGVyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtc3RlcHBlci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAubWF0LXN0ZXAtaGVhZGVyIHtcbiAgICAmLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAgICYuY2RrLXByb2dyYW0tZm9jdXNlZCxcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgIH1cblxuICAgIC8vIE9uIHRvdWNoIGRldmljZXMgdGhlIDpob3ZlciBzdGF0ZSB3aWxsIGxpbmdlciBvbiB0aGUgZWxlbWVudCBhZnRlciBhIHRhcC5cbiAgICAvLyBSZXNldCBpdCB2aWEgYEBtZWRpYWAgYWZ0ZXIgdGhlIGRlY2xhcmF0aW9uLCBiZWNhdXNlIHRoZSBtZWRpYSBxdWVyeSBpc24ndFxuICAgIC8vIHN1cHBvcnRlZCBieSBhbGwgYnJvd3NlcnMgeWV0LlxuICAgIEBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtc3RlcC1sYWJlbCxcbiAgICAubWF0LXN0ZXAtb3B0aW9uYWwge1xuICAgICAgLy8gVE9ETyhqb3NlcGhwZXJyb3R0KTogVXBkYXRlIHRvIHVzaW5nIGEgY29ycmVjdGVkIGRpc2FibGVkLXRleHQgY29udHJhc3RcbiAgICAgIC8vIGluc3RlYWQgb2Ygc2Vjb25kYXJ5LXRleHQuXG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWljb24ge1xuICAgICAgLy8gVE9ETyhqb3NlcGhwZXJyb3R0KTogVXBkYXRlIHRvIHVzaW5nIGEgY29ycmVjdGVkIGRpc2FibGVkLXRleHQgY29udHJhc3RcbiAgICAgIC8vIGluc3RlYWQgb2Ygc2Vjb25kYXJ5LXRleHQuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uLXNlbGVjdGVkLFxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsXG4gICAgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3Ige1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtYWN0aXZlIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1lcnJvciB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbCwgLm1hdC1zdGVwcGVyLXZlcnRpY2FsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICB9XG5cbiAgLm1hdC1zdGVwcGVyLXZlcnRpY2FsLWxpbmU6OmJlZm9yZSB7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmJlZm9yZSxcbiAgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlcixcbiAgLm1hdC1zdGVwcGVyLWhvcml6b250YWwtbGluZSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXN0ZXBwZXItdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtc3RlcHBlci12ZXJ0aWNhbCwgLm1hdC1zdGVwcGVyLWhvcml6b250YWwge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LXN0ZXAtbGFiZWwge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgfTtcbiAgfVxuXG4gIC5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3Ige1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIH1cblxuICAubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuICAgIH07XG4gIH1cbn1cblxuQG1peGluIG1hdC1zb3J0LXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtc29ydC1oZWFkZXItYXJyb3cge1xuICAgICR0YWJsZS1iYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gICAgJHRleHQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuXG4gICAgLy8gQmVjYXVzZSB0aGUgYXJyb3cgaXMgbWFkZSB1cCBvZiBtdWx0aXBsZSBlbGVtZW50cyB0aGF0IGFyZSBzdGFja2VkIG9uIHRvcCBvZiBlYWNoIG90aGVyLFxuICAgIC8vIHdlIGNhbid0IHVzZSB0aGUgc2VtaS10cmFzcGFyZW50IGNvbG9yIGZyb20gdGhlIHRoZW1lIGRpcmVjdGx5LiBJZiB0aGUgdmFsdWUgaXMgYSBjb2xvclxuICAgIC8vICp0eXBlKiwgd2UgY29udmVydCBpdCBpbnRvIGEgc29saWQgY29sb3IgYnkgdGFraW5nIHRoZSBvcGFjaXR5IGZyb20gdGhlIHJnYmEgdmFsdWUgYW5kXG4gICAgLy8gdXNpbmcgdGhlIHZhbHVlIHRvIGRldGVybWluZSB0aGUgcGVyY2VudGFnZSBvZiB0aGUgYmFja2dyb3VuZCB0byBwdXQgaW50byBmb3JlZ3JvdW5kXG4gICAgLy8gd2hlbiBtaXhpbmcgdGhlIGNvbG9ycyB0b2dldGhlci4gT3RoZXJ3aXNlLCBpZiBpdCByZXNvbHZlcyB0byBzb21ldGhpbmcgZGlmZmVyZW50XG4gICAgLy8gKGUuZy4gaXQgcmVzb2x2ZXMgdG8gYSBDU1MgdmFyaWFibGUpLCB3ZSB1c2UgdGhlIGNvbG9yIGRpcmVjdGx5LlxuICAgIEBpZiAodHlwZS1vZigkdGFibGUtYmFja2dyb3VuZCkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJHRleHQtY29sb3IpID09IGNvbG9yKSB7XG4gICAgICAkdGV4dC1vcGFjaXR5OiBvcGFjaXR5KCR0ZXh0LWNvbG9yKTtcbiAgICAgIGNvbG9yOiBtaXgoJHRhYmxlLWJhY2tncm91bmQsIHJnYmEoJHRleHQtY29sb3IsIDEpLCAoMSAtICR0ZXh0LW9wYWNpdHkpICogMTAwJSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zb3J0LXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cblxuXG5cblxuQG1peGluIG1hdC10YWJzLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGhlYWRlci1ib3JkZXI6IDFweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuXG4gIC5tYXQtdGFiLW5hdi1iYXIsXG4gIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlYWRlci1ib3JkZXI7XG4gIH1cblxuICAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIge1xuICAgIC5tYXQtdGFiLW5hdi1iYXIsXG4gICAgLm1hdC10YWItaGVhZGVyIHtcbiAgICAgIGJvcmRlci10b3A6ICRoZWFkZXItYm9yZGVyO1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAubWF0LXRhYi1sYWJlbCwgLm1hdC10YWItbGluayB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmLm1hdC10YWItZGlzYWJsZWQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICB9XG5cbiAgLy8gUmVtb3ZlIGhlYWRlciBib3JkZXIgd2hlbiB0aGVyZSBpcyBhIGJhY2tncm91bmQgY29sb3JcbiAgLm1hdC10YWItZ3JvdXBbY2xhc3MqPSdtYXQtYmFja2dyb3VuZC0nXSAubWF0LXRhYi1oZWFkZXIsXG4gIC5tYXQtdGFiLW5hdi1iYXJbY2xhc3MqPSdtYXQtYmFja2dyb3VuZC0nXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICB9XG5cbiAgLm1hdC10YWItZ3JvdXAsIC5tYXQtdGFiLW5hdi1iYXIge1xuICAgICR0aGVtZS1jb2xvcnM6IChcbiAgICAgIHByaW1hcnk6ICRwcmltYXJ5LFxuICAgICAgYWNjZW50OiAkYWNjZW50LFxuICAgICAgd2FybjogJHdhcm5cbiAgICApO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkdGhlbWUtY29sb3JzIHtcbiAgICAgIC8vIFNldCB0aGUgZm9yZWdyb3VuZCBjb2xvciBvZiB0aGUgdGFic1xuICAgICAgJi5tYXQtI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LXRhYi1sYWJlbC1mb2N1cygkY29sb3IpO1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWluay1iYXIoJGNvbG9yKTtcblxuICAgICAgICAvLyBPdmVycmlkZSBpbmsgYmFyIHdoZW4gYmFja2dyb3VuZCBjb2xvciBpcyB0aGUgc2FtZVxuICAgICAgICAmLm1hdC1iYWNrZ3JvdW5kLSN7JG5hbWV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBfbWF0LWluay1iYXIoJGNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJHRoZW1lLWNvbG9ycyB7XG4gICAgICAvLyBTZXQgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgdGFicyBhbmQgb3ZlcnJpZGUgZm9jdXMgY29sb3JcbiAgICAgICYubWF0LWJhY2tncm91bmQtI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LXRhYi1sYWJlbC1mb2N1cygkY29sb3IpO1xuICAgICAgICBAaW5jbHVkZSBfbWF0LXRhYnMtYmFja2dyb3VuZCgkY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC1pbmstYmFyKCRjb2xvciwgJGh1ZTogZGVmYXVsdCkge1xuICAubWF0LWluay1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkY29sb3IsICRodWUpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRhYi1sYWJlbC1mb2N1cygkdGFiLWZvY3VzLWNvbG9yKSB7XG4gIC5tYXQtdGFiLWxhYmVsLFxuICAubWF0LXRhYi1saW5rIHtcbiAgICAmLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAgICYuY2RrLXByb2dyYW0tZm9jdXNlZCB7XG4gICAgICAmOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHRhYi1mb2N1cy1jb2xvciwgbGlnaHRlciwgMC4zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtdGFicy1iYWNrZ3JvdW5kKCRiYWNrZ3JvdW5kLWNvbG9yKSB7XG4gIC8vIFNldCBiYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgdGFiIGdyb3VwXG4gIC5tYXQtdGFiLWhlYWRlciwgLm1hdC10YWItbGlua3MsIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IpO1xuICB9XG5cbiAgLy8gU2V0IGxhYmVscyB0byBjb250cmFzdCBhZ2FpbnN0IGJhY2tncm91bmRcbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QpO1xuXG4gICAgJi5tYXQtdGFiLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QsIDAuNCk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0IHBhZ2luYXRpb24gY2hldnJvbnMgdG8gY29udHJhc3QgYmFja2dyb3VuZFxuICAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZC1jb2xvciwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cblxuICAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZC1jb2xvciwgZGVmYXVsdC1jb250cmFzdCwgMC40KTtcbiAgfVxuXG4gIC8vIFNldCByaXBwbGVzIGNvbG9yIHRvIGJlIHRoZSBjb250cmFzdCBjb2xvciBvZiB0aGUgbmV3IGJhY2tncm91bmQuIE90aGVyd2lzZSB0aGUgcmlwcGxlXG4gIC8vIGNvbG9yIHdpbGwgYmUgYmFzZWQgb24gdGhlIGFwcCBiYWNrZ3JvdW5kIGNvbG9yLlxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QsIDAuMTIpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdGFicy10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC10YWItZ3JvdXAge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LXRhYi1sYWJlbCwgLm1hdC10YWItbGluayB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYnV0dG9uKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYnV0dG9uKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJ1dHRvbik7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gX21hdC10b29sYmFyLWNvbG9yKCRwYWxldHRlKSB7XG4gIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG4gIGNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpO1xufVxuXG5AbWl4aW4gX21hdC10b29sYmFyLWZvcm0tZmllbGQtb3ZlcnJpZGVzIHtcbiAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxcbiAgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbiAgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgLm1hdC1zZWxlY3QtdmFsdWUsXG4gIC5tYXQtc2VsZWN0LWFycm93LFxuICAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG5cbiAgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogY3VycmVudENvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdG9vbGJhci10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC10b29sYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGFwcC1iYXIpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItY29sb3IoJHdhcm4pO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIF9tYXQtdG9vbGJhci1mb3JtLWZpZWxkLW92ZXJyaWRlcztcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2xiYXItdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdG9vbGJhcixcbiAgLm1hdC10b29sYmFyIGgxLFxuICAubWF0LXRvb2xiYXIgaDIsXG4gIC5tYXQtdG9vbGJhciBoMyxcbiAgLm1hdC10b29sYmFyIGg0LFxuICAubWF0LXRvb2xiYXIgaDUsXG4gIC5tYXQtdG9vbGJhciBoNiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHRpdGxlKTtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuXG5cblxuXG4kbWF0LXRvb2x0aXAtdGFyZ2V0LWhlaWdodDogMjJweDtcbiRtYXQtdG9vbHRpcC1mb250LXNpemU6IDEwcHg7XG4kbWF0LXRvb2x0aXAtdmVydGljYWwtcGFkZGluZzogKCRtYXQtdG9vbHRpcC10YXJnZXQtaGVpZ2h0IC0gJG1hdC10b29sdGlwLWZvbnQtc2l6ZSkgLyAyO1xuXG4kbWF0LXRvb2x0aXAtaGFuZHNldC10YXJnZXQtaGVpZ2h0OiAzMHB4O1xuJG1hdC10b29sdGlwLWhhbmRzZXQtZm9udC1zaXplOiAxNHB4O1xuJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZzpcbiAgICAoJG1hdC10b29sdGlwLWhhbmRzZXQtdGFyZ2V0LWhlaWdodCAtICRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZSkgLyAyO1xuXG5AbWl4aW4gbWF0LXRvb2x0aXAtdGhlbWUoJHRoZW1lKSB7XG4gIC5tYXQtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRtYXQtZ3JleSwgNzAwLCAwLjkpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdG9vbHRpcC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC10b29sdGlwIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICAgIGZvbnQtc2l6ZTogJG1hdC10b29sdGlwLWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nLXRvcDogJG1hdC10b29sdGlwLXZlcnRpY2FsLXBhZGRpbmc7XG4gICAgcGFkZGluZy1ib3R0b206ICRtYXQtdG9vbHRpcC12ZXJ0aWNhbC1wYWRkaW5nO1xuICB9XG5cbiAgLm1hdC10b29sdGlwLWhhbmRzZXQge1xuICAgIGZvbnQtc2l6ZTogJG1hdC10b29sdGlwLWhhbmRzZXQtZm9udC1zaXplO1xuICAgIHBhZGRpbmctdG9wOiAkbWF0LXRvb2x0aXAtaGFuZHNldC12ZXJ0aWNhbC1wYWRkaW5nO1xuICAgIHBhZGRpbmctYm90dG9tOiAkbWF0LXRvb2x0aXAtaGFuZHNldC12ZXJ0aWNhbC1wYWRkaW5nO1xuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC1zbmFjay1iYXItdGhlbWUoJHRoZW1lKSB7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuXG4gIC5tYXQtc25hY2stYmFyLWNvbnRhaW5lciB7XG4gICAgLy8gVXNlIHRoZSBwcmltYXJ5IHRleHQgb24gdGhlIGRhcmsgdGhlbWUsIGV2ZW4gdGhvdWdoIHRoZSBsaWdodGVyIG9uZSB1c2VzXG4gICAgLy8gYSBzZWNvbmRhcnksIGJlY2F1c2UgdGhlIGNvbnRyYXN0IG9uIHRoZSBsaWdodCBwcmltYXJ5IHRleHQgaXMgcG9vci5cbiAgICBjb2xvcjogaWYoJGlzLWRhcmstdGhlbWUsICRkYXJrLXByaW1hcnktdGV4dCwgJGxpZ2h0LXNlY29uZGFyeS10ZXh0KTtcbiAgICBiYWNrZ3JvdW5kOiBpZigkaXMtZGFyay10aGVtZSwgbWFwLWdldCgkbWF0LWdyZXksIDUwKSwgIzMyMzIzMik7XG5cbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbig2LCAkdGhlbWUpO1xuICB9XG5cbiAgLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcbiAgICBjb2xvcjogaWYoJGlzLWRhcmstdGhlbWUsIGluaGVyaXQsIG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbmFjay1iYXItdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtc2ltcGxlLXNuYWNrYmFyIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTEpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBpbmhlcml0O1xuICAgICAgc2l6ZTogaW5oZXJpdDtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJ1dHRvbik7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuLy8gVGhlbWUgc3R5bGVzIHRoYXQgb25seSBhcHBseSB0byB0aGUgZmlsbCBhcHBlYXJhbmNlIG9mIHRoZSBmb3JtLWZpZWxkLlxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtZmlsbC10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkZmlsbC1iYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjEsIDAuMDQpKTtcbiAgJGZpbGwtZGlzYWJsZWQtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCBpZigkaXMtZGFyay10aGVtZSwgMC4wNSwgMC4wMikpO1xuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjUsIDAuNDIpKTtcbiAgJGxhYmVsLWRpc2FibGVkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwge1xuICAgIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmaWxsLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmlsbC1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRsYWJlbC1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFVzZWQgdG8gbWFrZSBpbnN0YW5jZXMgb2YgdGhlIF9tYXQtZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZyBtaXhpbiBuZWdsaWdpYmx5IGRpZmZlcmVudCxcbi8vIGFuZCBwcmV2ZW50IEdvb2dsZSdzIENTUyBPcHRpbWl6ZXIgZnJvbSBjb2xsYXBzaW5nIHRoZSBkZWNsYXJhdGlvbnMuIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2Ugc29tZVxuLy8gb2YgdGhlIHNlbGVjdG9ycyBjb250YWluIHBzZXVkby1jbGFzc2VzIG5vdCByZWNvZ25pemVkIGluIGFsbCBicm93c2Vycy4gSWYgYSBicm93c2VyIGVuY291bnRlcnNcbi8vIGFuIHVua25vd24gcHNldWRvLWNsYXNzIGl0IHdpbGwgZGlzY2FyZCB0aGUgZW50aXJlIHJ1bGUgc2V0LlxuJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWZpbGwtbGFiZWwtZmxvYXRpbmcoJGZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGUpXG4gICAgICAgICAgICAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuICB3aWR0aDogMTAwJSAvICRmb250LXNjYWxlICsgJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtZmlsbC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuICAvLyBUaGUgYW1vdW50IHRvIHNjYWxlIHRoZSBmb250IGZvciB0aGUgZmxvYXRpbmcgbGFiZWwgYW5kIHN1YnNjcmlwdC5cbiAgJHN1YnNjcmlwdC1mb250LXNjYWxlOiAwLjc1O1xuICAvLyBUaGUgcGFkZGluZyBvbiB0b3Agb2YgdGhlIGluZml4LlxuICAkaW5maXgtcGFkZGluZy10b3A6IDAuMjVlbTtcbiAgLy8gVGhlIHBhZGRpbmcgYmVsb3cgdGhlIGluZml4LlxuICAkaW5maXgtcGFkZGluZy1ib3R0b206IDAuNzVlbTtcbiAgLy8gVGhlIG1hcmdpbiBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLWluZml4IHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBmbG9hdGluZyBsYWJlbC5cbiAgJGluZml4LW1hcmdpbi10b3A6IDFlbSAqICRsaW5lLWhlaWdodCAqICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIGFtb3VudCB3ZSBvZmZzZXQgdGhlIGxhYmVsIGZyb20gdGhlIGlucHV0IHRleHQgaW4gdGhlIGZpbGwgYXBwZWFyYW5jZS5cbiAgJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQ6IC0wLjVlbTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIHtcbiAgICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgcGFkZGluZzogJGluZml4LXBhZGRpbmctdG9wIDAgJGluZml4LXBhZGRpbmctYm90dG9tIDA7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZy10b3A7XG4gICAgICBtYXJnaW4tdG9wOiAkZmlsbC1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldDtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCB7XG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gICAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmctdG9wICsgJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuXG4gICAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWZpbGwtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZy10b3AgKyAkZmlsbC1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIGxlZ2FjeSBhcHBlYXJhbmNlIG9mIHRoZSBmb3JtLWZpZWxkLlxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtbGVnYWN5LXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuXG4gICRsYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICR1bmRlcmxpbmUtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNywgMC40MikpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkbGFiZWwtY29sb3I7XG4gICAgfVxuXG4gICAgLm1hdC1oaW50IHtcbiAgICAgIGNvbG9yOiAkbGFiZWwtY29sb3I7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBAaW5jbHVkZSBtYXQtY29udHJvbC1kaXNhYmxlZC11bmRlcmxpbmUoJHVuZGVybGluZS1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbi8vIFVzZWQgdG8gbWFrZSBpbnN0YW5jZXMgb2YgdGhlIF9tYXQtZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZyBtaXhpbiBuZWdsaWdpYmx5IGRpZmZlcmVudCxcbi8vIGFuZCBwcmV2ZW50IEdvb2dsZSdzIENTUyBPcHRpbWl6ZXIgZnJvbSBjb2xsYXBzaW5nIHRoZSBkZWNsYXJhdGlvbnMuIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2Ugc29tZVxuLy8gb2YgdGhlIHNlbGVjdG9ycyBjb250YWluIHBzZXVkby1jbGFzc2VzIG5vdCByZWNvZ25pemVkIGluIGFsbCBicm93c2Vycy4gSWYgYSBicm93c2VyIGVuY291bnRlcnNcbi8vIGFuIHVua25vd24gcHNldWRvLWNsYXNzIGl0IHdpbGwgZGlzY2FyZCB0aGUgZW50aXJlIHJ1bGUgc2V0LlxuJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGU6IDA7XG5cbi8vIEFwcGxpZXMgYSBmbG9hdGluZyBsYWJlbCBhYm92ZSB0aGUgZm9ybSBmaWVsZCBjb250cm9sIGl0c2VsZi5cbkBtaXhpbiBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgLy8gV2UgdXNlIHBlcnNwZWN0aXZlIHRvIGZpeCB0aGUgdGV4dCBibHVycmluZXNzIGFzIGRlc2NyaWJlZCBoZXJlOlxuICAvLyBodHRwOi8vd3d3LnVzZXJhZ2VudG1hbi5jb20vYmxvZy8yMDE0LzA1LzA0L2ZpeGluZy10eXBvZ3JhcGh5LWluc2lkZS1vZi0yLWQtY3NzLXRyYW5zZm9ybXMvXG4gIC8vIFRoaXMgcmVzdWx0cyBpbiBhIHNtYWxsIGppdHRlciBhZnRlciB0aGUgbGFiZWwgZmxvYXRzIG9uIEZpcmVmb3gsIHdoaWNoIHRoZVxuICAvLyB0cmFuc2xhdGVaIGZpeGVzLlxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcpIHNjYWxlKCRmb250LXNjYWxlKSBwZXJzcGVjdGl2ZSgxMDBweClcbiAgdHJhbnNsYXRlWigwLjAwMXB4ICsgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUpO1xuICAvLyBUaGUgdHJpY2tzIGFib3ZlIHVzZWQgdG8gc21vb3RoIG91dCB0aGUgYW5pbWF0aW9uIG9uIGNocm9tZSBhbmQgZmlyZWZveCBhY3R1YWxseSBtYWtlIHRoaW5nc1xuICAvLyB3b3JzZSBvbiBJRSwgc28gd2UgZG9uJ3QgaW5jbHVkZSB0aGVtIGluIHRoZSBJRSB2ZXJzaW9uLlxuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUpXG4gICAgICAgICAgICAgICAgICBzY2FsZSgkZm9udC1zY2FsZSk7XG5cbiAgd2lkdGg6IDEwMCUgLyAkZm9udC1zY2FsZSArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuLy8gU2FtZSBhcyBtaXhpbiBhYm92ZSwgYnV0IG9taXRzIHRoZSB0cmFuc2xhdGVaIGZvciBwcmludGluZyBwdXJwb3Nlcy5cbkBtaXhpbiBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nLXByaW50KCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgLy8gVGhpcyByZXN1bHRzIGluIGEgc21hbGwgaml0dGVyIGFmdGVyIHRoZSBsYWJlbCBmbG9hdHMgb24gRmlyZWZveCwgd2hpY2ggdGhlXG4gIC8vIHRyYW5zbGF0ZVogZml4ZXMuXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZyArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKVxuICAgICAgICAgICAgICAgICAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuICAvLyBUaGUgdHJpY2tzIGFib3ZlIHVzZWQgdG8gc21vb3RoIG91dCB0aGUgYW5pbWF0aW9uIG9uIGNocm9tZSBhbmQgZmlyZWZveCBhY3R1YWxseSBtYWtlIHRoaW5nc1xuICAvLyB3b3JzZSBvbiBJRSwgc28gd2UgZG9uJ3QgaW5jbHVkZSB0aGVtIGluIHRoZSBJRSB2ZXJzaW9uLlxuICAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1sZWdhY3ktdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsIGFuZCBzdWJzY3JpcHQuXG4gICRzdWJzY3JpcHQtZm9udC1zY2FsZTogMC43NTtcbiAgLy8gVGhlIGFtb3VudCBvZiBzcGFjZSBiZXR3ZWVuIHRoZSB0b3Agb2YgdGhlIGxpbmUgYW5kIHRoZSB0b3Agb2YgdGhlIGFjdHVhbCB0ZXh0XG4gIC8vIChhcyBhIGZyYWN0aW9uIG9mIHRoZSBmb250LXNpemUpLlxuICAkbGluZS1zcGFjaW5nOiAoJGxpbmUtaGVpZ2h0IC0gMSkgLyAyO1xuICAvLyBUaGUgcGFkZGluZyBvbiB0aGUgaW5maXguIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLCBidXQgc2VlbSB0byBtZWFzdXJlIGZyb20gdGhlIGVkZ2VcbiAgLy8gb2YgdGhlIHRleHQgaXRzZWxmLCBub3QgdGhlIGVkZ2Ugb2YgdGhlIGxpbmU7IHRoZXJlZm9yZSB3ZSBzdWJ0cmFjdCBvZmYgdGhlIGxpbmUgc3BhY2luZy5cbiAgJGluZml4LXBhZGRpbmc6IDAuNWVtIC0gJGxpbmUtc3BhY2luZztcbiAgLy8gVGhlIG1hcmdpbiBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLWluZml4IHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBmbG9hdGluZyBsYWJlbC5cbiAgJGluZml4LW1hcmdpbi10b3A6IDFlbSAqICRsaW5lLWhlaWdodCAqICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIHNwYWNlIGJldHdlZW4gdGhlIGJvdHRvbSBvZiB0aGUgLm1hdC1mb3JtLWZpZWxkLWZsZXggYXJlYSBhbmQgdGhlIHN1YnNjcmlwdCB3cmFwcGVyLlxuICAvLyBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZSwgYnV0IHRoaXMgbWFyZ2luIGlzIGFwcGxpZWQgdG8gYW4gZWxlbWVudCB3aXRoIHRoZSBzdWJzY3JpcHRcbiAgLy8gdGV4dCBmb250IHNpemUsIHNvIHdlIG5lZWQgdG8gZGl2aWRlIGJ5IHRoZSBzY2FsZSBmYWN0b3IgdG8gbWFrZSBpdCBoYWxmIG9mIHRoZSBvcmlnaW5hbCB0ZXh0XG4gIC8vIHNpemUuIFdlIGFnYWluIG5lZWQgdG8gc3VidHJhY3Qgb2ZmIHRoZSBsaW5lIHNwYWNpbmcgc2luY2UgdGhlIG1vY2tzIG1lYXN1cmUgdG8gdGhlIGVkZ2Ugb2YgdGhlXG4gIC8vIHRleHQsIG5vdCB0aGUgIGVkZ2Ugb2YgdGhlIGxpbmUuXG4gICRzdWJzY3JpcHQtbWFyZ2luLXRvcDogMC41ZW0gLyAkc3Vic2NyaXB0LWZvbnQtc2NhbGUgLSAoJGxpbmUtc3BhY2luZyAqIDIpO1xuICAvLyBUaGUgcGFkZGluZyBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLXdyYXBwZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHN1YnNjcmlwdCwgc2luY2UgaXQnc1xuICAvLyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgc3Vic2NyaXB0J3MgbWFyZ2luIGFuZCBsaW5lLWhlaWdodCwgYnV0IHdlXG4gIC8vIG5lZWQgdG8gbXVsdGlwbHkgYnkgdGhlIHN1YnNjcmlwdCBmb250IHNjYWxlIGZhY3RvciBzaW5jZSB0aGUgd3JhcHBlciBoYXMgYSBsYXJnZXIgZm9udCBzaXplLlxuICAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTogKCRzdWJzY3JpcHQtbWFyZ2luLXRvcCArICRsaW5lLWhlaWdodCkgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMCB3aWxsIHJlbHkgb24gQXV0b2ZpbGxNb25pdG9yIGluc3RlYWQuXG4gICAgICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuXG4gICAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZztcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAgIC8vIFdlIHdhbnQgdGhlIHVuZGVybGluZSB0byBzdGFydCBhdCB0aGUgZW5kIG9mIHRoZSBjb250ZW50IGJveCwgbm90IHRoZSBwYWRkaW5nIGJveCxcbiAgICAgIC8vIHNvIHdlIG1vdmUgaXQgdXAgYnkgdGhlIHBhZGRpbmcgYW1vdW50LlxuICAgICAgYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIge1xuICAgICAgbWFyZ2luLXRvcDogJHN1YnNjcmlwdC1tYXJnaW4tdG9wO1xuXG4gICAgICAvLyBXZSB3YW50IHRoZSBzdWJzY3JpcHQgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgICAvLyBzbyB3ZSBtb3ZlIGl0IHVwIGJ5IHRoZSBwYWRkaW5nIGFtb3VudCAoYWRqdXN0ZWQgZm9yIHRoZSBzbWFsbGVyIGZvbnQgc2l6ZSk7XG4gICAgICB0b3A6IGNhbGMoMTAwJSAtICN7JHdyYXBwZXItcGFkZGluZy1ib3R0b20gLyAkc3Vic2NyaXB0LWZvbnQtc2NhbGV9KTtcbiAgICB9XG4gIH1cblxuICAvLyB0cmFuc2xhdGVaIGNhdXNlcyB0aGUgbGFiZWwgdG8gbm90IGFwcGVhciB3aGlsZSBwcmludGluZywgc28gd2Ugb3ZlcnJpZGUgaXQgdG8gbm90XG4gIC8vIGFwcGx5IHRyYW5zbGF0ZVogd2hpbGUgcHJpbnRpbmdcbiAgQG1lZGlhIHByaW50IHtcbiAgICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICAgICAmLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gICAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nLXByaW50KFxuICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMCB3aWxsIHJlbHkgb24gQXV0b2ZpbGxNb25pdG9yIGluc3RlYWQuXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmctcHJpbnQoXG4gICAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAgICAgLy8gKHVzZWQgYXMgYSBwdXJlIENTUyBzdGFuZC1pbiBmb3IgbWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0KS5cbiAgICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nLXByaW50KFxuICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIG91dGxpbmUgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuXG4gICRsYWJlbC1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgJG91dGxpbmUtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDAuMywgMC4xMikpO1xuICAkb3V0bGluZS1jb2xvci1ob3ZlcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMSwgMC44NykpO1xuICAkb3V0bGluZS1jb2xvci1wcmltYXJ5OiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICAkb3V0bGluZS1jb2xvci1hY2NlbnQ6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgJG91dGxpbmUtY29sb3Itd2FybjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgJG91dGxpbmUtY29sb3ItZGlzYWJsZWQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDAuMTUsIDAuMDYpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIHtcbiAgICAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gICAgICBjb2xvcjogJG91dGxpbmUtY29sb3I7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLWhvdmVyO1xuICAgIH1cblxuICAgICYubWF0LWZvY3VzZWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3ItcHJpbWFyeTtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLWFjY2VudDtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci13YXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENsYXNzIHJlcGVhdGVkIHNvIHRoYXQgcnVsZSBpcyBzcGVjaWZpYyBlbm91Z2ggdG8gb3ZlcnJpZGUgZm9jdXNlZCBhY2NlbnQgY29sb3IgY2FzZS5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWludmFsaWQubWF0LWZvcm0tZmllbGQtaW52YWxpZCB7XG4gICAgICAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci13YXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRsYWJlbC1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3ItZGlzYWJsZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFVzZWQgdG8gbWFrZSBpbnN0YW5jZXMgb2YgdGhlIF9tYXQtZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZyBtaXhpbiBuZWdsaWdpYmx5IGRpZmZlcmVudCxcbi8vIGFuZCBwcmV2ZW50IEdvb2dsZSdzIENTUyBPcHRpbWl6ZXIgZnJvbSBjb2xsYXBzaW5nIHRoZSBkZWNsYXJhdGlvbnMuIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2Ugc29tZVxuLy8gb2YgdGhlIHNlbGVjdG9ycyBjb250YWluIHBzZXVkby1jbGFzc2VzIG5vdCByZWNvZ25pemVkIGluIGFsbCBicm93c2Vycy4gSWYgYSBicm93c2VyIGVuY291bnRlcnNcbi8vIGFuIHVua25vd24gcHNldWRvLWNsYXNzIGl0IHdpbGwgZGlzY2FyZCB0aGUgZW50aXJlIHJ1bGUgc2V0LlxuJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLW91dGxpbmUtbGFiZWwtZmxvYXRpbmcoJGZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGUpXG4gIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgd2lkdGg6IDEwMCUgLyAkZm9udC1zY2FsZSArICRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsIGFuZCBzdWJzY3JpcHQuXG4gICRzdWJzY3JpcHQtZm9udC1zY2FsZTogMC43NTtcbiAgLy8gVGhlIHBhZGRpbmcgYWJvdmUgYW5kIGJlbG93IHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmc6IDFlbTtcbiAgLy8gVGhlIG1hcmdpbiBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLWluZml4IHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBmbG9hdGluZyBsYWJlbC5cbiAgJGluZml4LW1hcmdpbi10b3A6IDFlbSAqICRsaW5lLWhlaWdodCAqICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIHNwYWNlIGJldHdlZW4gdGhlIGJvdHRvbSBvZiB0aGUgLm1hdC1mb3JtLWZpZWxkLWZsZXggYXJlYSBhbmQgdGhlIHN1YnNjcmlwdCB3cmFwcGVyLlxuICAvLyBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZSwgYnV0IHRoaXMgbWFyZ2luIGlzIGFwcGxpZWQgdG8gYW4gZWxlbWVudCB3aXRoIHRoZSBzdWJzY3JpcHRcbiAgLy8gdGV4dCBmb250IHNpemUsIHNvIHdlIG5lZWQgdG8gZGl2aWRlIGJ5IHRoZSBzY2FsZSBmYWN0b3IgdG8gbWFrZSBpdCBoYWxmIG9mIHRoZSBvcmlnaW5hbCB0ZXh0XG4gIC8vIHNpemUuXG4gICRzdWJzY3JpcHQtbWFyZ2luLXRvcDogMC41ZW0gLyAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBwYWRkaW5nIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtd3JhcHBlciB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgc3Vic2NyaXB0LCBzaW5jZSBpdCdzXG4gIC8vIGFic29sdXRlbHkgcG9zaXRpb25lZC4gVGhpcyBpcyBhIGNvbWJpbmF0aW9uIG9mIHRoZSBzdWJzY3JpcHQncyBtYXJnaW4gYW5kIGxpbmUtaGVpZ2h0LCBidXQgd2VcbiAgLy8gbmVlZCB0byBtdWx0aXBseSBieSB0aGUgc3Vic2NyaXB0IGZvbnQgc2NhbGUgZmFjdG9yIHNpbmNlIHRoZSB3cmFwcGVyIGhhcyBhIGxhcmdlciBmb250IHNpemUuXG4gICR3cmFwcGVyLXBhZGRpbmctYm90dG9tOiAoJHN1YnNjcmlwdC1tYXJnaW4tdG9wICsgJGxpbmUtaGVpZ2h0KSAqICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIGFtb3VudCB3ZSBvZmZzZXQgdGhlIGxhYmVsIGZyb20gdGhlIGlucHV0IHRleHQgaW4gdGhlIG91dGxpbmUgYXBwZWFyYW5jZS5cbiAgJG91dGxpbmUtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQ6IC0wLjI1ZW07XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nIDAgJGluZml4LXBhZGRpbmcgMDtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgdG9wOiAkaW5maXgtbWFyZ2luLXRvcCArICRpbmZpeC1wYWRkaW5nO1xuICAgICAgbWFyZ2luLXRvcDogJG91dGxpbmUtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQ7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtb3V0bGluZS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nICsgJG91dGxpbmUtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuXG4gICAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLW91dGxpbmUtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZyArICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuLy8gVGhlbWUgc3R5bGVzIHRoYXQgb25seSBhcHBseSB0byB0aGUgc3RhbmRhcmQgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuXG4gICR1bmRlcmxpbmUtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNywgMC40MikpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jb250cm9sLWRpc2FibGVkLXVuZGVybGluZSgkdW5kZXJsaW5lLWNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLXR5cG9ncmFwaHkoJGNvbmZpZykge31cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBhcHBseSB0byBhbGwgYXBwZWFyYW5jZXMgb2YgdGhlIGZvcm0tZmllbGQuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuXG4gIC8vIExhYmVsIGNvbG9ycy4gUmVxdWlyZWQgaXMgdXNlZCBmb3IgdGhlIGAqYCBzdGFyIHNob3duIGluIHRoZSBsYWJlbC5cbiAgJGxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0LCBpZigkaXMtZGFyay10aGVtZSwgMC43LCAwLjYpKTtcbiAgJGZvY3VzZWQtbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICRyZXF1aXJlZC1sYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuXG4gIC8vIFVuZGVybGluZSBjb2xvcnMuXG4gICR1bmRlcmxpbmUtY29sb3ItYmFzZTogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMSwgMC44NykpO1xuICAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICAkdW5kZXJsaW5lLWNvbG9yLXdhcm46IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICR1bmRlcmxpbmUtZm9jdXNlZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIGNvbG9yOiAkbGFiZWwtY29sb3I7XG4gIH1cblxuICAubWF0LWhpbnQge1xuICAgIGNvbG9yOiAkbGFiZWwtY29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBjb2xvcjogJGZvY3VzZWQtbGFiZWwtY29sb3I7XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3ItYWNjZW50O1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICB9XG4gIH1cblxuICAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gICAgY29sb3I6ICRyZXF1aXJlZC1sYWJlbC1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3ItYmFzZTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I7XG5cbiAgICAgICYubWF0LWFjY2VudCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3ItYWNjZW50O1xuICAgICAgfVxuXG4gICAgICAmLm1hdC13YXJuIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkge1xuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtZm9jdXNlZC1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci1hY2NlbnQ7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLy8gU3R5bGluZyBmb3IgdGhlIGVycm9yIHN0YXRlIG9mIHRoZSBmb3JtIGZpZWxkLiBOb3RlIHRoYXQgd2hpbGUgdGhlIHNhbWUgY2FuIGJlXG4gIC8vIGFjaGlldmVkIHdpdGggdGhlIG5nLSogY2xhc3Nlcywgd2UgdXNlIHRoaXMgYXBwcm9hY2ggaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgdGhlIHNhbWVcbiAgLy8gbG9naWMgaXMgdXNlZCB0byBzdHlsZSB0aGUgZXJyb3Igc3RhdGUgYW5kIHRvIHNob3cgdGhlIGVycm9yIG1lc3NhZ2VzLlxuICAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG5cbiAgICAgICYubWF0LWFjY2VudCxcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICAgICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4gICAgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICB9XG4gIH1cblxuICAubWF0LWVycm9yIHtcbiAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICB9XG5cbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtbGVnYWN5LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWZpbGwtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGVtZSgkdGhlbWUpO1xufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1kZWR1cGU6IDA7XG5cbi8vIEFwcGxpZXMgYSBmbG9hdGluZyBsYWJlbCBhYm92ZSB0aGUgZm9ybSBmaWVsZCBjb250cm9sIGl0c2VsZi5cbkBtaXhpbiBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoJGZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtZGVkdXBlKVxuICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgd2lkdGg6IDEwMCUgLyAkZm9udC1zY2FsZSArICRtYXQtZm9ybS1maWVsZC1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG5cbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsIGFuZCBzdWJzY3JpcHQuXG4gICRzdWJzY3JpcHQtZm9udC1zY2FsZTogMC43NTtcbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIHByZWZpeCBhbmQgc3VmZml4IGljb25zLlxuICAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGU6IDEuNTtcblxuICAvLyBUaGUgcGFkZGluZyBvbiB0aGUgaW5maXguIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLlxuICAkaW5maXgtcGFkZGluZzogMC41ZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIEZvbnQgc2l6ZSB0byB1c2UgZm9yIHRoZSBsYWJlbCBhbmQgc3Vic2NyaXB0IHRleHQuXG4gICRzdWJzY3JpcHQtZm9udC1zaXplOiAkc3Vic2NyaXB0LWZvbnQtc2NhbGUgKiAxMDAlO1xuICAvLyBGb250IHNpemUgdG8gdXNlIGZvciB0aGUgZm9yIHRoZSBwcmVmaXggYW5kIHN1ZmZpeCBpY29ucy5cbiAgJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNpemU6ICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zY2FsZSAqIDEwMCU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgcGFkZGluZyBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLXdyYXBwZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHN1YnNjcmlwdCwgc2luY2UgaXQnc1xuICAvLyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgc3Vic2NyaXB0J3MgbWFyZ2luIGFuZCBsaW5lLWhlaWdodCwgYnV0IHdlXG4gIC8vIG5lZWQgdG8gbXVsdGlwbHkgYnkgdGhlIHN1YnNjcmlwdCBmb250IHNjYWxlIGZhY3RvciBzaW5jZSB0aGUgd3JhcHBlciBoYXMgYSBsYXJnZXIgZm9udCBzaXplLlxuICAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTogKCRzdWJzY3JpcHQtbWFyZ2luLXRvcCArICRsaW5lLWhlaWdodCkgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG5cbiAgLm1hdC1mb3JtLWZpZWxkIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgaW5wdXQpO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1wcmVmaXgsXG4gIC5tYXQtZm9ybS1maWVsZC1zdWZmaXgge1xuICAgIC8vIEFsbG93IGljb25zIGluIGEgcHJlZml4IG9yIHN1ZmZpeCB0byBhZGFwdCB0byB0aGUgY29ycmVjdCBzaXplLlxuICAgIC5tYXQtaWNvbiB7XG4gICAgICBmb250LXNpemU6ICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICB9XG5cbiAgICAvLyBBbGxvdyBpY29uIGJ1dHRvbnMgaW4gYSBwcmVmaXggb3Igc3VmZml4IHRvIGFkYXB0IHRvIHRoZSBjb3JyZWN0IHNpemUuXG4gICAgLm1hdC1pY29uLWJ1dHRvbiB7XG4gICAgICBoZWlnaHQ6ICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zY2FsZSAqIDFlbTtcbiAgICAgIHdpZHRoOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxZW07XG5cbiAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgIGhlaWdodDogJGxpbmUtaGVpZ2h0ICogMWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgcGFkZGluZzogJGluZml4LXBhZGRpbmcgMDtcbiAgICAvLyBUaHJvd3Mgb2ZmIHRoZSBiYXNlbGluZSBpZiB3ZSBkbyBpdCBhcyBhIHJlYWwgbWFyZ2luLCBzbyB3ZSBkbyBpdCBhcyBhIGJvcmRlciBpbnN0ZWFkLlxuICAgIGJvcmRlci10b3A6ICRpbmZpeC1tYXJnaW4tdG9wIHNvbGlkIHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCB7XG4gICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgIH1cblxuICAgIC8vIFNlcnZlci1zaWRlIHJlbmRlcmVkIG1hdElucHV0IHdpdGggYSBsYWJlbCBhdHRyaWJ1dGUgYnV0IGxhYmVsIG5vdCBzaG93blxuICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgICB0b3A6IC0kaW5maXgtbWFyZ2luLXRvcDtcbiAgICBwYWRkaW5nLXRvcDogJGluZml4LW1hcmdpbi10b3A7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZztcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgIC8vIFdlIHdhbnQgdGhlIHVuZGVybGluZSB0byBzdGFydCBhdCB0aGUgZW5kIG9mIHRoZSBjb250ZW50IGJveCwgbm90IHRoZSBwYWRkaW5nIGJveCxcbiAgICAvLyBzbyB3ZSBtb3ZlIGl0IHVwIGJ5IHRoZSBwYWRkaW5nIGFtb3VudC5cbiAgICBib3R0b206ICR3cmFwcGVyLXBhZGRpbmctYm90dG9tO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgICBmb250LXNpemU6ICRzdWJzY3JpcHQtZm9udC1zaXplO1xuICAgIG1hcmdpbi10b3A6ICRzdWJzY3JpcHQtbWFyZ2luLXRvcDtcblxuICAgIC8vIFdlIHdhbnQgdGhlIHN1YnNjcmlwdCB0byBzdGFydCBhdCB0aGUgZW5kIG9mIHRoZSBjb250ZW50IGJveCwgbm90IHRoZSBwYWRkaW5nIGJveCxcbiAgICAvLyBzbyB3ZSBtb3ZlIGl0IHVwIGJ5IHRoZSBwYWRkaW5nIGFtb3VudCAoYWRqdXN0ZWQgZm9yIHRoZSBzbWFsbGVyIGZvbnQgc2l6ZSk7XG4gICAgdG9wOiBjYWxjKDEwMCUgLSAjeyR3cmFwcGVyLXBhZGRpbmctYm90dG9tIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlfSk7XG4gIH1cblxuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1sZWdhY3ktdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtc3RhbmRhcmQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtZmlsbC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG59XG5cblxuXG5cblxuQG1peGluIG1hdC10cmVlLXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdHJlZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICB9XG5cbiAgLm1hdC10cmVlLW5vZGUsXG4gIC5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC10cmVlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRyZWUge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LXRyZWUtbm9kZSxcbiAgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlIHtcbiAgICBmb250LXdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cbi8vIEluY2x1ZGVzIGFsbCBvZiB0aGUgdHlwb2dyYXBoaWMgc3R5bGVzLlxuQG1peGluIGFuZ3VsYXItbWF0ZXJpYWwtdHlwb2dyYXBoeSgkY29uZmlnOiBudWxsKSB7XG4gIEBpZiAkY29uZmlnID09IG51bGwge1xuICAgICRjb25maWc6IG1hdC10eXBvZ3JhcGh5LWNvbmZpZygpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWF0LWJhZGdlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1iYXNlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1hdXRvY29tcGxldGUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJvdHRvbS1zaGVldC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYnV0dG9uLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1idXR0b24tdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1jYXJkLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1jaGVja2JveC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2hpcHMtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXRhYmxlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1kYXRlcGlja2VyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1kaWFsb2ctdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWV4cGFuc2lvbi1wYW5lbC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZ3JpZC1saXN0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1pY29uLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1pbnB1dC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtbWVudS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcGFnaW5hdG9yLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1iYXItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLXNwaW5uZXItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXJhZGlvLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zZWxlY3QtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNpZGVuYXYtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNsaWRlLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc2xpZGVyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zdGVwcGVyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zb3J0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10YWJzLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10b29sYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10b29sdGlwLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1saXN0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1vcHRpb24tdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LW9wdGdyb3VwLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zbmFjay1iYXItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXRyZWUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbn1cblxuXG4vLyBNaXhpbiB0aGF0IHJlbmRlcnMgYWxsIG9mIHRoZSBjb3JlIHN0eWxlcyB0aGF0IGFyZSBub3QgdGhlbWUtZGVwZW5kZW50LlxuQG1peGluIG1hdC1jb3JlKCR0eXBvZ3JhcGh5LWNvbmZpZzogbnVsbCkge1xuICBAaW5jbHVkZSBhbmd1bGFyLW1hdGVyaWFsLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHktY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXJpcHBsZSgpO1xuICBAaW5jbHVkZSBjZGstYTExeSgpO1xuICBAaW5jbHVkZSBjZGstb3ZlcmxheSgpO1xuICBAaW5jbHVkZSBjZGstdGV4dC1maWVsZCgpO1xufVxuXG4vLyBNaXhpbiB0aGF0IHJlbmRlcnMgYWxsIG9mIHRoZSBjb3JlIHN0eWxlcyB0aGF0IGRlcGVuZCBvbiB0aGUgdGhlbWUuXG5AbWl4aW4gbWF0LWNvcmUtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC1yaXBwbGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LW9wdGlvbi10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtb3B0Z3JvdXAtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXBzZXVkby1jaGVja2JveC10aGVtZSgkdGhlbWUpO1xuXG4gIC8vIFByb3ZpZGVzIGV4dGVybmFsIENTUyBjbGFzc2VzIGZvciBlYWNoIGVsZXZhdGlvbiB2YWx1ZS4gRWFjaCBDU1MgY2xhc3MgaXMgZm9ybWF0dGVkIGFzXG4gIC8vIGBtYXQtZWxldmF0aW9uLXokelZhbHVlYCB3aGVyZSBgJHpWYWx1ZWAgY29ycmVzcG9uZHMgdG8gdGhlIHotc3BhY2UgdG8gd2hpY2ggdGhlIGVsZW1lbnQgaXNcbiAgLy8gZWxldmF0ZWQuXG4gIEBmb3IgJHpWYWx1ZSBmcm9tIDAgdGhyb3VnaCAyNCB7XG4gICAgLiN7JF9tYXQtZWxldmF0aW9uLXByZWZpeH0jeyR6VmFsdWV9IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKCR6VmFsdWUsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gV3JhcHBlciBlbGVtZW50IHRoYXQgcHJvdmlkZXMgdGhlIHRoZW1lIGJhY2tncm91bmQgd2hlbiB0aGUgdXNlcidzIGNvbnRlbnQgaXNuJ3RcbiAgLy8gaW5zaWRlIG9mIGEgYG1hdC1zaWRlbmF2LWNvbnRhaW5lcmAuIE5vdGUgdGhhdCB3ZSBuZWVkIHRvIGV4Y2x1ZGUgdGhlIGFtcGVyc2FuZFxuICAvLyBzZWxlY3RvciBpbiBjYXNlIHRoZSBtaXhpbiBpcyBpbmNsdWRlZCBhdCB0aGUgdG9wIGxldmVsLlxuICAubWF0LWFwcC1iYWNrZ3JvdW5kI3tpZigmLCAnLCAmLm1hdC1hcHAtYmFja2dyb3VuZCcsICcnKX0ge1xuICAgICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cblxuICAvLyBNYXJrZXIgdGhhdCBpcyB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSB1c2VyIGhhcyBhZGRlZCBhIHRoZW1lIHRvIHRoZWlyIHBhZ2UuXG4gIEBhdC1yb290IHtcbiAgICAubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1kaXZpZGVyLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtZGl2aWRlciB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxuXG4gIC5tYXQtZGl2aWRlci12ZXJ0aWNhbCB7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG59XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbi8vIENyZWF0ZSBhIHRoZW1lLlxuQG1peGluIGFuZ3VsYXItbWF0ZXJpYWwtdGhlbWUoJHRoZW1lKSB7XG4gIEBpbmNsdWRlIG1hdC1jb3JlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1hdXRvY29tcGxldGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWJhZGdlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1ib3R0b20tc2hlZXQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRvZ2dsZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtY2FyZC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtY2hlY2tib3gtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC10YWJsZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZGF0ZXBpY2tlci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZGlhbG9nLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1kaXZpZGVyLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1leHBhbnNpb24tcGFuZWwtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWdyaWQtbGlzdC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtaWNvbi10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtaW5wdXQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWxpc3QtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LW1lbnUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXBhZ2luYXRvci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3MtYmFyLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1zcGlubmVyLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1yYWRpby10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2VsZWN0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1zaWRlbmF2LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZS10b2dnbGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNsaWRlci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc3RlcHBlci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc29ydC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtdGFicy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtdG9vbGJhci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtdG9vbHRpcC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtdHJlZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc25hY2stYmFyLXRoZW1lKCR0aGVtZSk7XG59XG4iLCIvKi5leGFtcGxlLWJveCB7XG4gIGJvcmRlcjogc29saWQgMXB4ICNjY2M7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBjdXJzb3I6IG1vdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICBib3gtc2hhZG93OiAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5leGFtcGxlLWJveDphY3RpdmUge1xuICBib3gtc2hhZG93OiAwIDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59Ki9cbi8qaHR0cHM6IC8vc3RhY2tibGl0ei5jb20vZWRpdC9hbmd1bGFyLW1hdGVyaWFsLXRoZW1lLXNlY3JldHM/ZW1iZWQ9MSZmaWxlPXNyYyUyRnRoZW1lLnNjc3Mmc291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9T3BlbitTYW5zOjQwMCwzMDAsMzAwaXRhbGljLDQwMGl0YWxpYyw2MDAsNjAwaXRhbGljLDcwMCw3MDBpdGFsaWMsODAwLDgwMGl0YWxpYyZzdWJzZXQ9bGF0aW4tZXh0Jyk7XG5AaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzozMDAsNDAwLDUwMCw3MDAsNDAwaXRhbGljJmFtcDtzdWJzZXQ9bGF0aW4tZXh0Jyk7Ki9cbi8qQGltcG9ydCAnLi4vY3NzL0dvb2dsZUZvbnRzT3BlblNhbnMuY3NzJztcbkBpbXBvcnQgJy4uL2Nzcy9Hb29nbGVGb250c1JvYm90by5jc3MnOyovXG4vKiBUaGVtZSBmb3IgdGhlIHJpcHBsZSBlbGVtZW50cy4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgbWF0ZXJpYWwvbm8tcHJlZml4ZXMgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGZvbnQtc2l6ZTogOXB4O1xufVxuXG4ubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbn1cblxuLm1hdC1oMSwgLm1hdC1oZWFkbGluZSwgLm1hdC10eXBvZ3JhcGh5IGgxIHtcbiAgZm9udDogNDAwIDI0cHgvMzJweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbn1cblxuLm1hdC1oMiwgLm1hdC10aXRsZSwgLm1hdC10eXBvZ3JhcGh5IGgyIHtcbiAgZm9udDogNTAwIDIwcHgvMzJweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbn1cblxuLm1hdC1oMywgLm1hdC1zdWJoZWFkaW5nLTIsIC5tYXQtdHlwb2dyYXBoeSBoMyB7XG4gIGZvbnQ6IDQwMCAxNnB4LzI4cHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG5cbi5tYXQtaDQsIC5tYXQtc3ViaGVhZGluZy0xLCAubWF0LXR5cG9ncmFwaHkgaDQge1xuICBmb250OiA0MDAgMTVweC8yNHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxNnB4O1xufVxuXG4ubWF0LWg1LCAubWF0LXR5cG9ncmFwaHkgaDUge1xuICBmb250OiA0MDAgY2FsYygxNHB4ICogMC44MykvMjBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTJweDtcbn1cblxuLm1hdC1oNiwgLm1hdC10eXBvZ3JhcGh5IGg2IHtcbiAgZm9udDogNDAwIGNhbGMoMTRweCAqIDAuNjcpLzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDEycHg7XG59XG5cbi5tYXQtYm9keS1zdHJvbmcsIC5tYXQtYm9keS0yIHtcbiAgZm9udDogNTAwIDE0cHgvMjRweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1ib2R5LCAubWF0LWJvZHktMSwgLm1hdC10eXBvZ3JhcGh5IHtcbiAgZm9udDogNDAwIDE0cHgvMjBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5tYXQtYm9keSBwLCAubWF0LWJvZHktMSBwLCAubWF0LXR5cG9ncmFwaHkgcCB7XG4gIG1hcmdpbjogMCAwIDEycHg7XG59XG5cbi5tYXQtc21hbGwsIC5tYXQtY2FwdGlvbiB7XG4gIGZvbnQ6IDQwMCAxMnB4LzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtZGlzcGxheS00LCAubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTQge1xuICBmb250OiAzMDAgMTEycHgvMTEycHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wNWVtO1xuICBtYXJnaW46IDAgMCA1NnB4O1xufVxuXG4ubWF0LWRpc3BsYXktMywgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS0zIHtcbiAgZm9udDogNDAwIDU2cHgvNTZweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gIG1hcmdpbjogMCAwIDY0cHg7XG59XG5cbi5tYXQtZGlzcGxheS0yLCAubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTIge1xuICBmb250OiA0MDAgNDVweC80OHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDA1ZW07XG4gIG1hcmdpbjogMCAwIDY0cHg7XG59XG5cbi5tYXQtZGlzcGxheS0xLCAubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTEge1xuICBmb250OiA0MDAgMzRweC80MHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCA2NHB4O1xufVxuXG4ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICBmb250OiA0MDAgMTRweC8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWJ1dHRvbiwgLm1hdC1yYWlzZWQtYnV0dG9uLCAubWF0LWljb24tYnV0dG9uLCAubWF0LXN0cm9rZWQtYnV0dG9uLFxuLm1hdC1mbGF0LWJ1dHRvbiwgLm1hdC1mYWIsIC5tYXQtbWluaS1mYWIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWNhcmQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtY2FyZC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1jYXJkLWhlYWRlciAubWF0LWNhcmQtdGl0bGUge1xuICBmb250LXNpemU6IDIwcHg7XG59XG5cbi5tYXQtY2FyZC1zdWJ0aXRsZSxcbi5tYXQtY2FyZC1jb250ZW50IHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubWF0LWNoZWNrYm94IHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWNoZWNrYm94LWxheW91dCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG5cbi5tYXQtY2hpcCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5tYXQtY2hpcCAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbixcbi5tYXQtY2hpcCAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uIHtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuXG4ubWF0LXRhYmxlIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWhlYWRlci1jZWxsIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LWNlbGwsIC5tYXQtZm9vdGVyLWNlbGwge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5tYXQtY2FsZW5kYXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsLFxuLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlciB0aCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLm1hdC1kaWFsb2ctdGl0bGUge1xuICBmb250OiA1MDAgMjBweC8zMnB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudCB7XG4gIGZvbnQ6IDQwMCAxNHB4LzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtZm9ybS1maWVsZCB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDEuMzQzNzVlbTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24sXG4ubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMTUwJTtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1O1xufVxuLm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24tYnV0dG9uLFxuLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9uIHtcbiAgaGVpZ2h0OiAxLjVlbTtcbiAgd2lkdGg6IDEuNWVtO1xufVxuLm1hdC1mb3JtLWZpZWxkLXByZWZpeCAubWF0LWljb24tYnV0dG9uIC5tYXQtaWNvbixcbi5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24ge1xuICBoZWlnaHQ6IDEuMTI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgcGFkZGluZzogMC41ZW0gMDtcbiAgYm9yZGVyLXRvcDogMC44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjM0Mzc1ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzMzMzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMzQzNzRlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzQzMzMzMyU7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgdG9wOiAtMC44NDM3NWVtO1xuICBwYWRkaW5nLXRvcDogMC44NDM3NWVtO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMzQzNzVlbTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJvdHRvbTogMS4zNDM3NWVtO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIge1xuICBmb250LXNpemU6IDc1JTtcbiAgbWFyZ2luLXRvcDogMC42NjY2NjY2NjY3ZW07XG4gIHRvcDogY2FsYygxMDAlIC0gMS43OTE2NjY2NjY3ZW0pO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMS4yNWVtO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuNDM3NWVtIDA7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxcHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzMzMzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDFweCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjRlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzQzMzMzMyU7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTAycHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTIzZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM1MzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMS4yODEyNWVtO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBib3R0b206IDEuMjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIge1xuICBtYXJnaW4tdG9wOiAwLjU0MTY2NjY2NjdlbTtcbiAgdG9wOiBjYWxjKDEwMCUgLSAxLjY2NjY2NjY2NjdlbSk7XG59XG5cbkBtZWRpYSBwcmludCB7XG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyMmVtKSBzY2FsZSgwLjc1KTtcbiAgfVxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyMWVtKSBzY2FsZSgwLjc1KTtcbiAgfVxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTJlbSkgc2NhbGUoMC43NSk7XG4gIH1cbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgcGFkZGluZzogMC4yNWVtIDAgMC43NWVtIDA7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMS4wOTM3NWVtO1xuICBtYXJnaW4tdG9wOiAtMC41ZW07XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuNTkzNzVlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzMzMzMzMyU7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuNTkzNzRlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzQzMzMzMyU7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgcGFkZGluZzogMWVtIDAgMWVtIDA7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMS44NDM3NWVtO1xuICBtYXJnaW4tdG9wOiAtMC4yNWVtO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjU5Mzc1ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzMzMzMzMzMlO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjU5Mzc0ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM0MzMzMzMlO1xufVxuXG4ubWF0LWdyaWQtdGlsZS1oZWFkZXIsXG4ubWF0LWdyaWQtdGlsZS1mb290ZXIge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4ubWF0LWdyaWQtdGlsZS1oZWFkZXIgLm1hdC1saW5lLFxuLm1hdC1ncmlkLXRpbGUtZm9vdGVyIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5tYXQtZ3JpZC10aWxlLWhlYWRlciAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMiksXG4ubWF0LWdyaWQtdGlsZS1mb290ZXIgLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG5pbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIG1hcmdpbi10b3A6IC0wLjA2MjVlbTtcbn1cblxuLm1hdC1tZW51LWl0ZW0ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLm1hdC1wYWdpbmF0b3IsXG4ubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1zZWxlY3Qge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBoZWlnaHQ6IDEuMTI1ZW07XG59XG5cbi5tYXQtc2xpZGUtdG9nZ2xlLWNvbnRlbnQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1zdGVwcGVyLXZlcnRpY2FsLCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1zdGVwLWxhYmVsIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4ubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubWF0LXN0ZXAtbGFiZWwtc2VsZWN0ZWQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtdGFiLWdyb3VwIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXRhYi1sYWJlbCwgLm1hdC10YWItbGluayB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LXRvb2xiYXIsXG4ubWF0LXRvb2xiYXIgaDEsXG4ubWF0LXRvb2xiYXIgaDIsXG4ubWF0LXRvb2xiYXIgaDMsXG4ubWF0LXRvb2xiYXIgaDQsXG4ubWF0LXRvb2xiYXIgaDUsXG4ubWF0LXRvb2xiYXIgaDYge1xuICBmb250OiA1MDAgMjBweC8zMnB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDA7XG59XG5cbi5tYXQtdG9vbHRpcCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBwYWRkaW5nLXRvcDogNnB4O1xuICBwYWRkaW5nLWJvdHRvbTogNnB4O1xufVxuXG4ubWF0LXRvb2x0aXAtaGFuZHNldCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cblxuLm1hdC1saXN0LWl0ZW0ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtbGlzdC1vcHRpb24ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIHtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5lIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMikge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4ubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW0ge1xuICBmb250LXNpemU6IDEycHg7XG59XG4ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5lIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtc3ViaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtb3B0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICBmb250OiA1MDAgMTRweC8yNHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXNpbXBsZS1zbmFja2JhciB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC10cmVlIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXRyZWUtbm9kZSxcbi5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1yaXBwbGUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5tYXQtcmlwcGxlLm1hdC1yaXBwbGUtdW5ib3VuZGVkIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHksIHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uY2RrLXZpc3VhbGx5LWhpZGRlbiB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBvdXRsaW5lOiAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLmNkay1vdmVybGF5LWNvbnRhaW5lciwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNkay1vdmVybGF5LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMTAwMDtcbn1cbi5jZGstb3ZlcmxheS1jb250YWluZXI6ZW1wdHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwMDA7XG59XG5cbi5jZGstb3ZlcmxheS1wYW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgei1pbmRleDogMTAwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xufVxuXG4uY2RrLW92ZXJsYXktYmFja2Ryb3Age1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogMTAwMDtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7XG4gIG9wYWNpdHk6IDA7XG59XG4uY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gIG9wYWNpdHk6IDE7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuY2RrLW92ZXJsYXktYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgb3BhY2l0eTogMC42O1xuICB9XG59XG5cbi5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMyKTtcbn1cblxuLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wLCAuY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtaW4td2lkdGg6IDFweDtcbiAgbWluLWhlaWdodDogMXB4O1xufVxuXG4uY2RrLWdsb2JhbC1zY3JvbGxibG9jayB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCB7XG4gIC8qISovXG59XG5Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCB7XG4gIC8qISovXG59XG4uY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQ7XG59XG5cbi5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6bm90KDotd2Via2l0LWF1dG9maWxsKSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQ7XG59XG5cbnRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZSB7XG4gIHJlc2l6ZTogbm9uZTtcbn1cblxudGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplLW1lYXN1cmluZyB7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDJweCAwICFpbXBvcnRhbnQ7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7XG59XG5cbi5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi5tYXQtb3B0aW9uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LW9wdGlvbjpob3Zlcjpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpLCAubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuLm1hdC1vcHRpb24ubWF0LWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1vcHRpb24ubWF0LW9wdGlvbi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LXByaW1hcnkgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogIzY0YjVmNjtcbn1cblxuLm1hdC1hY2NlbnQgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogeWVsbG93O1xufVxuXG4ubWF0LXdhcm4gLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LW9wdGdyb3VwLWRpc2FibGVkIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC1wc2V1ZG8tY2hlY2tib3gge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5tYXQtcHNldWRvLWNoZWNrYm94OjphZnRlciB7XG4gIGNvbG9yOiAjZmFmYWZhO1xufVxuXG4ubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCB7XG4gIGNvbG9yOiAjYjBiMGIwO1xufVxuXG4ubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSxcbi5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4ubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZDogeWVsbG93O1xufVxuXG4ubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZDogIzY0YjVmNjtcbn1cblxuLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4ubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG59XG5cbi5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxcbi5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQ6ICNiMGIwYjA7XG59XG5cbi5tYXQtZWxldmF0aW9uLXowIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoyIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejMge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16NCB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16NSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16NiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejcge1xuICBib3gtc2hhZG93OiAwcHggNHB4IDVweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDdweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMnB4IDE2cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXo4IHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16OSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTZweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejEwIHtcbiAgYm94LXNoYWRvdzogMHB4IDZweCA2cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMHB4IDE0cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA0cHggMThweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejExIHtcbiAgYm94LXNoYWRvdzogMHB4IDZweCA3cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMXB4IDE1cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA0cHggMjBweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejEyIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejEzIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxM3B4IDE5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjRweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejE0IHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA5cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNHB4IDIxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjZweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejE1IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMjhweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejE2IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoxNyB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTFweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE3cHggMjZweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MTgge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejE5IHtcbiAgYm94LXNoYWRvdzogMHB4IDlweCAxMnB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTlweCAyOXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggN3B4IDM2cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoyMCB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMHB4IDMxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggMzhweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejIxIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MjIge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxNHB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjJweCAzNXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDQycHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoyMyB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE0cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyM3B4IDM2cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejI0IHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWFwcC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtdGhlbWUtbG9hZGVkLW1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1hdXRvY29tcGxldGUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kOiAjNjRiNWY2O1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgb3V0bGluZTogc29saWQgMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cblxuLm1hdC1iYWRnZS1hY2NlbnQgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogeWVsbG93O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1iYWRnZS13YXJuIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogI2Y0NDMzNjtcbn1cblxuLm1hdC1iYWRnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1hdC1iYWRnZS1oaWRkZW4gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1hdC1iYWRnZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjYjliOWI5O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4ubWF0LWJhZGdlLWNvbnRlbnQuX21hdC1hbmltYXRpb24tbm9vcGFibGUge1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4ubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cblxuLm1hdC1iYWRnZS1zbWFsbCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbn1cbi5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLThweDtcbn1cbi5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWJlbG93IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJvdHRvbTogLThweDtcbn1cbi5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNnB4O1xufVxuLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTZweDtcbn1cbi5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLThweDtcbn1cbi5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtOHB4O1xufVxuXG4ubWF0LWJhZGdlLW1lZGl1bSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBsaW5lLWhlaWdodDogMjJweDtcbn1cbi5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xMXB4O1xufVxuLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWJlbG93IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJvdHRvbTogLTExcHg7XG59XG4ubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0yMnB4O1xufVxuW2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yMnB4O1xufVxuLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMjJweDtcbn1cbltkaXI9cnRsXSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0yMnB4O1xufVxuLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMTFweDtcbn1cbi5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTExcHg7XG59XG5bZGlyPXJ0bF0gLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTFweDtcbn1cblxuLm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBsaW5lLWhlaWdodDogMjhweDtcbn1cbi5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTE0cHg7XG59XG4ubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xNHB4O1xufVxuLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTI4cHg7XG59XG4ubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0yOHB4O1xufVxuLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTE0cHg7XG59XG4ubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTE0cHg7XG59XG5bZGlyPXJ0bF0gLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNHB4O1xufVxuXG4ubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuXG4ubWF0LWJ1dHRvbiwgLm1hdC1pY29uLWJ1dHRvbiwgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5LCAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5LCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LWJ1dHRvbi5tYXQtYWNjZW50LCAubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnQsIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LWJ1dHRvbi5tYXQtd2FybiwgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiwgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAubWF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLm1hdC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAubWF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAubWF0LXN0cm9rZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLm1hdC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5tYXQtc3Ryb2tlZC1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5tYXQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5tYXQtaWNvbi1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgb3BhY2l0eTogMC4xO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG5cbi5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbn1cblxuLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSkge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZmxhdC1idXR0b24sIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLm1hdC1mYWIsIC5tYXQtbWluaS1mYWIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4ubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksIC5tYXQtZmFiLm1hdC1wcmltYXJ5LCAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAubWF0LWZhYi5tYXQtYWNjZW50LCAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4sIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiwgLm1hdC1mYWIubWF0LXdhcm4sIC5tYXQtbWluaS1mYWIubWF0LXdhcm4ge1xuICBjb2xvcjogd2hpdGU7XG59XG4ubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5tYXQtZmxhdC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAubWF0LWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLm1hdC1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LCAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAubWF0LWZhYi5tYXQtYWNjZW50LCAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4sIC5tYXQtZmFiLm1hdC13YXJuLCAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLm1hdC1mbGF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAubWF0LWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5tYXQtZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5tYXQtZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAubWF0LW1pbmktZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLm1hdC1taW5pLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5tYXQtZmFiLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAubWF0LWZhYi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLm1hdC1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLm1hdC1taW5pLWZhYi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuXG4ubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAubWF0LWZsYXQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LXJhaXNlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLm1hdC1taW5pLWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tYXQtZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5tYXQtbWluaS1mYWI6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWF0LWZhYltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSxcbi5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4ubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4ubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuXG4ubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbltkaXI9cnRsXSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4ubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xufVxuLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JkYmRiZDtcbn1cblxuLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgYm9yZGVyOiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1jYXJkIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1jYXJkOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tYXQtY2FyZC5tYXQtY2FyZC1mbGF0Om5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWNhcmQtc3VidGl0bGUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1jaGVja2JveC1jaGVja21hcmsge1xuICBmaWxsOiAjZmFmYWZhO1xufVxuXG4ubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgc3Ryb2tlOiAjZmFmYWZhICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBibGFjay1vbi13aGl0ZSkge1xuICAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgICBzdHJva2U6ICMwMDAgIWltcG9ydGFudDtcbiAgfVxufVxuXG4ubWF0LWNoZWNrYm94LW1peGVkbWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG59XG5cbi5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLCAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLCAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cblxuLm1hdC1jaGVja2JveC1kaXNhYmxlZC5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IwYjBiMDtcbn1cbi5tYXQtY2hlY2tib3gtZGlzYWJsZWQ6bm90KC5tYXQtY2hlY2tib3gtY2hlY2tlZCkgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIGJvcmRlci1jb2xvcjogI2IwYjBiMDtcbn1cbi5tYXQtY2hlY2tib3gtZGlzYWJsZWQgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuXG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG4ubWF0LWNoZWNrYm94IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cblxuLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LFxuLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjNjRiNWY2O1xufVxuLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4ubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogeWVsbG93O1xufVxuLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LFxuLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xufVxuXG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtcmVtb3ZlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKTphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXIge1xuICBvcGFjaXR5OiAwLjU0O1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC40O1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IGJsYWNrO1xufVxuXG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LWNoaXAtcmVtb3ZlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4ubWF0LXRhYmxlIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi5tYXQtdGFibGUgdGhlYWQsIC5tYXQtdGFibGUgdGJvZHksIC5tYXQtdGFibGUgdGZvb3QsXG5tYXQtaGVhZGVyLXJvdywgbWF0LXJvdywgbWF0LWZvb3Rlci1yb3csXG5bbWF0LWhlYWRlci1yb3ddLCBbbWF0LXJvd10sIFttYXQtZm9vdGVyLXJvd10sXG4ubWF0LXRhYmxlLXN0aWNreSB7XG4gIGJhY2tncm91bmQ6IGluaGVyaXQ7XG59XG5cbm1hdC1yb3csIG1hdC1oZWFkZXItcm93LCBtYXQtZm9vdGVyLXJvdyxcbnRoLm1hdC1oZWFkZXItY2VsbCwgdGQubWF0LWNlbGwsIHRkLm1hdC1mb290ZXItY2VsbCB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtaGVhZGVyLWNlbGwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtY2FsZW5kYXItYXJyb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LWRhdGVwaWNrZXItdG9nZ2xlLFxuLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1uZXh0LWJ1dHRvbixcbi5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItcHJldmlvdXMtYnV0dG9uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG5cbi5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyLWRpdmlkZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3ZlciA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCksXG4uY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCksXG4uY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTgpO1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDAsIDE4MSwgMjQ2LCAwLjQpO1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAwLCAwLjQpO1xufVxuLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LWFjY2VudCAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ0LCA2NywgNTQsIDAuNCk7XG59XG4ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggd2hpdGU7XG59XG5cbi5tYXQtZGF0ZXBpY2tlci1jb250ZW50LXRvdWNoIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gIGNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LWFjY2VudCB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuXG4ubWF0LWRpYWxvZy1jb250YWluZXIge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1kaXZpZGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWV4cGFuc2lvbi1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1hY3Rpb24tcm93IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLmNkay1rZXlib2FyZC1mb2N1c2VkLCAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkuY2RrLXByb2dyYW0tZm9jdXNlZCwgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cblxuQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICB9XG59XG4ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlLFxuLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG5cbi5tYXQtaGludCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG5cbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC13YXJuIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG5cbi5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgY29sb3I6IHllbGxvdztcbn1cblxuLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG5cbi5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogeWVsbG93O1xufVxuLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG5cbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQsXG4ubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG5cbi5tYXQtZXJyb3Ige1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtaGludCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC40MikgMCUsIHJnYmEoMCwgMCwgMCwgMC40MikgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNDIpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNDIpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMik7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtaW52YWxpZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDYpO1xufVxuXG4ubWF0LWljb24ubWF0LXByaW1hcnkge1xuICBjb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtaWNvbi5tYXQtYWNjZW50IHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5tYXQtaWNvbi5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuXG4ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCxcbi5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LWlucHV0LWVsZW1lbnQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4ubWF0LWlucHV0LWVsZW1lbnQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLm1hdC1pbnB1dC1lbGVtZW50Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuXG4ubWF0LWFjY2VudCAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogeWVsbG93O1xufVxuXG4ubWF0LXdhcm4gLm1hdC1pbnB1dC1lbGVtZW50LFxuLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICNmNDQzMzY7XG59XG5cbi5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuXG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1zdWJoZWFkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xufVxuXG4ubWF0LWxpc3Qtb3B0aW9uOmhvdmVyLCAubWF0LWxpc3Qtb3B0aW9uOmZvY3VzLFxuLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsXG4ubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5cbi5tYXQtbWVudS1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLm1hdC1tZW51LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtbWVudS1pdGVtIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRdLCAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF06OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG5cbi5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbi1uby1jb2xvcixcbi5tYXQtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1tZW51LWl0ZW06aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4ubWF0LW1lbnUtaXRlbS5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4ubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZDpub3QoW2Rpc2FibGVkXSkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuXG4ubWF0LXBhZ2luYXRvciB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4ubWF0LXBhZ2luYXRvcixcbi5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbi5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNTQpO1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LXBhZ2luYXRvci1maXJzdCxcbi5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICBib3JkZXItdG9wOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50LFxuLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4ubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgZmlsbDogI2JiZGVmYjtcbn1cblxuLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiZGVmYjtcbn1cblxuLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xufVxuXG4ubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjZmZmZjhkO1xufVxuLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZjhkO1xufVxuLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cblxuLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICNmZmNkZDI7XG59XG4ubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjZGQyO1xufVxuLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuXG4ubWF0LXByb2dyZXNzLXNwaW5uZXIgY2lyY2xlLCAubWF0LXNwaW5uZXIgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjNjRiNWY2O1xufVxuLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1hY2NlbnQgY2lyY2xlLCAubWF0LXNwaW5uZXIubWF0LWFjY2VudCBjaXJjbGUge1xuICBzdHJva2U6IHllbGxvdztcbn1cbi5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtd2FybiBjaXJjbGUsIC5tYXQtc3Bpbm5lci5tYXQtd2FybiBjaXJjbGUge1xuICBzdHJva2U6ICNmNDQzMzY7XG59XG5cbi5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICBib3JkZXItY29sb3I6IHllbGxvdztcbn1cbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQ6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4gLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSxcbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50LFxuLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5tYXQtcmFkaW8tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cblxuLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1zZWxlY3QtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cblxuLm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1zZWxlY3QtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5tYXQtc2VsZWN0LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtcHJpbWFyeSAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogeWVsbG93O1xufVxuLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1pbnZhbGlkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LWRyYXdlci1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1kcmF3ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LWRyYXdlci5tYXQtZHJhd2VyLXB1c2gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5tYXQtZHJhd2VyOm5vdCgubWF0LWRyYXdlci1zaWRlKSB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWRyYXdlci1zaWRlIHtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cblxuW2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGUge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbltkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5kIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZHJhd2VyLWJhY2tkcm9wLm1hdC1kcmF3ZXItc2hvd24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG5cbi5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMCwgMC41NCk7XG59XG4ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDAsIDE4MSwgMjQ2LCAwLjU0KTtcbn1cbi5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC41NCk7XG59XG4ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtc2xpZGUtdG9nZ2xlOm5vdCgubWF0LWNoZWNrZWQpIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cblxuLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xufVxuXG4ubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cblxuLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4ubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWIsXG4ubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLFxuLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtd2FybiAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLFxuLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4ubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMCwgMC4yKTtcbn1cblxuLm1hdC1zbGlkZXI6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCxcbi5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCxcbi5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4ubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4ubWF0LXNsaWRlci1kaXNhYmxlZDpob3ZlciAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cblxuLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYixcbi5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYixcbi5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKSAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4ubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyIC5tYXQtc2xpZGVyLXRodW1iLCAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3Zlci5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLCAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG5cbi5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlciB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpO1xufVxuXG4ubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjcpLCByZ2JhKDAsIDAsIDAsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgwLjAwMDFkZWcsIHJnYmEoMCwgMCwgMCwgMC43KSwgcmdiYSgwLCAwLCAwLCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xufVxuXG4ubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cblxuLm1hdC1zdGVwLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZCwgLm1hdC1zdGVwLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLCAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbkBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwsXG4ubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1vcHRpb25hbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxcbi5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSxcbi5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZWRpdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NGI1ZjY7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5tYXQtc3RlcHBlci12ZXJ0aWNhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuXG4ubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZTo6YmVmb3JlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YmVmb3JlLFxuLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlcixcbi5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgY29sb3I6ICM3NTc1NzU7XG59XG5cbi5tYXQtdGFiLW5hdi1iYXIsXG4ubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtdGFiLW5hdi1iYXIsXG4ubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItaGVhZGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC10YWItZ3JvdXBbY2xhc3MqPW1hdC1iYWNrZ3JvdW5kLV0gLm1hdC10YWItaGVhZGVyLFxuLm1hdC10YWItbmF2LWJhcltjbGFzcyo9bWF0LWJhY2tncm91bmQtXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxODcsIDIyMiwgMjUxLCAwLjMpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAxNDEsIDAuMyk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciwgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtaW5rLWJhciwgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjA1LCAyMTAsIDAuMyk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LWluay1iYXIsIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyLCAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE4NywgMjIyLCAyNTEsIDAuMyk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rcywgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmtzLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMTQxLCAwLjMpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlciwgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmtzLCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlciwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluaywgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIwNSwgMjEwLCAwLjMpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rcywgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluaywgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG5cbi5tYXQtdG9vbGJhciB7XG4gIGJhY2tncm91bmQ6IHdoaXRlc21va2U7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzY0YjVmNjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXRvb2xiYXIubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQ6IHllbGxvdztcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXRvb2xiYXIubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xuICBjb2xvcjogd2hpdGU7XG59XG4ubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxcbi5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuLm1hdC10b29sYmFyIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5tYXQtdG9vbGJhciAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LXZhbHVlLFxuLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LFxuLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLm1hdC10b29sYmFyIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG5cbi5tYXQtdG9vbHRpcCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoOTcsIDk3LCA5NywgMC45KTtcbn1cblxuLm1hdC10cmVlIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi5tYXQtdHJlZS1ub2RlLFxuLm1hdC1uZXN0ZWQtdHJlZS1ub2RlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtc25hY2stYmFyLWNvbnRhaW5lciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIGJhY2tncm91bmQ6ICMzMjMyMzI7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcbiAgY29sb3I6IHllbGxvdztcbn1cblxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW9wdGlvbiB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1vcHRpb246aG92ZXI6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSk6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtb3B0aW9uLm1hdC1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtb3B0aW9uLm1hdC1vcHRpb24tZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW9wdGdyb3VwLWRpc2FibGVkIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94OjphZnRlciB7XG4gIGNvbG9yOiAjMzAzMDMwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCB7XG4gIGNvbG9yOiAjNjg2ODY4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZDogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZDogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZDogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAjNjg2ODY4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejEge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXozIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDVweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejYge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXo3IHtcbiAgYm94LXNoYWRvdzogMHB4IDRweCA1cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA3cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDJweCAxNnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16OCB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejkge1xuICBib3gtc2hhZG93OiAwcHggNXB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDlweCAxMnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMCB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTBweCAxNHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDE4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMSB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggN3B4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTFweCAxNXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMiB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxMyB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTNweCAxOXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxNCB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOXB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTRweCAyMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI2cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxNSB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggOXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTVweCAyMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDI4cHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxNiB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MTcge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxN3B4IDI2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejE4IHtcbiAgYm94LXNoYWRvdzogMHB4IDlweCAxMXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMThweCAyOHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggN3B4IDM0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxOSB7XG4gIGJveC1zaGFkb3c6IDBweCA5cHggMTJweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE5cHggMjlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDdweCAzNnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MjAge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjBweCAzMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDM4cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyMSB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMXB4IDMzcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDBweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejIyIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTRweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIycHggMzVweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MnB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MjMge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNHB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjNweCAzNnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyNCB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hcHAtYmFja2dyb3VuZCwgLnVuaWNvcm4tZGFyay10aGVtZS5tYXQtYXBwLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDMwO1xuICBjb2xvcjogd2hpdGU7XG59XG4ubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKSB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogIzYwN2Q4Yjtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgb3V0bGluZTogc29saWQgMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1hY2NlbnQgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogI2ZmZDc0MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2Utd2FybiAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQ6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtaGlkZGVuIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtZGlzYWJsZWQgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogIzZlNmU2ZTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSB7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtY29udGVudC5tYXQtYmFkZ2UtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC04cHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWJlbG93IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJvdHRvbTogLThweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMTZweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNnB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLThweDtcbn1cbltkaXI9cnRsXSAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLThweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC04cHg7XG59XG5bZGlyPXJ0bF0gLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLThweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgd2lkdGg6IDIycHg7XG4gIGhlaWdodDogMjJweDtcbiAgbGluZS1oZWlnaHQ6IDIycHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xMXB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTFweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMjJweDtcbn1cbltkaXI9cnRsXSAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yMnB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yMnB4O1xufVxuW2Rpcj1ydGxdIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMjJweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xMXB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0xMXB4O1xufVxuW2Rpcj1ydGxdIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTFweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBsaW5lLWhlaWdodDogMjhweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWJvdmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgdG9wOiAtMTRweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTRweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMjhweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0yOHB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTE0cHg7XG59XG5bZGlyPXJ0bF0gLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNHB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTE0cHg7XG59XG5bZGlyPXJ0bF0gLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTE0cHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b24sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24ubWF0LXByaW1hcnksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi5tYXQtd2FybiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ge1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIG9wYWNpdHk6IDAuMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybiB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWI6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgW2Rpcj1ydGxdIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjEyMTIxO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgYm9yZGVyOiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYXJkIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhcmQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhcmQubWF0LWNhcmQtZmxhdDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gIGZpbGw6ICMzMDMwMzA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICBzdHJva2U6ICMzMDMwMzAgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7XG4gIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gICAgc3Ryb2tlOiAjMDAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDMwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC13YXJuIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZC5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjg2ODY4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6ICM2ODY4Njg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MTYxNjE7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggM3B4IDRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKSAubWF0LWNoaXAtcmVtb3ZlOmhvdmVyIHtcbiAgb3BhY2l0eTogMC41NDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC40O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYmxlIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWJsZSB0aGVhZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYmxlIHRib2R5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFibGUgdGZvb3QsXG4udW5pY29ybi1kYXJrLXRoZW1lIG1hdC1oZWFkZXItcm93LCAudW5pY29ybi1kYXJrLXRoZW1lIG1hdC1yb3csIC51bmljb3JuLWRhcmstdGhlbWUgbWF0LWZvb3Rlci1yb3csXG4udW5pY29ybi1kYXJrLXRoZW1lIFttYXQtaGVhZGVyLXJvd10sIC51bmljb3JuLWRhcmstdGhlbWUgW21hdC1yb3ddLCAudW5pY29ybi1kYXJrLXRoZW1lIFttYXQtZm9vdGVyLXJvd10sXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFibGUtc3RpY2t5IHtcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgbWF0LXJvdywgLnVuaWNvcm4tZGFyay10aGVtZSBtYXQtaGVhZGVyLXJvdywgLnVuaWNvcm4tZGFyay10aGVtZSBtYXQtZm9vdGVyLXJvdyxcbi51bmljb3JuLWRhcmstdGhlbWUgdGgubWF0LWhlYWRlci1jZWxsLCAudW5pY29ybi1kYXJrLXRoZW1lIHRkLm1hdC1jZWxsLCAudW5pY29ybi1kYXJrLXRoZW1lIHRkLm1hdC1mb290ZXItY2VsbCB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaGVhZGVyLWNlbGwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNlbGwsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb290ZXItY2VsbCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYWxlbmRhci1hcnJvdyB7XG4gIGJvcmRlci10b3AtY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLW5leHQtYnV0dG9uLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbiB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlci1kaXZpZGVyOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3ZlciA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5NiwgMTI1LCAxMzksIDAuNCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0MjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ3NDA7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMTUsIDY0LCAwLjQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCA4NywgMzQsIDAuNCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQtdG91Y2gge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC1hY2NlbnQge1xuICBjb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LXdhcm4ge1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kaWFsb2ctY29udGFpbmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGl2aWRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGl2aWRlci12ZXJ0aWNhbCB7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hY3Rpb24tcm93IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLmNkay1rZXlib2FyZC1mb2N1c2VkLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKS5jZGstcHJvZ3JhbS1mb2N1c2VkLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICB9XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWV4cGFuc2lvbi1pbmRpY2F0b3I6OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWhpbnQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC13YXJuIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKS5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lcnJvciB7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtaGludCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtaW52YWxpZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24ubWF0LXByaW1hcnkge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLm1hdC1hY2NlbnQge1xuICBjb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLm1hdC13YXJuIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6ZGlzYWJsZWQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQgb3B0aW9uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudCBvcHRpb246ZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtd2FybiAubWF0LWlucHV0LWVsZW1lbnQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0ge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbGlzdC1iYXNlIC5tYXQtc3ViaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1saXN0LW9wdGlvbjpob3ZlciwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWxpc3Qtb3B0aW9uOmZvY3VzLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1tZW51LXBhbmVsIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1tZW51LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWVudS1pdGVtIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWVudS1pdGVtW2Rpc2FibGVkXTo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1lbnUtaXRlbSAubWF0LWljb24tbm8tY29sb3IsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcjo6YWZ0ZXIge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWVudS1pdGVtOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWVudS1pdGVtLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdChbZGlzYWJsZWRdKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1tZW51LWl0ZW0taGlnaGxpZ2h0ZWQ6bm90KFtkaXNhYmxlZF0pIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wYWdpbmF0b3Ige1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBhZ2luYXRvcixcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCB3aGl0ZTtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICNjZmQ4ZGM7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZmQ4ZGM7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgZmlsbDogI2ZmZTU3Zjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlNTdmO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICNmZmNjYmM7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmNjYmM7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcm9ncmVzcy1zcGlubmVyIGNpcmNsZSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNwaW5uZXIgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LWFjY2VudCBjaXJjbGUsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zcGlubmVyLm1hdC1hY2NlbnQgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LXdhcm4gY2lyY2xlLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Bpbm5lci5tYXQtd2FybiBjaXJjbGUge1xuICBzdHJva2U6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeTphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICBib3JkZXItY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQ6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4gLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm46YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zZWxlY3QtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zZWxlY3QtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNlbGVjdC1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtcHJpbWFyeSAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LWFjY2VudCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtaW52YWxpZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZHJhd2VyLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDMwMzA7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kcmF3ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZHJhd2VyLm1hdC1kcmF3ZXItcHVzaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZHJhd2VyOm5vdCgubWF0LWRyYXdlci1zaWRlKSB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRyYXdlci1zaWRlIHtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZCB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSBbZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSBbZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3duIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxODksIDE4OSwgMTg5LCAwLjYpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMTUsIDY0LCAwLjU0KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5NiwgMTI1LCAxMzksIDAuNTQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgODcsIDM0LCAwLjU0KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlOm5vdCgubWF0LWNoZWNrZWQpIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmRiZGJkO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWIsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWFjY2VudCAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYixcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtd2FybiAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWIsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIxNSwgNjQsIDAuMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItZGlzYWJsZWQ6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIC5tYXQtc2xpZGVyLXRodW1iLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWIsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyk6aG92ZXIgLm1hdC1zbGlkZXItdGh1bWIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKS5jZGstZm9jdXNlZC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlciB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1ob3Jpem9udGFsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgwLjAwMDFkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXAtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtb3B0aW9uYWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4YjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1hY3RpdmUge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcHBlci12ZXJ0aWNhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgY29sb3I6ICNjNmM2YzY7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItbmF2LWJhcixcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1sYWJlbCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIC5tYXQtdGFiLWhlYWRlcixcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhcltjbGFzcyo9bWF0LWJhY2tncm91bmQtXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwNywgMjE2LCAyMjAsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1pbmstYmFyLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjI5LCAxMjcsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFyLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LWluay1iYXIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIwNCwgMTg4LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LWluay1iYXIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2Fybi5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtaW5rLWJhciwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDcsIDIxNiwgMjIwLCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmtzLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGlua3MsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmssIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjI5LCAxMjcsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmtzLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmssIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjA0LCAxODgsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rcywgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluaywgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdG9vbGJhciB7XG4gIGJhY2tncm91bmQ6ICMyMTIxMjE7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzYwN2Q4YjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2xiYXIubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQ6ICNmZmQ3NDA7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2xiYXIubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kOiAjZmY1NzIyO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LXZhbHVlLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtYXJyb3csXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdG9vbHRpcCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoOTcsIDk3LCA5NywgMC45KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10cmVlIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10cmVlLW5vZGUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi8qXG4gIGh0dHBzOiAvL3N0YWNrYmxpdHouY29tL2VkaXQvYW5ndWxhci1tYXRlcmlhbC10aGVtZS1zZWNyZXRzP2VtYmVkPTEmZmlsZT1zcmMlMkZ0aGVtZS5zY3NzJnNvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgaHR0cHM6Ly9tYXRlcmlhbC5hbmd1bGFyLmlvL2d1aWRlL3R5cG9ncmFwaHlcbiAgaHR0cHM6Ly9tYXRlcmlhbC11aS5jb20vY3VzdG9taXphdGlvbi9jb2xvci9cbiovXG4uZGVmYXVsdE1hdCB7XG4gIC8qLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXIsIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gIH0qL1xuICAvKmh0dHBzOiAvL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80NjgxMjA2NC9ob3ctdG8tc2V0LXRoZS1jb2xvci1vZi1hbi1pY29uLWluLWFuZ3VsYXItbWF0ZXJpYWxcbiAgaHR0cHM6IC8vY3NzLXRyaWNrcy5jb20vc29sdmVkLXdpdGgtY3NzLWNvbG9yaXppbmctc3ZnLWJhY2tncm91bmRzLyovXG4gIC8qIE5vdGU6IElmIHlvdSdyZSB1c2luZyBhbiBTVkcgaWNvbiwgeW91IHNob3VsZCBtYWtlIHRoZSBjbGFzcyB0YXJnZXQgdGhlIGA8c3ZnPmAgZWxlbWVudCAqL1xuICAvKi53aGl0ZS1pY29uIHN2ZyB7XG4gICAgZmlsbDogd2hpdGU7XG4gICAgZmlsdGVyOmJyaWdodG5lc3MoMTAwKTtcbiAgfSovXG4gIC8qLm1hdC1tZW51LWl0ZW0ge1xuICAgIGhlaWdodDoyMHB4O1xuICB9XG4gIGJ1dHRvbi5tYXQtbWVudS1pdGVtIHtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICB9Ki9cbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uZGVmYXVsdE1hdCAubWF0LW9wdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1vcHRpb246aG92ZXI6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC1vcHRpb246Zm9jdXM6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtb3B0aW9uLm1hdC1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtb3B0aW9uLm1hdC1vcHRpb24tZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1hY2NlbnQgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LW9wdGdyb3VwLWRpc2FibGVkIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHNldWRvLWNoZWNrYm94IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXBzZXVkby1jaGVja2JveDo6YWZ0ZXIge1xuICBjb2xvcjogI2ZhZmFmYTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgY29sb3I6ICNiMGIwYjA7XG59XG4uZGVmYXVsdE1hdCAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuLmRlZmF1bHRNYXQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSxcbi5kZWZhdWx0TWF0IC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uZGVmYXVsdE1hdCAubWF0LWFjY2VudCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZDogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uZGVmYXVsdE1hdCAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSB7XG4gIGJhY2tncm91bmQ6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5kZWZhdWx0TWF0IC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZDogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCxcbi5kZWZhdWx0TWF0IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQ6ICNiMGIwYjA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoxIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoyIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXozIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXo0IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16NSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejYge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16NyB7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXo4IHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejkge1xuICBib3gtc2hhZG93OiAwcHggNXB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDlweCAxMnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE2cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MTAge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejExIHtcbiAgYm94LXNoYWRvdzogMHB4IDZweCA3cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMXB4IDE1cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA0cHggMjBweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoxMiB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MTMge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejE0IHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA5cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNHB4IDIxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjZweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoxNSB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggOXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTVweCAyMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDI4cHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MTYge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoxNyB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTFweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE3cHggMjZweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejE4IHtcbiAgYm94LXNoYWRvdzogMHB4IDlweCAxMXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMThweCAyOHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggN3B4IDM0cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MTkge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDEycHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoyMCB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMHB4IDMxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggMzhweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoyMSB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMXB4IDMzcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDBweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoyMiB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDE0cHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoyMyB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE0cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyM3B4IDM2cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoyNCB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYXBwLWJhY2tncm91bmQsIC5kZWZhdWx0TWF0Lm1hdC1hcHAtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC10aGVtZS1sb2FkZWQtbWFya2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmRlZmF1bHRNYXQgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcikge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogIzIxOTZmMztcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAuZGVmYXVsdE1hdCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIG91dGxpbmU6IHNvbGlkIDFweDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWFjY2VudCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiB5ZWxsb3c7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS13YXJuIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWhpZGRlbiAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjYjliOWI5O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5kZWZhdWx0TWF0IC5uZy1hbmltYXRlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudCxcbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtY29udGVudC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSB7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2Utc21hbGwgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC04cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC04cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTE2cHg7XG59XG5bZGlyPXJ0bF0gLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMTZweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAuZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTE2cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLThweDtcbn1cbltkaXI9cnRsXSAuZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC04cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLThweDtcbn1cbltkaXI9cnRsXSAuZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLThweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbWVkaXVtIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTExcHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTFweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTIycHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yMnB4O1xufVxuW2Rpcj1ydGxdIC5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTIycHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xMXB4O1xufVxuW2Rpcj1ydGxdIC5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xMXB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAuZGVmYXVsdE1hdCAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xMXB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBsaW5lLWhlaWdodDogMjhweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTE0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xNHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0yOHB4O1xufVxuW2Rpcj1ydGxdIC5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTI4cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0yOHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNHB4O1xufVxuW2Rpcj1ydGxdIC5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTE0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTE0cHg7XG59XG5bZGlyPXJ0bF0gLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uLCAuZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24ubWF0LXByaW1hcnksIC5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksIC5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnkge1xuICBjb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50IHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLm1hdC13YXJuLCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuLCAuZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC13YXJuIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50LCAuZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBvcGFjaXR5OiAwLjE7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtkaXNhYmxlZF0pIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbiwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLCAuZGVmYXVsdE1hdCAubWF0LWZhYiwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LXByaW1hcnksIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtYWNjZW50LCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4sIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LXdhcm4sIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LXdhcm4ge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50LCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtYWNjZW50LCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4sIC5kZWZhdWx0TWF0IC5tYXQtZmFiLm1hdC13YXJuLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5kZWZhdWx0TWF0IC5tYXQtZmFiLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b246bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWI6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTJweCAxN3B4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDIycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZhYltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUsXG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IFtkaXI9cnRsXSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1idXR0b24tdG9nZ2xlLXZlcnRpY2FsIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JkYmRiZDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJvcmRlcjogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYXJkLm1hdC1jYXJkLWZsYXQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQtc3VidGl0bGUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gIGZpbGw6ICNmYWZhZmE7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgc3Ryb2tlOiAjZmFmYWZhICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBibGFjay1vbi13aGl0ZSkge1xuICAuZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgICBzdHJva2U6ICMwMDAgIWltcG9ydGFudDtcbiAgfVxufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wcmltYXJ5IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC1wcmltYXJ5IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1kaXNhYmxlZC5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtZGlzYWJsZWQubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2IwYjBiMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtZGlzYWJsZWQ6bm90KC5tYXQtY2hlY2tib3gtY2hlY2tlZCkgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIGJvcmRlci1jb2xvcjogI2IwYjBiMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtZGlzYWJsZWQgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCAubWF0LWNoaXAtcmVtb3ZlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDpub3QoLm1hdC1jaGlwLWRpc2FibGVkKTphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXIge1xuICBvcGFjaXR5OiAwLjU0O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC40O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IGJsYWNrO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMztcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWJsZSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWJsZSB0aGVhZCwgLmRlZmF1bHRNYXQgLm1hdC10YWJsZSB0Ym9keSwgLmRlZmF1bHRNYXQgLm1hdC10YWJsZSB0Zm9vdCxcbi5kZWZhdWx0TWF0IG1hdC1oZWFkZXItcm93LCAuZGVmYXVsdE1hdCBtYXQtcm93LCAuZGVmYXVsdE1hdCBtYXQtZm9vdGVyLXJvdyxcbi5kZWZhdWx0TWF0IFttYXQtaGVhZGVyLXJvd10sIC5kZWZhdWx0TWF0IFttYXQtcm93XSwgLmRlZmF1bHRNYXQgW21hdC1mb290ZXItcm93XSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFibGUtc3RpY2t5IHtcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcbn1cbi5kZWZhdWx0TWF0IG1hdC1yb3csIC5kZWZhdWx0TWF0IG1hdC1oZWFkZXItcm93LCAuZGVmYXVsdE1hdCBtYXQtZm9vdGVyLXJvdyxcbi5kZWZhdWx0TWF0IHRoLm1hdC1oZWFkZXItY2VsbCwgLmRlZmF1bHRNYXQgdGQubWF0LWNlbGwsIC5kZWZhdWx0TWF0IHRkLm1hdC1mb290ZXItY2VsbCB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWhlYWRlci1jZWxsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNlbGwsIC5kZWZhdWx0TWF0IC5tYXQtZm9vdGVyLWNlbGwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZSxcbi5kZWZhdWx0TWF0IC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4uZGVmYXVsdE1hdCAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyLWRpdmlkZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLmRlZmF1bHRNYXQgLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmUgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLmRlZmF1bHRNYXQgLmNkay1wcm9ncmFtLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMztcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzMywgMTUwLCAyNDMsIDAuNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXkubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRhdGVwaWNrZXItY29udGVudCB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDAsIDAuNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC40KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGF0ZXBpY2tlci1jb250ZW50LXRvdWNoIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUge1xuICBjb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC1hY2NlbnQge1xuICBjb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kaXZpZGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGl2aWRlci12ZXJ0aWNhbCB7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1hY3Rpb24tcm93IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKS5jZGsta2V5Ym9hcmQtZm9jdXNlZCwgLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLmNkay1wcm9ncmFtLWZvY3VzZWQsIC5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKTpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gIH1cbn1cbi5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uLFxuLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbi5kZWZhdWx0TWF0IC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaGludCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQge1xuICBjb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICBjb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKSAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC1hY2NlbnQsXG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVycm9yIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1oaW50IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjQyKSAwJSwgcmdiYSgwLCAwLCAwLCAwLjQyKSAzMyUsIHRyYW5zcGFyZW50IDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0cHggMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNDIpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNDIpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZC5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWljb24ubWF0LXByaW1hcnkge1xuICBjb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaWNvbi5tYXQtYWNjZW50IHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaWNvbi5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1pbnB1dC1lbGVtZW50OmRpc2FibGVkLFxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWlucHV0LWVsZW1lbnQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWlucHV0LWVsZW1lbnQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaW5wdXQtZWxlbWVudDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1pbnB1dC1lbGVtZW50Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtd2FybiAubWF0LWlucHV0LWVsZW1lbnQsXG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlIC5tYXQtc3ViaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtaXRlbS1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3Qtb3B0aW9uOmhvdmVyLCAuZGVmYXVsdE1hdCAubWF0LWxpc3Qtb3B0aW9uOmZvY3VzLFxuLmRlZmF1bHRNYXQgLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbTpob3Zlcixcbi5kZWZhdWx0TWF0IC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsXG4uZGVmYXVsdE1hdCAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLmRlZmF1bHRNYXQgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbTpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LW1lbnUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbWVudS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1tZW51LWl0ZW0ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtbWVudS1pdGVtW2Rpc2FibGVkXTo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbi1uby1jb2xvcixcbi5kZWZhdWx0TWF0IC5tYXQtbWVudS1pdGVtLXN1Ym1lbnUtdHJpZ2dlcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbWVudS1pdGVtOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbi5kZWZhdWx0TWF0IC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLmRlZmF1bHRNYXQgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLmRlZmF1bHRNYXQgLm1hdC1tZW51LWl0ZW0taGlnaGxpZ2h0ZWQ6bm90KFtkaXNhYmxlZF0pIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcGFnaW5hdG9yIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXBhZ2luYXRvcixcbi5kZWZhdWx0TWF0IC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4uZGVmYXVsdE1hdCAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQge1xuICBib3JkZXItdG9wOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuLmRlZmF1bHRNYXQgLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50LFxuLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4uZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICNiYmRlZmI7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJkZWZiO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgZmlsbDogI2ZmZmY4ZDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmY4ZDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgZmlsbDogI2ZmY2RkMjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmNkZDI7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByb2dyZXNzLXNwaW5uZXIgY2lyY2xlLCAuZGVmYXVsdE1hdCAubWF0LXNwaW5uZXIgY2lyY2xlIHtcbiAgc3Ryb2tlOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC1hY2NlbnQgY2lyY2xlLCAuZGVmYXVsdE1hdCAubWF0LXNwaW5uZXIubWF0LWFjY2VudCBjaXJjbGUge1xuICBzdHJva2U6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtd2FybiBjaXJjbGUsIC5kZWZhdWx0TWF0IC5tYXQtc3Bpbm5lci5tYXQtd2FybiBjaXJjbGUge1xuICBzdHJva2U6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnk6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudDphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4gLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4ubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm46YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zZWxlY3QtdmFsdWUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2VsZWN0LXBhbmVsIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNlbGVjdC1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zZWxlY3QtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LWFjY2VudCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWludmFsaWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRyYXdlci1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZHJhd2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kcmF3ZXIubWF0LWRyYXdlci1wdXNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRyYXdlcjpub3QoLm1hdC1kcmF3ZXItc2lkZSkge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZHJhd2VyLXNpZGUge1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZCB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLmRlZmF1bHRNYXQgW2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGUge1xuICBib3JkZXItbGVmdDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi5kZWZhdWx0TWF0IFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5kIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRyYXdlci1iYWNrZHJvcC5tYXQtZHJhd2VyLXNob3duIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDMzLCAxNTAsIDI0MywgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC13YXJuLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC13YXJuLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ0LCA2NywgNTQsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZTpub3QoLm1hdC1jaGVja2VkKSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5kZWZhdWx0TWF0IC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYixcbi5kZWZhdWx0TWF0IC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uZGVmYXVsdE1hdCAubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYixcbi5kZWZhdWx0TWF0IC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4uZGVmYXVsdE1hdCAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWIsXG4uZGVmYXVsdE1hdCAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMCwgMC4yKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uZGVmYXVsdE1hdCAuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLFxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLWRpc2FibGVkOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItbWluLXZhbHVlIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYixcbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYixcbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKSAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyIC5tYXQtc2xpZGVyLXRodW1iLCAuZGVmYXVsdE1hdCAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3Zlci5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iLCAuZGVmYXVsdE1hdCAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci1oYXMtdGlja3MgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGlja3Mge1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDAuMDAwMWRlZywgcmdiYSgwLCAwLCAwLCAwLjcpLCByZ2JhKDAsIDAsIDAsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1oZWFkZXIuY2RrLWtleWJvYXJkLWZvY3VzZWQsIC5kZWZhdWx0TWF0IC5tYXQtc3RlcC1oZWFkZXIuY2RrLXByb2dyYW0tZm9jdXNlZCwgLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5kZWZhdWx0TWF0IC5tYXQtc3RlcC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLFxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtb3B0aW9uYWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXNlbGVjdGVkLFxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMztcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLCAuZGVmYXVsdE1hdCAubWF0LXN0ZXBwZXItdmVydGljYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YmVmb3JlLFxuLmRlZmF1bHRNYXQgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlcixcbi5kZWZhdWx0TWF0IC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zb3J0LWhlYWRlci1hcnJvdyB7XG4gIGNvbG9yOiAjNzU3NTc1O1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhcixcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIC5tYXQtdGFiLW5hdi1iYXIsXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItaGVhZGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1sYWJlbCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIC5tYXQtdGFiLWhlYWRlcixcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXJbY2xhc3MqPW1hdC1iYWNrZ3JvdW5kLV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE4NywgMjIyLCAyNTEsIDAuMyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LWluay1iYXIsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1pbmstYmFyLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAxNDEsIDAuMyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtaW5rLWJhciwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50Lm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjA1LCAyMTAsIDAuMyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LWluay1iYXIsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE4NywgMjIyLCAyNTEsIDAuMyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rcywgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlciwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmtzLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAxNDEsIDAuMyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rcywgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjA1LCAyMTAsIDAuMyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rcywgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmtzLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciB7XG4gIGJhY2tncm91bmQ6IHdoaXRlc21va2U7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzIxOTZmMztcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kOiB5ZWxsb3c7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZDogI2Y0NDMzNjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUsXG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciAubWF0LXNlbGVjdC12YWx1ZSxcbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciAubWF0LXNlbGVjdC1hcnJvdyxcbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10b29sdGlwIHtcbiAgYmFja2dyb3VuZDogcmdiYSg5NywgOTcsIDk3LCAwLjkpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10cmVlIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRyZWUtbm9kZSxcbi5kZWZhdWx0TWF0IC5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgYmFja2dyb3VuZDogIzMyMzIzMjtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2Utc21hbGwgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgZm9udC1zaXplOiA5cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaDEsIC5kZWZhdWx0TWF0IC5tYXQtaGVhZGxpbmUsIC5kZWZhdWx0TWF0IC5tYXQtdHlwb2dyYXBoeSBoMSB7XG4gIGZvbnQ6IDYwMCAyNHB4LzMycHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxNnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1oMiwgLmRlZmF1bHRNYXQgLm1hdC10aXRsZSwgLmRlZmF1bHRNYXQgLm1hdC10eXBvZ3JhcGh5IGgyIHtcbiAgZm9udDogNjAwIDIwcHgvMzJweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWgzLCAuZGVmYXVsdE1hdCAubWF0LXN1YmhlYWRpbmctMiwgLmRlZmF1bHRNYXQgLm1hdC10eXBvZ3JhcGh5IGgzIHtcbiAgZm9udDogNjAwIDE2cHgvMjJweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWg0LCAuZGVmYXVsdE1hdCAubWF0LXN1YmhlYWRpbmctMSwgLmRlZmF1bHRNYXQgLm1hdC10eXBvZ3JhcGh5IGg0IHtcbiAgZm9udDogNjAwIDE1cHgvMjRweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWg1LCAuZGVmYXVsdE1hdCAubWF0LXR5cG9ncmFwaHkgaDUge1xuICBmb250OiA2MDAgY2FsYygxNHB4ICogMC44MykvMzBweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDEycHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWg2LCAuZGVmYXVsdE1hdCAubWF0LXR5cG9ncmFwaHkgaDYge1xuICBmb250OiA2MDAgY2FsYygxNHB4ICogMC42NykvMzBweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDEycHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJvZHktc3Ryb25nLCAuZGVmYXVsdE1hdCAubWF0LWJvZHktMiB7XG4gIGZvbnQ6IDYwMCAxNHB4LzI0cHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1ib2R5LCAuZGVmYXVsdE1hdCAubWF0LWJvZHktMSwgLmRlZmF1bHRNYXQgLm1hdC10eXBvZ3JhcGh5IHtcbiAgZm9udDogNjAwIDE0cHgvMzBweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJvZHkgcCwgLmRlZmF1bHRNYXQgLm1hdC1ib2R5LTEgcCwgLmRlZmF1bHRNYXQgLm1hdC10eXBvZ3JhcGh5IHAge1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbWFsbCwgLmRlZmF1bHRNYXQgLm1hdC1jYXB0aW9uIHtcbiAgZm9udDogNjAwIDEycHgvMjBweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRpc3BsYXktNCwgLmRlZmF1bHRNYXQgLm1hdC10eXBvZ3JhcGh5IC5tYXQtZGlzcGxheS00IHtcbiAgZm9udDogMzAwIDExMnB4LzExMnB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgNTZweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGlzcGxheS0zLCAuZGVmYXVsdE1hdCAubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTMge1xuICBmb250OiA2MDAgNTZweC81NnB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgNjRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGlzcGxheS0yLCAuZGVmYXVsdE1hdCAubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTIge1xuICBmb250OiA0MDAgNDVweC80OHB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgNjRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGlzcGxheS0xLCAuZGVmYXVsdE1hdCAubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTEge1xuICBmb250OiA2MDAgMzRweC80MHB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgNjRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gIGZvbnQ6IDYwMCAxNHB4LzMwcHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24sIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbiwgLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbiwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbixcbi5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24sIC5kZWZhdWx0TWF0IC5tYXQtZmFiLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogODAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FyZCB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQtdGl0bGUge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQtaGVhZGVyIC5tYXQtY2FyZC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FyZC1zdWJ0aXRsZSxcbi5kZWZhdWx0TWF0IC5tYXQtY2FyZC1jb250ZW50IHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveCB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWxheW91dCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAgLm1hdC1jaGlwLXRyYWlsaW5nLWljb24ubWF0LWljb24sXG4uZGVmYXVsdE1hdCAubWF0LWNoaXAgLm1hdC1jaGlwLXJlbW92ZS5tYXQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFibGUge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1oZWFkZXItY2VsbCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2VsbCwgLmRlZmF1bHRNYXQgLm1hdC1mb290ZXItY2VsbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXIge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5IHtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsLFxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1wZXJpb2QtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogODAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIgdGgge1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRpYWxvZy10aXRsZSB7XG4gIGZvbnQ6IDYwMCAyMHB4LzMycHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24tcGFuZWwtY29udGVudCB7XG4gIGZvbnQ6IDYwMCAxNHB4LzMwcHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4xMjU7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjM0Mzc1ZW07XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbixcbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uIHtcbiAgZm9udC1zaXplOiAxNTAlO1xuICBsaW5lLWhlaWdodDogMS4xMjU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24sXG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b24ge1xuICBoZWlnaHQ6IDEuNWVtO1xuICB3aWR0aDogMS41ZW07XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29uLFxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9uIC5tYXQtaWNvbiB7XG4gIGhlaWdodDogMS4xMjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgcGFkZGluZzogMC41ZW0gMDtcbiAgYm9yZGVyLXRvcDogMC44NDM3NWVtIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4zNDM3M2VtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNTMzMzMzJTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjM0MzcyZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM2MzMzMzMlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICB0b3A6IC0wLjg0Mzc1ZW07XG4gIHBhZGRpbmctdG9wOiAwLjg0Mzc1ZW07XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMzQzNzVlbTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBib3R0b206IDEuMzQzNzVlbTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBtYXJnaW4tdG9wOiAwLjY2NjY2NjY2NjdlbTtcbiAgdG9wOiBjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMS4yNWVtO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuNDM3NWVtIDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDZweCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMTllbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzkzMzMzMyU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwN3B4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODExOGVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzM0MDMzMzMzJTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDhweCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMTdlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzNDEzMzMzMyU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAxLjI4MTI1ZW07XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJvdHRvbTogMS4yNWVtO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gIG1hcmdpbi10b3A6IDAuNTQxNjY2NjY2N2VtO1xuICB0b3A6IGNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKTtcbn1cbkBtZWRpYSBwcmludCB7XG4gIC5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODExNmVtKSBzY2FsZSgwLjc1KTtcbiAgfVxuICAuZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODExNWVtKSBzY2FsZSgwLjc1KTtcbiAgfVxuICAuZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTE0ZW0pIHNjYWxlKDAuNzUpO1xuICB9XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDAuMjVlbSAwIDAuNzVlbSAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMDkzNzVlbTtcbiAgbWFyZ2luLXRvcDogLTAuNWVtO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjU5MzczZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM1MzMzMzMlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjU5MzcyZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM2MzMzMzMlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBwYWRkaW5nOiAxZW0gMCAxZW0gMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAxLjg0Mzc1ZW07XG4gIG1hcmdpbi10b3A6IC0wLjI1ZW07XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuNTkzNzNlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzUzMzMzMyU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuNTkzNzJlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzYzMzMzMyU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWdyaWQtdGlsZS1oZWFkZXIsXG4uZGVmYXVsdE1hdCAubWF0LWdyaWQtdGlsZS1mb290ZXIge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWdyaWQtdGlsZS1oZWFkZXIgLm1hdC1saW5lLFxuLmRlZmF1bHRNYXQgLm1hdC1ncmlkLXRpbGUtZm9vdGVyIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZ3JpZC10aWxlLWhlYWRlciAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMiksXG4uZGVmYXVsdE1hdCAubWF0LWdyaWQtdGlsZS1mb290ZXIgLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmRlZmF1bHRNYXQgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICBtYXJnaW4tdG9wOiAtMC4wNjI1ZW07XG59XG4uZGVmYXVsdE1hdCAubWF0LW1lbnUtaXRlbSB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcGFnaW5hdG9yLFxuLmRlZmF1bHRNYXQgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbiB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNlbGVjdCB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgaGVpZ2h0OiAxLjEyNWVtO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZS10b2dnbGUtY29udGVudCB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwcGVyLXZlcnRpY2FsLCAuZGVmYXVsdE1hdCAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbCB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXN0ZXAtbGFiZWwge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1sYWJlbC1lcnJvciB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWxhYmVsLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1saW5rIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogODAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyLFxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIGgxLFxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIGgyLFxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIGgzLFxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIGg0LFxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIGg1LFxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIGg2IHtcbiAgZm9udDogNjAwIDIwcHgvMzJweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdG9vbHRpcCB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgcGFkZGluZy1ib3R0b206IDZweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdG9vbHRpcC1oYW5kc2V0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwYWRkaW5nLXRvcDogOHB4O1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWl0ZW0ge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LW9wdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24ge1xuICBmb250LXNpemU6IDE2cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2UgLm1hdC1zdWJoZWFkZXIge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW0ge1xuICBmb250LXNpemU6IDEycHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5lIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1pdGVtIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtc3ViaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1vcHRpb24ge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE2cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgZm9udDogNjAwIDE0cHgvMjRweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNpbXBsZS1zbmFja2JhciB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogODAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10cmVlIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdHJlZS1ub2RlLFxuLmRlZmF1bHRNYXQgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmRlZmF1bHRNYXQgbWFpbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMEYwRjA7XG59XG4uZGVmYXVsdE1hdCAubWVudSB7XG4gIC8qYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsqL1xuICBjb2xvcjogYmxhY2s7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4uZGVmYXVsdE1hdCBhLCAuZGVmYXVsdE1hdCBhOmhvdmVyLCAuZGVmYXVsdE1hdCBhOmhvdmVyIHNwYW4ge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksXG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbixcbi5kZWZhdWx0TWF0IC5tYXQtZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLFxuLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSxcbi5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b24ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5iYWNrIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjE2MTYxO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYXJkIHtcbiAgbWFyZ2luOiAxMHB4IDEwcHggMCAxMHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1sYXlvdXQgLm1hdC1jaGVja2JveC1sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0IC5tYXQtbGlzdC1pdGVtIC5tYXQtbGlzdC10ZXh0IGg0Lm1hdC1saW5lIHtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdCAubWF0LWxpc3QtaXRlbSAubWF0LWxpc3QtdGV4dCBwLm1hdC1saW5lIHtcbiAgY29sb3I6ICM4MmIxZmY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmbGV4OiAxO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQubWF0LWNhcmQtYWNjZW50IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQubWF0LWNhcmQtd2FybiB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC53aGl0ZS1pY29uIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMTAwKTtcbn1cblxuLlNhdmUge1xuICBjb2xvcjogIzY0YjVmNjtcbn0iXX0= */\"","import { Component, OnInit, Optional, Inject, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-vquadbtfxo',\r\n templateUrl: './vquadbtfxo.component.html',\r\n styleUrls: ['./vquadbtfxo.component.scss']\r\n})\r\nexport class VquadbtfxoComponent implements OnInit {\r\n fromPage: string[];\r\n nodeStatus: boolean = false;\r\n title: string;\r\n baseUrl: string;\r\n url: string;\r\n BtName1: string;\r\n BtNum1: string;\r\n BtName2: string;\r\n BtNum2: string;\r\n BtName3: string;\r\n BtNum3: string;\r\n BtName4: string;\r\n BtNum4: string;\r\n BtName5: string;\r\n BtNum5: string;\r\n BtName6: string;\r\n BtNum6: string;\r\n BtName7: string;\r\n BtNum7: string;\r\n BtName8: string;\r\n BtNum8: string;\r\n BtName9: string;\r\n BtNum9: string;\r\n BtName10: string;\r\n BtNum10: string;\r\n BtName11: string;\r\n BtNum11: string;\r\n BtName12: string;\r\n BtNum12: string;\r\n\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n constructor(private http: HttpClient, public dialogBox: MatDialogRef, @Optional() @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n\r\n //let rows: any[] = JSON.parse(data.pageValue) as any[];\r\n this.fromPage = data.pageValue;//Node ID\r\n this.nodeStatus = data.nodeStatus;\r\n //console.log(data.nodeStatus);\r\n\r\n this.BindBTFXO(data.pageValue);\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n\r\n //let arr = [10, 20, 30, 40];\r\n\r\n //for (var val of this.fromPage) {\r\n // console.log(val); // prints values: 10, 20, 30, 40\r\n //}\r\n }\r\n Close() {\r\n this.dialogBox.close();\r\n }\r\n btfxoData: any[] = [];\r\n successMsg: boolean = false;\r\n BindBTFXO(nodeID: number) {\r\n this.successMsg = false;\r\n this.GetBTFXO(nodeID).subscribe((res: any) => {\r\n // console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //debugger;\r\n //console.log(rows);\r\n this.btfxoData = rows;\r\n //for (var obj of rows) {\r\n // this.BtName1 = obj.BTName_Abs;\r\n\r\n //}\r\n\r\n });\r\n }\r\n UpdateBTFxo() {\r\n for (const key in this.btfxoData) {\r\n if (this.btfxoData[key]) {\r\n this.btfxoData[key].NodeID_Abs = this.fromPage;\r\n }\r\n }\r\n //console.log(this.btfxoData)\r\n this.UpdateVquadBTFxoData(this.btfxoData).subscribe((res: any) => {\r\n this.successMsg = true;\r\n });\r\n }\r\n\r\n parentEvent(title) {\r\n //debugger;\r\n\r\n this.title = title;\r\n this.childTitleEvent.emit(this.title);\r\n }\r\n\r\n GetBTFXO(nodeID: number) {\r\n\r\n this.url = environment.urlAddress + '/api/' + 'NwStat_VQuad/GetBtFxosByNodeID_New?nodeID=' + nodeID;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(this.url, { headers: headerOptions });\r\n\r\n }\r\n\r\n UpdateVquadBTFxoData(btfxoData : any) {\r\n this.url = this.baseUrl + 'NwStat_VQuad/UpdateNwStat_VquadBTFxo';\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, btfxoData, options);\r\n }\r\n\r\n}\r\n","module.exports = \".example-chip-list {\\n width: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc3RhdGlzdGljcy9uZXR3b3JrLXN0YXR1cy92cXVhZHNjcnBhcmFtcy9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvc3JjXFxhcHBcXHN0YXRpc3RpY3NcXG5ldHdvcmstc3RhdHVzXFx2cXVhZHNjcnBhcmFtc1xcdnF1YWRzY3JwYXJhbXMuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3N0YXRpc3RpY3MvbmV0d29yay1zdGF0dXMvdnF1YWRzY3JwYXJhbXMvdnF1YWRzY3JwYXJhbXMuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFBO0FDQ0YiLCJmaWxlIjoic3JjL2FwcC9zdGF0aXN0aWNzL25ldHdvcmstc3RhdHVzL3ZxdWFkc2NycGFyYW1zL3ZxdWFkc2NycGFyYW1zLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmV4YW1wbGUtY2hpcC1saXN0IHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG4iLCIuZXhhbXBsZS1jaGlwLWxpc3Qge1xuICB3aWR0aDogMTAwJTtcbn0iXX0= */\"","import { Component, OnInit, Optional, Inject, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MatChipInputEvent } from '@angular/material/chips';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { environment } from 'src/environments/environment';\r\nimport { KeyValue } from '@angular/common';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\n\r\n@Component({\r\n selector: 'app-vquadscrparams',\r\n templateUrl: './vquadscrparams.component.html',\r\n styleUrls: ['./vquadscrparams.component.scss']\r\n})\r\nexport class VquadscrparamsComponent implements OnInit {\r\n fromPage: string[];\r\n devRowEditable: boolean = false;\r\n title: string;\r\n baseUrl: string;\r\n url: string;\r\n\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n\r\n visible = true;\r\n selectable = true;\r\n removable = true;\r\n addOnBlur = true;\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA];\r\n\r\n CVIP: string[] = [];\r\n add(event: MatChipInputEvent): void {\r\n const input = event.input;\r\n const value = event.value;\r\n\r\n // Add our fruit\r\n if ((value || '').trim()) {\r\n this.CVIP.push(value.trim());\r\n }\r\n\r\n // Reset the input value\r\n if (input) {\r\n input.value = '';\r\n }\r\n }\r\n\r\n remove(chip: string): void {\r\n const index = this.CVIP.indexOf(chip);\r\n\r\n if (index >= 0) {\r\n this.CVIP.splice(index, 1);\r\n }\r\n }\r\n\r\n //https://www.w3schools.com/js/js_json_objects.asp\r\n //https://www.w3schools.com/js/js_json_arrays.asp\r\n GlobalDeviceHeaders = {\r\n \"Remote IP (CVIP): (Use % between IPs)\": { \"key\":\"CVIP\", \"value\": \"\" },//{ \"CVIP\": [\"CVIP1\", \"CVIP2\"] }, Multiple values - Mat chips\r\n \"Global Device1 (GD1): (Ex: 1..8, ?, ?+1, R1..8, R? remote)\": { \"key\": \"GD1\", \"value\": \"\" },\r\n \"Global Device2 (GD2): (Ex: 1..8, ?, ?+1, R1..8, R? remote)\": { \"key\": \"GD2\", \"value\": \"\" },\r\n \"Global Phone1:\": { \"key\": \"GP1\", \"value\": \"\" },\r\n \"Global Phone2:\": { \"key\": \"GP2\", \"value\": \"\" }\r\n };\r\n\r\n //https://stackoverflow.com/questions/48402215/loop-through-array-of-json-object-with-ngfor-angular-4\r\n StartVariableHeaders = {\r\n \"Place Call (PC): (Use % between numbers)\": [{ \"key\": \"PC\", \"value\": \"\" }],\r\n \"Call ID (CI): (Use % between numbers)\": [{ \"key\": \"CI\", \"value\": \"\" }],\r\n \"Call Type (CTO + CTT)\": [{ \"key\": \"CTO\", \"value\": \"\" }, { \"key\": \"CTT\", \"value\": \"\" }],\r\n \"Transmit Digits (TD): (Use % between numbers)\": [{ \"key\": \"TD\", \"value\": \"\" }],\r\n \"Set Sample Rate (SR)\": [{ \"key\": \"SR\", \"value\": \"\" }],\r\n \"Variable INI File (VF)\": [{ \"key\": \"VF\", \"value\": \"\" }]\r\n };\r\n trackByFn(index: any, item: any) {\r\n return index;\r\n }\r\n dummyData = [{ CD: \"jdfhksdhfsd\", PC: \"sfsdkfjhsdkjfh\" }];\r\n\r\n\r\n constructor(private http: HttpClient, public dialogBox: MatDialogRef, @Optional() @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n\r\n this.fromPage = data.pageValue;//device ID\r\n //console.log(data.pageValue)\r\n this.devRowEditable = data.devRowEditable;\r\n\r\n //console.log(data.devRowEditable);\r\n\r\n this.BindScrParams(data.pageValue);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n\r\n Close() {\r\n this.dialogBox.close(this.successMsg);\r\n }\r\n scrParamsData: any[];\r\n successMsg: boolean = false;\r\n BindScrParams(devID: number) {\r\n this.successMsg = false;\r\n this.GetScrParams(devID).subscribe((res: any) => {\r\n // console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //debugger;\r\n //console.log(rows);\r\n this.scrParamsData = rows;\r\n for (var obj of rows) {\r\n for (const key in this.GlobalDeviceHeaders) {\r\n if (this.GlobalDeviceHeaders[key]) {\r\n if (this.GlobalDeviceHeaders[key].key == obj.ParameterName_Abs) {\r\n this.GlobalDeviceHeaders[key].value = obj.ParameterValue_Abs;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n for (const key in this.StartVariableHeaders) {\r\n if (this.StartVariableHeaders[key]) {\r\n let valueArr = this.StartVariableHeaders[key];\r\n for (const subKey in valueArr) {\r\n if (valueArr[subKey]) {\r\n if (valueArr[subKey].key == obj.ParameterName_Abs) {\r\n valueArr[subKey].value = obj.ParameterValue_Abs;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n //console.log(this.GlobalDeviceHeaders);\r\n //console.log(this.StartVariableHeaders);\r\n });\r\n }\r\n UpdateScrParam() {\r\n if (!this.devRowEditable)\r\n this.Close();\r\n else {\r\n //https://stackoverflow.com/questions/37673454/javascript-iterate-key-value-from-json\r\n //console.log(this.GlobalDeviceHeaders[\"Remote IP (CVIP): (Use % between IPs)\"][\"key\"])\r\n //console.log(this.StartVariableHeaders)\r\n this.scrParamsData = [];\r\n for (const key in this.GlobalDeviceHeaders) {\r\n if (this.GlobalDeviceHeaders[key]) {\r\n this.scrParamsData.push({ DevID_Abs: this.fromPage, ParameterName_Abs: this.GlobalDeviceHeaders[key].key, ParameterValue_Abs: this.GlobalDeviceHeaders[key].value })\r\n }\r\n }\r\n for (const key in this.StartVariableHeaders) {\r\n if (this.StartVariableHeaders[key]) {\r\n let valueArr = this.StartVariableHeaders[key];\r\n //console.log(valueArr)\r\n for (const subKey in valueArr) {\r\n //console.log(valueArr[subKey])\r\n if (valueArr[subKey]) {\r\n //console.log(valueArr[subKey].key)\r\n this.scrParamsData.push({ DevID_Abs: this.fromPage, ParameterName_Abs: valueArr[subKey].key, ParameterValue_Abs: valueArr[subKey].value })\r\n }\r\n }\r\n }\r\n }\r\n //console.log(this.scrParamsData)\r\n this.UpdateVquadScrParamData(this.scrParamsData).subscribe((res: any) => {\r\n this.Close();\r\n this.successMsg = true;\r\n });\r\n }\r\n }\r\n\r\n parentEvent(title) {\r\n //debugger;\r\n\r\n this.title = title;\r\n this.childTitleEvent.emit(this.title);\r\n }\r\n\r\n GetScrParams(devID: number) {\r\n\r\n this.url = environment.urlAddress + '/api/' + 'NwStat_VQuad/GetScrParamsByDevID_New?devID=' + devID;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(this.url, { headers: headerOptions });\r\n\r\n }\r\n\r\n\r\n UpdateVquadScrParamData(scrParamsData: any) {\r\n this.url = this.baseUrl + 'NwStat_VQuad/UpdateNwStat_VquadScrParam';\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, scrParamsData, options);\r\n }\r\n\r\n\r\n //https://stackoverflow.com/questions/52793944/angular-keyvalue-pipe-sort-properties-iterate-in-order\r\n //https://stackoverflow.com/questions/54091011/disable-the-default-keyvalue-pipe-sort-in-angular\r\n //https://stackoverflow.com/questions/53883433/how-to-disable-automatic-keyvalue-sorting-angular-6\r\n // Preserve original property order\r\n originalOrder = (a: KeyValue, b: KeyValue): number => {\r\n return 0;\r\n }\r\n\r\n // Order by ascending property value\r\n valueAscOrder = (a: KeyValue, b: KeyValue): number => {\r\n return a.value.localeCompare(b.value);\r\n }\r\n\r\n // Order by descending property key\r\n keyDescOrder = (a: KeyValue, b: KeyValue): number => {\r\n return a.key > b.key ? -1 : (b.key > a.key ? 1 : 0);\r\n }\r\n}\r\n","module.exports = \".outerTable {\\n /*width: 2000px !important;*/\\n}\\n\\n.divFlow {\\n height: 760px;\\n max-height: 800px;\\n overflow: auto;\\n}\\n\\n.outerTable th,\\n.innerTable th {\\n background: #1976D2;\\n color: white;\\n font-weight: bold;\\n text-align: left !important;\\n white-space: nowrap;\\n font-size: 12px;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n}\\n\\n.outerTable td,\\n.innerTable td {\\n text-align: left !important;\\n white-space: nowrap;\\n font-size: 12px;\\n font-family: Verdana, Arial, Helvetica, sans-serif;\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n}\\n\\n.innerTable {\\n width: 100%;\\n}\\n\\n.innerTable tr:nth-child(even) {\\n background: #C9DFF4;\\n}\\n\\n.innerTable tr:nth-child(odd) {\\n background: #FFF;\\n}\\n\\ntr.example-detail-row {\\n height: 0;\\n}\\n\\ntr.example-element-row:not(.example-expanded-row):hover {\\n background: #777;\\n}\\n\\ntr.example-element-row:not(.example-expanded-row):active {\\n background: #efefef;\\n}\\n\\n.example-element-row td {\\n border-bottom-width: 0;\\n}\\n\\n.example-element-detail {\\n overflow: hidden;\\n}\\n\\n.inner-table {\\n width: 1100px;\\n}\\n\\n.inner-table mat-form-field {\\n margin-top: 15px;\\n width: 100%;\\n}\\n\\n.outerTable mat-form-field {\\n margin-top: 15px;\\n width: 70%;\\n}\\n\\n.divHearder {\\n margin-left: 200px;\\n font-size: large;\\n}\\n\\n.highlight {\\n color: blueviolet;\\n}\\n\\n/*https: //stackblitz.com/edit/angular-material-theme-secrets?embed=1&file=src%2Ftheme.scss&source=post_page---------------------------*/\\n\\n/*@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic&subset=latin-ext');\\n@import url('https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic&subset=latin-ext');*/\\n\\n/*@import '../css/GoogleFontsOpenSans.css';\\n@import '../css/GoogleFontsRoboto.css';*/\\n\\n/* Theme for the ripple elements.*/\\n\\n/* stylelint-disable material/no-prefixes */\\n\\n/* stylelint-enable */\\n\\n.mat-badge-content {\\n font-weight: 600;\\n font-size: 12px;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-badge-small .mat-badge-content {\\n font-size: 9px;\\n}\\n\\n.mat-badge-large .mat-badge-content {\\n font-size: 24px;\\n}\\n\\n.mat-h1, .mat-headline, .mat-typography h1 {\\n font: 400 24px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n\\n.mat-h2, .mat-title, .mat-typography h2 {\\n font: 500 20px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n\\n.mat-h3, .mat-subheading-2, .mat-typography h3 {\\n font: 400 16px/28px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n\\n.mat-h4, .mat-subheading-1, .mat-typography h4 {\\n font: 400 15px/24px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n\\n.mat-h5, .mat-typography h5 {\\n font: 400 calc(14px * 0.83)/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n\\n.mat-h6, .mat-typography h6 {\\n font: 400 calc(14px * 0.67)/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n\\n.mat-body-strong, .mat-body-2 {\\n font: 500 14px/24px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-body, .mat-body-1, .mat-typography {\\n font: 400 14px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-body p, .mat-body-1 p, .mat-typography p {\\n margin: 0 0 12px;\\n}\\n\\n.mat-small, .mat-caption {\\n font: 400 12px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-display-4, .mat-typography .mat-display-4 {\\n font: 300 112px/112px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n letter-spacing: -0.05em;\\n margin: 0 0 56px;\\n}\\n\\n.mat-display-3, .mat-typography .mat-display-3 {\\n font: 400 56px/56px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n letter-spacing: -0.02em;\\n margin: 0 0 64px;\\n}\\n\\n.mat-display-2, .mat-typography .mat-display-2 {\\n font: 400 45px/48px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n letter-spacing: -0.005em;\\n margin: 0 0 64px;\\n}\\n\\n.mat-display-1, .mat-typography .mat-display-1 {\\n font: 400 34px/40px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 64px;\\n}\\n\\n.mat-bottom-sheet-container {\\n font: 400 14px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-button, .mat-raised-button, .mat-icon-button, .mat-stroked-button,\\n.mat-flat-button, .mat-fab, .mat-mini-fab {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n\\n.mat-button-toggle {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-card {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-card-title {\\n font-size: 24px;\\n font-weight: 500;\\n}\\n\\n.mat-card-header .mat-card-title {\\n font-size: 20px;\\n}\\n\\n.mat-card-subtitle,\\n.mat-card-content {\\n font-size: 14px;\\n}\\n\\n.mat-checkbox {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-checkbox-layout .mat-checkbox-label {\\n line-height: 24px;\\n}\\n\\n.mat-chip {\\n font-size: 14px;\\n font-weight: 500;\\n}\\n\\n.mat-chip .mat-chip-trailing-icon.mat-icon,\\n.mat-chip .mat-chip-remove.mat-icon {\\n font-size: 18px;\\n}\\n\\n.mat-table {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-header-cell {\\n font-size: 12px;\\n font-weight: 500;\\n}\\n\\n.mat-cell, .mat-footer-cell {\\n font-size: 14px;\\n}\\n\\n.mat-calendar {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-calendar-body {\\n font-size: 13px;\\n}\\n\\n.mat-calendar-body-label,\\n.mat-calendar-period-button {\\n font-size: 14px;\\n font-weight: 500;\\n}\\n\\n.mat-calendar-table-header th {\\n font-size: 11px;\\n font-weight: 400;\\n}\\n\\n.mat-dialog-title {\\n font: 500 20px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-expansion-panel-header {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 15px;\\n font-weight: 400;\\n}\\n\\n.mat-expansion-panel-content {\\n font: 400 14px/20px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-form-field {\\n font-size: inherit;\\n font-weight: 400;\\n line-height: 1.125;\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-form-field-wrapper {\\n padding-bottom: 1.34375em;\\n}\\n\\n.mat-form-field-prefix .mat-icon,\\n.mat-form-field-suffix .mat-icon {\\n font-size: 150%;\\n line-height: 1.125;\\n}\\n\\n.mat-form-field-prefix .mat-icon-button,\\n.mat-form-field-suffix .mat-icon-button {\\n height: 1.5em;\\n width: 1.5em;\\n}\\n\\n.mat-form-field-prefix .mat-icon-button .mat-icon,\\n.mat-form-field-suffix .mat-icon-button .mat-icon {\\n height: 1.125em;\\n line-height: 1.125;\\n}\\n\\n.mat-form-field-infix {\\n padding: 0.5em 0;\\n border-top: 0.84375em solid transparent;\\n}\\n\\n.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.34375em) scale(0.75);\\n transform: translateY(-1.34375em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n\\n.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.34374em) scale(0.75);\\n transform: translateY(-1.34374em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n\\n.mat-form-field-label-wrapper {\\n top: -0.84375em;\\n padding-top: 0.84375em;\\n}\\n\\n.mat-form-field-label {\\n top: 1.34375em;\\n}\\n\\n.mat-form-field-underline {\\n bottom: 1.34375em;\\n}\\n\\n.mat-form-field-subscript-wrapper {\\n font-size: 75%;\\n margin-top: 0.6666666667em;\\n top: calc(100% - 1.7916666667em);\\n}\\n\\n.mat-form-field-appearance-legacy .mat-form-field-wrapper {\\n padding-bottom: 1.25em;\\n}\\n\\n.mat-form-field-appearance-legacy .mat-form-field-infix {\\n padding: 0.4375em 0;\\n}\\n\\n.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);\\n -ms-transform: translateY(-1.28125em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);\\n -ms-transform: translateY(-1.28124em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);\\n -ms-transform: translateY(-1.28123em) scale(0.75);\\n width: 133.3333533333%;\\n}\\n\\n.mat-form-field-appearance-legacy .mat-form-field-label {\\n top: 1.28125em;\\n}\\n\\n.mat-form-field-appearance-legacy .mat-form-field-underline {\\n bottom: 1.25em;\\n}\\n\\n.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {\\n margin-top: 0.5416666667em;\\n top: calc(100% - 1.6666666667em);\\n}\\n\\n@media print {\\n .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.28122em) scale(0.75);\\n transform: translateY(-1.28122em) scale(0.75);\\n }\\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28121em) scale(0.75);\\n }\\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.2812em) scale(0.75);\\n transform: translateY(-1.2812em) scale(0.75);\\n }\\n}\\n\\n.mat-form-field-appearance-fill .mat-form-field-infix {\\n padding: 0.25em 0 0.75em 0;\\n}\\n\\n.mat-form-field-appearance-fill .mat-form-field-label {\\n top: 1.09375em;\\n margin-top: -0.5em;\\n}\\n\\n.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-0.59375em) scale(0.75);\\n transform: translateY(-0.59375em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n\\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-0.59374em) scale(0.75);\\n transform: translateY(-0.59374em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n\\n.mat-form-field-appearance-outline .mat-form-field-infix {\\n padding: 1em 0 1em 0;\\n}\\n\\n.mat-form-field-appearance-outline .mat-form-field-label {\\n top: 1.84375em;\\n margin-top: -0.25em;\\n}\\n\\n.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.59375em) scale(0.75);\\n transform: translateY(-1.59375em) scale(0.75);\\n width: 133.3333333333%;\\n}\\n\\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.59374em) scale(0.75);\\n transform: translateY(-1.59374em) scale(0.75);\\n width: 133.3333433333%;\\n}\\n\\n.mat-grid-tile-header,\\n.mat-grid-tile-footer {\\n font-size: 14px;\\n}\\n\\n.mat-grid-tile-header .mat-line,\\n.mat-grid-tile-footer .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n\\n.mat-grid-tile-header .mat-line:nth-child(n+2),\\n.mat-grid-tile-footer .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n\\ninput.mat-input-element {\\n margin-top: -0.0625em;\\n}\\n\\n.mat-menu-item {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 400;\\n}\\n\\n.mat-paginator,\\n.mat-paginator-page-size .mat-select-trigger {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n}\\n\\n.mat-radio-button {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-select {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-select-trigger {\\n height: 1.125em;\\n}\\n\\n.mat-slide-toggle-content {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-slider-thumb-label-text {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n\\n.mat-stepper-vertical, .mat-stepper-horizontal {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-step-label {\\n font-size: 14px;\\n font-weight: 400;\\n}\\n\\n.mat-step-sub-label-error {\\n font-weight: normal;\\n}\\n\\n.mat-step-label-error {\\n font-size: 14px;\\n}\\n\\n.mat-step-label-selected {\\n font-size: 14px;\\n font-weight: 500;\\n}\\n\\n.mat-tab-group {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-tab-label, .mat-tab-link {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n\\n.mat-toolbar,\\n.mat-toolbar h1,\\n.mat-toolbar h2,\\n.mat-toolbar h3,\\n.mat-toolbar h4,\\n.mat-toolbar h5,\\n.mat-toolbar h6 {\\n font: 500 20px/32px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0;\\n}\\n\\n.mat-tooltip {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 10px;\\n padding-top: 6px;\\n padding-bottom: 6px;\\n}\\n\\n.mat-tooltip-handset {\\n font-size: 14px;\\n padding-top: 8px;\\n padding-bottom: 8px;\\n}\\n\\n.mat-list-item {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-list-option {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-list-base .mat-list-item {\\n font-size: 16px;\\n}\\n\\n.mat-list-base .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n\\n.mat-list-base .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n\\n.mat-list-base .mat-list-option {\\n font-size: 16px;\\n}\\n\\n.mat-list-base .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n\\n.mat-list-base .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n\\n.mat-list-base .mat-subheader {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 500;\\n}\\n\\n.mat-list-base[dense] .mat-list-item {\\n font-size: 12px;\\n}\\n\\n.mat-list-base[dense] .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n\\n.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n\\n.mat-list-base[dense] .mat-list-option {\\n font-size: 12px;\\n}\\n\\n.mat-list-base[dense] .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n\\n.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n\\n.mat-list-base[dense] .mat-subheader {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 500;\\n}\\n\\n.mat-option {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n}\\n\\n.mat-optgroup-label {\\n font: 500 14px/24px Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-simple-snackbar {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n}\\n\\n.mat-simple-snackbar-action {\\n line-height: 1;\\n font-family: inherit;\\n font-size: inherit;\\n font-weight: 500;\\n}\\n\\n.mat-tree {\\n font-family: Roboto, \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.mat-tree-node,\\n.mat-nested-tree-node {\\n font-weight: 400;\\n font-size: 14px;\\n}\\n\\n.mat-ripple {\\n overflow: hidden;\\n position: relative;\\n}\\n\\n.mat-ripple.mat-ripple-unbounded {\\n overflow: visible;\\n}\\n\\n.mat-ripple-element {\\n position: absolute;\\n border-radius: 50%;\\n pointer-events: none;\\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\\n -ms-transform: scale(0);\\n transform: scale(0);\\n}\\n\\n@media (-ms-high-contrast: active) {\\n .mat-ripple-element {\\n display: none;\\n }\\n}\\n\\n.cdk-visually-hidden {\\n border: 0;\\n clip: rect(0 0 0 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n outline: 0;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n}\\n\\n.cdk-overlay-container, .cdk-global-overlay-wrapper {\\n pointer-events: none;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%;\\n}\\n\\n.cdk-overlay-container {\\n position: fixed;\\n z-index: 1000;\\n}\\n\\n.cdk-overlay-container:empty {\\n display: none;\\n}\\n\\n.cdk-global-overlay-wrapper {\\n display: -ms-flexbox;\\n display: flex;\\n position: absolute;\\n z-index: 1000;\\n}\\n\\n.cdk-overlay-pane {\\n position: absolute;\\n pointer-events: auto;\\n box-sizing: border-box;\\n z-index: 1000;\\n display: -ms-flexbox;\\n display: flex;\\n max-width: 100%;\\n max-height: 100%;\\n}\\n\\n.cdk-overlay-backdrop {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n z-index: 1000;\\n pointer-events: auto;\\n -webkit-tap-highlight-color: transparent;\\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\\n opacity: 0;\\n}\\n\\n.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\\n opacity: 1;\\n}\\n\\n@media screen and (-ms-high-contrast: active) {\\n .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\\n opacity: 0.6;\\n }\\n}\\n\\n.cdk-overlay-dark-backdrop {\\n background: rgba(0, 0, 0, 0.32);\\n}\\n\\n.cdk-overlay-transparent-backdrop, .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {\\n opacity: 0;\\n}\\n\\n.cdk-overlay-connected-position-bounding-box {\\n position: absolute;\\n z-index: 1000;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n min-width: 1px;\\n min-height: 1px;\\n}\\n\\n.cdk-global-scrollblock {\\n position: fixed;\\n width: 100%;\\n overflow-y: scroll;\\n}\\n\\n@-webkit-keyframes cdk-text-field-autofill-start {\\n /*!*/\\n}\\n\\n@keyframes cdk-text-field-autofill-start {\\n /*!*/\\n}\\n\\n@-webkit-keyframes cdk-text-field-autofill-end {\\n /*!*/\\n}\\n\\n@keyframes cdk-text-field-autofill-end {\\n /*!*/\\n}\\n\\n.cdk-text-field-autofill-monitored:-webkit-autofill {\\n -webkit-animation-name: cdk-text-field-autofill-start;\\n animation-name: cdk-text-field-autofill-start;\\n}\\n\\n.cdk-text-field-autofill-monitored:not(:-webkit-autofill) {\\n -webkit-animation-name: cdk-text-field-autofill-end;\\n animation-name: cdk-text-field-autofill-end;\\n}\\n\\ntextarea.cdk-textarea-autosize {\\n resize: none;\\n}\\n\\ntextarea.cdk-textarea-autosize-measuring {\\n height: auto !important;\\n overflow: hidden !important;\\n padding: 2px 0 !important;\\n box-sizing: content-box !important;\\n}\\n\\n.mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n\\n.mat-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-option:hover:not(.mat-option-disabled), .mat-option:focus:not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n\\n.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n\\n.mat-option.mat-active {\\n background: rgba(0, 0, 0, 0.04);\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-option.mat-option-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #64b5f6;\\n}\\n\\n.mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: yellow;\\n}\\n\\n.mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #f44336;\\n}\\n\\n.mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-optgroup-disabled .mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-pseudo-checkbox {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-pseudo-checkbox::after {\\n color: #fafafa;\\n}\\n\\n.mat-pseudo-checkbox-disabled {\\n color: #b0b0b0;\\n}\\n\\n.mat-pseudo-checkbox-checked,\\n.mat-pseudo-checkbox-indeterminate,\\n.mat-accent .mat-pseudo-checkbox-checked,\\n.mat-accent .mat-pseudo-checkbox-indeterminate {\\n background: yellow;\\n}\\n\\n.mat-primary .mat-pseudo-checkbox-checked,\\n.mat-primary .mat-pseudo-checkbox-indeterminate {\\n background: #64b5f6;\\n}\\n\\n.mat-warn .mat-pseudo-checkbox-checked,\\n.mat-warn .mat-pseudo-checkbox-indeterminate {\\n background: #f44336;\\n}\\n\\n.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\\n.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\\n background: #b0b0b0;\\n}\\n\\n.mat-elevation-z0 {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z1 {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z2 {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z3 {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z4 {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z5 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z6 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z7 {\\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z8 {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z9 {\\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z10 {\\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z11 {\\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z12 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z13 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z14 {\\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z15 {\\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z16 {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z17 {\\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z18 {\\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z19 {\\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z20 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z21 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z22 {\\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z23 {\\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-elevation-z24 {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-app-background {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-theme-loaded-marker {\\n display: none;\\n}\\n\\n.mat-autocomplete-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-autocomplete-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\\n background: white;\\n}\\n\\n.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-badge-content {\\n color: rgba(0, 0, 0, 0.87);\\n background: #64b5f6;\\n}\\n\\n@media (-ms-high-contrast: active) {\\n .mat-badge-content {\\n outline: solid 1px;\\n border-radius: 0;\\n }\\n}\\n\\n.mat-badge-accent .mat-badge-content {\\n background: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-badge-warn .mat-badge-content {\\n color: white;\\n background: #f44336;\\n}\\n\\n.mat-badge {\\n position: relative;\\n}\\n\\n.mat-badge-hidden .mat-badge-content {\\n display: none;\\n}\\n\\n.mat-badge-disabled .mat-badge-content {\\n background: #b9b9b9;\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-badge-content {\\n position: absolute;\\n text-align: center;\\n display: inline-block;\\n border-radius: 50%;\\n transition: transform 200ms ease-in-out;\\n -ms-transform: scale(0.6);\\n transform: scale(0.6);\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n pointer-events: none;\\n}\\n\\n.ng-animate-disabled .mat-badge-content,\\n.mat-badge-content._mat-animation-noopable {\\n transition: none;\\n}\\n\\n.mat-badge-content.mat-badge-active {\\n -ms-transform: none;\\n transform: none;\\n}\\n\\n.mat-badge-small .mat-badge-content {\\n width: 16px;\\n height: 16px;\\n line-height: 16px;\\n}\\n\\n.mat-badge-small.mat-badge-above .mat-badge-content {\\n top: -8px;\\n}\\n\\n.mat-badge-small.mat-badge-below .mat-badge-content {\\n bottom: -8px;\\n}\\n\\n.mat-badge-small.mat-badge-before .mat-badge-content {\\n left: -16px;\\n}\\n\\n[dir=rtl] .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -16px;\\n}\\n\\n.mat-badge-small.mat-badge-after .mat-badge-content {\\n right: -16px;\\n}\\n\\n[dir=rtl] .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -16px;\\n}\\n\\n.mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -8px;\\n}\\n\\n[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -8px;\\n}\\n\\n.mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -8px;\\n}\\n\\n[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -8px;\\n}\\n\\n.mat-badge-medium .mat-badge-content {\\n width: 22px;\\n height: 22px;\\n line-height: 22px;\\n}\\n\\n.mat-badge-medium.mat-badge-above .mat-badge-content {\\n top: -11px;\\n}\\n\\n.mat-badge-medium.mat-badge-below .mat-badge-content {\\n bottom: -11px;\\n}\\n\\n.mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: -22px;\\n}\\n\\n[dir=rtl] .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -22px;\\n}\\n\\n.mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: -22px;\\n}\\n\\n[dir=rtl] .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -22px;\\n}\\n\\n.mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -11px;\\n}\\n\\n[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -11px;\\n}\\n\\n.mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -11px;\\n}\\n\\n[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -11px;\\n}\\n\\n.mat-badge-large .mat-badge-content {\\n width: 28px;\\n height: 28px;\\n line-height: 28px;\\n}\\n\\n.mat-badge-large.mat-badge-above .mat-badge-content {\\n top: -14px;\\n}\\n\\n.mat-badge-large.mat-badge-below .mat-badge-content {\\n bottom: -14px;\\n}\\n\\n.mat-badge-large.mat-badge-before .mat-badge-content {\\n left: -28px;\\n}\\n\\n[dir=rtl] .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -28px;\\n}\\n\\n.mat-badge-large.mat-badge-after .mat-badge-content {\\n right: -28px;\\n}\\n\\n[dir=rtl] .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -28px;\\n}\\n\\n.mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -14px;\\n}\\n\\n[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -14px;\\n}\\n\\n.mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -14px;\\n}\\n\\n[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -14px;\\n}\\n\\n.mat-bottom-sheet-container {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-button, .mat-icon-button, .mat-stroked-button {\\n color: inherit;\\n background: transparent;\\n}\\n\\n.mat-button.mat-primary, .mat-icon-button.mat-primary, .mat-stroked-button.mat-primary {\\n color: #64b5f6;\\n}\\n\\n.mat-button.mat-accent, .mat-icon-button.mat-accent, .mat-stroked-button.mat-accent {\\n color: yellow;\\n}\\n\\n.mat-button.mat-warn, .mat-icon-button.mat-warn, .mat-stroked-button.mat-warn {\\n color: #f44336;\\n}\\n\\n.mat-button.mat-primary[disabled], .mat-button.mat-accent[disabled], .mat-button.mat-warn[disabled], .mat-button[disabled][disabled], .mat-icon-button.mat-primary[disabled], .mat-icon-button.mat-accent[disabled], .mat-icon-button.mat-warn[disabled], .mat-icon-button[disabled][disabled], .mat-stroked-button.mat-primary[disabled], .mat-stroked-button.mat-accent[disabled], .mat-stroked-button.mat-warn[disabled], .mat-stroked-button[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n\\n.mat-button.mat-primary .mat-button-focus-overlay, .mat-icon-button.mat-primary .mat-button-focus-overlay, .mat-stroked-button.mat-primary .mat-button-focus-overlay {\\n background-color: #64b5f6;\\n}\\n\\n.mat-button.mat-accent .mat-button-focus-overlay, .mat-icon-button.mat-accent .mat-button-focus-overlay, .mat-stroked-button.mat-accent .mat-button-focus-overlay {\\n background-color: yellow;\\n}\\n\\n.mat-button.mat-warn .mat-button-focus-overlay, .mat-icon-button.mat-warn .mat-button-focus-overlay, .mat-stroked-button.mat-warn .mat-button-focus-overlay {\\n background-color: #f44336;\\n}\\n\\n.mat-button[disabled] .mat-button-focus-overlay, .mat-icon-button[disabled] .mat-button-focus-overlay, .mat-stroked-button[disabled] .mat-button-focus-overlay {\\n background-color: transparent;\\n}\\n\\n.mat-button .mat-ripple-element, .mat-icon-button .mat-ripple-element, .mat-stroked-button .mat-ripple-element {\\n opacity: 0.1;\\n background-color: currentColor;\\n}\\n\\n.mat-button-focus-overlay {\\n background: black;\\n}\\n\\n.mat-stroked-button:not([disabled]) {\\n border-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-flat-button, .mat-raised-button, .mat-fab, .mat-mini-fab {\\n color: rgba(0, 0, 0, 0.87);\\n background-color: white;\\n}\\n\\n.mat-flat-button.mat-primary, .mat-raised-button.mat-primary, .mat-fab.mat-primary, .mat-mini-fab.mat-primary {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-flat-button.mat-accent, .mat-raised-button.mat-accent, .mat-fab.mat-accent, .mat-mini-fab.mat-accent {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-flat-button.mat-warn, .mat-raised-button.mat-warn, .mat-fab.mat-warn, .mat-mini-fab.mat-warn {\\n color: white;\\n}\\n\\n.mat-flat-button.mat-primary[disabled], .mat-flat-button.mat-accent[disabled], .mat-flat-button.mat-warn[disabled], .mat-flat-button[disabled][disabled], .mat-raised-button.mat-primary[disabled], .mat-raised-button.mat-accent[disabled], .mat-raised-button.mat-warn[disabled], .mat-raised-button[disabled][disabled], .mat-fab.mat-primary[disabled], .mat-fab.mat-accent[disabled], .mat-fab.mat-warn[disabled], .mat-fab[disabled][disabled], .mat-mini-fab.mat-primary[disabled], .mat-mini-fab.mat-accent[disabled], .mat-mini-fab.mat-warn[disabled], .mat-mini-fab[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n\\n.mat-flat-button.mat-primary, .mat-raised-button.mat-primary, .mat-fab.mat-primary, .mat-mini-fab.mat-primary {\\n background-color: #64b5f6;\\n}\\n\\n.mat-flat-button.mat-accent, .mat-raised-button.mat-accent, .mat-fab.mat-accent, .mat-mini-fab.mat-accent {\\n background-color: yellow;\\n}\\n\\n.mat-flat-button.mat-warn, .mat-raised-button.mat-warn, .mat-fab.mat-warn, .mat-mini-fab.mat-warn {\\n background-color: #f44336;\\n}\\n\\n.mat-flat-button.mat-primary[disabled], .mat-flat-button.mat-accent[disabled], .mat-flat-button.mat-warn[disabled], .mat-flat-button[disabled][disabled], .mat-raised-button.mat-primary[disabled], .mat-raised-button.mat-accent[disabled], .mat-raised-button.mat-warn[disabled], .mat-raised-button[disabled][disabled], .mat-fab.mat-primary[disabled], .mat-fab.mat-accent[disabled], .mat-fab.mat-warn[disabled], .mat-fab[disabled][disabled], .mat-mini-fab.mat-primary[disabled], .mat-mini-fab.mat-accent[disabled], .mat-mini-fab.mat-warn[disabled], .mat-mini-fab[disabled][disabled] {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-flat-button.mat-primary .mat-ripple-element, .mat-raised-button.mat-primary .mat-ripple-element, .mat-fab.mat-primary .mat-ripple-element, .mat-mini-fab.mat-primary .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n\\n.mat-flat-button.mat-accent .mat-ripple-element, .mat-raised-button.mat-accent .mat-ripple-element, .mat-fab.mat-accent .mat-ripple-element, .mat-mini-fab.mat-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n\\n.mat-flat-button.mat-warn .mat-ripple-element, .mat-raised-button.mat-warn .mat-ripple-element, .mat-fab.mat-warn .mat-ripple-element, .mat-mini-fab.mat-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n\\n.mat-stroked-button:not([class*=mat-elevation-z]), .mat-flat-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-raised-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-fab:not([class*=mat-elevation-z]), .mat-mini-fab:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-fab[disabled]:not([class*=mat-elevation-z]), .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-button-toggle-standalone,\\n.mat-button-toggle-group {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.mat-button-toggle-group-appearance-standard {\\n box-shadow: none;\\n}\\n\\n.mat-button-toggle {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-button-toggle .mat-button-toggle-focus-overlay {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n background: white;\\n}\\n\\n.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\\n background-color: black;\\n}\\n\\n.mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n\\n[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: none;\\n border-top: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-button-toggle-checked {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-button-toggle-checked.mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-button-toggle-disabled {\\n color: rgba(0, 0, 0, 0.26);\\n background-color: #eeeeee;\\n}\\n\\n.mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\\n background: white;\\n}\\n\\n.mat-button-toggle-disabled.mat-button-toggle-checked {\\n background-color: #bdbdbd;\\n}\\n\\n.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.mat-button-toggle-group-appearance-standard {\\n border: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-card {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-card:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-card-subtitle {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-checkbox-frame {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-checkbox-checkmark {\\n fill: #fafafa;\\n}\\n\\n.mat-checkbox-checkmark-path {\\n stroke: #fafafa !important;\\n}\\n\\n@media (-ms-high-contrast: black-on-white) {\\n .mat-checkbox-checkmark-path {\\n stroke: #000 !important;\\n }\\n}\\n\\n.mat-checkbox-mixedmark {\\n background-color: #fafafa;\\n}\\n\\n.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .mat-checkbox-checked.mat-primary .mat-checkbox-background {\\n background-color: #64b5f6;\\n}\\n\\n.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .mat-checkbox-checked.mat-accent .mat-checkbox-background {\\n background-color: yellow;\\n}\\n\\n.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .mat-checkbox-checked.mat-warn .mat-checkbox-background {\\n background-color: #f44336;\\n}\\n\\n.mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: #b0b0b0;\\n}\\n\\n.mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\\n border-color: #b0b0b0;\\n}\\n\\n.mat-checkbox-disabled .mat-checkbox-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n@media (-ms-high-contrast: active) {\\n .mat-checkbox-disabled {\\n opacity: 0.5;\\n }\\n}\\n\\n@media (-ms-high-contrast: active) {\\n .mat-checkbox-background {\\n background: none;\\n }\\n}\\n\\n.mat-checkbox .mat-ripple-element {\\n background-color: black;\\n}\\n\\n.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\\n.mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\\n background: #64b5f6;\\n}\\n\\n.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\\n.mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\\n background: yellow;\\n}\\n\\n.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\\n.mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\\n background: #f44336;\\n}\\n\\n.mat-chip.mat-standard-chip {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-chip.mat-standard-chip .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n\\n.mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\\n opacity: 0.54;\\n}\\n\\n.mat-chip.mat-standard-chip.mat-chip-disabled {\\n opacity: 0.4;\\n}\\n\\n.mat-chip.mat-standard-chip::after {\\n background: black;\\n}\\n\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\\n background-color: #64b5f6;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\\n background-color: #f44336;\\n color: white;\\n}\\n\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\\n background-color: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n\\n.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n\\n.mat-table {\\n background: white;\\n}\\n\\n.mat-table thead, .mat-table tbody, .mat-table tfoot,\\nmat-header-row, mat-row, mat-footer-row,\\n[mat-header-row], [mat-row], [mat-footer-row],\\n.mat-table-sticky {\\n background: inherit;\\n}\\n\\nmat-row, mat-header-row, mat-footer-row,\\nth.mat-header-cell, td.mat-cell, td.mat-footer-cell {\\n border-bottom-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-header-cell {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-cell, .mat-footer-cell {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-calendar-arrow {\\n border-top-color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-datepicker-toggle,\\n.mat-datepicker-content .mat-calendar-next-button,\\n.mat-datepicker-content .mat-calendar-previous-button {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-calendar-table-header {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-calendar-table-header-divider::after {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-calendar-body-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-calendar-body-cell-content {\\n color: rgba(0, 0, 0, 0.87);\\n border-color: transparent;\\n}\\n\\n.mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n\\n.mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.18);\\n}\\n\\n.mat-calendar-body-selected {\\n background-color: #64b5f6;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(100, 181, 246, 0.4);\\n}\\n\\n.mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-datepicker-content {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-datepicker-content.mat-accent .mat-calendar-body-selected {\\n background-color: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(255, 255, 0, 0.4);\\n}\\n\\n.mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-datepicker-content.mat-warn .mat-calendar-body-selected {\\n background-color: #f44336;\\n color: white;\\n}\\n\\n.mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(244, 67, 54, 0.4);\\n}\\n\\n.mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n\\n.mat-datepicker-content-touch {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-datepicker-toggle-active {\\n color: #64b5f6;\\n}\\n\\n.mat-datepicker-toggle-active.mat-accent {\\n color: yellow;\\n}\\n\\n.mat-datepicker-toggle-active.mat-warn {\\n color: #f44336;\\n}\\n\\n.mat-dialog-container {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-divider {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-divider-vertical {\\n border-right-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-expansion-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-expansion-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-action-row {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused, .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused, .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n\\n@media (hover: none) {\\n .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\\n background: white;\\n }\\n}\\n\\n.mat-expansion-panel-header-title {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-expansion-panel-header-description,\\n.mat-expansion-indicator::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-expansion-panel-header[aria-disabled=true] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n\\n.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\\n.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\\n color: inherit;\\n}\\n\\n.mat-form-field-label {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n\\n.mat-hint {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n\\n.mat-form-field.mat-focused .mat-form-field-label {\\n color: #64b5f6;\\n}\\n\\n.mat-form-field.mat-focused .mat-form-field-label.mat-accent {\\n color: yellow;\\n}\\n\\n.mat-form-field.mat-focused .mat-form-field-label.mat-warn {\\n color: #f44336;\\n}\\n\\n.mat-focused .mat-form-field-required-marker {\\n color: yellow;\\n}\\n\\n.mat-form-field-ripple {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-form-field.mat-focused .mat-form-field-ripple {\\n background-color: #64b5f6;\\n}\\n\\n.mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\\n background-color: yellow;\\n}\\n\\n.mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\\n background-color: #f44336;\\n}\\n\\n.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\\n color: #64b5f6;\\n}\\n\\n.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\\n color: yellow;\\n}\\n\\n.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n\\n.mat-form-field.mat-form-field-invalid .mat-form-field-label {\\n color: #f44336;\\n}\\n\\n.mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\\n.mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\\n color: #f44336;\\n}\\n\\n.mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\\n.mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\\n background-color: #f44336;\\n}\\n\\n.mat-error {\\n color: #f44336;\\n}\\n\\n.mat-form-field-appearance-legacy .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-form-field-appearance-legacy .mat-hint {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-form-field-appearance-legacy .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n\\n.mat-form-field-appearance-standard .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n\\n.mat-form-field-appearance-fill .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n\\n.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.02);\\n}\\n\\n.mat-form-field-appearance-fill .mat-form-field-underline::before {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\\n background-color: transparent;\\n}\\n\\n.mat-form-field-appearance-outline .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-form-field-appearance-outline .mat-form-field-outline-thick {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\\n color: #64b5f6;\\n}\\n\\n.mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\\n color: yellow;\\n}\\n\\n.mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n\\n.mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n\\n.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.06);\\n}\\n\\n.mat-icon.mat-primary {\\n color: #64b5f6;\\n}\\n\\n.mat-icon.mat-accent {\\n color: yellow;\\n}\\n\\n.mat-icon.mat-warn {\\n color: #f44336;\\n}\\n\\n.mat-form-field-type-mat-native-select .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-input-element:disabled,\\n.mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-input-element {\\n caret-color: #64b5f6;\\n}\\n\\n.mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.mat-input-element:-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.mat-input-element::-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.mat-input-element::placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.mat-input-element::-webkit-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.mat-input-element:-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.mat-accent .mat-input-element {\\n caret-color: yellow;\\n}\\n\\n.mat-warn .mat-input-element,\\n.mat-form-field-invalid .mat-input-element {\\n caret-color: #f44336;\\n}\\n\\n.mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n\\n.mat-list-base .mat-list-item {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-list-base .mat-list-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-list-base .mat-subheader {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-list-item-disabled {\\n background-color: #eeeeee;\\n}\\n\\n.mat-list-option:hover, .mat-list-option:focus,\\n.mat-nav-list .mat-list-item:hover,\\n.mat-nav-list .mat-list-item:focus,\\n.mat-action-list .mat-list-item:hover,\\n.mat-action-list .mat-list-item:focus {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n\\n.mat-menu-panel {\\n background: white;\\n}\\n\\n.mat-menu-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-menu-item {\\n background: transparent;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-menu-item[disabled], .mat-menu-item[disabled]::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-menu-item .mat-icon-no-color,\\n.mat-menu-item-submenu-trigger::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-menu-item:hover:not([disabled]),\\n.mat-menu-item.cdk-program-focused:not([disabled]),\\n.mat-menu-item.cdk-keyboard-focused:not([disabled]),\\n.mat-menu-item-highlighted:not([disabled]) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n\\n.mat-paginator {\\n background: white;\\n}\\n\\n.mat-paginator,\\n.mat-paginator-page-size .mat-select-trigger {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-paginator-decrement,\\n.mat-paginator-increment {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n border-right: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-paginator-first,\\n.mat-paginator-last {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-icon-button[disabled] .mat-paginator-decrement,\\n.mat-icon-button[disabled] .mat-paginator-increment,\\n.mat-icon-button[disabled] .mat-paginator-first,\\n.mat-icon-button[disabled] .mat-paginator-last {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-progress-bar-background {\\n fill: #bbdefb;\\n}\\n\\n.mat-progress-bar-buffer {\\n background-color: #bbdefb;\\n}\\n\\n.mat-progress-bar-fill::after {\\n background-color: #64b5f6;\\n}\\n\\n.mat-progress-bar.mat-accent .mat-progress-bar-background {\\n fill: #ffff8d;\\n}\\n\\n.mat-progress-bar.mat-accent .mat-progress-bar-buffer {\\n background-color: #ffff8d;\\n}\\n\\n.mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\\n background-color: yellow;\\n}\\n\\n.mat-progress-bar.mat-warn .mat-progress-bar-background {\\n fill: #ffcdd2;\\n}\\n\\n.mat-progress-bar.mat-warn .mat-progress-bar-buffer {\\n background-color: #ffcdd2;\\n}\\n\\n.mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\\n background-color: #f44336;\\n}\\n\\n.mat-progress-spinner circle, .mat-spinner circle {\\n stroke: #64b5f6;\\n}\\n\\n.mat-progress-spinner.mat-accent circle, .mat-spinner.mat-accent circle {\\n stroke: yellow;\\n}\\n\\n.mat-progress-spinner.mat-warn circle, .mat-spinner.mat-warn circle {\\n stroke: #f44336;\\n}\\n\\n.mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #64b5f6;\\n}\\n\\n.mat-radio-button.mat-primary .mat-radio-inner-circle,\\n.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\\n background-color: #64b5f6;\\n}\\n\\n.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\\n border-color: yellow;\\n}\\n\\n.mat-radio-button.mat-accent .mat-radio-inner-circle,\\n.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\\n background-color: yellow;\\n}\\n\\n.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #f44336;\\n}\\n\\n.mat-radio-button.mat-warn .mat-radio-inner-circle,\\n.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\\n background-color: #f44336;\\n}\\n\\n.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\\n.mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\\n.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-radio-button.mat-radio-disabled .mat-radio-label-content {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-radio-button .mat-ripple-element {\\n background-color: black;\\n}\\n\\n.mat-select-value {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-select-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.mat-select-disabled .mat-select-value {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-select-arrow {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-select-panel {\\n background: white;\\n}\\n\\n.mat-select-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-form-field.mat-focused.mat-primary .mat-select-arrow {\\n color: #64b5f6;\\n}\\n\\n.mat-form-field.mat-focused.mat-accent .mat-select-arrow {\\n color: yellow;\\n}\\n\\n.mat-form-field.mat-focused.mat-warn .mat-select-arrow {\\n color: #f44336;\\n}\\n\\n.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\\n color: #f44336;\\n}\\n\\n.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-drawer-container {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-drawer {\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-drawer.mat-drawer-push {\\n background-color: white;\\n}\\n\\n.mat-drawer:not(.mat-drawer-side) {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-drawer-side {\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-drawer-side.mat-drawer-end {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n\\n[dir=rtl] .mat-drawer-side {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n\\n[dir=rtl] .mat-drawer-side.mat-drawer-end {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-drawer-backdrop.mat-drawer-shown {\\n background-color: rgba(0, 0, 0, 0.6);\\n}\\n\\n.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\\n background-color: yellow;\\n}\\n\\n.mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(255, 255, 0, 0.54);\\n}\\n\\n.mat-slide-toggle.mat-checked .mat-ripple-element {\\n background-color: yellow;\\n}\\n\\n.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\\n background-color: #64b5f6;\\n}\\n\\n.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(100, 181, 246, 0.54);\\n}\\n\\n.mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\\n background-color: #64b5f6;\\n}\\n\\n.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\\n background-color: #f44336;\\n}\\n\\n.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(244, 67, 54, 0.54);\\n}\\n\\n.mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\\n background-color: #f44336;\\n}\\n\\n.mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\\n background-color: black;\\n}\\n\\n.mat-slide-toggle-thumb {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n background-color: #fafafa;\\n}\\n\\n.mat-slide-toggle-bar {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n\\n.mat-primary .mat-slider-track-fill,\\n.mat-primary .mat-slider-thumb,\\n.mat-primary .mat-slider-thumb-label {\\n background-color: #64b5f6;\\n}\\n\\n.mat-primary .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-accent .mat-slider-track-fill,\\n.mat-accent .mat-slider-thumb,\\n.mat-accent .mat-slider-thumb-label {\\n background-color: yellow;\\n}\\n\\n.mat-accent .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-warn .mat-slider-track-fill,\\n.mat-warn .mat-slider-thumb,\\n.mat-warn .mat-slider-thumb-label {\\n background-color: #f44336;\\n}\\n\\n.mat-warn .mat-slider-thumb-label-text {\\n color: white;\\n}\\n\\n.mat-slider-focus-ring {\\n background-color: rgba(255, 255, 0, 0.2);\\n}\\n\\n.mat-slider:hover .mat-slider-track-background,\\n.cdk-focused .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-slider-disabled .mat-slider-track-background,\\n.mat-slider-disabled .mat-slider-track-fill,\\n.mat-slider-disabled .mat-slider-thumb {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n\\n.mat-slider-disabled:hover .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n\\n.mat-slider-min-value .mat-slider-focus-ring {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\\n.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\\n.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n\\n.mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n background-color: transparent;\\n}\\n\\n.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n}\\n\\n.mat-slider-has-ticks .mat-slider-wrapper::after {\\n border-color: rgba(0, 0, 0, 0.7);\\n}\\n\\n.mat-slider-horizontal .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to right, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n\\n.mat-slider-vertical .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n\\n.mat-step-header.cdk-keyboard-focused, .mat-step-header.cdk-program-focused, .mat-step-header:hover {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n\\n@media (hover: none) {\\n .mat-step-header:hover {\\n background: none;\\n }\\n}\\n\\n.mat-step-header .mat-step-label,\\n.mat-step-header .mat-step-optional {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.mat-step-header .mat-step-icon {\\n background-color: rgba(0, 0, 0, 0.54);\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-step-header .mat-step-icon-selected,\\n.mat-step-header .mat-step-icon-state-done,\\n.mat-step-header .mat-step-icon-state-edit {\\n background-color: #64b5f6;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-step-header .mat-step-icon-state-error {\\n background-color: transparent;\\n color: #f44336;\\n}\\n\\n.mat-step-header .mat-step-label.mat-step-label-active {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-step-header .mat-step-label.mat-step-label-error {\\n color: #f44336;\\n}\\n\\n.mat-stepper-horizontal, .mat-stepper-vertical {\\n background-color: white;\\n}\\n\\n.mat-stepper-vertical-line::before {\\n border-left-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-horizontal-stepper-header::before,\\n.mat-horizontal-stepper-header::after,\\n.mat-stepper-horizontal-line {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-sort-header-arrow {\\n color: #757575;\\n}\\n\\n.mat-tab-nav-bar,\\n.mat-tab-header {\\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-tab-group-inverted-header .mat-tab-nav-bar,\\n.mat-tab-group-inverted-header .mat-tab-header {\\n border-top: 1px solid rgba(0, 0, 0, 0.12);\\n border-bottom: none;\\n}\\n\\n.mat-tab-label, .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-tab-label.mat-tab-disabled, .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.mat-tab-group[class*=mat-background-] .mat-tab-header,\\n.mat-tab-nav-bar[class*=mat-background-] {\\n border-bottom: none;\\n border-top: none;\\n}\\n\\n.mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(187, 222, 251, 0.3);\\n}\\n\\n.mat-tab-group.mat-primary .mat-ink-bar, .mat-tab-nav-bar.mat-primary .mat-ink-bar {\\n background-color: #64b5f6;\\n}\\n\\n.mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 255, 141, 0.3);\\n}\\n\\n.mat-tab-group.mat-accent .mat-ink-bar, .mat-tab-nav-bar.mat-accent .mat-ink-bar {\\n background-color: yellow;\\n}\\n\\n.mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n\\n.mat-tab-group.mat-warn .mat-ink-bar, .mat-tab-nav-bar.mat-warn .mat-ink-bar {\\n background-color: #f44336;\\n}\\n\\n.mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\\n background-color: white;\\n}\\n\\n.mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(187, 222, 251, 0.3);\\n}\\n\\n.mat-tab-group.mat-background-primary .mat-tab-header, .mat-tab-group.mat-background-primary .mat-tab-links, .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\\n background-color: #64b5f6;\\n}\\n\\n.mat-tab-group.mat-background-primary .mat-tab-label, .mat-tab-group.mat-background-primary .mat-tab-link, .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n\\n.mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n\\n.mat-tab-group.mat-background-primary .mat-ripple-element, .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 255, 141, 0.3);\\n}\\n\\n.mat-tab-group.mat-background-accent .mat-tab-header, .mat-tab-group.mat-background-accent .mat-tab-links, .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\\n background-color: yellow;\\n}\\n\\n.mat-tab-group.mat-background-accent .mat-tab-label, .mat-tab-group.mat-background-accent .mat-tab-link, .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n\\n.mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n\\n.mat-tab-group.mat-background-accent .mat-ripple-element, .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n\\n.mat-tab-group.mat-background-warn .mat-tab-header, .mat-tab-group.mat-background-warn .mat-tab-links, .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\\n background-color: #f44336;\\n}\\n\\n.mat-tab-group.mat-background-warn .mat-tab-label, .mat-tab-group.mat-background-warn .mat-tab-link, .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\\n color: white;\\n}\\n\\n.mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n\\n.mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n\\n.mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n\\n.mat-tab-group.mat-background-warn .mat-ripple-element, .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n\\n.mat-toolbar {\\n background: whitesmoke;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-toolbar.mat-primary {\\n background: #64b5f6;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-toolbar.mat-accent {\\n background: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-toolbar.mat-warn {\\n background: #f44336;\\n color: white;\\n}\\n\\n.mat-toolbar .mat-form-field-underline,\\n.mat-toolbar .mat-form-field-ripple,\\n.mat-toolbar .mat-focused .mat-form-field-ripple {\\n background-color: currentColor;\\n}\\n\\n.mat-toolbar .mat-form-field-label,\\n.mat-toolbar .mat-focused .mat-form-field-label,\\n.mat-toolbar .mat-select-value,\\n.mat-toolbar .mat-select-arrow,\\n.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\\n color: inherit;\\n}\\n\\n.mat-toolbar .mat-input-element {\\n caret-color: currentColor;\\n}\\n\\n.mat-tooltip {\\n background: rgba(97, 97, 97, 0.9);\\n}\\n\\n.mat-tree {\\n background: white;\\n}\\n\\n.mat-tree-node,\\n.mat-nested-tree-node {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-snack-bar-container {\\n color: rgba(255, 255, 255, 0.7);\\n background: #323232;\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.mat-simple-snackbar-action {\\n color: yellow;\\n}\\n\\n.unicorn-dark-theme .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n\\n.unicorn-dark-theme .mat-option {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-option:hover:not(.mat-option-disabled), .unicorn-dark-theme .mat-option:focus:not(.mat-option-disabled) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n\\n.unicorn-dark-theme .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n\\n.unicorn-dark-theme .mat-option.mat-active {\\n background: rgba(255, 255, 255, 0.04);\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-option.mat-option-disabled {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-optgroup-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-optgroup-disabled .mat-optgroup-label {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-pseudo-checkbox {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-pseudo-checkbox::after {\\n color: #303030;\\n}\\n\\n.unicorn-dark-theme .mat-pseudo-checkbox-disabled {\\n color: #686868;\\n}\\n\\n.unicorn-dark-theme .mat-pseudo-checkbox-checked,\\n.unicorn-dark-theme .mat-pseudo-checkbox-indeterminate,\\n.unicorn-dark-theme .mat-accent .mat-pseudo-checkbox-checked,\\n.unicorn-dark-theme .mat-accent .mat-pseudo-checkbox-indeterminate {\\n background: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-primary .mat-pseudo-checkbox-checked,\\n.unicorn-dark-theme .mat-primary .mat-pseudo-checkbox-indeterminate {\\n background: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-warn .mat-pseudo-checkbox-checked,\\n.unicorn-dark-theme .mat-warn .mat-pseudo-checkbox-indeterminate {\\n background: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\\n.unicorn-dark-theme .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\\n background: #686868;\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z0 {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z1 {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z2 {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z3 {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z4 {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z5 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z6 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z7 {\\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z8 {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z9 {\\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z10 {\\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z11 {\\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z12 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z13 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z14 {\\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z15 {\\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z16 {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z17 {\\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z18 {\\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z19 {\\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z20 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z21 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z22 {\\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z23 {\\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-elevation-z24 {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-app-background, .unicorn-dark-theme.mat-app-background {\\n background-color: #303030;\\n color: white;\\n}\\n\\n.mat-theme-loaded-marker {\\n display: none;\\n}\\n\\n.unicorn-dark-theme .mat-autocomplete-panel {\\n background: #424242;\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\\n background: #424242;\\n}\\n\\n.unicorn-dark-theme .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-badge-content {\\n color: white;\\n background: #607d8b;\\n}\\n\\n@media (-ms-high-contrast: active) {\\n .unicorn-dark-theme .mat-badge-content {\\n outline: solid 1px;\\n border-radius: 0;\\n }\\n}\\n\\n.unicorn-dark-theme .mat-badge-accent .mat-badge-content {\\n background: #ffd740;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.unicorn-dark-theme .mat-badge-warn .mat-badge-content {\\n color: white;\\n background: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-badge {\\n position: relative;\\n}\\n\\n.unicorn-dark-theme .mat-badge-hidden .mat-badge-content {\\n display: none;\\n}\\n\\n.unicorn-dark-theme .mat-badge-disabled .mat-badge-content {\\n background: #6e6e6e;\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-badge-content {\\n position: absolute;\\n text-align: center;\\n display: inline-block;\\n border-radius: 50%;\\n transition: transform 200ms ease-in-out;\\n -ms-transform: scale(0.6);\\n transform: scale(0.6);\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n pointer-events: none;\\n}\\n\\n.unicorn-dark-theme .ng-animate-disabled .mat-badge-content,\\n.unicorn-dark-theme .mat-badge-content._mat-animation-noopable {\\n transition: none;\\n}\\n\\n.unicorn-dark-theme .mat-badge-content.mat-badge-active {\\n -ms-transform: none;\\n transform: none;\\n}\\n\\n.unicorn-dark-theme .mat-badge-small .mat-badge-content {\\n width: 16px;\\n height: 16px;\\n line-height: 16px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-small.mat-badge-above .mat-badge-content {\\n top: -8px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-small.mat-badge-below .mat-badge-content {\\n bottom: -8px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: -16px;\\n}\\n\\n[dir=rtl] .unicorn-dark-theme .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -16px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: -16px;\\n}\\n\\n[dir=rtl] .unicorn-dark-theme .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -16px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -8px;\\n}\\n\\n[dir=rtl] .unicorn-dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -8px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -8px;\\n}\\n\\n[dir=rtl] .unicorn-dark-theme .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -8px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-medium .mat-badge-content {\\n width: 22px;\\n height: 22px;\\n line-height: 22px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-above .mat-badge-content {\\n top: -11px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-below .mat-badge-content {\\n bottom: -11px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: -22px;\\n}\\n\\n[dir=rtl] .unicorn-dark-theme .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -22px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: -22px;\\n}\\n\\n[dir=rtl] .unicorn-dark-theme .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -22px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -11px;\\n}\\n\\n[dir=rtl] .unicorn-dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -11px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -11px;\\n}\\n\\n[dir=rtl] .unicorn-dark-theme .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -11px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-large .mat-badge-content {\\n width: 28px;\\n height: 28px;\\n line-height: 28px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-large.mat-badge-above .mat-badge-content {\\n top: -14px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-large.mat-badge-below .mat-badge-content {\\n bottom: -14px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: -28px;\\n}\\n\\n[dir=rtl] .unicorn-dark-theme .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -28px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: -28px;\\n}\\n\\n[dir=rtl] .unicorn-dark-theme .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -28px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -14px;\\n}\\n\\n[dir=rtl] .unicorn-dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -14px;\\n}\\n\\n.unicorn-dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -14px;\\n}\\n\\n[dir=rtl] .unicorn-dark-theme .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -14px;\\n}\\n\\n.unicorn-dark-theme .mat-bottom-sheet-container {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n background: #424242;\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-button, .unicorn-dark-theme .mat-icon-button, .unicorn-dark-theme .mat-stroked-button {\\n color: inherit;\\n background: transparent;\\n}\\n\\n.unicorn-dark-theme .mat-button.mat-primary, .unicorn-dark-theme .mat-icon-button.mat-primary, .unicorn-dark-theme .mat-stroked-button.mat-primary {\\n color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-button.mat-accent, .unicorn-dark-theme .mat-icon-button.mat-accent, .unicorn-dark-theme .mat-stroked-button.mat-accent {\\n color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-button.mat-warn, .unicorn-dark-theme .mat-icon-button.mat-warn, .unicorn-dark-theme .mat-stroked-button.mat-warn {\\n color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-button.mat-primary[disabled], .unicorn-dark-theme .mat-button.mat-accent[disabled], .unicorn-dark-theme .mat-button.mat-warn[disabled], .unicorn-dark-theme .mat-button[disabled][disabled], .unicorn-dark-theme .mat-icon-button.mat-primary[disabled], .unicorn-dark-theme .mat-icon-button.mat-accent[disabled], .unicorn-dark-theme .mat-icon-button.mat-warn[disabled], .unicorn-dark-theme .mat-icon-button[disabled][disabled], .unicorn-dark-theme .mat-stroked-button.mat-primary[disabled], .unicorn-dark-theme .mat-stroked-button.mat-accent[disabled], .unicorn-dark-theme .mat-stroked-button.mat-warn[disabled], .unicorn-dark-theme .mat-stroked-button[disabled][disabled] {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n\\n.unicorn-dark-theme .mat-button.mat-primary .mat-button-focus-overlay, .unicorn-dark-theme .mat-icon-button.mat-primary .mat-button-focus-overlay, .unicorn-dark-theme .mat-stroked-button.mat-primary .mat-button-focus-overlay {\\n background-color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-button.mat-accent .mat-button-focus-overlay, .unicorn-dark-theme .mat-icon-button.mat-accent .mat-button-focus-overlay, .unicorn-dark-theme .mat-stroked-button.mat-accent .mat-button-focus-overlay {\\n background-color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-button.mat-warn .mat-button-focus-overlay, .unicorn-dark-theme .mat-icon-button.mat-warn .mat-button-focus-overlay, .unicorn-dark-theme .mat-stroked-button.mat-warn .mat-button-focus-overlay {\\n background-color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-button[disabled] .mat-button-focus-overlay, .unicorn-dark-theme .mat-icon-button[disabled] .mat-button-focus-overlay, .unicorn-dark-theme .mat-stroked-button[disabled] .mat-button-focus-overlay {\\n background-color: transparent;\\n}\\n\\n.unicorn-dark-theme .mat-button .mat-ripple-element, .unicorn-dark-theme .mat-icon-button .mat-ripple-element, .unicorn-dark-theme .mat-stroked-button .mat-ripple-element {\\n opacity: 0.1;\\n background-color: currentColor;\\n}\\n\\n.unicorn-dark-theme .mat-button-focus-overlay {\\n background: white;\\n}\\n\\n.unicorn-dark-theme .mat-stroked-button:not([disabled]) {\\n border-color: rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-flat-button, .unicorn-dark-theme .mat-raised-button, .unicorn-dark-theme .mat-fab, .unicorn-dark-theme .mat-mini-fab {\\n color: white;\\n background-color: #424242;\\n}\\n\\n.unicorn-dark-theme .mat-flat-button.mat-primary, .unicorn-dark-theme .mat-raised-button.mat-primary, .unicorn-dark-theme .mat-fab.mat-primary, .unicorn-dark-theme .mat-mini-fab.mat-primary {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-flat-button.mat-accent, .unicorn-dark-theme .mat-raised-button.mat-accent, .unicorn-dark-theme .mat-fab.mat-accent, .unicorn-dark-theme .mat-mini-fab.mat-accent {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.unicorn-dark-theme .mat-flat-button.mat-warn, .unicorn-dark-theme .mat-raised-button.mat-warn, .unicorn-dark-theme .mat-fab.mat-warn, .unicorn-dark-theme .mat-mini-fab.mat-warn {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-flat-button.mat-primary[disabled], .unicorn-dark-theme .mat-flat-button.mat-accent[disabled], .unicorn-dark-theme .mat-flat-button.mat-warn[disabled], .unicorn-dark-theme .mat-flat-button[disabled][disabled], .unicorn-dark-theme .mat-raised-button.mat-primary[disabled], .unicorn-dark-theme .mat-raised-button.mat-accent[disabled], .unicorn-dark-theme .mat-raised-button.mat-warn[disabled], .unicorn-dark-theme .mat-raised-button[disabled][disabled], .unicorn-dark-theme .mat-fab.mat-primary[disabled], .unicorn-dark-theme .mat-fab.mat-accent[disabled], .unicorn-dark-theme .mat-fab.mat-warn[disabled], .unicorn-dark-theme .mat-fab[disabled][disabled], .unicorn-dark-theme .mat-mini-fab.mat-primary[disabled], .unicorn-dark-theme .mat-mini-fab.mat-accent[disabled], .unicorn-dark-theme .mat-mini-fab.mat-warn[disabled], .unicorn-dark-theme .mat-mini-fab[disabled][disabled] {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n\\n.unicorn-dark-theme .mat-flat-button.mat-primary, .unicorn-dark-theme .mat-raised-button.mat-primary, .unicorn-dark-theme .mat-fab.mat-primary, .unicorn-dark-theme .mat-mini-fab.mat-primary {\\n background-color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-flat-button.mat-accent, .unicorn-dark-theme .mat-raised-button.mat-accent, .unicorn-dark-theme .mat-fab.mat-accent, .unicorn-dark-theme .mat-mini-fab.mat-accent {\\n background-color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-flat-button.mat-warn, .unicorn-dark-theme .mat-raised-button.mat-warn, .unicorn-dark-theme .mat-fab.mat-warn, .unicorn-dark-theme .mat-mini-fab.mat-warn {\\n background-color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-flat-button.mat-primary[disabled], .unicorn-dark-theme .mat-flat-button.mat-accent[disabled], .unicorn-dark-theme .mat-flat-button.mat-warn[disabled], .unicorn-dark-theme .mat-flat-button[disabled][disabled], .unicorn-dark-theme .mat-raised-button.mat-primary[disabled], .unicorn-dark-theme .mat-raised-button.mat-accent[disabled], .unicorn-dark-theme .mat-raised-button.mat-warn[disabled], .unicorn-dark-theme .mat-raised-button[disabled][disabled], .unicorn-dark-theme .mat-fab.mat-primary[disabled], .unicorn-dark-theme .mat-fab.mat-accent[disabled], .unicorn-dark-theme .mat-fab.mat-warn[disabled], .unicorn-dark-theme .mat-fab[disabled][disabled], .unicorn-dark-theme .mat-mini-fab.mat-primary[disabled], .unicorn-dark-theme .mat-mini-fab.mat-accent[disabled], .unicorn-dark-theme .mat-mini-fab.mat-warn[disabled], .unicorn-dark-theme .mat-mini-fab[disabled][disabled] {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-flat-button.mat-primary .mat-ripple-element, .unicorn-dark-theme .mat-raised-button.mat-primary .mat-ripple-element, .unicorn-dark-theme .mat-fab.mat-primary .mat-ripple-element, .unicorn-dark-theme .mat-mini-fab.mat-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n\\n.unicorn-dark-theme .mat-flat-button.mat-accent .mat-ripple-element, .unicorn-dark-theme .mat-raised-button.mat-accent .mat-ripple-element, .unicorn-dark-theme .mat-fab.mat-accent .mat-ripple-element, .unicorn-dark-theme .mat-mini-fab.mat-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n\\n.unicorn-dark-theme .mat-flat-button.mat-warn .mat-ripple-element, .unicorn-dark-theme .mat-raised-button.mat-warn .mat-ripple-element, .unicorn-dark-theme .mat-fab.mat-warn .mat-ripple-element, .unicorn-dark-theme .mat-mini-fab.mat-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n\\n.unicorn-dark-theme .mat-stroked-button:not([class*=mat-elevation-z]), .unicorn-dark-theme .mat-flat-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-raised-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-fab:not([class*=mat-elevation-z]), .unicorn-dark-theme .mat-mini-fab:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .unicorn-dark-theme .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-fab[disabled]:not([class*=mat-elevation-z]), .unicorn-dark-theme .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-button-toggle-standalone,\\n.unicorn-dark-theme .mat-button-toggle-group {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.unicorn-dark-theme .mat-button-toggle-group-appearance-standard {\\n box-shadow: none;\\n}\\n\\n.unicorn-dark-theme .mat-button-toggle {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-button-toggle .mat-button-toggle-focus-overlay {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-button-toggle-appearance-standard {\\n color: white;\\n background: #424242;\\n}\\n\\n.unicorn-dark-theme .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\\n background-color: white;\\n}\\n\\n.unicorn-dark-theme .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: none;\\n border-top: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-button-toggle-checked {\\n background-color: #212121;\\n color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-button-toggle-disabled {\\n color: rgba(255, 255, 255, 0.3);\\n background-color: black;\\n}\\n\\n.unicorn-dark-theme .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\\n background: #424242;\\n}\\n\\n.unicorn-dark-theme .mat-button-toggle-disabled.mat-button-toggle-checked {\\n background-color: #424242;\\n}\\n\\n.unicorn-dark-theme .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.unicorn-dark-theme .mat-button-toggle-group-appearance-standard {\\n border: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-card {\\n background: #424242;\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-card:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-card-subtitle {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-checkbox-frame {\\n border-color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-checkbox-checkmark {\\n fill: #303030;\\n}\\n\\n.unicorn-dark-theme .mat-checkbox-checkmark-path {\\n stroke: #303030 !important;\\n}\\n\\n@media (-ms-high-contrast: black-on-white) {\\n .unicorn-dark-theme .mat-checkbox-checkmark-path {\\n stroke: #000 !important;\\n }\\n}\\n\\n.unicorn-dark-theme .mat-checkbox-mixedmark {\\n background-color: #303030;\\n}\\n\\n.unicorn-dark-theme .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .unicorn-dark-theme .mat-checkbox-checked.mat-primary .mat-checkbox-background {\\n background-color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .unicorn-dark-theme .mat-checkbox-checked.mat-accent .mat-checkbox-background {\\n background-color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .unicorn-dark-theme .mat-checkbox-checked.mat-warn .mat-checkbox-background {\\n background-color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .unicorn-dark-theme .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: #686868;\\n}\\n\\n.unicorn-dark-theme .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\\n border-color: #686868;\\n}\\n\\n.unicorn-dark-theme .mat-checkbox-disabled .mat-checkbox-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n\\n@media (-ms-high-contrast: active) {\\n .unicorn-dark-theme .mat-checkbox-disabled {\\n opacity: 0.5;\\n }\\n}\\n\\n@media (-ms-high-contrast: active) {\\n .unicorn-dark-theme .mat-checkbox-background {\\n background: none;\\n }\\n}\\n\\n.unicorn-dark-theme .mat-checkbox .mat-ripple-element {\\n background-color: white;\\n}\\n\\n.unicorn-dark-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\\n.unicorn-dark-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\\n background: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\\n.unicorn-dark-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\\n background: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\\n.unicorn-dark-theme .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\\n background: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-chip.mat-standard-chip {\\n background-color: #616161;\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-chip.mat-standard-chip .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n\\n.unicorn-dark-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\\n opacity: 0.54;\\n}\\n\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-disabled {\\n opacity: 0.4;\\n}\\n\\n.unicorn-dark-theme .mat-chip.mat-standard-chip::after {\\n background: white;\\n}\\n\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\\n background-color: #607d8b;\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\\n background-color: #ff5722;\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\\n background-color: #ffd740;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n\\n.unicorn-dark-theme .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n\\n.unicorn-dark-theme .mat-table {\\n background: #424242;\\n}\\n\\n.unicorn-dark-theme .mat-table thead, .unicorn-dark-theme .mat-table tbody, .unicorn-dark-theme .mat-table tfoot,\\n.unicorn-dark-theme mat-header-row, .unicorn-dark-theme mat-row, .unicorn-dark-theme mat-footer-row,\\n.unicorn-dark-theme [mat-header-row], .unicorn-dark-theme [mat-row], .unicorn-dark-theme [mat-footer-row],\\n.unicorn-dark-theme .mat-table-sticky {\\n background: inherit;\\n}\\n\\n.unicorn-dark-theme mat-row, .unicorn-dark-theme mat-header-row, .unicorn-dark-theme mat-footer-row,\\n.unicorn-dark-theme th.mat-header-cell, .unicorn-dark-theme td.mat-cell, .unicorn-dark-theme td.mat-footer-cell {\\n border-bottom-color: rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-header-cell {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-cell, .unicorn-dark-theme .mat-footer-cell {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-calendar-arrow {\\n border-top-color: white;\\n}\\n\\n.unicorn-dark-theme .mat-datepicker-toggle,\\n.unicorn-dark-theme .mat-datepicker-content .mat-calendar-next-button,\\n.unicorn-dark-theme .mat-datepicker-content .mat-calendar-previous-button {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-calendar-table-header {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-calendar-table-header-divider::after {\\n background: rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-calendar-body-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-calendar-body-cell-content {\\n color: white;\\n border-color: transparent;\\n}\\n\\n.unicorn-dark-theme .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.unicorn-dark-theme .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.unicorn-dark-theme .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n background-color: rgba(255, 255, 255, 0.04);\\n}\\n\\n.unicorn-dark-theme .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(255, 255, 255, 0.3);\\n}\\n\\n.unicorn-dark-theme .mat-calendar-body-selected {\\n background-color: #607d8b;\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(96, 125, 139, 0.4);\\n}\\n\\n.unicorn-dark-theme .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n\\n.unicorn-dark-theme .mat-datepicker-content {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n background-color: #424242;\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\\n background-color: #ffd740;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.unicorn-dark-theme .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(255, 215, 64, 0.4);\\n}\\n\\n.unicorn-dark-theme .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n\\n.unicorn-dark-theme .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\\n background-color: #ff5722;\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(255, 87, 34, 0.4);\\n}\\n\\n.unicorn-dark-theme .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n\\n.unicorn-dark-theme .mat-datepicker-content-touch {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-datepicker-toggle-active {\\n color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-datepicker-toggle-active.mat-accent {\\n color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-datepicker-toggle-active.mat-warn {\\n color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-dialog-container {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n background: #424242;\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-divider {\\n border-top-color: rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-divider-vertical {\\n border-right-color: rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-expansion-panel {\\n background: #424242;\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-expansion-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-action-row {\\n border-top-color: rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused, .unicorn-dark-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused, .unicorn-dark-theme .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n\\n@media (hover: none) {\\n .unicorn-dark-theme .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\\n background: #424242;\\n }\\n}\\n\\n.unicorn-dark-theme .mat-expansion-panel-header-title {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-expansion-panel-header-description,\\n.unicorn-dark-theme .mat-expansion-indicator::after {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-expansion-panel-header[aria-disabled=true] {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n\\n.unicorn-dark-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\\n.unicorn-dark-theme .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\\n color: inherit;\\n}\\n\\n.unicorn-dark-theme .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-hint {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-label {\\n color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\\n color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\\n color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-focused .mat-form-field-required-marker {\\n color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-form-field-ripple {\\n background-color: white;\\n}\\n\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-ripple {\\n background-color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\\n background-color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\\n background-color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\\n color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\\n color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\\n color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label {\\n color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\\n color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\\n.unicorn-dark-theme .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\\n background-color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-error {\\n color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-form-field-appearance-legacy .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-form-field-appearance-legacy .mat-hint {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-form-field-appearance-legacy .mat-form-field-underline {\\n background-color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n\\n.unicorn-dark-theme .mat-form-field-appearance-standard .mat-form-field-underline {\\n background-color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n\\n.unicorn-dark-theme .mat-form-field-appearance-fill .mat-form-field-flex {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n\\n.unicorn-dark-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\\n background-color: rgba(255, 255, 255, 0.05);\\n}\\n\\n.unicorn-dark-theme .mat-form-field-appearance-fill .mat-form-field-underline::before {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\\n background-color: transparent;\\n}\\n\\n.unicorn-dark-theme .mat-form-field-appearance-outline .mat-form-field-outline {\\n color: rgba(255, 255, 255, 0.3);\\n}\\n\\n.unicorn-dark-theme .mat-form-field-appearance-outline .mat-form-field-outline-thick {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\\n color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\\n color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\\n color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\\n color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\\n color: rgba(255, 255, 255, 0.15);\\n}\\n\\n.unicorn-dark-theme .mat-icon.mat-primary {\\n color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-icon.mat-accent {\\n color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-icon.mat-warn {\\n color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-input-element:disabled,\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-input-element {\\n caret-color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-input-element::-moz-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-input-element:-ms-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-input-element::-ms-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-input-element::placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-input-element::-moz-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-input-element::-webkit-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-input-element:-ms-input-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-input-element option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.unicorn-dark-theme .mat-input-element option:disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.unicorn-dark-theme .mat-accent .mat-input-element {\\n caret-color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-warn .mat-input-element,\\n.unicorn-dark-theme .mat-form-field-invalid .mat-input-element {\\n caret-color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\\n color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-list-base .mat-list-item {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-list-base .mat-list-option {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-list-base .mat-subheader {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-list-item-disabled {\\n background-color: black;\\n}\\n\\n.unicorn-dark-theme .mat-list-option:hover, .unicorn-dark-theme .mat-list-option:focus,\\n.unicorn-dark-theme .mat-nav-list .mat-list-item:hover,\\n.unicorn-dark-theme .mat-nav-list .mat-list-item:focus,\\n.unicorn-dark-theme .mat-action-list .mat-list-item:hover,\\n.unicorn-dark-theme .mat-action-list .mat-list-item:focus {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n\\n.unicorn-dark-theme .mat-menu-panel {\\n background: #424242;\\n}\\n\\n.unicorn-dark-theme .mat-menu-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-menu-item {\\n background: transparent;\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-menu-item[disabled], .unicorn-dark-theme .mat-menu-item[disabled]::after {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-menu-item .mat-icon-no-color,\\n.unicorn-dark-theme .mat-menu-item-submenu-trigger::after {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-menu-item:hover:not([disabled]),\\n.unicorn-dark-theme .mat-menu-item.cdk-program-focused:not([disabled]),\\n.unicorn-dark-theme .mat-menu-item.cdk-keyboard-focused:not([disabled]),\\n.unicorn-dark-theme .mat-menu-item-highlighted:not([disabled]) {\\n background: rgba(255, 255, 255, 0.04);\\n}\\n\\n.unicorn-dark-theme .mat-paginator {\\n background: #424242;\\n}\\n\\n.unicorn-dark-theme .mat-paginator,\\n.unicorn-dark-theme .mat-paginator-page-size .mat-select-trigger {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-paginator-decrement,\\n.unicorn-dark-theme .mat-paginator-increment {\\n border-top: 2px solid white;\\n border-right: 2px solid white;\\n}\\n\\n.unicorn-dark-theme .mat-paginator-first,\\n.unicorn-dark-theme .mat-paginator-last {\\n border-top: 2px solid white;\\n}\\n\\n.unicorn-dark-theme .mat-icon-button[disabled] .mat-paginator-decrement,\\n.unicorn-dark-theme .mat-icon-button[disabled] .mat-paginator-increment,\\n.unicorn-dark-theme .mat-icon-button[disabled] .mat-paginator-first,\\n.unicorn-dark-theme .mat-icon-button[disabled] .mat-paginator-last {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-progress-bar-background {\\n fill: #cfd8dc;\\n}\\n\\n.unicorn-dark-theme .mat-progress-bar-buffer {\\n background-color: #cfd8dc;\\n}\\n\\n.unicorn-dark-theme .mat-progress-bar-fill::after {\\n background-color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-progress-bar.mat-accent .mat-progress-bar-background {\\n fill: #ffe57f;\\n}\\n\\n.unicorn-dark-theme .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\\n background-color: #ffe57f;\\n}\\n\\n.unicorn-dark-theme .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\\n background-color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-progress-bar.mat-warn .mat-progress-bar-background {\\n fill: #ffccbc;\\n}\\n\\n.unicorn-dark-theme .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\\n background-color: #ffccbc;\\n}\\n\\n.unicorn-dark-theme .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\\n background-color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-progress-spinner circle, .unicorn-dark-theme .mat-spinner circle {\\n stroke: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-progress-spinner.mat-accent circle, .unicorn-dark-theme .mat-spinner.mat-accent circle {\\n stroke: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-progress-spinner.mat-warn circle, .unicorn-dark-theme .mat-spinner.mat-warn circle {\\n stroke: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-radio-outer-circle {\\n border-color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-radio-button.mat-primary .mat-radio-inner-circle,\\n.unicorn-dark-theme .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .unicorn-dark-theme .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .unicorn-dark-theme .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\\n background-color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-radio-button.mat-accent .mat-radio-inner-circle,\\n.unicorn-dark-theme .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .unicorn-dark-theme .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .unicorn-dark-theme .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\\n background-color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-radio-button.mat-warn .mat-radio-inner-circle,\\n.unicorn-dark-theme .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .unicorn-dark-theme .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .unicorn-dark-theme .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\\n background-color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-radio-button .mat-ripple-element {\\n background-color: white;\\n}\\n\\n.unicorn-dark-theme .mat-select-value {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-select-placeholder {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-select-disabled .mat-select-value {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-select-arrow {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-select-panel {\\n background: #424242;\\n}\\n\\n.unicorn-dark-theme .mat-select-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\\n background: rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\\n color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\\n color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\\n color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\\n color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-drawer-container {\\n background-color: #303030;\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-drawer {\\n background-color: #424242;\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-drawer.mat-drawer-push {\\n background-color: #424242;\\n}\\n\\n.unicorn-dark-theme .mat-drawer:not(.mat-drawer-side) {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-drawer-side {\\n border-right: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-drawer-side.mat-drawer-end {\\n border-left: solid 1px rgba(255, 255, 255, 0.12);\\n border-right: none;\\n}\\n\\n.unicorn-dark-theme [dir=rtl] .mat-drawer-side {\\n border-left: solid 1px rgba(255, 255, 255, 0.12);\\n border-right: none;\\n}\\n\\n.unicorn-dark-theme [dir=rtl] .mat-drawer-side.mat-drawer-end {\\n border-left: none;\\n border-right: solid 1px rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-drawer-backdrop.mat-drawer-shown {\\n background-color: rgba(189, 189, 189, 0.6);\\n}\\n\\n.unicorn-dark-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\\n background-color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(255, 215, 64, 0.54);\\n}\\n\\n.unicorn-dark-theme .mat-slide-toggle.mat-checked .mat-ripple-element {\\n background-color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\\n background-color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(96, 125, 139, 0.54);\\n}\\n\\n.unicorn-dark-theme .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\\n background-color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\\n background-color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(255, 87, 34, 0.54);\\n}\\n\\n.unicorn-dark-theme .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\\n background-color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\\n background-color: white;\\n}\\n\\n.unicorn-dark-theme .mat-slide-toggle-thumb {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n background-color: #bdbdbd;\\n}\\n\\n.unicorn-dark-theme .mat-slide-toggle-bar {\\n background-color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-slider-track-background {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n\\n.unicorn-dark-theme .mat-primary .mat-slider-track-fill,\\n.unicorn-dark-theme .mat-primary .mat-slider-thumb,\\n.unicorn-dark-theme .mat-primary .mat-slider-thumb-label {\\n background-color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-primary .mat-slider-thumb-label-text {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-accent .mat-slider-track-fill,\\n.unicorn-dark-theme .mat-accent .mat-slider-thumb,\\n.unicorn-dark-theme .mat-accent .mat-slider-thumb-label {\\n background-color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-accent .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.unicorn-dark-theme .mat-warn .mat-slider-track-fill,\\n.unicorn-dark-theme .mat-warn .mat-slider-thumb,\\n.unicorn-dark-theme .mat-warn .mat-slider-thumb-label {\\n background-color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-warn .mat-slider-thumb-label-text {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-slider-focus-ring {\\n background-color: rgba(255, 215, 64, 0.2);\\n}\\n\\n.unicorn-dark-theme .mat-slider:hover .mat-slider-track-background,\\n.unicorn-dark-theme .cdk-focused .mat-slider-track-background {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n\\n.unicorn-dark-theme .mat-slider-disabled .mat-slider-track-background,\\n.unicorn-dark-theme .mat-slider-disabled .mat-slider-track-fill,\\n.unicorn-dark-theme .mat-slider-disabled .mat-slider-thumb {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n\\n.unicorn-dark-theme .mat-slider-disabled:hover .mat-slider-track-background {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n\\n.unicorn-dark-theme .mat-slider-min-value .mat-slider-focus-ring {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\\n.unicorn-dark-theme .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\\n background-color: white;\\n}\\n\\n.unicorn-dark-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\\n.unicorn-dark-theme .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\\n background-color: rgba(255, 255, 255, 0.3);\\n}\\n\\n.unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\\n border-color: rgba(255, 255, 255, 0.3);\\n background-color: transparent;\\n}\\n\\n.unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\\n border-color: rgba(255, 255, 255, 0.3);\\n}\\n\\n.unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .unicorn-dark-theme .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\\n border-color: rgba(255, 255, 255, 0.3);\\n}\\n\\n.unicorn-dark-theme .mat-slider-has-ticks .mat-slider-wrapper::after {\\n border-color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-slider-horizontal .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to right, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\\n}\\n\\n.unicorn-dark-theme .mat-slider-vertical .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to bottom, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7) 2px, transparent 0, transparent);\\n}\\n\\n.unicorn-dark-theme .mat-step-header.cdk-keyboard-focused, .unicorn-dark-theme .mat-step-header.cdk-program-focused, .unicorn-dark-theme .mat-step-header:hover {\\n background-color: rgba(255, 255, 255, 0.04);\\n}\\n\\n@media (hover: none) {\\n .unicorn-dark-theme .mat-step-header:hover {\\n background: none;\\n }\\n}\\n\\n.unicorn-dark-theme .mat-step-header .mat-step-label,\\n.unicorn-dark-theme .mat-step-header .mat-step-optional {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n\\n.unicorn-dark-theme .mat-step-header .mat-step-icon {\\n background-color: rgba(255, 255, 255, 0.7);\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-step-header .mat-step-icon-selected,\\n.unicorn-dark-theme .mat-step-header .mat-step-icon-state-done,\\n.unicorn-dark-theme .mat-step-header .mat-step-icon-state-edit {\\n background-color: #607d8b;\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-step-header .mat-step-icon-state-error {\\n background-color: transparent;\\n color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-step-header .mat-step-label.mat-step-label-active {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-step-header .mat-step-label.mat-step-label-error {\\n color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-stepper-horizontal, .unicorn-dark-theme .mat-stepper-vertical {\\n background-color: #424242;\\n}\\n\\n.unicorn-dark-theme .mat-stepper-vertical-line::before {\\n border-left-color: rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-horizontal-stepper-header::before,\\n.unicorn-dark-theme .mat-horizontal-stepper-header::after,\\n.unicorn-dark-theme .mat-stepper-horizontal-line {\\n border-top-color: rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-sort-header-arrow {\\n color: #c6c6c6;\\n}\\n\\n.unicorn-dark-theme .mat-tab-nav-bar,\\n.unicorn-dark-theme .mat-tab-header {\\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-tab-group-inverted-header .mat-tab-nav-bar,\\n.unicorn-dark-theme .mat-tab-group-inverted-header .mat-tab-header {\\n border-top: 1px solid rgba(255, 255, 255, 0.12);\\n border-bottom: none;\\n}\\n\\n.unicorn-dark-theme .mat-tab-label, .unicorn-dark-theme .mat-tab-link {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n\\n.unicorn-dark-theme .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.5);\\n}\\n\\n.unicorn-dark-theme .mat-tab-group[class*=mat-background-] .mat-tab-header,\\n.unicorn-dark-theme .mat-tab-nav-bar[class*=mat-background-] {\\n border-bottom: none;\\n border-top: none;\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(207, 216, 220, 0.3);\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-primary .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-primary .mat-ink-bar {\\n background-color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\\n background-color: white;\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 229, 127, 0.3);\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-accent .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-accent .mat-ink-bar {\\n background-color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 204, 188, 0.3);\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-warn .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-warn .mat-ink-bar {\\n background-color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .unicorn-dark-theme .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\\n background-color: white;\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(207, 216, 220, 0.3);\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-header, .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-links, .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\\n background-color: #607d8b;\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-label, .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-link, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-primary .mat-ripple-element, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 229, 127, 0.3);\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-header, .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-links, .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\\n background-color: #ffd740;\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-label, .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-link, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-accent .mat-ripple-element, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 204, 188, 0.3);\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-header, .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-links, .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\\n background-color: #ff5722;\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-label, .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-link, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n\\n.unicorn-dark-theme .mat-tab-group.mat-background-warn .mat-ripple-element, .unicorn-dark-theme .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-toolbar {\\n background: #212121;\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-toolbar.mat-primary {\\n background: #607d8b;\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-toolbar.mat-accent {\\n background: #ffd740;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.unicorn-dark-theme .mat-toolbar.mat-warn {\\n background: #ff5722;\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-toolbar .mat-form-field-underline,\\n.unicorn-dark-theme .mat-toolbar .mat-form-field-ripple,\\n.unicorn-dark-theme .mat-toolbar .mat-focused .mat-form-field-ripple {\\n background-color: currentColor;\\n}\\n\\n.unicorn-dark-theme .mat-toolbar .mat-form-field-label,\\n.unicorn-dark-theme .mat-toolbar .mat-focused .mat-form-field-label,\\n.unicorn-dark-theme .mat-toolbar .mat-select-value,\\n.unicorn-dark-theme .mat-toolbar .mat-select-arrow,\\n.unicorn-dark-theme .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\\n color: inherit;\\n}\\n\\n.unicorn-dark-theme .mat-toolbar .mat-input-element {\\n caret-color: currentColor;\\n}\\n\\n.unicorn-dark-theme .mat-tooltip {\\n background: rgba(97, 97, 97, 0.9);\\n}\\n\\n.unicorn-dark-theme .mat-tree {\\n background: #424242;\\n}\\n\\n.unicorn-dark-theme .mat-tree-node,\\n.unicorn-dark-theme .mat-nested-tree-node {\\n color: white;\\n}\\n\\n.unicorn-dark-theme .mat-snack-bar-container {\\n color: rgba(0, 0, 0, 0.87);\\n background: #fafafa;\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.unicorn-dark-theme .mat-simple-snackbar-action {\\n color: inherit;\\n}\\n\\n/*\\n https: //stackblitz.com/edit/angular-material-theme-secrets?embed=1&file=src%2Ftheme.scss&source=post_page---------------------------\\n https://material.angular.io/guide/typography\\n https://material-ui.com/customization/color/\\n*/\\n\\n.defaultMat {\\n /*.mat-checkbox-inner-container, {\\n height: 40px;\\n width: 40px;\\n }*/\\n /*https: //stackoverflow.com/questions/46812064/how-to-set-the-color-of-an-icon-in-angular-material\\n https: //css-tricks.com/solved-with-css-colorizing-svg-backgrounds/*/\\n /* Note: If you're using an SVG icon, you should make the class target the `` element */\\n /*.white-icon svg {\\n fill: white;\\n filter:brightness(100);\\n }*/\\n /*.mat-menu-item {\\n height:20px;\\n }\\n button.mat-menu-item {\\n height: 30px;\\n font-size: 15px;\\n }*/\\n}\\n\\n.defaultMat .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n\\n.defaultMat .mat-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-option:hover:not(.mat-option-disabled), .defaultMat .mat-option:focus:not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n\\n.defaultMat .mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n\\n.defaultMat .mat-option.mat-active {\\n background: rgba(0, 0, 0, 0.04);\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-option.mat-option-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #2196f3;\\n}\\n\\n.defaultMat .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: yellow;\\n}\\n\\n.defaultMat .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\\n color: #f44336;\\n}\\n\\n.defaultMat .mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-optgroup-disabled .mat-optgroup-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-pseudo-checkbox {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-pseudo-checkbox::after {\\n color: #fafafa;\\n}\\n\\n.defaultMat .mat-pseudo-checkbox-disabled {\\n color: #b0b0b0;\\n}\\n\\n.defaultMat .mat-pseudo-checkbox-checked,\\n.defaultMat .mat-pseudo-checkbox-indeterminate,\\n.defaultMat .mat-accent .mat-pseudo-checkbox-checked,\\n.defaultMat .mat-accent .mat-pseudo-checkbox-indeterminate {\\n background: yellow;\\n}\\n\\n.defaultMat .mat-primary .mat-pseudo-checkbox-checked,\\n.defaultMat .mat-primary .mat-pseudo-checkbox-indeterminate {\\n background: #2196f3;\\n}\\n\\n.defaultMat .mat-warn .mat-pseudo-checkbox-checked,\\n.defaultMat .mat-warn .mat-pseudo-checkbox-indeterminate {\\n background: #f44336;\\n}\\n\\n.defaultMat .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,\\n.defaultMat .mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\\n background: #b0b0b0;\\n}\\n\\n.defaultMat .mat-elevation-z0 {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z1 {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z2 {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z3 {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z4 {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z5 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z6 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z7 {\\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z8 {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z9 {\\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z10 {\\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z11 {\\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z12 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z13 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z14 {\\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z15 {\\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z16 {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z17 {\\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z18 {\\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z19 {\\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z20 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z21 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z22 {\\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z23 {\\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-elevation-z24 {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-app-background, .defaultMat.mat-app-background {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.mat-theme-loaded-marker {\\n display: none;\\n}\\n\\n.defaultMat .mat-autocomplete-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-autocomplete-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {\\n background: white;\\n}\\n\\n.defaultMat .mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-badge-content {\\n color: white;\\n background: #2196f3;\\n}\\n\\n@media (-ms-high-contrast: active) {\\n .defaultMat .mat-badge-content {\\n outline: solid 1px;\\n border-radius: 0;\\n }\\n}\\n\\n.defaultMat .mat-badge-accent .mat-badge-content {\\n background: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-badge-warn .mat-badge-content {\\n color: white;\\n background: #f44336;\\n}\\n\\n.defaultMat .mat-badge {\\n position: relative;\\n}\\n\\n.defaultMat .mat-badge-hidden .mat-badge-content {\\n display: none;\\n}\\n\\n.defaultMat .mat-badge-disabled .mat-badge-content {\\n background: #b9b9b9;\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-badge-content {\\n position: absolute;\\n text-align: center;\\n display: inline-block;\\n border-radius: 50%;\\n transition: transform 200ms ease-in-out;\\n -ms-transform: scale(0.6);\\n transform: scale(0.6);\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n pointer-events: none;\\n}\\n\\n.defaultMat .ng-animate-disabled .mat-badge-content,\\n.defaultMat .mat-badge-content._mat-animation-noopable {\\n transition: none;\\n}\\n\\n.defaultMat .mat-badge-content.mat-badge-active {\\n -ms-transform: none;\\n transform: none;\\n}\\n\\n.defaultMat .mat-badge-small .mat-badge-content {\\n width: 16px;\\n height: 16px;\\n line-height: 16px;\\n}\\n\\n.defaultMat .mat-badge-small.mat-badge-above .mat-badge-content {\\n top: -8px;\\n}\\n\\n.defaultMat .mat-badge-small.mat-badge-below .mat-badge-content {\\n bottom: -8px;\\n}\\n\\n.defaultMat .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: -16px;\\n}\\n\\n[dir=rtl] .defaultMat .mat-badge-small.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -16px;\\n}\\n\\n.defaultMat .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: -16px;\\n}\\n\\n[dir=rtl] .defaultMat .mat-badge-small.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -16px;\\n}\\n\\n.defaultMat .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -8px;\\n}\\n\\n[dir=rtl] .defaultMat .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -8px;\\n}\\n\\n.defaultMat .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -8px;\\n}\\n\\n[dir=rtl] .defaultMat .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -8px;\\n}\\n\\n.defaultMat .mat-badge-medium .mat-badge-content {\\n width: 22px;\\n height: 22px;\\n line-height: 22px;\\n}\\n\\n.defaultMat .mat-badge-medium.mat-badge-above .mat-badge-content {\\n top: -11px;\\n}\\n\\n.defaultMat .mat-badge-medium.mat-badge-below .mat-badge-content {\\n bottom: -11px;\\n}\\n\\n.defaultMat .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: -22px;\\n}\\n\\n[dir=rtl] .defaultMat .mat-badge-medium.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -22px;\\n}\\n\\n.defaultMat .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: -22px;\\n}\\n\\n[dir=rtl] .defaultMat .mat-badge-medium.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -22px;\\n}\\n\\n.defaultMat .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -11px;\\n}\\n\\n[dir=rtl] .defaultMat .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -11px;\\n}\\n\\n.defaultMat .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -11px;\\n}\\n\\n[dir=rtl] .defaultMat .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -11px;\\n}\\n\\n.defaultMat .mat-badge-large .mat-badge-content {\\n width: 28px;\\n height: 28px;\\n line-height: 28px;\\n}\\n\\n.defaultMat .mat-badge-large.mat-badge-above .mat-badge-content {\\n top: -14px;\\n}\\n\\n.defaultMat .mat-badge-large.mat-badge-below .mat-badge-content {\\n bottom: -14px;\\n}\\n\\n.defaultMat .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: -28px;\\n}\\n\\n[dir=rtl] .defaultMat .mat-badge-large.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -28px;\\n}\\n\\n.defaultMat .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: -28px;\\n}\\n\\n[dir=rtl] .defaultMat .mat-badge-large.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -28px;\\n}\\n\\n.defaultMat .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: -14px;\\n}\\n\\n[dir=rtl] .defaultMat .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {\\n left: auto;\\n right: -14px;\\n}\\n\\n.defaultMat .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: -14px;\\n}\\n\\n[dir=rtl] .defaultMat .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {\\n right: auto;\\n left: -14px;\\n}\\n\\n.defaultMat .mat-bottom-sheet-container {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-button, .defaultMat .mat-icon-button, .defaultMat .mat-stroked-button {\\n color: inherit;\\n background: transparent;\\n}\\n\\n.defaultMat .mat-button.mat-primary, .defaultMat .mat-icon-button.mat-primary, .defaultMat .mat-stroked-button.mat-primary {\\n color: #2196f3;\\n}\\n\\n.defaultMat .mat-button.mat-accent, .defaultMat .mat-icon-button.mat-accent, .defaultMat .mat-stroked-button.mat-accent {\\n color: yellow;\\n}\\n\\n.defaultMat .mat-button.mat-warn, .defaultMat .mat-icon-button.mat-warn, .defaultMat .mat-stroked-button.mat-warn {\\n color: #f44336;\\n}\\n\\n.defaultMat .mat-button.mat-primary[disabled], .defaultMat .mat-button.mat-accent[disabled], .defaultMat .mat-button.mat-warn[disabled], .defaultMat .mat-button[disabled][disabled], .defaultMat .mat-icon-button.mat-primary[disabled], .defaultMat .mat-icon-button.mat-accent[disabled], .defaultMat .mat-icon-button.mat-warn[disabled], .defaultMat .mat-icon-button[disabled][disabled], .defaultMat .mat-stroked-button.mat-primary[disabled], .defaultMat .mat-stroked-button.mat-accent[disabled], .defaultMat .mat-stroked-button.mat-warn[disabled], .defaultMat .mat-stroked-button[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n\\n.defaultMat .mat-button.mat-primary .mat-button-focus-overlay, .defaultMat .mat-icon-button.mat-primary .mat-button-focus-overlay, .defaultMat .mat-stroked-button.mat-primary .mat-button-focus-overlay {\\n background-color: #2196f3;\\n}\\n\\n.defaultMat .mat-button.mat-accent .mat-button-focus-overlay, .defaultMat .mat-icon-button.mat-accent .mat-button-focus-overlay, .defaultMat .mat-stroked-button.mat-accent .mat-button-focus-overlay {\\n background-color: yellow;\\n}\\n\\n.defaultMat .mat-button.mat-warn .mat-button-focus-overlay, .defaultMat .mat-icon-button.mat-warn .mat-button-focus-overlay, .defaultMat .mat-stroked-button.mat-warn .mat-button-focus-overlay {\\n background-color: #f44336;\\n}\\n\\n.defaultMat .mat-button[disabled] .mat-button-focus-overlay, .defaultMat .mat-icon-button[disabled] .mat-button-focus-overlay, .defaultMat .mat-stroked-button[disabled] .mat-button-focus-overlay {\\n background-color: transparent;\\n}\\n\\n.defaultMat .mat-button .mat-ripple-element, .defaultMat .mat-icon-button .mat-ripple-element, .defaultMat .mat-stroked-button .mat-ripple-element {\\n opacity: 0.1;\\n background-color: currentColor;\\n}\\n\\n.defaultMat .mat-button-focus-overlay {\\n background: black;\\n}\\n\\n.defaultMat .mat-stroked-button:not([disabled]) {\\n border-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-flat-button, .defaultMat .mat-raised-button, .defaultMat .mat-fab, .defaultMat .mat-mini-fab {\\n color: rgba(0, 0, 0, 0.87);\\n background-color: white;\\n}\\n\\n.defaultMat .mat-flat-button.mat-primary, .defaultMat .mat-raised-button.mat-primary, .defaultMat .mat-fab.mat-primary, .defaultMat .mat-mini-fab.mat-primary {\\n color: white;\\n}\\n\\n.defaultMat .mat-flat-button.mat-accent, .defaultMat .mat-raised-button.mat-accent, .defaultMat .mat-fab.mat-accent, .defaultMat .mat-mini-fab.mat-accent {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-flat-button.mat-warn, .defaultMat .mat-raised-button.mat-warn, .defaultMat .mat-fab.mat-warn, .defaultMat .mat-mini-fab.mat-warn {\\n color: white;\\n}\\n\\n.defaultMat .mat-flat-button.mat-primary[disabled], .defaultMat .mat-flat-button.mat-accent[disabled], .defaultMat .mat-flat-button.mat-warn[disabled], .defaultMat .mat-flat-button[disabled][disabled], .defaultMat .mat-raised-button.mat-primary[disabled], .defaultMat .mat-raised-button.mat-accent[disabled], .defaultMat .mat-raised-button.mat-warn[disabled], .defaultMat .mat-raised-button[disabled][disabled], .defaultMat .mat-fab.mat-primary[disabled], .defaultMat .mat-fab.mat-accent[disabled], .defaultMat .mat-fab.mat-warn[disabled], .defaultMat .mat-fab[disabled][disabled], .defaultMat .mat-mini-fab.mat-primary[disabled], .defaultMat .mat-mini-fab.mat-accent[disabled], .defaultMat .mat-mini-fab.mat-warn[disabled], .defaultMat .mat-mini-fab[disabled][disabled] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n\\n.defaultMat .mat-flat-button.mat-primary, .defaultMat .mat-raised-button.mat-primary, .defaultMat .mat-fab.mat-primary, .defaultMat .mat-mini-fab.mat-primary {\\n background-color: #2196f3;\\n}\\n\\n.defaultMat .mat-flat-button.mat-accent, .defaultMat .mat-raised-button.mat-accent, .defaultMat .mat-fab.mat-accent, .defaultMat .mat-mini-fab.mat-accent {\\n background-color: yellow;\\n}\\n\\n.defaultMat .mat-flat-button.mat-warn, .defaultMat .mat-raised-button.mat-warn, .defaultMat .mat-fab.mat-warn, .defaultMat .mat-mini-fab.mat-warn {\\n background-color: #f44336;\\n}\\n\\n.defaultMat .mat-flat-button.mat-primary[disabled], .defaultMat .mat-flat-button.mat-accent[disabled], .defaultMat .mat-flat-button.mat-warn[disabled], .defaultMat .mat-flat-button[disabled][disabled], .defaultMat .mat-raised-button.mat-primary[disabled], .defaultMat .mat-raised-button.mat-accent[disabled], .defaultMat .mat-raised-button.mat-warn[disabled], .defaultMat .mat-raised-button[disabled][disabled], .defaultMat .mat-fab.mat-primary[disabled], .defaultMat .mat-fab.mat-accent[disabled], .defaultMat .mat-fab.mat-warn[disabled], .defaultMat .mat-fab[disabled][disabled], .defaultMat .mat-mini-fab.mat-primary[disabled], .defaultMat .mat-mini-fab.mat-accent[disabled], .defaultMat .mat-mini-fab.mat-warn[disabled], .defaultMat .mat-mini-fab[disabled][disabled] {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-flat-button.mat-primary .mat-ripple-element, .defaultMat .mat-raised-button.mat-primary .mat-ripple-element, .defaultMat .mat-fab.mat-primary .mat-ripple-element, .defaultMat .mat-mini-fab.mat-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n\\n.defaultMat .mat-flat-button.mat-accent .mat-ripple-element, .defaultMat .mat-raised-button.mat-accent .mat-ripple-element, .defaultMat .mat-fab.mat-accent .mat-ripple-element, .defaultMat .mat-mini-fab.mat-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.1);\\n}\\n\\n.defaultMat .mat-flat-button.mat-warn .mat-ripple-element, .defaultMat .mat-raised-button.mat-warn .mat-ripple-element, .defaultMat .mat-fab.mat-warn .mat-ripple-element, .defaultMat .mat-mini-fab.mat-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n\\n.defaultMat .mat-stroked-button:not([class*=mat-elevation-z]), .defaultMat .mat-flat-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-raised-button:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-raised-button[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-fab:not([class*=mat-elevation-z]), .defaultMat .mat-mini-fab:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-fab:not([disabled]):active:not([class*=mat-elevation-z]), .defaultMat .mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-fab[disabled]:not([class*=mat-elevation-z]), .defaultMat .mat-mini-fab[disabled]:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-button-toggle-standalone,\\n.defaultMat .mat-button-toggle-group {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.defaultMat .mat-button-toggle-group-appearance-standard {\\n box-shadow: none;\\n}\\n\\n.defaultMat .mat-button-toggle {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-button-toggle .mat-button-toggle-focus-overlay {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n background: white;\\n}\\n\\n.defaultMat .mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {\\n background-color: black;\\n}\\n\\n.defaultMat .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat [dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {\\n border-left: none;\\n border-right: none;\\n border-top: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-button-toggle-checked {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-button-toggle-checked.mat-button-toggle-appearance-standard {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-button-toggle-disabled {\\n color: rgba(0, 0, 0, 0.26);\\n background-color: #eeeeee;\\n}\\n\\n.defaultMat .mat-button-toggle-disabled.mat-button-toggle-appearance-standard {\\n background: white;\\n}\\n\\n.defaultMat .mat-button-toggle-disabled.mat-button-toggle-checked {\\n background-color: #bdbdbd;\\n}\\n\\n.defaultMat .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\\n.defaultMat .mat-button-toggle-group-appearance-standard {\\n border: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-card {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-card:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-card.mat-card-flat:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-card-subtitle {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-checkbox-frame {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-checkbox-checkmark {\\n fill: #fafafa;\\n}\\n\\n.defaultMat .mat-checkbox-checkmark-path {\\n stroke: #fafafa !important;\\n}\\n\\n@media (-ms-high-contrast: black-on-white) {\\n .defaultMat .mat-checkbox-checkmark-path {\\n stroke: #000 !important;\\n }\\n}\\n\\n.defaultMat .mat-checkbox-mixedmark {\\n background-color: #fafafa;\\n}\\n\\n.defaultMat .mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .defaultMat .mat-checkbox-checked.mat-primary .mat-checkbox-background {\\n background-color: #2196f3;\\n}\\n\\n.defaultMat .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .defaultMat .mat-checkbox-checked.mat-accent .mat-checkbox-background {\\n background-color: yellow;\\n}\\n\\n.defaultMat .mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .defaultMat .mat-checkbox-checked.mat-warn .mat-checkbox-background {\\n background-color: #f44336;\\n}\\n\\n.defaultMat .mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .defaultMat .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: #b0b0b0;\\n}\\n\\n.defaultMat .mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {\\n border-color: #b0b0b0;\\n}\\n\\n.defaultMat .mat-checkbox-disabled .mat-checkbox-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n@media (-ms-high-contrast: active) {\\n .defaultMat .mat-checkbox-disabled {\\n opacity: 0.5;\\n }\\n}\\n\\n@media (-ms-high-contrast: active) {\\n .defaultMat .mat-checkbox-background {\\n background: none;\\n }\\n}\\n\\n.defaultMat .mat-checkbox .mat-ripple-element {\\n background-color: black;\\n}\\n\\n.defaultMat .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,\\n.defaultMat .mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {\\n background: #2196f3;\\n}\\n\\n.defaultMat .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,\\n.defaultMat .mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {\\n background: yellow;\\n}\\n\\n.defaultMat .mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,\\n.defaultMat .mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {\\n background: #f44336;\\n}\\n\\n.defaultMat .mat-chip.mat-standard-chip {\\n background-color: #e0e0e0;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-chip.mat-standard-chip .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n\\n.defaultMat .mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {\\n opacity: 0.54;\\n}\\n\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-disabled {\\n opacity: 0.4;\\n}\\n\\n.defaultMat .mat-chip.mat-standard-chip::after {\\n background: black;\\n}\\n\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {\\n background-color: #2196f3;\\n color: white;\\n}\\n\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {\\n background-color: #f44336;\\n color: white;\\n}\\n\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {\\n color: white;\\n opacity: 0.4;\\n}\\n\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {\\n background: rgba(255, 255, 255, 0.1);\\n}\\n\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {\\n background-color: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {\\n color: rgba(0, 0, 0, 0.87);\\n opacity: 0.4;\\n}\\n\\n.defaultMat .mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {\\n background: rgba(0, 0, 0, 0.1);\\n}\\n\\n.defaultMat .mat-table {\\n background: white;\\n}\\n\\n.defaultMat .mat-table thead, .defaultMat .mat-table tbody, .defaultMat .mat-table tfoot,\\n.defaultMat mat-header-row, .defaultMat mat-row, .defaultMat mat-footer-row,\\n.defaultMat [mat-header-row], .defaultMat [mat-row], .defaultMat [mat-footer-row],\\n.defaultMat .mat-table-sticky {\\n background: inherit;\\n}\\n\\n.defaultMat mat-row, .defaultMat mat-header-row, .defaultMat mat-footer-row,\\n.defaultMat th.mat-header-cell, .defaultMat td.mat-cell, .defaultMat td.mat-footer-cell {\\n border-bottom-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-header-cell {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-cell, .defaultMat .mat-footer-cell {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-calendar-arrow {\\n border-top-color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-datepicker-toggle,\\n.defaultMat .mat-datepicker-content .mat-calendar-next-button,\\n.defaultMat .mat-datepicker-content .mat-calendar-previous-button {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-calendar-table-header {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-calendar-table-header-divider::after {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-calendar-body-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-calendar-body-cell-content {\\n color: rgba(0, 0, 0, 0.87);\\n border-color: transparent;\\n}\\n\\n.defaultMat .mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.defaultMat .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected),\\n.defaultMat .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected) {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n\\n.defaultMat .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected) {\\n border-color: rgba(0, 0, 0, 0.18);\\n}\\n\\n.defaultMat .mat-calendar-body-selected {\\n background-color: #2196f3;\\n color: white;\\n}\\n\\n.defaultMat .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(33, 150, 243, 0.4);\\n}\\n\\n.defaultMat .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n\\n.defaultMat .mat-datepicker-content {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-datepicker-content.mat-accent .mat-calendar-body-selected {\\n background-color: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(255, 255, 0, 0.4);\\n}\\n\\n.defaultMat .mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-datepicker-content.mat-warn .mat-calendar-body-selected {\\n background-color: #f44336;\\n color: white;\\n}\\n\\n.defaultMat .mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {\\n background-color: rgba(244, 67, 54, 0.4);\\n}\\n\\n.defaultMat .mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {\\n box-shadow: inset 0 0 0 1px white;\\n}\\n\\n.defaultMat .mat-datepicker-content-touch {\\n box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-datepicker-toggle-active {\\n color: #2196f3;\\n}\\n\\n.defaultMat .mat-datepicker-toggle-active.mat-accent {\\n color: yellow;\\n}\\n\\n.defaultMat .mat-datepicker-toggle-active.mat-warn {\\n color: #f44336;\\n}\\n\\n.defaultMat .mat-dialog-container {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-divider {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-divider-vertical {\\n border-right-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-expansion-panel {\\n background: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-expansion-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-action-row {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused, .defaultMat .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused, .defaultMat .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n\\n@media (hover: none) {\\n .defaultMat .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {\\n background: white;\\n }\\n}\\n\\n.defaultMat .mat-expansion-panel-header-title {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-expansion-panel-header-description,\\n.defaultMat .mat-expansion-indicator::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-expansion-panel-header[aria-disabled=true] {\\n color: rgba(0, 0, 0, 0.26);\\n}\\n\\n.defaultMat .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,\\n.defaultMat .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {\\n color: inherit;\\n}\\n\\n.defaultMat .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n\\n.defaultMat .mat-hint {\\n color: rgba(0, 0, 0, 0.6);\\n}\\n\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-label {\\n color: #2196f3;\\n}\\n\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-label.mat-accent {\\n color: yellow;\\n}\\n\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-label.mat-warn {\\n color: #f44336;\\n}\\n\\n.defaultMat .mat-focused .mat-form-field-required-marker {\\n color: yellow;\\n}\\n\\n.defaultMat .mat-form-field-ripple {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-ripple {\\n background-color: #2196f3;\\n}\\n\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {\\n background-color: yellow;\\n}\\n\\n.defaultMat .mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {\\n background-color: #f44336;\\n}\\n\\n.defaultMat .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {\\n color: #2196f3;\\n}\\n\\n.defaultMat .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {\\n color: yellow;\\n}\\n\\n.defaultMat .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-label {\\n color: #f44336;\\n}\\n\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {\\n color: #f44336;\\n}\\n\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-ripple,\\n.defaultMat .mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {\\n background-color: #f44336;\\n}\\n\\n.defaultMat .mat-error {\\n color: #f44336;\\n}\\n\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-form-field-appearance-legacy .mat-hint {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n\\n.defaultMat .mat-form-field-appearance-standard .mat-form-field-underline {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.defaultMat .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);\\n background-size: 4px 100%;\\n background-repeat: repeat-x;\\n}\\n\\n.defaultMat .mat-form-field-appearance-fill .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {\\n background-color: rgba(0, 0, 0, 0.02);\\n}\\n\\n.defaultMat .mat-form-field-appearance-fill .mat-form-field-underline::before {\\n background-color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {\\n background-color: transparent;\\n}\\n\\n.defaultMat .mat-form-field-appearance-outline .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-form-field-appearance-outline .mat-form-field-outline-thick {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {\\n color: #2196f3;\\n}\\n\\n.defaultMat .mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {\\n color: yellow;\\n}\\n\\n.defaultMat .mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {\\n color: #f44336;\\n}\\n\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\\n color: rgba(0, 0, 0, 0.06);\\n}\\n\\n.defaultMat .mat-icon.mat-primary {\\n color: #2196f3;\\n}\\n\\n.defaultMat .mat-icon.mat-accent {\\n color: yellow;\\n}\\n\\n.defaultMat .mat-icon.mat-warn {\\n color: #f44336;\\n}\\n\\n.defaultMat .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-input-element:disabled,\\n.defaultMat .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-input-element {\\n caret-color: #2196f3;\\n}\\n\\n.defaultMat .mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.defaultMat .mat-input-element:-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.defaultMat .mat-input-element::-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.defaultMat .mat-input-element::placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.defaultMat .mat-input-element::-moz-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.defaultMat .mat-input-element::-webkit-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.defaultMat .mat-input-element:-ms-input-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.defaultMat .mat-accent .mat-input-element {\\n caret-color: yellow;\\n}\\n\\n.defaultMat .mat-warn .mat-input-element,\\n.defaultMat .mat-form-field-invalid .mat-input-element {\\n caret-color: #f44336;\\n}\\n\\n.defaultMat .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\\n color: #f44336;\\n}\\n\\n.defaultMat .mat-list-base .mat-list-item {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-list-base .mat-list-option {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-list-base .mat-subheader {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-list-item-disabled {\\n background-color: #eeeeee;\\n}\\n\\n.defaultMat .mat-list-option:hover, .defaultMat .mat-list-option:focus,\\n.defaultMat .mat-nav-list .mat-list-item:hover,\\n.defaultMat .mat-nav-list .mat-list-item:focus,\\n.defaultMat .mat-action-list .mat-list-item:hover,\\n.defaultMat .mat-action-list .mat-list-item:focus {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n\\n.defaultMat .mat-menu-panel {\\n background: white;\\n}\\n\\n.defaultMat .mat-menu-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-menu-item {\\n background: transparent;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-menu-item[disabled], .defaultMat .mat-menu-item[disabled]::after {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-menu-item .mat-icon-no-color,\\n.defaultMat .mat-menu-item-submenu-trigger::after {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-menu-item:hover:not([disabled]),\\n.defaultMat .mat-menu-item.cdk-program-focused:not([disabled]),\\n.defaultMat .mat-menu-item.cdk-keyboard-focused:not([disabled]),\\n.defaultMat .mat-menu-item-highlighted:not([disabled]) {\\n background: rgba(0, 0, 0, 0.04);\\n}\\n\\n.defaultMat .mat-paginator {\\n background: white;\\n}\\n\\n.defaultMat .mat-paginator,\\n.defaultMat .mat-paginator-page-size .mat-select-trigger {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-paginator-decrement,\\n.defaultMat .mat-paginator-increment {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n border-right: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-paginator-first,\\n.defaultMat .mat-paginator-last {\\n border-top: 2px solid rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-icon-button[disabled] .mat-paginator-decrement,\\n.defaultMat .mat-icon-button[disabled] .mat-paginator-increment,\\n.defaultMat .mat-icon-button[disabled] .mat-paginator-first,\\n.defaultMat .mat-icon-button[disabled] .mat-paginator-last {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-progress-bar-background {\\n fill: #bbdefb;\\n}\\n\\n.defaultMat .mat-progress-bar-buffer {\\n background-color: #bbdefb;\\n}\\n\\n.defaultMat .mat-progress-bar-fill::after {\\n background-color: #2196f3;\\n}\\n\\n.defaultMat .mat-progress-bar.mat-accent .mat-progress-bar-background {\\n fill: #ffff8d;\\n}\\n\\n.defaultMat .mat-progress-bar.mat-accent .mat-progress-bar-buffer {\\n background-color: #ffff8d;\\n}\\n\\n.defaultMat .mat-progress-bar.mat-accent .mat-progress-bar-fill::after {\\n background-color: yellow;\\n}\\n\\n.defaultMat .mat-progress-bar.mat-warn .mat-progress-bar-background {\\n fill: #ffcdd2;\\n}\\n\\n.defaultMat .mat-progress-bar.mat-warn .mat-progress-bar-buffer {\\n background-color: #ffcdd2;\\n}\\n\\n.defaultMat .mat-progress-bar.mat-warn .mat-progress-bar-fill::after {\\n background-color: #f44336;\\n}\\n\\n.defaultMat .mat-progress-spinner circle, .defaultMat .mat-spinner circle {\\n stroke: #2196f3;\\n}\\n\\n.defaultMat .mat-progress-spinner.mat-accent circle, .defaultMat .mat-spinner.mat-accent circle {\\n stroke: yellow;\\n}\\n\\n.defaultMat .mat-progress-spinner.mat-warn circle, .defaultMat .mat-spinner.mat-warn circle {\\n stroke: #f44336;\\n}\\n\\n.defaultMat .mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #2196f3;\\n}\\n\\n.defaultMat .mat-radio-button.mat-primary .mat-radio-inner-circle,\\n.defaultMat .mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .defaultMat .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .defaultMat .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {\\n background-color: #2196f3;\\n}\\n\\n.defaultMat .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {\\n border-color: yellow;\\n}\\n\\n.defaultMat .mat-radio-button.mat-accent .mat-radio-inner-circle,\\n.defaultMat .mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .defaultMat .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .defaultMat .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {\\n background-color: yellow;\\n}\\n\\n.defaultMat .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {\\n border-color: #f44336;\\n}\\n\\n.defaultMat .mat-radio-button.mat-warn .mat-radio-inner-circle,\\n.defaultMat .mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .defaultMat .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .defaultMat .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {\\n background-color: #f44336;\\n}\\n\\n.defaultMat .mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,\\n.defaultMat .mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,\\n.defaultMat .mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-radio-button.mat-radio-disabled .mat-radio-label-content {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-radio-button .mat-ripple-element {\\n background-color: black;\\n}\\n\\n.defaultMat .mat-select-value {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-select-placeholder {\\n color: rgba(0, 0, 0, 0.42);\\n}\\n\\n.defaultMat .mat-select-disabled .mat-select-value {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-select-arrow {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-select-panel {\\n background: white;\\n}\\n\\n.defaultMat .mat-select-panel:not([class*=mat-elevation-z]) {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {\\n background: rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-form-field.mat-focused.mat-primary .mat-select-arrow {\\n color: #2196f3;\\n}\\n\\n.defaultMat .mat-form-field.mat-focused.mat-accent .mat-select-arrow {\\n color: yellow;\\n}\\n\\n.defaultMat .mat-form-field.mat-focused.mat-warn .mat-select-arrow {\\n color: #f44336;\\n}\\n\\n.defaultMat .mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {\\n color: #f44336;\\n}\\n\\n.defaultMat .mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-drawer-container {\\n background-color: #fafafa;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-drawer {\\n background-color: white;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-drawer.mat-drawer-push {\\n background-color: white;\\n}\\n\\n.defaultMat .mat-drawer:not(.mat-drawer-side) {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-drawer-side {\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-drawer-side.mat-drawer-end {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n\\n.defaultMat [dir=rtl] .mat-drawer-side {\\n border-left: solid 1px rgba(0, 0, 0, 0.12);\\n border-right: none;\\n}\\n\\n.defaultMat [dir=rtl] .mat-drawer-side.mat-drawer-end {\\n border-left: none;\\n border-right: solid 1px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-drawer-backdrop.mat-drawer-shown {\\n background-color: rgba(0, 0, 0, 0.6);\\n}\\n\\n.defaultMat .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {\\n background-color: yellow;\\n}\\n\\n.defaultMat .mat-slide-toggle.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(255, 255, 0, 0.54);\\n}\\n\\n.defaultMat .mat-slide-toggle.mat-checked .mat-ripple-element {\\n background-color: yellow;\\n}\\n\\n.defaultMat .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {\\n background-color: #2196f3;\\n}\\n\\n.defaultMat .mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(33, 150, 243, 0.54);\\n}\\n\\n.defaultMat .mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {\\n background-color: #2196f3;\\n}\\n\\n.defaultMat .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {\\n background-color: #f44336;\\n}\\n\\n.defaultMat .mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {\\n background-color: rgba(244, 67, 54, 0.54);\\n}\\n\\n.defaultMat .mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {\\n background-color: #f44336;\\n}\\n\\n.defaultMat .mat-slide-toggle:not(.mat-checked) .mat-ripple-element {\\n background-color: black;\\n}\\n\\n.defaultMat .mat-slide-toggle-thumb {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n background-color: #fafafa;\\n}\\n\\n.defaultMat .mat-slide-toggle-bar {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n\\n.defaultMat .mat-primary .mat-slider-track-fill,\\n.defaultMat .mat-primary .mat-slider-thumb,\\n.defaultMat .mat-primary .mat-slider-thumb-label {\\n background-color: #2196f3;\\n}\\n\\n.defaultMat .mat-primary .mat-slider-thumb-label-text {\\n color: white;\\n}\\n\\n.defaultMat .mat-accent .mat-slider-track-fill,\\n.defaultMat .mat-accent .mat-slider-thumb,\\n.defaultMat .mat-accent .mat-slider-thumb-label {\\n background-color: yellow;\\n}\\n\\n.defaultMat .mat-accent .mat-slider-thumb-label-text {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-warn .mat-slider-track-fill,\\n.defaultMat .mat-warn .mat-slider-thumb,\\n.defaultMat .mat-warn .mat-slider-thumb-label {\\n background-color: #f44336;\\n}\\n\\n.defaultMat .mat-warn .mat-slider-thumb-label-text {\\n color: white;\\n}\\n\\n.defaultMat .mat-slider-focus-ring {\\n background-color: rgba(255, 255, 0, 0.2);\\n}\\n\\n.defaultMat .mat-slider:hover .mat-slider-track-background,\\n.defaultMat .cdk-focused .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-slider-disabled .mat-slider-track-background,\\n.defaultMat .mat-slider-disabled .mat-slider-track-fill,\\n.defaultMat .mat-slider-disabled .mat-slider-thumb {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n\\n.defaultMat .mat-slider-disabled:hover .mat-slider-track-background {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n\\n.defaultMat .mat-slider-min-value .mat-slider-focus-ring {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,\\n.defaultMat .mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,\\n.defaultMat .mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {\\n background-color: rgba(0, 0, 0, 0.26);\\n}\\n\\n.defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n background-color: transparent;\\n}\\n\\n.defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .defaultMat .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {\\n border-color: rgba(0, 0, 0, 0.26);\\n}\\n\\n.defaultMat .mat-slider-has-ticks .mat-slider-wrapper::after {\\n border-color: rgba(0, 0, 0, 0.7);\\n}\\n\\n.defaultMat .mat-slider-horizontal .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to right, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n\\n.defaultMat .mat-slider-vertical .mat-slider-ticks {\\n background-image: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);\\n}\\n\\n.defaultMat .mat-step-header.cdk-keyboard-focused, .defaultMat .mat-step-header.cdk-program-focused, .defaultMat .mat-step-header:hover {\\n background-color: rgba(0, 0, 0, 0.04);\\n}\\n\\n@media (hover: none) {\\n .defaultMat .mat-step-header:hover {\\n background: none;\\n }\\n}\\n\\n.defaultMat .mat-step-header .mat-step-label,\\n.defaultMat .mat-step-header .mat-step-optional {\\n color: rgba(0, 0, 0, 0.54);\\n}\\n\\n.defaultMat .mat-step-header .mat-step-icon {\\n background-color: rgba(0, 0, 0, 0.54);\\n color: white;\\n}\\n\\n.defaultMat .mat-step-header .mat-step-icon-selected,\\n.defaultMat .mat-step-header .mat-step-icon-state-done,\\n.defaultMat .mat-step-header .mat-step-icon-state-edit {\\n background-color: #2196f3;\\n color: white;\\n}\\n\\n.defaultMat .mat-step-header .mat-step-icon-state-error {\\n background-color: transparent;\\n color: #f44336;\\n}\\n\\n.defaultMat .mat-step-header .mat-step-label.mat-step-label-active {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-step-header .mat-step-label.mat-step-label-error {\\n color: #f44336;\\n}\\n\\n.defaultMat .mat-stepper-horizontal, .defaultMat .mat-stepper-vertical {\\n background-color: white;\\n}\\n\\n.defaultMat .mat-stepper-vertical-line::before {\\n border-left-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-horizontal-stepper-header::before,\\n.defaultMat .mat-horizontal-stepper-header::after,\\n.defaultMat .mat-stepper-horizontal-line {\\n border-top-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-sort-header-arrow {\\n color: #757575;\\n}\\n\\n.defaultMat .mat-tab-nav-bar,\\n.defaultMat .mat-tab-header {\\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-tab-group-inverted-header .mat-tab-nav-bar,\\n.defaultMat .mat-tab-group-inverted-header .mat-tab-header {\\n border-top: 1px solid rgba(0, 0, 0, 0.12);\\n border-bottom: none;\\n}\\n\\n.defaultMat .mat-tab-label, .defaultMat .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.38);\\n}\\n\\n.defaultMat .mat-tab-group[class*=mat-background-] .mat-tab-header,\\n.defaultMat .mat-tab-nav-bar[class*=mat-background-] {\\n border-bottom: none;\\n border-top: none;\\n}\\n\\n.defaultMat .mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(187, 222, 251, 0.3);\\n}\\n\\n.defaultMat .mat-tab-group.mat-primary .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-primary .mat-ink-bar {\\n background-color: #2196f3;\\n}\\n\\n.defaultMat .mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar {\\n background-color: white;\\n}\\n\\n.defaultMat .mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 255, 141, 0.3);\\n}\\n\\n.defaultMat .mat-tab-group.mat-accent .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-accent .mat-ink-bar {\\n background-color: yellow;\\n}\\n\\n.defaultMat .mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar {\\n background-color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n\\n.defaultMat .mat-tab-group.mat-warn .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-warn .mat-ink-bar {\\n background-color: #f44336;\\n}\\n\\n.defaultMat .mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar, .defaultMat .mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar {\\n background-color: white;\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(187, 222, 251, 0.3);\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-header, .defaultMat .mat-tab-group.mat-background-primary .mat-tab-links, .defaultMat .mat-tab-group.mat-background-primary .mat-tab-header-pagination, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-header, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-links, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination {\\n background-color: #2196f3;\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-label, .defaultMat .mat-tab-group.mat-background-primary .mat-tab-link, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-label, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-link {\\n color: white;\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-primary .mat-ripple-element, .defaultMat .mat-tab-nav-bar.mat-background-primary .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 255, 141, 0.3);\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-header, .defaultMat .mat-tab-group.mat-background-accent .mat-tab-links, .defaultMat .mat-tab-group.mat-background-accent .mat-tab-header-pagination, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-header, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-links, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination {\\n background-color: yellow;\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-label, .defaultMat .mat-tab-group.mat-background-accent .mat-tab-link, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-label, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-link {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled {\\n color: rgba(0, 0, 0, 0.4);\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(0, 0, 0, 0.4);\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-accent .mat-ripple-element, .defaultMat .mat-tab-nav-bar.mat-background-accent .mat-ripple-element {\\n background-color: rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),\\n.defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {\\n background-color: rgba(255, 205, 210, 0.3);\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-header, .defaultMat .mat-tab-group.mat-background-warn .mat-tab-links, .defaultMat .mat-tab-group.mat-background-warn .mat-tab-header-pagination, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-header, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-links, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination {\\n background-color: #f44336;\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-label, .defaultMat .mat-tab-group.mat-background-warn .mat-tab-link, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-label, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-link {\\n color: white;\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled {\\n color: rgba(255, 255, 255, 0.4);\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron {\\n border-color: white;\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\\n border-color: rgba(255, 255, 255, 0.4);\\n}\\n\\n.defaultMat .mat-tab-group.mat-background-warn .mat-ripple-element, .defaultMat .mat-tab-nav-bar.mat-background-warn .mat-ripple-element {\\n background-color: rgba(255, 255, 255, 0.12);\\n}\\n\\n.defaultMat .mat-toolbar {\\n background: whitesmoke;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-toolbar.mat-primary {\\n background: #2196f3;\\n color: white;\\n}\\n\\n.defaultMat .mat-toolbar.mat-accent {\\n background: yellow;\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-toolbar.mat-warn {\\n background: #f44336;\\n color: white;\\n}\\n\\n.defaultMat .mat-toolbar .mat-form-field-underline,\\n.defaultMat .mat-toolbar .mat-form-field-ripple,\\n.defaultMat .mat-toolbar .mat-focused .mat-form-field-ripple {\\n background-color: currentColor;\\n}\\n\\n.defaultMat .mat-toolbar .mat-form-field-label,\\n.defaultMat .mat-toolbar .mat-focused .mat-form-field-label,\\n.defaultMat .mat-toolbar .mat-select-value,\\n.defaultMat .mat-toolbar .mat-select-arrow,\\n.defaultMat .mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {\\n color: inherit;\\n}\\n\\n.defaultMat .mat-toolbar .mat-input-element {\\n caret-color: currentColor;\\n}\\n\\n.defaultMat .mat-tooltip {\\n background: rgba(97, 97, 97, 0.9);\\n}\\n\\n.defaultMat .mat-tree {\\n background: white;\\n}\\n\\n.defaultMat .mat-tree-node,\\n.defaultMat .mat-nested-tree-node {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-snack-bar-container {\\n color: rgba(255, 255, 255, 0.7);\\n background: #323232;\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.defaultMat .mat-simple-snackbar-action {\\n color: yellow;\\n}\\n\\n.defaultMat .mat-badge-content {\\n font-weight: 600;\\n font-size: 12px;\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-badge-small .mat-badge-content {\\n font-size: 9px;\\n}\\n\\n.defaultMat .mat-badge-large .mat-badge-content {\\n font-size: 24px;\\n}\\n\\n.defaultMat .mat-h1, .defaultMat .mat-headline, .defaultMat .mat-typography h1 {\\n font: 600 24px/32px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n\\n.defaultMat .mat-h2, .defaultMat .mat-title, .defaultMat .mat-typography h2 {\\n font: 600 20px/32px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n\\n.defaultMat .mat-h3, .defaultMat .mat-subheading-2, .defaultMat .mat-typography h3 {\\n font: 600 16px/22px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n\\n.defaultMat .mat-h4, .defaultMat .mat-subheading-1, .defaultMat .mat-typography h4 {\\n font: 600 15px/24px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 16px;\\n}\\n\\n.defaultMat .mat-h5, .defaultMat .mat-typography h5 {\\n font: 600 calc(14px * 0.83)/30px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n\\n.defaultMat .mat-h6, .defaultMat .mat-typography h6 {\\n font: 600 calc(14px * 0.67)/30px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 12px;\\n}\\n\\n.defaultMat .mat-body-strong, .defaultMat .mat-body-2 {\\n font: 600 14px/24px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-body, .defaultMat .mat-body-1, .defaultMat .mat-typography {\\n font: 600 14px/30px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-body p, .defaultMat .mat-body-1 p, .defaultMat .mat-typography p {\\n margin: 0 0 12px;\\n}\\n\\n.defaultMat .mat-small, .defaultMat .mat-caption {\\n font: 600 12px/20px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-display-4, .defaultMat .mat-typography .mat-display-4 {\\n font: 300 112px/112px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 56px;\\n}\\n\\n.defaultMat .mat-display-3, .defaultMat .mat-typography .mat-display-3 {\\n font: 600 56px/56px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 64px;\\n}\\n\\n.defaultMat .mat-display-2, .defaultMat .mat-typography .mat-display-2 {\\n font: 400 45px/48px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 64px;\\n}\\n\\n.defaultMat .mat-display-1, .defaultMat .mat-typography .mat-display-1 {\\n font: 600 34px/40px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0 0 64px;\\n}\\n\\n.defaultMat .mat-bottom-sheet-container {\\n font: 600 14px/30px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-button, .defaultMat .mat-raised-button, .defaultMat .mat-icon-button, .defaultMat .mat-stroked-button,\\n.defaultMat .mat-flat-button, .defaultMat .mat-fab, .defaultMat .mat-mini-fab {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 10px;\\n font-weight: 800;\\n}\\n\\n.defaultMat .mat-button-toggle {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-card {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-card-title {\\n font-size: 24px;\\n font-weight: 600;\\n}\\n\\n.defaultMat .mat-card-header .mat-card-title {\\n font-size: 20px;\\n}\\n\\n.defaultMat .mat-card-subtitle,\\n.defaultMat .mat-card-content {\\n font-size: 14px;\\n}\\n\\n.defaultMat .mat-checkbox {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-checkbox-layout .mat-checkbox-label {\\n line-height: 24px;\\n}\\n\\n.defaultMat .mat-chip {\\n font-size: 14px;\\n font-weight: 600;\\n}\\n\\n.defaultMat .mat-chip .mat-chip-trailing-icon.mat-icon,\\n.defaultMat .mat-chip .mat-chip-remove.mat-icon {\\n font-size: 18px;\\n}\\n\\n.defaultMat .mat-table {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-header-cell {\\n font-size: 12px;\\n font-weight: 600;\\n}\\n\\n.defaultMat .mat-cell, .defaultMat .mat-footer-cell {\\n font-size: 14px;\\n}\\n\\n.defaultMat .mat-calendar {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-calendar-body {\\n font-size: 13px;\\n}\\n\\n.defaultMat .mat-calendar-body-label,\\n.defaultMat .mat-calendar-period-button {\\n font-size: 10px;\\n font-weight: 800;\\n}\\n\\n.defaultMat .mat-calendar-table-header th {\\n font-size: 11px;\\n font-weight: 600;\\n}\\n\\n.defaultMat .mat-dialog-title {\\n font: 600 20px/32px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-expansion-panel-header {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 15px;\\n font-weight: 600;\\n}\\n\\n.defaultMat .mat-expansion-panel-content {\\n font: 600 14px/30px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-form-field {\\n font-size: inherit;\\n font-weight: 400;\\n line-height: 1.125;\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-form-field-wrapper {\\n padding-bottom: 1.34375em;\\n}\\n\\n.defaultMat .mat-form-field-prefix .mat-icon,\\n.defaultMat .mat-form-field-suffix .mat-icon {\\n font-size: 150%;\\n line-height: 1.125;\\n}\\n\\n.defaultMat .mat-form-field-prefix .mat-icon-button,\\n.defaultMat .mat-form-field-suffix .mat-icon-button {\\n height: 1.5em;\\n width: 1.5em;\\n}\\n\\n.defaultMat .mat-form-field-prefix .mat-icon-button .mat-icon,\\n.defaultMat .mat-form-field-suffix .mat-icon-button .mat-icon {\\n height: 1.125em;\\n line-height: 1.125;\\n}\\n\\n.defaultMat .mat-form-field-infix {\\n padding: 0.5em 0;\\n border-top: 0.84375em solid transparent;\\n}\\n\\n.defaultMat .mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.34373em) scale(0.75);\\n transform: translateY(-1.34373em) scale(0.75);\\n width: 133.3333533333%;\\n}\\n\\n.defaultMat .mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.34372em) scale(0.75);\\n transform: translateY(-1.34372em) scale(0.75);\\n width: 133.3333633333%;\\n}\\n\\n.defaultMat .mat-form-field-label-wrapper {\\n top: -0.84375em;\\n padding-top: 0.84375em;\\n}\\n\\n.defaultMat .mat-form-field-label {\\n top: 1.34375em;\\n}\\n\\n.defaultMat .mat-form-field-underline {\\n bottom: 1.34375em;\\n}\\n\\n.defaultMat .mat-form-field-subscript-wrapper {\\n font-size: 75%;\\n margin-top: 0.6666666667em;\\n top: calc(100% - 1.7916666667em);\\n}\\n\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-wrapper {\\n padding-bottom: 1.25em;\\n}\\n\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-infix {\\n padding: 0.4375em 0;\\n}\\n\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00106px);\\n -ms-transform: translateY(-1.28119em) scale(0.75);\\n width: 133.3333933333%;\\n}\\n\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00107px);\\n -ms-transform: translateY(-1.28118em) scale(0.75);\\n width: 133.3334033333%;\\n}\\n\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00108px);\\n -ms-transform: translateY(-1.28117em) scale(0.75);\\n width: 133.3334133333%;\\n}\\n\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-label {\\n top: 1.28125em;\\n}\\n\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-underline {\\n bottom: 1.25em;\\n}\\n\\n.defaultMat .mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {\\n margin-top: 0.5416666667em;\\n top: calc(100% - 1.6666666667em);\\n}\\n\\n@media print {\\n .defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.28116em) scale(0.75);\\n transform: translateY(-1.28116em) scale(0.75);\\n }\\n .defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\\n transform: translateY(-1.28115em) scale(0.75);\\n }\\n .defaultMat .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.28114em) scale(0.75);\\n transform: translateY(-1.28114em) scale(0.75);\\n }\\n}\\n\\n.defaultMat .mat-form-field-appearance-fill .mat-form-field-infix {\\n padding: 0.25em 0 0.75em 0;\\n}\\n\\n.defaultMat .mat-form-field-appearance-fill .mat-form-field-label {\\n top: 1.09375em;\\n margin-top: -0.5em;\\n}\\n\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-0.59373em) scale(0.75);\\n transform: translateY(-0.59373em) scale(0.75);\\n width: 133.3333533333%;\\n}\\n\\n.defaultMat .mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-0.59372em) scale(0.75);\\n transform: translateY(-0.59372em) scale(0.75);\\n width: 133.3333633333%;\\n}\\n\\n.defaultMat .mat-form-field-appearance-outline .mat-form-field-infix {\\n padding: 1em 0 1em 0;\\n}\\n\\n.defaultMat .mat-form-field-appearance-outline .mat-form-field-label {\\n top: 1.84375em;\\n margin-top: -0.25em;\\n}\\n\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.59373em) scale(0.75);\\n transform: translateY(-1.59373em) scale(0.75);\\n width: 133.3333533333%;\\n}\\n\\n.defaultMat .mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\\n -ms-transform: translateY(-1.59372em) scale(0.75);\\n transform: translateY(-1.59372em) scale(0.75);\\n width: 133.3333633333%;\\n}\\n\\n.defaultMat .mat-grid-tile-header,\\n.defaultMat .mat-grid-tile-footer {\\n font-size: 14px;\\n}\\n\\n.defaultMat .mat-grid-tile-header .mat-line,\\n.defaultMat .mat-grid-tile-footer .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n\\n.defaultMat .mat-grid-tile-header .mat-line:nth-child(n+2),\\n.defaultMat .mat-grid-tile-footer .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n\\n.defaultMat input.mat-input-element {\\n margin-top: -0.0625em;\\n}\\n\\n.defaultMat .mat-menu-item {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 600;\\n}\\n\\n.defaultMat .mat-paginator,\\n.defaultMat .mat-paginator-page-size .mat-select-trigger {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n}\\n\\n.defaultMat .mat-radio-button {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-select {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-select-trigger {\\n height: 1.125em;\\n}\\n\\n.defaultMat .mat-slide-toggle-content {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-slider-thumb-label-text {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 600;\\n}\\n\\n.defaultMat .mat-stepper-vertical, .defaultMat .mat-stepper-horizontal {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-step-label {\\n font-size: 14px;\\n font-weight: 600;\\n}\\n\\n.defaultMat .mat-step-sub-label-error {\\n font-weight: normal;\\n}\\n\\n.defaultMat .mat-step-label-error {\\n font-size: 14px;\\n}\\n\\n.defaultMat .mat-step-label-selected {\\n font-size: 14px;\\n font-weight: 600;\\n}\\n\\n.defaultMat .mat-tab-group {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-tab-label, .defaultMat .mat-tab-link {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 10px;\\n font-weight: 800;\\n}\\n\\n.defaultMat .mat-toolbar,\\n.defaultMat .mat-toolbar h1,\\n.defaultMat .mat-toolbar h2,\\n.defaultMat .mat-toolbar h3,\\n.defaultMat .mat-toolbar h4,\\n.defaultMat .mat-toolbar h5,\\n.defaultMat .mat-toolbar h6 {\\n font: 600 20px/32px \\\"Helvetica Neue\\\", sans-serif;\\n margin: 0;\\n}\\n\\n.defaultMat .mat-tooltip {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 10px;\\n padding-top: 6px;\\n padding-bottom: 6px;\\n}\\n\\n.defaultMat .mat-tooltip-handset {\\n font-size: 14px;\\n padding-top: 8px;\\n padding-bottom: 8px;\\n}\\n\\n.defaultMat .mat-list-item {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-list-option {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-list-base .mat-list-item {\\n font-size: 16px;\\n}\\n\\n.defaultMat .mat-list-base .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n\\n.defaultMat .mat-list-base .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n\\n.defaultMat .mat-list-base .mat-list-option {\\n font-size: 16px;\\n}\\n\\n.defaultMat .mat-list-base .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n\\n.defaultMat .mat-list-base .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 14px;\\n}\\n\\n.defaultMat .mat-list-base .mat-subheader {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n font-weight: 600;\\n}\\n\\n.defaultMat .mat-list-base[dense] .mat-list-item {\\n font-size: 12px;\\n}\\n\\n.defaultMat .mat-list-base[dense] .mat-list-item .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n\\n.defaultMat .mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n\\n.defaultMat .mat-list-base[dense] .mat-list-option {\\n font-size: 12px;\\n}\\n\\n.defaultMat .mat-list-base[dense] .mat-list-option .mat-line {\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: block;\\n box-sizing: border-box;\\n}\\n\\n.defaultMat .mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2) {\\n font-size: 12px;\\n}\\n\\n.defaultMat .mat-list-base[dense] .mat-subheader {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 12px;\\n font-weight: 600;\\n}\\n\\n.defaultMat .mat-option {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 16px;\\n}\\n\\n.defaultMat .mat-optgroup-label {\\n font: 600 14px/24px \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-simple-snackbar {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n font-size: 14px;\\n}\\n\\n.defaultMat .mat-simple-snackbar-action {\\n line-height: 1;\\n font-family: inherit;\\n font-size: inherit;\\n font-weight: 800;\\n}\\n\\n.defaultMat .mat-tree {\\n font-family: \\\"Helvetica Neue\\\", sans-serif;\\n}\\n\\n.defaultMat .mat-tree-node,\\n.defaultMat .mat-nested-tree-node {\\n font-weight: 600;\\n font-size: 14px;\\n}\\n\\n.defaultMat main {\\n background-color: #F0F0F0;\\n}\\n\\n.defaultMat .menu {\\n /*background-color: $background;\\n text-align: center;*/\\n color: black;\\n display: -ms-flexbox;\\n display: flex;\\n}\\n\\n.defaultMat a, .defaultMat a:hover, .defaultMat a:hover span {\\n text-decoration: none;\\n outline: none;\\n}\\n\\n.defaultMat .mat-raised-button:not([class*=mat-elevation-z]),\\n.defaultMat .mat-button,\\n.defaultMat .mat-fab:not([class*=mat-elevation-z]),\\n.defaultMat .mat-mini-fab:not([class*=mat-elevation-z]),\\n.defaultMat .mat-icon-button {\\n box-sizing: border-box;\\n border-width: 1px;\\n border-style: solid;\\n border-color: rgba(0, 0, 0, 0.12);\\n box-shadow: none;\\n}\\n\\n.defaultMat .mat-chip {\\n box-sizing: border-box;\\n border-width: 1px;\\n border-style: solid;\\n border-color: rgba(0, 0, 0, 0.12);\\n border-radius: 10px;\\n}\\n\\n.defaultMat .mat-raised-button.back {\\n color: white;\\n background-color: #616161;\\n}\\n\\n.defaultMat .mat-card {\\n margin: 10px 10px 0 10px;\\n}\\n\\n.defaultMat .mat-checkbox-layout .mat-checkbox-label {\\n line-height: 40px;\\n}\\n\\n.defaultMat .mat-list .mat-list-item .mat-list-text h4.mat-line {\\n font-weight: 800;\\n}\\n\\n.defaultMat .mat-list .mat-list-item .mat-list-text p.mat-line {\\n color: #82b1ff;\\n}\\n\\n.defaultMat .mat-card:not([class*=mat-elevation-z]) {\\n box-sizing: border-box;\\n -ms-flex: 1;\\n flex: 1;\\n border-width: 1px;\\n border-style: solid;\\n border-color: rgba(0, 0, 0, 0.12);\\n box-shadow: none;\\n}\\n\\n.defaultMat .mat-toolbar {\\n background-color: white;\\n border-width: 1px;\\n border-style: solid;\\n border-color: rgba(0, 0, 0, 0.12);\\n box-shadow: none;\\n}\\n\\n.defaultMat .mat-card.mat-card-accent {\\n color: rgba(0, 0, 0, 0.87);\\n}\\n\\n.defaultMat .mat-card.mat-card-warn {\\n color: white;\\n}\\n\\n.defaultMat .white-icon {\\n color: white;\\n filter: brightness(100);\\n}\\n\\n.green-icon {\\n color: green;\\n}\\n\\n.Start, .PrimaryIP {\\n color: #64b5f6;\\n}\\n\\n.Stop, .SecondaryIP {\\n color: #f44336;\\n}\\n\\n.IdleOrDisconn {\\n background-color: grey;\\n}\\n\\n.Connected {\\n background-color: yellow;\\n}\\n\\n.IncomingOrAnswering {\\n background-color: blueviolet;\\n}\\n\\n.otherCallStats {\\n background-color: orange;\\n}\\n\\n.footer {\\n position: fixed;\\n left: 0;\\n bottom: 0;\\n width: 100%;\\n background-color: red;\\n color: white;\\n text-align: center;\\n}\\n\\n/*.checkboxsize .defaultMat .mat-checkbox-inner-container {\\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n::ng-deep .mat-checkbox .mat-checkbox-frame {\\n border-color: violet;\\n top: 10px;\\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n\\n::ng-deep .mat-checkbox-checked .mat-checkbox-background,\\n::ng-deep .mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: blue !important;\\n top: 10px;\\n width: 20px;\\n height: 20px;\\n}*/\\n\\n.blink {\\n animation: blink 2s steps(5, start) infinite;\\n -webkit-animation: blink 1s steps(5, start) infinite;\\n}\\n\\n@keyframes blink {\\n to {\\n visibility: hidden;\\n }\\n}\\n\\n@-webkit-keyframes blink {\\n to {\\n visibility: hidden;\\n }\\n}\\n\\n.click {\\n cursor: pointer;\\n}\\n\\na.disabled {\\n cursor: not-allowed;\\n pointer-events: none;\\n text-decoration: none;\\n}\\n\\n.flex-container {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-wrap: wrap;\\n flex-wrap: wrap;\\n}\\n\\n.showCompleted {\\n background-color: red;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc3RhdGlzdGljcy9zY2hlZHVsZXItc3RhdHVzL0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9zcmNcXGFwcFxcc3RhdGlzdGljc1xcc2NoZWR1bGVyLXN0YXR1c1xcc2NoZWR1bGVyLXN0YXR1cy5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvc3RhdGlzdGljcy9zY2hlZHVsZXItc3RhdHVzL3NjaGVkdWxlci1zdGF0dXMuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL3N0YXRpc3RpY3Mvc2NoZWR1bGVyLXN0YXR1cy9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvc3JjXFx0aGVtZXNcXHRoZW1lLnNjc3MiLCJzcmMvYXBwL3N0YXRpc3RpY3Mvc2NoZWR1bGVyLXN0YXR1cy9EOlxcU3Jjd2ViXFxWUzIwMTcgUHJvamVjdHNcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXdlcl9BbmdNYXRcXFdlYnZpZXcvbm9kZV9tb2R1bGVzXFxAYW5ndWxhclxcbWF0ZXJpYWxcXF90aGVtaW5nLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSw0QkFBQTtBQ0NGOztBREdBO0VBQ0UsYUFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtBQ0FGOztBREdBOztFQUVFLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsMkJBQUE7RUFDQSxtQkFBQTtFQUNBLGVBQUE7RUFDQSxrREFBQTtFQUNBLCtCQUFBO0VBQ0EsZ0NBQUE7QUNBRjs7QURHQTs7RUFFRSwyQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZUFBQTtFQUNBLGtEQUFBO0VBQ0EsK0JBQUE7RUFDQSxnQ0FBQTtBQ0FGOztBREdBO0VBQ0UsV0FBQTtBQ0FGOztBREdBO0VBQ0UsbUJBQUE7QUNBRjs7QURHQTtFQUNFLGdC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Sjs7QUUvTE07RUFDRSwrQkFBQTtBRmlNUjs7QUU1TEU7O0VBRUUsWUFBQTtBRjhMSjs7QUV2TEk7Ozs7RUFDRSxxQ0FBQTtBRjRMTjs7QUVwS0U7RUFDRSxtQkFBQTtBRnNLSjs7QUVuS0U7O0VBRUUsK0JBQUE7QUZxS0o7O0FFbEtFOztFQUVFLDJCQUFBO0VBQ0EsNkJBQUE7QUZvS0o7O0FFaktFOztFQUVFLDJCQUFBO0FGbUtKOztBRS9KSTs7OztFQUlFLHNDQUFBO0FGaUtOOztBRXpJRTtFQUNFLGFBQUE7QUYySUo7O0FFeElFO0VBQ0UseUJBQUE7QUYwSUo7O0FFdklFO0VBQ0UseUJBQUE7QUZ5SUo7O0FFcklJO0VBQ0UsYUFBQTtBRnVJTjs7QUVwSUk7RUFDRSx5QkFBQTtBRnNJTjs7QUVuSUk7RUFDRSx5QkFBQTtBRnFJTjs7QUVoSUk7RUFDRSxhQUFBO0FGa0lOOztBRS9ISTtFQUNFLHlCQUFBO0FGaUlOOztBRTlISTtFQUNFLHlCQUFBO0FGZ0lOOztBRTlHSTtFQUNFLGVBQUE7QUZnSE47O0FFN0dJO0VBQ0UsZUFBQTtBRitHTjs7QUU1R0k7RUFDRSxlQUFBO0FGOEdOOztBRS9FRTtFQUNFLHNDQUFBO0FGaUZKOztBRXJHRTtFQUNFLHFCQUFBO0FGdUdKOztBRXBHRTs7RUFJRSx5QkFBQTtBRm9HSjs7QUU1R0U7RUFDRSxxQkFBQTtBRjhHSjs7QUUzR0U7O0VBSUUseUJBQUE7QUYyR0o7O0FFbkhFO0VBQ0UscUJBQUE7QUZxSEo7O0FFbEhFOztFQUlFLHlCQUFBO0FGa0hKOztBRWxGTTs7RUFFRSxzQ0FBQTtBRm9GUjs7QUVqRk07O0VBRUUsMENBQUE7QUZtRlI7O0FFaEZNO0VBQ0UsK0JBQUE7QUZrRlI7O0FFNUVJO0VBQ0UsdUJBQUE7QUY4RU47O0FFckRFO0VBQ0UsWUFBQTtBRnVESjs7QUVwREU7RUFDRSwrQkFBQTtBRnNESjs7QUVuREU7RUFDRSwrQkFBQTtBRnFESjs7QUVsREU7RUFDRSwrQkFBQTtBRm9ESjs7QUVqREU7RUFDRSxtQkFBQTtBRm1ESjs7QUVuOEZFO0VBbkJBLDBI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aUNBQUE7RUFDQSxnQkFBQTtBRCtpTEo7O0FDNWlMRTtFQUNFLHVCQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLGlDQUFBO0VBQ0EsZ0JBQUE7QUQ4aUxKOztBQzNpTEU7RUFFRSwwQkNpVmdCO0FGMnRLcEI7O0FDemlMRTtFQUVFLFlDaVZpQjtBRnl0S3JCOztBQ3RpTEU7RUFDRSxZQUFBO0VBQ0EsdUJBQUE7QUR3aUxKOztBRG5vTEE7RUFDRSxZQUFBO0FDc29MRjs7QURub0xBO0VBQ0UsY0FBQTtBQ3NvTEY7O0FEbm9MQTtFQUNFLGNBQUE7QUNzb0xGOztBRG5vTEE7RUFDRSxzQkFBQTtBQ3NvTEY7O0FEbm9MQTtFQUNFLHdCQUFBO0FDc29MRjs7QURub0xBO0VBQ0UsNEJBQUE7QUNzb0xGOztBRG5vTEE7RUFDRSx3QkFBQTtBQ3NvTEY7O0FEbm9MQTtFQUNFLGVBQUE7RUFDQSxPQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxxQkFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtBQ3NvTEY7O0FEbm9MQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBQUE7O0FBd0JBO0VBQ0UsNENBQUE7RUFDQSxvREFBQTtBQ29vTEY7O0FEam9MQTtFQUNFO0lBQ0Usa0JBQUE7RUNvb0xGO0FBQ0Y7O0FEam9MQTtFQUNFO0lBQ0Usa0JBQUE7RUNtb0xGO0FBQ0Y7O0FEL25MQTtFQUNFLGVBQUE7QUNpb0xGOztBRC9uTEE7RUFDRSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0EscUJBQUE7QUNrb0xGOztBRDluTEE7RUFDRSxvQkFBQTtFQUFBLGFBQUE7RUFDQSxtQkFBQTtNQUFBLGVBQUE7QUNpb0xGOztBRDluTEE7RUFDRSxxQkFBQTtBQ2lvTEYiLCJmaWxlIjoic3JjL2FwcC9zdGF0aXN0aWNzL3NjaGVkdWxlci1zdGF0dXMvc2NoZWR1bGVyLXN0YXR1cy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5vdXRlclRhYmxlIHtcclxuICAvKndpZHRoOiAyMDAwcHggIWltcG9ydGFudDsqL1xyXG59XHJcblxyXG5cclxuLmRpdkZsb3cge1xyXG4gIGhlaWdodDogNzYwcHg7XHJcbiAgbWF4LWhlaWdodDogODAwcHg7XHJcbiAgb3ZlcmZsb3c6IGF1dG87XHJcbn1cclxuXHJcbi5vdXRlclRhYmxlIHRoLFxyXG4uaW5uZXJUYWJsZSB0aCB7XHJcbiAgYmFja2dyb3VuZDogIzE5NzZEMjtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xyXG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjNmM2YzY7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNmM2YzY7XHJcbn1cclxuXHJcbi5vdXRlclRhYmxlIHRkLFxyXG4uaW5uZXJUYWJsZSB0ZCB7XHJcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xyXG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjNmM2YzY7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNmM2YzY7IFxyXG59XHJcblxyXG4uaW5uZXJUYWJsZSB7XHJcbiAgd2lkdGg6IDEwMCU7IFxyXG59XHJcblxyXG4uaW5uZXJUYWJsZSB0cjpudGgtY2hpbGQoZXZlbikge1xyXG4gIGJhY2tncm91bmQ6ICNDOURGRjQ7XHJcbn1cclxuXHJcbi5pbm5lclRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHtcclxuICBiYWNrZ3JvdW5kOiAjRkZGO1xyXG59XHJcblxyXG5cclxuXHJcbnRyLmV4YW1wbGUtZGV0YWlsLXJvdyB7XHJcbiAgaGVpZ2h0OiAwO1xyXG59XHJcblxyXG50ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1leHBhbmRlZC1yb3cpOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiAjNzc3O1xyXG59XHJcblxyXG50ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1leHBhbmRlZC1yb3cpOmFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZDogI2VmZWZlZjtcclxufVxyXG5cclxuXHJcblxyXG4uZXhhbXBsZS1lbGVtZW50LXJvdyB0ZCB7XHJcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcclxufVxyXG5cclxuLmV4YW1wbGUtZWxlbWVudC1kZXRhaWwge1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5pbm5lci10YWJsZSB7XHJcbiAgd2lkdGg6IDExMDBweDtcclxufVxyXG5cclxuLmlubmVyLXRhYmxlIG1hdC1mb3JtLWZpZWxkIHtcclxuICBtYXJnaW4tdG9wOiAxNXB4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ub3V0ZXJUYWJsZSBtYXQtZm9ybS1maWVsZCB7XHJcbiAgbWFyZ2luLXRvcDogMTVweDtcclxuICB3aWR0aDogNzAlO1xyXG59XHJcblxyXG4uZGl2SGVhcmRlciB7XHJcbiAgbWFyZ2luLWxlZnQ6IDIwMHB4O1xyXG4gIGZvbnQtc2l6ZTogbGFyZ2U7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4uaGlnaGxpZ2h0IHtcclxuICBjb2xvcjogYmx1ZXZpb2xldDtcclxufVxyXG5cclxuQGltcG9ydCAnLi4vLi4vLi4vdGhlbWVzL3RoZW1lLnNjc3MnO1xyXG4kcHJpbWFyeTogbWFwLWdldCgkY3VzdG9tLXRoZW1lLCBwcmltYXJ5KTtcclxuJHdhcm46IG1hcC1nZXQoJGN1c3RvbS10aGVtZSwgd2Fybik7XHJcbiRhY2NlbnQ6IG1hcC1nZXQoJGN1c3RvbS10aGVtZSwgYWNjZW50KTtcclxuXHJcbi5ncmVlbi1pY29uIHtcclxuICBjb2xvcjogZ3JlZW47XHJcbn1cclxuXHJcbi5TdGFydCwgLlByaW1hcnlJUCB7XHJcbiAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XHJcbn1cclxuXHJcbi5TdG9wLCAuU2Vjb25kYXJ5SVAge1xyXG4gIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4pO1xyXG59XHJcblxyXG4uSWRsZU9yRGlzY29ubiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JleTtcclxufVxyXG5cclxuLkNvbm5lY3RlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xyXG59XHJcblxyXG4uSW5jb21pbmdPckFuc3dlcmluZyB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZXZpb2xldDtcclxufVxyXG5cclxuLm90aGVyQ2FsbFN0YXRzIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7XHJcbn1cclxuXHJcbi5mb290ZXIge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBsZWZ0OiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLyouY2hlY2tib3hzaXplIC5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyIHtcclxuICB3aWR0aDogMjBweDtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbn1cclxuXHJcblxyXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LWZyYW1lIHtcclxuICBib3JkZXItY29sb3I6IHZpb2xldDtcclxuICB0b3A6IDEwcHg7XHJcbiAgd2lkdGg6IDIwcHg7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG59XHJcblxyXG5cclxuXHJcbjo6bmctZGVlcCAubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLFxyXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZSAhaW1wb3J0YW50O1xyXG4gIHRvcDogMTBweDtcclxuICB3aWR0aDogMjBweDtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbn0qL1xyXG5cclxuXHJcbi5ibGluayB7XHJcbiAgYW5pbWF0aW9uOiBibGluayAycyBzdGVwcyg1LCBzdGFydCkgaW5maW5pdGU7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGJsaW5rIDFzIHN0ZXBzKDUsIHN0YXJ0KSBpbmZpbml0ZTtcclxufVxyXG5cclxuQGtleWZyYW1lcyBibGluayB7XHJcbiAgdG8ge1xyXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gIH1cclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGJsaW5rIHtcclxuICB0byB7XHJcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLmNsaWNrIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuYS5kaXNhYmxlZCB7XHJcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbn1cclxuXHJcblxyXG4uZmxleC1jb250YWluZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG59XHJcblxyXG4uc2hvd0NvbXBsZXRlZHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOnJlZDtcclxufVxyXG4iLCIub3V0ZXJUYWJsZSB7XG4gIC8qd2lkdGg6IDIwMDBweCAhaW1wb3J0YW50OyovXG59XG5cbi5kaXZGbG93IHtcbiAgaGVpZ2h0OiA3NjBweDtcbiAgbWF4LWhlaWdodDogODAwcHg7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4ub3V0ZXJUYWJsZSB0aCxcbi5pbm5lclRhYmxlIHRoIHtcbiAgYmFja2dyb3VuZDogIzE5NzZEMjtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYzZjNmM2O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M2YzZjNjtcbn1cblxuLm91dGVyVGFibGUgdGQsXG4uaW5uZXJUYWJsZSB0ZCB7XG4gIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2M2YzZjNjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNmM2YzY7XG59XG5cbi5pbm5lclRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5pbm5lclRhYmxlIHRyOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQ6ICNDOURGRjQ7XG59XG5cbi5pbm5lclRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZDogI0ZGRjtcbn1cblxudHIuZXhhbXBsZS1kZXRhaWwtcm93IHtcbiAgaGVpZ2h0OiAwO1xufVxuXG50ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1leHBhbmRlZC1yb3cpOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzc3Nztcbn1cblxudHIuZXhhbXBsZS1lbGVtZW50LXJvdzpub3QoLmV4YW1wbGUtZXhwYW5kZWQtcm93KTphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjZWZlZmVmO1xufVxuXG4uZXhhbXBsZS1lbGVtZW50LXJvdyB0ZCB7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG59XG5cbi5leGFtcGxlLWVsZW1lbnQtZGV0YWlsIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmlubmVyLXRhYmxlIHtcbiAgd2lkdGg6IDExMDBweDtcbn1cblxuLmlubmVyLXRhYmxlIG1hdC1mb3JtLWZpZWxkIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5vdXRlclRhYmxlIG1hdC1mb3JtLWZpZWxkIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbiAgd2lkdGg6IDcwJTtcbn1cblxuLmRpdkhlYXJkZXIge1xuICBtYXJnaW4tbGVmdDogMjAwcHg7XG4gIGZvbnQtc2l6ZTogbGFyZ2U7XG59XG5cbi5oaWdobGlnaHQge1xuICBjb2xvcjogYmx1ZXZpb2xldDtcbn1cblxuLypodHRwczogLy9zdGFja2JsaXR6LmNvbS9lZGl0L2FuZ3VsYXItbWF0ZXJpYWwtdGhlbWUtc2VjcmV0cz9lbWJlZD0xJmZpbGU9c3JjJTJGdGhlbWUuc2NzcyZzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1PcGVuK1NhbnM6NDAwLDMwMCwzMDBpdGFsaWMsNDAwaXRhbGljLDYwMCw2MDBpdGFsaWMsNzAwLDcwMGl0YWxpYyw4MDAsODAwaXRhbGljJnN1YnNldD1sYXRpbi1leHQnKTtcbkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvOjMwMCw0MDAsNTAwLDcwMCw0MDBpdGFsaWMmYW1wO3N1YnNldD1sYXRpbi1leHQnKTsqL1xuLypAaW1wb3J0ICcuLi9jc3MvR29vZ2xlRm9udHNPcGVuU2Fucy5jc3MnO1xuQGltcG9ydCAnLi4vY3NzL0dvb2dsZUZvbnRzUm9ib3RvLmNzcyc7Ki9cbi8qIFRoZW1lIGZvciB0aGUgcmlwcGxlIGVsZW1lbnRzLiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBtYXRlcmlhbC9uby1wcmVmaXhlcyAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtYmFkZ2Utc21hbGwgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgZm9udC1zaXplOiA5cHg7XG59XG5cbi5tYXQtYmFkZ2UtbGFyZ2UgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuXG4ubWF0LWgxLCAubWF0LWhlYWRsaW5lLCAubWF0LXR5cG9ncmFwaHkgaDEge1xuICBmb250OiA0MDAgMjRweC8zMnB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxNnB4O1xufVxuXG4ubWF0LWgyLCAubWF0LXRpdGxlLCAubWF0LXR5cG9ncmFwaHkgaDIge1xuICBmb250OiA1MDAgMjBweC8zMnB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxNnB4O1xufVxuXG4ubWF0LWgzLCAubWF0LXN1YmhlYWRpbmctMiwgLm1hdC10eXBvZ3JhcGh5IGgzIHtcbiAgZm9udDogNDAwIDE2cHgvMjhweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbn1cblxuLm1hdC1oNCwgLm1hdC1zdWJoZWFkaW5nLTEsIC5tYXQtdHlwb2dyYXBoeSBoNCB7XG4gIGZvbnQ6IDQwMCAxNXB4LzI0cHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG5cbi5tYXQtaDUsIC5tYXQtdHlwb2dyYXBoeSBoNSB7XG4gIGZvbnQ6IDQwMCBjYWxjKDE0cHggKiAwLjgzKS8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCAxMnB4O1xufVxuXG4ubWF0LWg2LCAubWF0LXR5cG9ncmFwaHkgaDYge1xuICBmb250OiA0MDAgY2FsYygxNHB4ICogMC42NykvMjBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTJweDtcbn1cblxuLm1hdC1ib2R5LXN0cm9uZywgLm1hdC1ib2R5LTIge1xuICBmb250OiA1MDAgMTRweC8yNHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LWJvZHksIC5tYXQtYm9keS0xLCAubWF0LXR5cG9ncmFwaHkge1xuICBmb250OiA0MDAgMTRweC8yMHB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLm1hdC1ib2R5IHAsIC5tYXQtYm9keS0xIHAsIC5tYXQtdHlwb2dyYXBoeSBwIHtcbiAgbWFyZ2luOiAwIDAgMTJweDtcbn1cblxuLm1hdC1zbWFsbCwgLm1hdC1jYXB0aW9uIHtcbiAgZm9udDogNDAwIDEycHgvMjBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1kaXNwbGF5LTQsIC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktNCB7XG4gIGZvbnQ6IDMwMCAxMTJweC8xMTJweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjA1ZW07XG4gIG1hcmdpbjogMCAwIDU2cHg7XG59XG5cbi5tYXQtZGlzcGxheS0zLCAubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTMge1xuICBmb250OiA0MDAgNTZweC81NnB4IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgbWFyZ2luOiAwIDAgNjRweDtcbn1cblxuLm1hdC1kaXNwbGF5LTIsIC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktMiB7XG4gIGZvbnQ6IDQwMCA0NXB4LzQ4cHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMDVlbTtcbiAgbWFyZ2luOiAwIDAgNjRweDtcbn1cblxuLm1hdC1kaXNwbGF5LTEsIC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktMSB7XG4gIGZvbnQ6IDQwMCAzNHB4LzQwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDY0cHg7XG59XG5cbi5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gIGZvbnQ6IDQwMCAxNHB4LzIwcHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtYnV0dG9uLCAubWF0LXJhaXNlZC1idXR0b24sIC5tYXQtaWNvbi1idXR0b24sIC5tYXQtc3Ryb2tlZC1idXR0b24sXG4ubWF0LWZsYXQtYnV0dG9uLCAubWF0LWZhYiwgLm1hdC1taW5pLWZhYiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LWJ1dHRvbi10b2dnbGUge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtY2FyZCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1jYXJkLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LWNhcmQtaGVhZGVyIC5tYXQtY2FyZC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cblxuLm1hdC1jYXJkLXN1YnRpdGxlLFxuLm1hdC1jYXJkLWNvbnRlbnQge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5tYXQtY2hlY2tib3gge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtY2hlY2tib3gtbGF5b3V0IC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICBsaW5lLWhlaWdodDogMjRweDtcbn1cblxuLm1hdC1jaGlwIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLm1hdC1jaGlwIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uLFxuLm1hdC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb24ge1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5tYXQtdGFibGUge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtaGVhZGVyLWNlbGwge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtY2VsbCwgLm1hdC1mb290ZXItY2VsbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm1hdC1jYWxlbmRhciB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1jYWxlbmRhci1ib2R5IHtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwsXG4ubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b24ge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyIHRoIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4ubWF0LWRpYWxvZy10aXRsZSB7XG4gIGZvbnQ6IDUwMCAyMHB4LzMycHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4ubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50IHtcbiAgZm9udDogNDAwIDE0cHgvMjBweCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1mb3JtLWZpZWxkIHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4xMjU7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMS4zNDM3NWVtO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbixcbi5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uIHtcbiAgZm9udC1zaXplOiAxNTAlO1xuICBsaW5lLWhlaWdodDogMS4xMjU7XG59XG4ubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24sXG4ubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b24ge1xuICBoZWlnaHQ6IDEuNWVtO1xuICB3aWR0aDogMS41ZW07XG59XG4ubWF0LWZvcm0tZmllbGQtcHJlZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29uLFxuLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24tYnV0dG9uIC5tYXQtaWNvbiB7XG4gIGhlaWdodDogMS4xMjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1O1xufVxuXG4ubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBwYWRkaW5nOiAwLjVlbSAwO1xuICBib3JkZXItdG9wOiAwLjg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMzQzNzVlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzMzMzMzMyU7XG59XG4ubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4zNDM3NGVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNDMzMzMzJTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIge1xuICB0b3A6IC0wLjg0Mzc1ZW07XG4gIHBhZGRpbmctdG9wOiAwLjg0Mzc1ZW07XG59XG5cbi5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMS4zNDM3NWVtO1xufVxuXG4ubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYm90dG9tOiAxLjM0Mzc1ZW07XG59XG5cbi5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBtYXJnaW4tdG9wOiAwLjY2NjY2NjY2NjdlbTtcbiAgdG9wOiBjYWxjKDEwMCUgLSAxLjc5MTY2NjY2NjdlbSk7XG59XG5cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjI1ZW07XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgcGFkZGluZzogMC40Mzc1ZW0gMDtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzMzMzMzMyU7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwMXB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNGVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNDMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTI1ZW0pIHNjYWxlKDAuNzUpIHBlcnNwZWN0aXZlKDEwMHB4KSB0cmFuc2xhdGVaKDAuMDAxMDJweCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjNlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzUzMzMzMyU7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAxLjI4MTI1ZW07XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJvdHRvbTogMS4yNWVtO1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gIG1hcmdpbi10b3A6IDAuNTQxNjY2NjY2N2VtO1xuICB0b3A6IGNhbGMoMTAwJSAtIDEuNjY2NjY2NjY2N2VtKTtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTIyZW0pIHNjYWxlKDAuNzUpO1xuICB9XG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTIxZW0pIHNjYWxlKDAuNzUpO1xuICB9XG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMmVtKSBzY2FsZSgwLjc1KTtcbiAgfVxufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBwYWRkaW5nOiAwLjI1ZW0gMCAwLjc1ZW0gMDtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAxLjA5Mzc1ZW07XG4gIG1hcmdpbi10b3A6IC0wLjVlbTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC41OTM3NWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzMzMzMzMzJTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC41OTM3NGVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNDMzMzMzJTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBwYWRkaW5nOiAxZW0gMCAxZW0gMDtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdG9wOiAxLjg0Mzc1ZW07XG4gIG1hcmdpbi10b3A6IC0wLjI1ZW07XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuNTkzNzVlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzMzMzMzMyU7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuNTkzNzRlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzQzMzMzMyU7XG59XG5cbi5tYXQtZ3JpZC10aWxlLWhlYWRlcixcbi5tYXQtZ3JpZC10aWxlLWZvb3RlciB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5tYXQtZ3JpZC10aWxlLWhlYWRlciAubWF0LWxpbmUsXG4ubWF0LWdyaWQtdGlsZS1mb290ZXIgLm1hdC1saW5lIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLm1hdC1ncmlkLXRpbGUtaGVhZGVyIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSxcbi5tYXQtZ3JpZC10aWxlLWZvb3RlciAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMikge1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbmlucHV0Lm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgbWFyZ2luLXRvcDogLTAuMDYyNWVtO1xufVxuXG4ubWF0LW1lbnUtaXRlbSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4ubWF0LXBhZ2luYXRvcixcbi5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXNlbGVjdCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIGhlaWdodDogMS4xMjVlbTtcbn1cblxuLm1hdC1zbGlkZS10b2dnbGUtY29udGVudCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LXN0ZXBwZXItdmVydGljYWwsIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuXG4ubWF0LXN0ZXAtbGFiZWwge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3Ige1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4ubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC10YWItZ3JvdXAge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1saW5rIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtdG9vbGJhcixcbi5tYXQtdG9vbGJhciBoMSxcbi5tYXQtdG9vbGJhciBoMixcbi5tYXQtdG9vbGJhciBoMyxcbi5tYXQtdG9vbGJhciBoNCxcbi5tYXQtdG9vbGJhciBoNSxcbi5tYXQtdG9vbGJhciBoNiB7XG4gIGZvbnQ6IDUwMCAyMHB4LzMycHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMDtcbn1cblxuLm1hdC10b29sdGlwIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEwcHg7XG4gIHBhZGRpbmctdG9wOiA2cHg7XG4gIHBhZGRpbmctYm90dG9tOiA2cHg7XG59XG5cbi5tYXQtdG9vbHRpcC1oYW5kc2V0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwYWRkaW5nLXRvcDogOHB4O1xuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xufVxuXG4ubWF0LWxpc3QtaXRlbSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1saXN0LW9wdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0ge1xuICBmb250LXNpemU6IDE2cHg7XG59XG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMikge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiAubWF0LWxpbmUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5tYXQtbGlzdC1iYXNlIC5tYXQtc3ViaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1vcHRpb24ge1xuICBmb250LXNpemU6IDEycHg7XG59XG4ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LW9wdGlvbiAubWF0LWxpbmUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LW9wdGlvbiAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMikge1xuICBmb250LXNpemU6IDEycHg7XG59XG4ubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1zdWJoZWFkZXIge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1hdC1vcHRpb24ge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGZvbnQ6IDUwMCAxNHB4LzI0cHggUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtc2ltcGxlLXNuYWNrYmFyIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWF0LXRyZWUge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5tYXQtdHJlZS1ub2RlLFxuLm1hdC1uZXN0ZWQtdHJlZS1ub2RlIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubWF0LXJpcHBsZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWQge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSwgdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5jZGstdmlzdWFsbHktaGlkZGVuIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIG91dGxpbmU6IDA7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4uY2RrLW92ZXJsYXktY29udGFpbmVyLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2RrLW92ZXJsYXktY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMDAwO1xufVxuLmNkay1vdmVybGF5LWNvbnRhaW5lcjplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jZGstZ2xvYmFsLW92ZXJsYXktd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTAwMDtcbn1cblxuLmNkay1vdmVybGF5LXBhbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB6LWluZGV4OiAxMDAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG59XG5cbi5jZGstb3ZlcmxheS1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAxMDAwO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtcbiAgb3BhY2l0eTogMDtcbn1cbi5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgb3BhY2l0eTogMTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5jZGstb3ZlcmxheS1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICBvcGFjaXR5OiAwLjY7XG4gIH1cbn1cblxuLmNkay1vdmVybGF5LWRhcmstYmFja2Ryb3Age1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzIpO1xufVxuXG4uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AsIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcC5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgb3BhY2l0eTogMDtcbn1cblxuLmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi13aWR0aDogMXB4O1xuICBtaW4taGVpZ2h0OiAxcHg7XG59XG5cbi5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG5Aa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IHtcbiAgLyohKi9cbn1cbkBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIHtcbiAgLyohKi9cbn1cbi5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6LXdlYmtpdC1hdXRvZmlsbCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydDtcbn1cblxuLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDpub3QoOi13ZWJraXQtYXV0b2ZpbGwpIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZDtcbn1cblxudGV4dGFyZWEuY2RrLXRleHRhcmVhLWF1dG9zaXplIHtcbiAgcmVzaXplOiBub25lO1xufVxuXG50ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nIHtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgcGFkZGluZzogMnB4IDAgIWltcG9ydGFudDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3ggIWltcG9ydGFudDtcbn1cblxuLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLm1hdC1vcHRpb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtb3B0aW9uOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksIC5tYXQtb3B0aW9uOmZvY3VzOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSk6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4ubWF0LW9wdGlvbi5tYXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LW9wdGlvbi5tYXQtb3B0aW9uLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG5cbi5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjNjRiNWY2O1xufVxuXG4ubWF0LWFjY2VudCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG5cbi5tYXQtd2FybiAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuXG4ubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtb3B0Z3JvdXAtZGlzYWJsZWQgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LXBzZXVkby1jaGVja2JveCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVyIHtcbiAgY29sb3I6ICNmYWZhZmE7XG59XG5cbi5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgY29sb3I6ICNiMGIwYjA7XG59XG5cbi5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4ubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLFxuLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiB5ZWxsb3c7XG59XG5cbi5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiAjNjRiNWY2O1xufVxuXG4ubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZDogI2Y0NDMzNjtcbn1cblxuLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLFxuLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZDogI2IwYjBiMDtcbn1cblxuLm1hdC1lbGV2YXRpb24tejAge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoxIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejIge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MyB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggM3B4IDRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXo0IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXo1IHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA1cHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXo2IHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16NyB7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggN3B4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAycHggMTZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejgge1xuICBib3gtc2hhZG93OiAwcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXo5IHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA2cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA5cHggMTJweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MTAge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDZweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEwcHggMTRweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAxOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MTEge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDdweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDExcHggMTVweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAyMHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MTIge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEycHggMTdweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MTMge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDhweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDEzcHggMTlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MTQge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDlweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE0cHggMjFweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MTUge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDlweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE1cHggMjJweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAyOHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MTYge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejE3IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTdweCAyNnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoxOCB7XG4gIGJveC1zaGFkb3c6IDBweCA5cHggMTFweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE4cHggMjhweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDdweCAzNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MTkge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDEycHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOXB4IDI5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejIwIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIwcHggMzFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCAzOHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MjEge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxM3B4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjFweCAzM3B4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDQwcHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZWxldmF0aW9uLXoyMiB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDE0cHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMnB4IDM1cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggNDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1lbGV2YXRpb24tejIzIHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTRweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIzcHggMzZweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWVsZXZhdGlvbi16MjQge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtYXBwLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC10aGVtZS1sb2FkZWQtbWFya2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1hdC1hdXRvY29tcGxldGUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LWF1dG9jb21wbGV0ZS1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcikge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJhY2tncm91bmQ6ICM2NGI1ZjY7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuXG4ubWF0LWJhZGdlLWFjY2VudCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiB5ZWxsb3c7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuXG4ubWF0LWJhZGdlLXdhcm4gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xufVxuXG4ubWF0LWJhZGdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubWF0LWJhZGdlLWhpZGRlbiAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWF0LWJhZGdlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICNiOWI5Yjk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LWJhZGdlLWNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlLWluLW91dDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjYpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5uZy1hbmltYXRlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudCxcbi5tYXQtYmFkZ2UtY29udGVudC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSB7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG5cbi5tYXQtYmFkZ2UtY29udGVudC5tYXQtYmFkZ2UtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuXG4ubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWJvdmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgdG9wOiAtOHB4O1xufVxuLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtOHB4O1xufVxuLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTE2cHg7XG59XG4ubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTE2cHg7XG59XG5bZGlyPXJ0bF0gLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xNnB4O1xufVxuLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC04cHg7XG59XG5bZGlyPXJ0bF0gLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtOHB4O1xufVxuLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC04cHg7XG59XG5bZGlyPXJ0bF0gLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC04cHg7XG59XG5cbi5tYXQtYmFkZ2UtbWVkaXVtIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xufVxuLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTExcHg7XG59XG4ubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtMTFweDtcbn1cbi5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTIycHg7XG59XG4ubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0yMnB4O1xufVxuW2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTIycHg7XG59XG4ubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xMXB4O1xufVxuW2Rpcj1ydGxdIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xMXB4O1xufVxuLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTFweDtcbn1cbltkaXI9cnRsXSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xMXB4O1xufVxuXG4ubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWJvdmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgdG9wOiAtMTRweDtcbn1cbi5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlbG93IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJvdHRvbTogLTE0cHg7XG59XG4ubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMjhweDtcbn1cbi5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMjhweDtcbn1cbltkaXI9cnRsXSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTI4cHg7XG59XG4ubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTE0cHg7XG59XG5bZGlyPXJ0bF0gLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMTRweDtcbn1cbi5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTRweDtcbn1cbltkaXI9cnRsXSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTE0cHg7XG59XG5cbi5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG5cbi5tYXQtYnV0dG9uLCAubWF0LWljb24tYnV0dG9uLCAubWF0LXN0cm9rZWQtYnV0dG9uIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLm1hdC1idXR0b24ubWF0LXByaW1hcnksIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnksIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnkge1xuICBjb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCwgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50IHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5tYXQtYnV0dG9uLm1hdC13YXJuLCAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuLCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC13YXJuIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5tYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAubWF0LWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5tYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5tYXQtc3Ryb2tlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLm1hdC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLm1hdC1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLm1hdC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLm1hdC1pY29uLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50LCAubWF0LXN0cm9rZWQtYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBvcGFjaXR5OiAwLjE7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cblxuLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQ6IGJsYWNrO1xufVxuXG4ubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1mbGF0LWJ1dHRvbiwgLm1hdC1yYWlzZWQtYnV0dG9uLCAubWF0LWZhYiwgLm1hdC1taW5pLWZhYiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSwgLm1hdC1mYWIubWF0LXByaW1hcnksIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQsIC5tYXQtZmFiLm1hdC1hY2NlbnQsIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAubWF0LWZhYi5tYXQtd2FybiwgLm1hdC1taW5pLWZhYi5tYXQtd2FybiB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLm1hdC1mbGF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAubWF0LWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5tYXQtZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5tYXQtZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAubWF0LW1pbmktZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLm1hdC1taW5pLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4ubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksIC5tYXQtZmFiLm1hdC1wcmltYXJ5LCAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQsIC5tYXQtZmFiLm1hdC1hY2NlbnQsIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4sIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiwgLm1hdC1mYWIubWF0LXdhcm4sIC5tYXQtbWluaS1mYWIubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLm1hdC1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5tYXQtZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLm1hdC1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5tYXQtZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLm1hdC1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSwgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5tYXQtbWluaS1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLm1hdC1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5tYXQtZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4ubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAubWF0LWZhYi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAubWF0LW1pbmktZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG5cbi5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC5tYXQtZmxhdC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtcmFpc2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWF0LXJhaXNlZC1idXR0b246bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTRweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAubWF0LW1pbmktZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1hdC1mYWI6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLm1hdC1taW5pLWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tYXQtZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLm1hdC1taW5pLWZhYltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLFxuLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4ubWF0LWJ1dHRvbi10b2dnbGUgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG5cbi5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuW2Rpcj1ydGxdIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtYnV0dG9uLXRvZ2dsZS12ZXJ0aWNhbCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBib3JkZXItdG9wOiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG59XG4ubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmRiZGJkO1xufVxuXG4ubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBib3JkZXI6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWNhcmQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LWNhcmQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1hdC1jYXJkLm1hdC1jYXJkLWZsYXQ6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtY2FyZC1zdWJ0aXRsZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LWNoZWNrYm94LWNoZWNrbWFyayB7XG4gIGZpbGw6ICNmYWZhZmE7XG59XG5cbi5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICBzdHJva2U6ICNmYWZhZmEgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7XG4gIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICAgIHN0cm9rZTogIzAwMCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5tYXQtY2hlY2tib3gtbWl4ZWRtYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbn1cblxuLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC1wcmltYXJ5IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC1wcmltYXJ5IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuXG4ubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLm1hdC1jaGVja2JveC1kaXNhYmxlZC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjBiMGIwO1xufVxuLm1hdC1jaGVja2JveC1kaXNhYmxlZDpub3QoLm1hdC1jaGVja2JveC1jaGVja2VkKSAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgYm9yZGVyLWNvbG9yOiAjYjBiMGIwO1xufVxuLm1hdC1jaGVja2JveC1kaXNhYmxlZCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLm1hdC1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG59XG5cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbn1cbi5tYXQtY2hlY2tib3ggLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuXG4ubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4ubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICM2NGI1ZjY7XG59XG4ubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiB5ZWxsb3c7XG59XG4ubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4ubWF0LWNoZWNrYm94OmFjdGl2ZTpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG59XG5cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgb3BhY2l0eTogMC40O1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggM3B4IDRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCkgLm1hdC1jaGlwLXJlbW92ZTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNTQ7XG59XG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjQ7XG59XG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogYmxhY2s7XG59XG5cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NGI1ZjY7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgb3BhY2l0eTogMC40O1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xuICBjb2xvcjogd2hpdGU7XG59XG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4gLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMC40O1xufVxuLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LWNoaXAtcmVtb3ZlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi5tYXQtdGFibGUge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cblxuLm1hdC10YWJsZSB0aGVhZCwgLm1hdC10YWJsZSB0Ym9keSwgLm1hdC10YWJsZSB0Zm9vdCxcbm1hdC1oZWFkZXItcm93LCBtYXQtcm93LCBtYXQtZm9vdGVyLXJvdyxcblttYXQtaGVhZGVyLXJvd10sIFttYXQtcm93XSwgW21hdC1mb290ZXItcm93XSxcbi5tYXQtdGFibGUtc3RpY2t5IHtcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcbn1cblxubWF0LXJvdywgbWF0LWhlYWRlci1yb3csIG1hdC1mb290ZXItcm93LFxudGgubWF0LWhlYWRlci1jZWxsLCB0ZC5tYXQtY2VsbCwgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1oZWFkZXItY2VsbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LWNlbGwsIC5tYXQtZm9vdGVyLWNlbGwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1jYWxlbmRhci1hcnJvdyB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtZGF0ZXBpY2tlci10b2dnbGUsXG4ubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLW5leHQtYnV0dG9uLFxuLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1wcmV2aW91cy1idXR0b24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keS1jZWxsOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQpOmhvdmVyID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSxcbi5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSxcbi5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmUgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cblxuLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NGI1ZjY7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuXG4ubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwMCwgMTgxLCAyNDYsIDAuNCk7XG59XG5cbi5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuXG4ubWF0LWRhdGVwaWNrZXItY29udGVudCB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDAsIDAuNCk7XG59XG4ubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtYWNjZW50IC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC40KTtcbn1cbi5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB3aGl0ZTtcbn1cblxuLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQtdG91Y2gge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlIHtcbiAgY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtYWNjZW50IHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlLm1hdC13YXJuIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG5cbi5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyNHB4IDM4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuXG4ubWF0LWRpdmlkZXIge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWRpdmlkZXItdmVydGljYWwge1xuICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZXhwYW5zaW9uLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWFjdGlvbi1yb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkuY2RrLWtleWJvYXJkLWZvY3VzZWQsIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKS5jZGstcHJvZ3JhbS1mb2N1c2VkLCAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuXG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKTpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gIH1cbn1cbi5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuXG4ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24sXG4ubWF0LWV4cGFuc2lvbi1pbmRpY2F0b3I6OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsXG4ubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cblxuLm1hdC1oaW50IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50IHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICBjb2xvcjogeWVsbG93O1xufVxuXG4ubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKSAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCxcbi5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cblxuLm1hdC1lcnJvciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1oaW50IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjQyKSAwJSwgcmdiYSgwLCAwLCAwLCAwLjQyKSAzMyUsIHRyYW5zcGFyZW50IDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0cHggMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC40MikgMCUsIHJnYmEoMCwgMCwgMCwgMC40MikgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAyKTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogeWVsbG93O1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZC5tYXQtd2FybiAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4ubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNik7XG59XG5cbi5tYXQtaWNvbi5tYXQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1pY29uLm1hdC1hY2NlbnQge1xuICBjb2xvcjogeWVsbG93O1xufVxuLm1hdC1pY29uLm1hdC13YXJuIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG5cbi5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1pbnB1dC1lbGVtZW50OmRpc2FibGVkLFxuLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4ubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG5cbi5tYXQtYWNjZW50IC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiB5ZWxsb3c7XG59XG5cbi5tYXQtd2FybiAubWF0LWlucHV0LWVsZW1lbnQsXG4ubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogI2Y0NDMzNjtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG5cbi5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LWxpc3QtYmFzZSAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LWxpc3QtaXRlbS1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG59XG5cbi5tYXQtbGlzdC1vcHRpb246aG92ZXIsIC5tYXQtbGlzdC1vcHRpb246Zm9jdXMsXG4ubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbTpmb2N1cyxcbi5tYXQtYWN0aW9uLWxpc3QgLm1hdC1saXN0LWl0ZW06aG92ZXIsXG4ubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cblxuLm1hdC1tZW51LXBhbmVsIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4ubWF0LW1lbnUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1tZW51LWl0ZW0ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sIC5tYXQtbWVudS1pdGVtW2Rpc2FibGVkXTo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLFxuLm1hdC1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2VyOjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LW1lbnUtaXRlbTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4ubWF0LW1lbnUtaXRlbS5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdChbZGlzYWJsZWRdKSxcbi5tYXQtbWVudS1pdGVtLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdChbZGlzYWJsZWRdKSxcbi5tYXQtbWVudS1pdGVtLWhpZ2hsaWdodGVkOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG5cbi5tYXQtcGFnaW5hdG9yIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi5tYXQtcGFnaW5hdG9yLFxuLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cblxuLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4ubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQsXG4ubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG5cbi5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjYmJkZWZiO1xufVxuXG4ubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJkZWZiO1xufVxuXG4ubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NGI1ZjY7XG59XG5cbi5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gIGZpbGw6ICNmZmZmOGQ7XG59XG4ubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmOGQ7XG59XG4ubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuXG4ubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgZmlsbDogI2ZmY2RkMjtcbn1cbi5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmNkZDI7XG59XG4ubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG5cbi5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGUsIC5tYXQtc3Bpbm5lciBjaXJjbGUge1xuICBzdHJva2U6ICM2NGI1ZjY7XG59XG4ubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LWFjY2VudCBjaXJjbGUsIC5tYXQtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSB7XG4gIHN0cm9rZTogeWVsbG93O1xufVxuLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSwgLm1hdC1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSB7XG4gIHN0cm9rZTogI2Y0NDMzNjtcbn1cblxuLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5cbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnk6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjRiNWY2O1xufVxuLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogeWVsbG93O1xufVxuLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1hY2NlbnQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudDphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4gLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4ubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm46YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4ubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tbGFiZWwtY29udGVudCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLm1hdC1yYWRpby1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuXG4ubWF0LXNlbGVjdC12YWx1ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuXG4ubWF0LXNlbGVjdC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuXG4ubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuXG4ubWF0LXNlbGVjdC1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLm1hdC1zZWxlY3QtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tYXQtc2VsZWN0LXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LWFjY2VudCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWludmFsaWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG5cbi5tYXQtZHJhd2VyLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuXG4ubWF0LWRyYXdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtZHJhd2VyLm1hdC1kcmF3ZXItcHVzaCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLm1hdC1kcmF3ZXI6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtZHJhd2VyLXNpZGUge1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLm1hdC1kcmF3ZXItc2lkZS5tYXQtZHJhd2VyLWVuZCB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuXG5bZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuW2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1kcmF3ZXItYmFja2Ryb3AubWF0LWRyYXdlci1zaG93biB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cblxuLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAwLCAwLjU0KTtcbn1cbi5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwMCwgMTgxLCAyNDYsIDAuNTQpO1xufVxuLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4ubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NCwgNjcsIDU0LCAwLjU0KTtcbn1cbi5tYXQtc2xpZGUtdG9nZ2xlLm1hdC13YXJuLm1hdC1jaGVja2VkIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuXG4ubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG59XG5cbi5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG5cbi5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuXG4ubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYixcbi5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LXByaW1hcnkgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuXG4ubWF0LWFjY2VudCAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWIsXG4ubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4ubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWIsXG4ubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAwLCAwLjIpO1xufVxuXG4ubWF0LXNsaWRlcjpob3ZlciAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLFxuLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLFxuLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5tYXQtc2xpZGVyLWRpc2FibGVkOmhvdmVyIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuXG4ubWF0LXNsaWRlci1taW4tdmFsdWUgLm1hdC1zbGlkZXItZm9jdXMtcmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIC5tYXQtc2xpZGVyLXRodW1iLFxuLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLFxuLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4ubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyk6aG92ZXIgLm1hdC1zbGlkZXItdGh1bWIsIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4ubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIsIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykuY2RrLWZvY3VzZWQubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cblxuLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG59XG5cbi5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGlja3Mge1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDAuMDAwMWRlZywgcmdiYSgwLCAwLCAwLCAwLjcpLCByZ2JhKDAsIDAsIDAsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG59XG5cbi5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwgMCwgMCwgMC43KSwgcmdiYSgwLCAwLCAwLCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xufVxuXG4ubWF0LXN0ZXAtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLCAubWF0LXN0ZXAtaGVhZGVyLmNkay1wcm9ncmFtLWZvY3VzZWQsIC5tYXQtc3RlcC1oZWFkZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG4ubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbCxcbi5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLW9wdGlvbmFsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4ubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXNlbGVjdGVkLFxuLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0YjVmNjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtYWN0aXZlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1lcnJvciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuXG4ubWF0LXN0ZXBwZXItaG9yaXpvbnRhbCwgLm1hdC1zdGVwcGVyLXZlcnRpY2FsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbi5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4ubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmFmdGVyLFxuLm1hdC1zdGVwcGVyLWhvcml6b250YWwtbGluZSB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi5tYXQtc29ydC1oZWFkZXItYXJyb3cge1xuICBjb2xvcjogIzc1NzU3NTtcbn1cblxuLm1hdC10YWItbmF2LWJhcixcbi5tYXQtdGFiLWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItbmF2LWJhcixcbi5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuXG4ubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuXG4ubWF0LXRhYi1ncm91cFtjbGFzcyo9bWF0LWJhY2tncm91bmQtXSAubWF0LXRhYi1oZWFkZXIsXG4ubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE4NywgMjIyLCAyNTEsIDAuMyk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LWluay1iYXIsIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0YjVmNjtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1pbmstYmFyLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5Lm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDE0MSwgMC4zKTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFyLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1pbmstYmFyLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMDUsIDIxMCwgMC4zKTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtaW5rLWJhciwgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC10YWItZ3JvdXAubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2FybiAubWF0LWluay1iYXIsIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2FybiAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTg3LCAyMjIsIDI1MSwgMC4zKTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmtzLCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGlua3MsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NGI1ZjY7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmssIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAxNDEsIDAuMyk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rcywgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbCwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4ubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjA1LCAyMTAsIDAuMyk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rcywgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlciwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmtzLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4ubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cblxuLm1hdC10b29sYmFyIHtcbiAgYmFja2dyb3VuZDogd2hpdGVzbW9rZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXRvb2xiYXIubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjNjRiNWY2O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtdG9vbGJhci5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZDogeWVsbG93O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5tYXQtdG9vbGJhci5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lLFxuLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4ubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4ubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLm1hdC10b29sYmFyIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4ubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsXG4ubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtYXJyb3csXG4ubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4ubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cblxuLm1hdC10b29sdGlwIHtcbiAgYmFja2dyb3VuZDogcmdiYSg5NywgOTcsIDk3LCAwLjkpO1xufVxuXG4ubWF0LXRyZWUge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cblxuLm1hdC10cmVlLW5vZGUsXG4ubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cblxuLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgYmFja2dyb3VuZDogIzMyMzIzMjtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuXG4ubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICBjb2xvcjogeWVsbG93O1xufVxuXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtb3B0aW9uIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW9wdGlvbjpob3Zlcjpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtb3B0aW9uOmZvY3VzOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKTpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1vcHRpb24ubWF0LWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1vcHRpb24ubWF0LW9wdGlvbi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWFjY2VudCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXdhcm4gLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtb3B0Z3JvdXAtZGlzYWJsZWQgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wc2V1ZG8tY2hlY2tib3g6OmFmdGVyIHtcbiAgY29sb3I6ICMzMDMwMzA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgY29sb3I6ICM2ODY4Njg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXdhcm4gLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQ6ICM2ODY4Njg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXowIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejMge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16NCB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16NSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16NiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejcge1xuICBib3gtc2hhZG93OiAwcHggNHB4IDVweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDdweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMnB4IDE2cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXo4IHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16OSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTZweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejEwIHtcbiAgYm94LXNoYWRvdzogMHB4IDZweCA2cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMHB4IDE0cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA0cHggMThweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejExIHtcbiAgYm94LXNoYWRvdzogMHB4IDZweCA3cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMXB4IDE1cHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA0cHggMjBweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejEyIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejEzIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxM3B4IDE5cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjRweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejE0IHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA5cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNHB4IDIxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjZweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejE1IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMjhweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejE2IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoxNyB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTFweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE3cHggMjZweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MTgge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejE5IHtcbiAgYm94LXNoYWRvdzogMHB4IDlweCAxMnB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTlweCAyOXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggN3B4IDM2cHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyMCB7XG4gIGJveC1zaGFkb3c6IDBweCAxMHB4IDEzcHggLTZweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyMHB4IDMxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA4cHggMzhweCA3cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejIxIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVsZXZhdGlvbi16MjIge1xuICBib3gtc2hhZG93OiAwcHggMTBweCAxNHB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjJweCAzNXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOHB4IDQycHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZWxldmF0aW9uLXoyMyB7XG4gIGJveC1zaGFkb3c6IDBweCAxMXB4IDE0cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAyM3B4IDM2cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA5cHggNDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1lbGV2YXRpb24tejI0IHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWFwcC1iYWNrZ3JvdW5kLCAudW5pY29ybi1kYXJrLXRoZW1lLm1hdC1hcHAtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDMwMzA7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5tYXQtdGhlbWUtbG9hZGVkLW1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcik6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAjNjA3ZDhiO1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWFjY2VudCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjZmZkNzQwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS13YXJuIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1oaWRkZW4gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjNmU2ZTZlO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAyMDBtcyBlYXNlLWluLW91dDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjYpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5uZy1hbmltYXRlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1jb250ZW50Lm1hdC1iYWRnZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IG5vbmU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLThweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYmVsb3cgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgYm90dG9tOiAtOHB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTE2cHg7XG59XG5bZGlyPXJ0bF0gLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNnB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTE2cHg7XG59XG5bZGlyPXJ0bF0gLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTE2cHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtOHB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLThweDtcbn1cbltkaXI9cnRsXSAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtOHB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLW1lZGl1bSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBsaW5lLWhlaWdodDogMjJweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLTExcHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xMXB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0yMnB4O1xufVxuW2Rpcj1ydGxdIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTIycHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0yMnB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IC0xMXB4O1xufVxuW2Rpcj1ydGxdIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTExcHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTExcHg7XG59XG5bZGlyPXJ0bF0gLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IC0xMXB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hYm92ZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB0b3A6IC0xNHB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xNHB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0yOHB4O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTI4cHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTRweDtcbn1cbltkaXI9cnRsXSAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTE0cHg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTRweDtcbn1cbltkaXI9cnRsXSAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTRweDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnkge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC1hY2NlbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50IHtcbiAgY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLm1hdC13YXJuLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm4sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b25bZGlzYWJsZWRdIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgb3BhY2l0eTogMC4xO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSkge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b24sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWIge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC1wcmltYXJ5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYi5tYXQtd2FybiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiLm1hdC1wcmltYXJ5LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYi5tYXQtd2FybiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhaXNlZC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWIubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1pbmktZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Ryb2tlZC1idXR0b246bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mbGF0LWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZmFiOm5vdChbZGlzYWJsZWRdKTphY3RpdmU6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1taW5pLWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mYWJbZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWluaS1mYWJbZGlzYWJsZWRdOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogIzQyNDI0Mjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSBbZGlyPXJ0bF0gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1idXR0b24tdG9nZ2xlLXZlcnRpY2FsIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTIxMjE7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZC5tYXQtYnV0dG9uLXRvZ2dsZS1jaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0Mjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBib3JkZXI6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhcmQge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FyZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FyZC5tYXQtY2FyZC1mbGF0Om5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhcmQtc3VidGl0bGUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrIHtcbiAgZmlsbDogIzMwMzAzMDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gIHN0cm9rZTogIzMwMzAzMCAhaW1wb3J0YW50O1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYmxhY2stb24td2hpdGUpIHtcbiAgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrbWFyay1wYXRoIHtcbiAgICBzdHJva2U6ICMwMDAgIWltcG9ydGFudDtcbiAgfVxufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LW1peGVkbWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDMwMzA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHJpbWFyeSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC1wcmltYXJ5IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtY2hlY2tlZC5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2ODY4Njg7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQ6bm90KC5tYXQtY2hlY2tib3gtY2hlY2tlZCkgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIGJvcmRlci1jb2xvcjogIzY4Njg2ODtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1kaXNhYmxlZCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3gtZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3ggLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoZWNrYm94LWNoZWNrZWQ6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYxNjE2MTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCk6YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAzcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXIge1xuICBvcGFjaXR5OiAwLjU0O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjQ7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4YjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTcyMjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4gLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMC40O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNzQwO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1hY2NlbnQgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBvcGFjaXR5OiAwLjQ7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFibGUge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYmxlIHRoZWFkLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFibGUgdGJvZHksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWJsZSB0Zm9vdCxcbi51bmljb3JuLWRhcmstdGhlbWUgbWF0LWhlYWRlci1yb3csIC51bmljb3JuLWRhcmstdGhlbWUgbWF0LXJvdywgLnVuaWNvcm4tZGFyay10aGVtZSBtYXQtZm9vdGVyLXJvdyxcbi51bmljb3JuLWRhcmstdGhlbWUgW21hdC1oZWFkZXItcm93XSwgLnVuaWNvcm4tZGFyay10aGVtZSBbbWF0LXJvd10sIC51bmljb3JuLWRhcmstdGhlbWUgW21hdC1mb290ZXItcm93XSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWJsZS1zdGlja3kge1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSBtYXQtcm93LCAudW5pY29ybi1kYXJrLXRoZW1lIG1hdC1oZWFkZXItcm93LCAudW5pY29ybi1kYXJrLXRoZW1lIG1hdC1mb290ZXItcm93LFxuLnVuaWNvcm4tZGFyay10aGVtZSB0aC5tYXQtaGVhZGVyLWNlbGwsIC51bmljb3JuLWRhcmstdGhlbWUgdGQubWF0LWNlbGwsIC51bmljb3JuLWRhcmstdGhlbWUgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1oZWFkZXItY2VsbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2VsbCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvb3Rlci1jZWxsIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhbGVuZGFyLWFycm93IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItbmV4dC1idXR0b24sXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItcHJldmlvdXMtYnV0dG9uIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyLWRpdmlkZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS1jZWxsOm5vdCgubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQpOmhvdmVyID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmUgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4YjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDk2LCAxMjUsIDEzOSwgMC40KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudCB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNHB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI0MjQyO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIxNSwgNjQsIDAuNCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC13YXJuIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDg3LCAzNCwgMC40KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItY29udGVudC10b3VjaCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRpYWxvZy1jb250YWluZXIge1xuICBib3gtc2hhZG93OiAwcHggMTFweCAxNXB4IC03cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggOXB4IDQ2cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kaXZpZGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbCB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWFjdGlvbi1yb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkuY2RrLWtleWJvYXJkLWZvY3VzZWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLmNkay1wcm9ncmFtLWZvY3VzZWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbkBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCk6bm90KFthcmlhLWRpc2FibGVkPXRydWVdKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICM0MjQyNDI7XG4gIH1cbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24sXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPXRydWVdIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaGludCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50IHtcbiAgY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LXdhcm4ge1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICBjb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC1hY2NlbnQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbC5tYXQtYWNjZW50LFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWVycm9yIHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1oaW50IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAzMyUsIHRyYW5zcGFyZW50IDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0cHggMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAzMyUsIHRyYW5zcGFyZW50IDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0cHggMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi5tYXQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24ubWF0LWFjY2VudCB7XG4gIGNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24ubWF0LXdhcm4ge1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWlucHV0LWVsZW1lbnQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50OjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaW5wdXQtZWxlbWVudCBvcHRpb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pbnB1dC1lbGVtZW50IG9wdGlvbjpkaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWFjY2VudCAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1saXN0LWJhc2UgLm1hdC1zdWJoZWFkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWxpc3QtaXRlbS1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWxpc3Qtb3B0aW9uOmhvdmVyLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbGlzdC1vcHRpb246Zm9jdXMsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06aG92ZXIsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbmF2LWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYWN0aW9uLWxpc3QgLm1hdC1saXN0LWl0ZW06aG92ZXIsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYWN0aW9uLWxpc3QgLm1hdC1saXN0LWl0ZW06Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1lbnUtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1lbnUtcGFuZWw6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1tZW51LWl0ZW0ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1lbnUtaXRlbVtkaXNhYmxlZF0sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRdOjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbi1uby1jb2xvcixcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2VyOjphZnRlciB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1tZW51LWl0ZW06aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1lbnUtaXRlbS5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdChbZGlzYWJsZWRdKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1tZW51LWl0ZW0uY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KFtkaXNhYmxlZF0pLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZDpub3QoW2Rpc2FibGVkXSkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBhZ2luYXRvciB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcGFnaW5hdG9yLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHdoaXRlO1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICBib3JkZXItdG9wOiAycHggc29saWQgd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50LFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1pY29uLWJ1dHRvbltkaXNhYmxlZF0gLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgZmlsbDogI2NmZDhkYztcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NmZDhkYztcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjZmZlNTdmO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmU1N2Y7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkNzQwO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByb2dyZXNzLWJhci5tYXQtd2FybiAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgZmlsbDogI2ZmY2NiYztcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmY2NiYztcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXByb2dyZXNzLXNwaW5uZXIgY2lyY2xlLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3Bpbm5lciBjaXJjbGUge1xuICBzdHJva2U6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNwaW5uZXIubWF0LWFjY2VudCBjaXJjbGUge1xuICBzdHJva2U6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci5tYXQtd2FybiBjaXJjbGUsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSB7XG4gIHN0cm9rZTogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICBib3JkZXItY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudDphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4gLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudDpub3QoLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4ubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybjphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1yYWRpby1idXR0b24ubWF0LXJhZGlvLWRpc2FibGVkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50LFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWxhYmVsLWNvbnRlbnQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNlbGVjdC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNlbGVjdC1wYW5lbCB7XG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2VsZWN0LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2VsZWN0LXBhbmVsIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICM2MDdkOGI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtd2FybiAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjZmY1NzIyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWZvcm0tZmllbGQgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1pbnZhbGlkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZm9ybS1maWVsZCAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMwMzAzMDtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRyYXdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNDI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kcmF3ZXIubWF0LWRyYXdlci1wdXNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0Mjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1kcmF3ZXI6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMwcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZHJhd2VyLXNpZGUge1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5kIHtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIFtkaXI9cnRsXSAubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5kIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtZHJhd2VyLWJhY2tkcm9wLm1hdC1kcmF3ZXItc2hvd24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE4OSwgMTg5LCAxODksIDAuNik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDIxNSwgNjQsIDAuNTQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDc0MDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZS10b2dnbGUubWF0LXByaW1hcnkubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtcHJpbWFyeS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDk2LCAxMjUsIDEzOSwgMC41NCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC13YXJuLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCA4NywgMzQsIDAuNTQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZS10b2dnbGU6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiZGJkYmQ7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYixcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYixcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC13YXJuIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjE1LCA2NCwgMC4yKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXI6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCxcbi51bmljb3JuLWRhcmstdGhlbWUgLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1kaXNhYmxlZDpob3ZlciAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWUgLm1hdC1zbGlkZXItZm9jdXMtcmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWIsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZS5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYixcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKSAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItbWluLXZhbHVlOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKTpob3ZlciAubWF0LXNsaWRlci10aHVtYiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyk6aG92ZXIubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpLmNkay1mb2N1c2VkLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zbGlkZXItaGFzLXRpY2tzIC5tYXQtc2xpZGVyLXdyYXBwZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGlja3Mge1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDAuMDAwMWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNykgMnB4LCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXAtaGVhZGVyLmNkay1rZXlib2FyZC1mb2N1c2VkLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIuY2RrLXByb2dyYW0tZm9jdXNlZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbn1cbkBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1vcHRpb25hbCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICBjb2xvcjogI2ZmNTcyMjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwcGVyLXZlcnRpY2FsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0Mjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwcGVyLXZlcnRpY2FsLWxpbmU6OmJlZm9yZSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmJlZm9yZSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlcixcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1zdGVwcGVyLWhvcml6b250YWwtbGluZSB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtc29ydC1oZWFkZXItYXJyb3cge1xuICBjb2xvcjogI2M2YzZjNjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhcixcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1uYXYtYmFyLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItaGVhZGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWxhYmVsLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXBbY2xhc3MqPW1hdC1iYWNrZ3JvdW5kLV0gLm1hdC10YWItaGVhZGVyLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj1tYXQtYmFja2dyb3VuZC1dIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjA3LCAyMTYsIDIyMCwgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwN2Q4Yjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LWluay1iYXIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeS5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMjksIDEyNywgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LWluay1iYXIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtaW5rLWJhciwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjA0LCAxODgsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtaW5rLWJhciwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1pbmstYmFyLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2FybiAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwNywgMjE2LCAyMjAsIDAuMyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGlua3MsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rcywgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA3ZDhiO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluaywgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMjksIDEyNywgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlciwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGlua3MsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlciwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rcywgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ3NDA7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluaywgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMDQsIDE4OCwgMC4zKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rcywgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXIsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmtzLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU3MjI7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwsIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwgLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluayB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAudW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10b29sYmFyIHtcbiAgYmFja2dyb3VuZDogIzIxMjEyMTtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2xiYXIubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjNjA3ZDhiO1xuICBjb2xvcjogd2hpdGU7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdG9vbGJhci5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZDogI2ZmZDc0MDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdG9vbGJhci5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQ6ICNmZjU3MjI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1zZWxlY3QtdmFsdWUsXG4udW5pY29ybi1kYXJrLXRoZW1lIC5tYXQtdG9vbGJhciAubWF0LXNlbGVjdC1hcnJvdyxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRvb2xiYXIgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC10b29sdGlwIHtcbiAgYmFja2dyb3VuZDogcmdiYSg5NywgOTcsIDk3LCAwLjkpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRyZWUge1xuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXRyZWUtbm9kZSxcbi51bmljb3JuLWRhcmstdGhlbWUgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLnVuaWNvcm4tZGFyay10aGVtZSAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLypcbiAgaHR0cHM6IC8vc3RhY2tibGl0ei5jb20vZWRpdC9hbmd1bGFyLW1hdGVyaWFsLXRoZW1lLXNlY3JldHM/ZW1iZWQ9MSZmaWxlPXNyYyUyRnRoZW1lLnNjc3Mmc291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vZ3VpZGUvdHlwb2dyYXBoeVxuICBodHRwczovL21hdGVyaWFsLXVpLmNvbS9jdXN0b21pemF0aW9uL2NvbG9yL1xuKi9cbi5kZWZhdWx0TWF0IHtcbiAgLyoubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lciwge1xuICAgIGhlaWdodDogNDBweDtcbiAgICB3aWR0aDogNDBweDtcbiAgfSovXG4gIC8qaHR0cHM6IC8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2ODEyMDY0L2hvdy10by1zZXQtdGhlLWNvbG9yLW9mLWFuLWljb24taW4tYW5ndWxhci1tYXRlcmlhbFxuICBodHRwczogLy9jc3MtdHJpY2tzLmNvbS9zb2x2ZWQtd2l0aC1jc3MtY29sb3JpemluZy1zdmctYmFja2dyb3VuZHMvKi9cbiAgLyogTm90ZTogSWYgeW91J3JlIHVzaW5nIGFuIFNWRyBpY29uLCB5b3Ugc2hvdWxkIG1ha2UgdGhlIGNsYXNzIHRhcmdldCB0aGUgYDxzdmc+YCBlbGVtZW50ICovXG4gIC8qLndoaXRlLWljb24gc3ZnIHtcbiAgICBmaWxsOiB3aGl0ZTtcbiAgICBmaWx0ZXI6YnJpZ2h0bmVzcygxMDApO1xuICB9Ki9cbiAgLyoubWF0LW1lbnUtaXRlbSB7XG4gICAgaGVpZ2h0OjIwcHg7XG4gIH1cbiAgYnV0dG9uLm1hdC1tZW51LWl0ZW0ge1xuICAgIGhlaWdodDogMzBweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gIH0qL1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtb3B0aW9uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LW9wdGlvbjpob3Zlcjpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LW9wdGlvbjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1vcHRpb24ubWF0LWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1vcHRpb24ubWF0LW9wdGlvbi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcmltYXJ5IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWFjY2VudCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LXdhcm4gLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtb3B0Z3JvdXAtZGlzYWJsZWQgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wc2V1ZG8tY2hlY2tib3gge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHNldWRvLWNoZWNrYm94OjphZnRlciB7XG4gIGNvbG9yOiAjZmFmYWZhO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICBjb2xvcjogI2IwYjBiMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4uZGVmYXVsdE1hdCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlLFxuLmRlZmF1bHRNYXQgLm1hdC1hY2NlbnQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5kZWZhdWx0TWF0IC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbi5kZWZhdWx0TWF0IC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgYmFja2dyb3VuZDogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuLmRlZmF1bHRNYXQgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkLFxuLmRlZmF1bHRNYXQgLm1hdC1wc2V1ZG8tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZDogI2IwYjBiMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXowIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejEge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDFweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejIge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejMge1xuICBib3gtc2hhZG93OiAwcHggM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXo1IHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA1cHggOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16NiB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggNnB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMThweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXo3IHtcbiAgYm94LXNoYWRvdzogMHB4IDRweCA1cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA3cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDJweCAxNnB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejgge1xuICBib3gtc2hhZG93OiAwcHggNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16OSB7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggOXB4IDEycHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMTZweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoxMCB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggNnB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTBweCAxNHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNHB4IDE4cHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MTEge1xuICBib3gtc2hhZG93OiAwcHggNnB4IDdweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDExcHggMTVweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDRweCAyMHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejEyIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoxMyB7XG4gIGJveC1zaGFkb3c6IDBweCA3cHggOHB4IC00cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTNweCAxOXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNXB4IDI0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MTQge1xuICBib3gtc2hhZG93OiAwcHggN3B4IDlweCAtNHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE0cHggMjFweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDVweCAyNnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejE1IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCA5cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNXB4IDIycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMjhweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoxNiB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejE3IHtcbiAgYm94LXNoYWRvdzogMHB4IDhweCAxMXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMTdweCAyNnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggNnB4IDMycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWVsZXZhdGlvbi16MTgge1xuICBib3gtc2hhZG93OiAwcHggOXB4IDExcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxOHB4IDI4cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA3cHggMzRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZWxldmF0aW9uLXoxOSB7XG4gIGJveC1zaGFkb3c6IDBweCA5cHggMTJweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE5cHggMjlweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDdweCAzNnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejIwIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIwcHggMzFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCAzOHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejIxIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTNweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIxcHggMzNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MHB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejIyIHtcbiAgYm94LXNoYWRvdzogMHB4IDEwcHggMTRweCAtNnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIycHggMzVweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDhweCA0MnB4IDdweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejIzIHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTRweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDIzcHggMzZweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1lbGV2YXRpb24tejI0IHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1hcHAtYmFja2dyb3VuZCwgLmRlZmF1bHRNYXQubWF0LWFwcC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4ubWF0LXRoZW1lLWxvYWRlZC1tYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZGVmYXVsdE1hdCAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWF1dG9jb21wbGV0ZS1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtYWN0aXZlKTpub3QoOmhvdmVyKSB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcik6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAjMjE5NmYzO1xufVxuQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gIC5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgb3V0bGluZTogc29saWQgMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtYWNjZW50IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6IHllbGxvdztcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLXdhcm4gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtaGlkZGVuIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICNiOWI5Yjk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmRlZmF1bHRNYXQgLm5nLWFuaW1hdGUtZGlzYWJsZWQgLm1hdC1iYWRnZS1jb250ZW50LFxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1jb250ZW50Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtY29udGVudC5tYXQtYmFkZ2UtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1zbWFsbCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFib3ZlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHRvcDogLThweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWJlbG93IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJvdHRvbTogLThweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMTZweDtcbn1cbltkaXI9cnRsXSAuZGVmYXVsdE1hdCAubWF0LWJhZGdlLXNtYWxsLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xNnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1zbWFsbC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0xNnB4O1xufVxuW2Rpcj1ydGxdIC5kZWZhdWx0TWF0IC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMTZweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC5kZWZhdWx0TWF0IC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLThweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtOHB4O1xufVxuW2Rpcj1ydGxdIC5kZWZhdWx0TWF0IC5tYXQtYmFkZ2Utc21hbGwubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtOHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1tZWRpdW0gLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgd2lkdGg6IDIycHg7XG4gIGhlaWdodDogMjJweDtcbiAgbGluZS1oZWlnaHQ6IDIycHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYWJvdmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgdG9wOiAtMTFweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1iZWxvdyAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBib3R0b206IC0xMXB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiAtMjJweDtcbn1cbltkaXI9cnRsXSAuZGVmYXVsdE1hdCAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMjJweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogLTIycHg7XG59XG5bZGlyPXJ0bF0gLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAtMjJweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTExcHg7XG59XG5bZGlyPXJ0bF0gLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1tZWRpdW0ubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWJlZm9yZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogLTExcHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLW1lZGl1bS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYWZ0ZXIgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgcmlnaHQ6IC0xMXB4O1xufVxuW2Rpcj1ydGxdIC5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbWVkaXVtLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTExcHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWxhcmdlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYWJvdmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgdG9wOiAtMTRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWJlbG93IC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGJvdHRvbTogLTE0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTI4cHg7XG59XG5bZGlyPXJ0bF0gLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMjhweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMjhweDtcbn1cbltkaXI9cnRsXSAuZGVmYXVsdE1hdCAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTI4cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1iZWZvcmUgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgbGVmdDogLTE0cHg7XG59XG5bZGlyPXJ0bF0gLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1sYXJnZS5tYXQtYmFkZ2Utb3ZlcmxhcC5tYXQtYmFkZ2UtYmVmb3JlIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMTRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbGFyZ2UubWF0LWJhZGdlLW92ZXJsYXAubWF0LWJhZGdlLWFmdGVyIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gIHJpZ2h0OiAtMTRweDtcbn1cbltkaXI9cnRsXSAuZGVmYXVsdE1hdCAubWF0LWJhZGdlLWxhcmdlLm1hdC1iYWRnZS1vdmVybGFwLm1hdC1iYWRnZS1hZnRlciAubWF0LWJhZGdlLWNvbnRlbnQge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTE0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24sIC5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b24sIC5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b24ge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeSwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24ubWF0LWFjY2VudCwgLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbi5tYXQtYWNjZW50LCAuZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnQge1xuICBjb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24ubWF0LXdhcm4sIC5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm4sIC5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXdhcm4ge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b24ubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXksIC5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b24ubWF0LXdhcm4gLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSwgLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LCAuZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50LCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5kZWZhdWx0TWF0IC5tYXQtc3Ryb2tlZC1idXR0b24gLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIG9wYWNpdHk6IDAuMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQ6IGJsYWNrO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zdHJva2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSkge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24sIC5kZWZhdWx0TWF0IC5tYXQtZmFiLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1wcmltYXJ5LCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtcHJpbWFyeSwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQsIC5kZWZhdWx0TWF0IC5tYXQtZmFiLm1hdC1hY2NlbnQsIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtd2FybiwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuLCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtd2FybiwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYi5tYXQtd2FybiB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybltkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtd2FybltkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LXByaW1hcnlbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC1hY2NlbnRbZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC1wcmltYXJ5LCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnksIC5kZWZhdWx0TWF0IC5tYXQtZmFiLm1hdC1wcmltYXJ5LCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudCwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC1hY2NlbnQsIC5kZWZhdWx0TWF0IC5tYXQtZmFiLm1hdC1hY2NlbnQsIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm4sIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LXdhcm4sIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtZmxhdC1idXR0b24ubWF0LXdhcm5bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLm1hdC13YXJuW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtZmFiLm1hdC1wcmltYXJ5W2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtZmFiLm1hdC13YXJuW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1mYWJbZGlzYWJsZWRdW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeVtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LWFjY2VudFtkaXNhYmxlZF0sIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIubWF0LXdhcm5bZGlzYWJsZWRdLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50LCAuZGVmYXVsdE1hdCAubWF0LXJhaXNlZC1idXR0b24ubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmRlZmF1bHRNYXQgLm1hdC1mYWIubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYi5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5kZWZhdWx0TWF0IC5tYXQtZmFiLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQsIC5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAuZGVmYXVsdE1hdCAubWF0LWZhYi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50LCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuZGVmYXVsdE1hdCAubWF0LWZsYXQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA4cHggMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLCAuZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA2cHggMTBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAxOHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mYWI6bm90KFtkaXNhYmxlZF0pOmFjdGl2ZTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDdweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxMnB4IDE3cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCA1cHggMjJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZmFiW2Rpc2FibGVkXTpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSwgLmRlZmF1bHRNYXQgLm1hdC1taW5pLWZhYltkaXNhYmxlZF06bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSkge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZSxcbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgW2Rpcj1ydGxdIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmRiZGJkO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgYm9yZGVyOiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FyZCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FyZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAycHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQubWF0LWNhcmQtZmxhdDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FyZC1zdWJ0aXRsZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrIHtcbiAgZmlsbDogI2ZhZmFmYTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICBzdHJva2U6ICNmYWZhZmEgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAoLW1zLWhpZ2gtY29udHJhc3Q6IGJsYWNrLW9uLXdoaXRlKSB7XG4gIC5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtY2hlY2ttYXJrLXBhdGgge1xuICAgIHN0cm9rZTogIzAwMCAhaW1wb3J0YW50O1xuICB9XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LW1peGVkbWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLCAuZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWNoZWNrZWQubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC1hY2NlbnQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLm1hdC13YXJuIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1jaGVja2VkLm1hdC13YXJuIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWRpc2FibGVkLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCwgLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1kaXNhYmxlZC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjBiMGIwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1kaXNhYmxlZDpub3QoLm1hdC1jaGVja2JveC1jaGVja2VkKSAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgYm9yZGVyLWNvbG9yOiAjYjBiMGIwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1kaXNhYmxlZCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG59XG5AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtcHJpbWFyeSAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LFxuLmRlZmF1bHRNYXQgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQ6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtY2hlY2tlZDpub3QoLm1hdC1jaGVja2JveC1kaXNhYmxlZCkubWF0LXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3g6YWN0aXZlOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKS5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZDogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIC5tYXQtY2hpcC1yZW1vdmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgb3BhY2l0eTogMC40O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwOm5vdCgubWF0LWNoaXAtZGlzYWJsZWQpOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggM3B4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggM3B4IDRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCkgLm1hdC1jaGlwLXJlbW92ZTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNTQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXA6OmFmdGVyIHtcbiAgYmFja2dyb3VuZDogYmxhY2s7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXByaW1hcnkgLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMC40O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LXdhcm4gLm1hdC1jaGlwLXJlbW92ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgb3BhY2l0eTogMC40O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwLm1hdC1jaGlwLXNlbGVjdGVkLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQubWF0LWFjY2VudCAubWF0LWNoaXAtcmVtb3ZlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZC5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYmxlIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYmxlIHRoZWFkLCAuZGVmYXVsdE1hdCAubWF0LXRhYmxlIHRib2R5LCAuZGVmYXVsdE1hdCAubWF0LXRhYmxlIHRmb290LFxuLmRlZmF1bHRNYXQgbWF0LWhlYWRlci1yb3csIC5kZWZhdWx0TWF0IG1hdC1yb3csIC5kZWZhdWx0TWF0IG1hdC1mb290ZXItcm93LFxuLmRlZmF1bHRNYXQgW21hdC1oZWFkZXItcm93XSwgLmRlZmF1bHRNYXQgW21hdC1yb3ddLCAuZGVmYXVsdE1hdCBbbWF0LWZvb3Rlci1yb3ddLFxuLmRlZmF1bHRNYXQgLm1hdC10YWJsZS1zdGlja3kge1xuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xufVxuLmRlZmF1bHRNYXQgbWF0LXJvdywgLmRlZmF1bHRNYXQgbWF0LWhlYWRlci1yb3csIC5kZWZhdWx0TWF0IG1hdC1mb290ZXItcm93LFxuLmRlZmF1bHRNYXQgdGgubWF0LWhlYWRlci1jZWxsLCAuZGVmYXVsdE1hdCB0ZC5tYXQtY2VsbCwgLmRlZmF1bHRNYXQgdGQubWF0LWZvb3Rlci1jZWxsIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaGVhZGVyLWNlbGwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2VsbCwgLmRlZmF1bHRNYXQgLm1hdC1mb290ZXItY2VsbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1hcnJvdyB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLFxuLmRlZmF1bHRNYXQgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1uZXh0LWJ1dHRvbixcbi5kZWZhdWx0TWF0IC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IC5tYXQtY2FsZW5kYXItcHJldmlvdXMtYnV0dG9uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXItZGl2aWRlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3ZlciA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCksXG4uZGVmYXVsdE1hdCAuY2RrLWtleWJvYXJkLWZvY3VzZWQgLm1hdC1jYWxlbmRhci1ib2R5LWFjdGl2ZSA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQ6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCksXG4uZGVmYXVsdE1hdCAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktdG9kYXk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCkge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDMzLCAxNTAsIDI0MywgMC40KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMCwgMC40KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGF0ZXBpY2tlci1jb250ZW50Lm1hdC1hY2NlbnQgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRhdGVwaWNrZXItY29udGVudC5tYXQtd2FybiAubWF0LWNhbGVuZGFyLWJvZHktZGlzYWJsZWQgPiAubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NCwgNjcsIDU0LCAwLjQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQubWF0LXdhcm4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQtdG91Y2gge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZSB7XG4gIGNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUubWF0LWFjY2VudCB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWFjdGl2ZS5tYXQtd2FybiB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kaWFsb2ctY29udGFpbmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRpdmlkZXIge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24tcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaGFkb3c6IDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWFjdGlvbi1yb3cge1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pLmNkay1rZXlib2FyZC1mb2N1c2VkLCAuZGVmYXVsdE1hdCAubWF0LWV4cGFuc2lvbi1wYW5lbDpub3QoLm1hdC1leHBhbmRlZCkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkuY2RrLXByb2dyYW0tZm9jdXNlZCwgLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpub3QoW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0pOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbkBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpOm5vdChbYXJpYS1kaXNhYmxlZD10cnVlXSkgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgfVxufVxuLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24sXG4uZGVmYXVsdE1hdCAubWF0LWV4cGFuc2lvbi1pbmRpY2F0b3I6OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJbYXJpYS1kaXNhYmxlZD10cnVlXSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlLFxuLmRlZmF1bHRNYXQgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1oaW50IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLm1hdC13YXJuIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtd2FybiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICBjb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb2N1c2VkOm5vdCgubWF0LWZvcm0tZmllbGQtaW52YWxpZCkubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtbGFiZWwubWF0LWFjY2VudCxcbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZS5tYXQtYWNjZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZXJyb3Ige1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWhpbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNDIpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNDIpIDMzJSwgdHJhbnNwYXJlbnQgMCUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDRweCAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC40MikgMCUsIHJnYmEoMCwgMCwgMCwgMC40MikgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICBjb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvY3VzZWQubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb2N1c2VkLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWludmFsaWQubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA2KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaWNvbi5tYXQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1pY29uLm1hdC1hY2NlbnQge1xuICBjb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1pY29uLm1hdC13YXJuIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWlucHV0LWVsZW1lbnQ6ZGlzYWJsZWQsXG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaW5wdXQtZWxlbWVudDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaW5wdXQtZWxlbWVudDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1pbnB1dC1lbGVtZW50Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWlucHV0LWVsZW1lbnQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40Mik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWFjY2VudCAubWF0LWlucHV0LWVsZW1lbnQge1xuICBjYXJldC1jb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtaW52YWxpZCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZSAubWF0LWxpc3QtaXRlbSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2UgLm1hdC1zdWJoZWFkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1pdGVtLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1vcHRpb246aG92ZXIsIC5kZWZhdWx0TWF0IC5tYXQtbGlzdC1vcHRpb246Zm9jdXMsXG4uZGVmYXVsdE1hdCAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtOmhvdmVyLFxuLmRlZmF1bHRNYXQgLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbTpmb2N1cyxcbi5kZWZhdWx0TWF0IC5tYXQtYWN0aW9uLWxpc3QgLm1hdC1saXN0LWl0ZW06aG92ZXIsXG4uZGVmYXVsdE1hdCAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbWVudS1wYW5lbCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1tZW51LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LW1lbnUtaXRlbSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbWVudS1pdGVtW2Rpc2FibGVkXSwgLmRlZmF1bHRNYXQgLm1hdC1tZW51LWl0ZW1bZGlzYWJsZWRdOjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLFxuLmRlZmF1bHRNYXQgLm1hdC1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2VyOjphZnRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1tZW51LWl0ZW06aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuLmRlZmF1bHRNYXQgLm1hdC1tZW51LWl0ZW0uY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4uZGVmYXVsdE1hdCAubWF0LW1lbnUtaXRlbS5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoW2Rpc2FibGVkXSksXG4uZGVmYXVsdE1hdCAubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZDpub3QoW2Rpc2FibGVkXSkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wYWdpbmF0b3Ige1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcGFnaW5hdG9yLFxuLmRlZmF1bHRNYXQgLm1hdC1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcGFnaW5hdG9yLWRlY3JlbWVudCxcbi5kZWZhdWx0TWF0IC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNTQpO1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4uZGVmYXVsdE1hdCAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4uZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQsXG4uZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSAubWF0LXBhZ2luYXRvci1maXJzdCxcbi5kZWZhdWx0TWF0IC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIC5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgZmlsbDogI2JiZGVmYjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiYmRlZmI7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByb2dyZXNzLWJhci5tYXQtYWNjZW50IC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjZmZmZjhkO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZjhkO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICBmaWxsOiAjZmZjZGQyO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4gLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmY2RkMjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJvZ3Jlc3Mtc3Bpbm5lciBjaXJjbGUsIC5kZWZhdWx0TWF0IC5tYXQtc3Bpbm5lciBjaXJjbGUge1xuICBzdHJva2U6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LXByb2dyZXNzLXNwaW5uZXIubWF0LWFjY2VudCBjaXJjbGUsIC5kZWZhdWx0TWF0IC5tYXQtc3Bpbm5lci5tYXQtYWNjZW50IGNpcmNsZSB7XG4gIHN0cm9rZTogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wcm9ncmVzcy1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSwgLmRlZmF1bHRNYXQgLm1hdC1zcGlubmVyLm1hdC13YXJuIGNpcmNsZSB7XG4gIHN0cm9rZTogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXByaW1hcnkubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICBib3JkZXItY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeSAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1wcmltYXJ5IC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAuZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeS5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLCAuZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcHJpbWFyeTphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50Lm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50IC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudCAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSwgLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LWFjY2VudC5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLCAuZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50OmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWRpby1idXR0b24ubWF0LXdhcm4ubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICBib3JkZXItY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybiAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSxcbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC13YXJuIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLCAuZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2Fybi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLCAuZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtd2FybjphY3RpdmUgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUsXG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1yaXBwbGUgLm1hdC1yaXBwbGUtZWxlbWVudCxcbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uLm1hdC1yYWRpby1kaXNhYmxlZCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtcmFkaW8tZGlzYWJsZWQgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXJhZGlvLWJ1dHRvbiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zZWxlY3QtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2VsZWN0LWRpc2FibGVkIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zZWxlY3QtcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2VsZWN0LXBhbmVsOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNlbGVjdC1wYW5lbCAubWF0LW9wdGlvbi5tYXQtc2VsZWN0ZWQ6bm90KC5tYXQtb3B0aW9uLW11bHRpcGxlKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQubWF0LXByaW1hcnkgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtYWNjZW50IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZC5tYXQtd2FybiAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtaW52YWxpZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkIC5tYXQtc2VsZWN0Lm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZHJhd2VyLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kcmF3ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRyYXdlci5tYXQtZHJhd2VyLXB1c2gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZHJhd2VyOm5vdCgubWF0LWRyYXdlci1zaWRlKSB7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kcmF3ZXItc2lkZSB7XG4gIGJvcmRlci1yaWdodDogc29saWQgMXB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LWRyYXdlci1zaWRlLm1hdC1kcmF3ZXItZW5kIHtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4uZGVmYXVsdE1hdCBbZGlyPXJ0bF0gLm1hdC1kcmF3ZXItc2lkZSB7XG4gIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLmRlZmF1bHRNYXQgW2Rpcj1ydGxdIC5tYXQtZHJhd2VyLXNpZGUubWF0LWRyYXdlci1lbmQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBzb2xpZCAxcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZHJhd2VyLWJhY2tkcm9wLm1hdC1kcmF3ZXItc2hvd24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtY2hlY2tlZCAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZS10b2dnbGUubWF0LWNoZWNrZWQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzMsIDE1MCwgMjQzLCAwLjU0KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGUtdG9nZ2xlLm1hdC1wcmltYXJ5Lm1hdC1jaGVja2VkIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZS10b2dnbGUubWF0LXdhcm4ubWF0LWNoZWNrZWQgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDQsIDY3LCA1NCwgMC41NCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZS5tYXQtd2Fybi5tYXQtY2hlY2tlZCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NDMzNjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGUtdG9nZ2xlOm5vdCgubWF0LWNoZWNrZWQpIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAxcHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGUtdG9nZ2xlLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLmRlZmF1bHRNYXQgLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLFxuLmRlZmF1bHRNYXQgLm1hdC1wcmltYXJ5IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZmMztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcHJpbWFyeSAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5kZWZhdWx0TWF0IC5tYXQtYWNjZW50IC5tYXQtc2xpZGVyLXRodW1iLFxuLmRlZmF1bHRNYXQgLm1hdC1hY2NlbnQgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG59XG4uZGVmYXVsdE1hdCAubWF0LWFjY2VudCAubWF0LXNsaWRlci10aHVtYi1sYWJlbC10ZXh0IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXdhcm4gLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbi5kZWZhdWx0TWF0IC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYixcbi5kZWZhdWx0TWF0IC5tYXQtd2FybiAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXdhcm4gLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAwLCAwLjIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXI6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCxcbi5kZWZhdWx0TWF0IC5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLWRpc2FibGVkIC5tYXQtc2xpZGVyLXRyYWNrLWJhY2tncm91bmQsXG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10cmFjay1maWxsLFxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItZGlzYWJsZWQ6aG92ZXIgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci1taW4tdmFsdWUgLm1hdC1zbGlkZXItZm9jdXMtcmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIC5tYXQtc2xpZGVyLXRodW1iLFxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci1taW4tdmFsdWUubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nLmNkay1mb2N1c2VkIC5tYXQtc2xpZGVyLXRodW1iLFxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItbWluLXZhbHVlLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZy5jZGstZm9jdXNlZCAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyk6aG92ZXIgLm1hdC1zbGlkZXItdGh1bWIsIC5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykuY2RrLWZvY3VzZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlci1taW4tdmFsdWU6bm90KC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXNob3dpbmcpOmhvdmVyLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIsIC5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLW1pbi12YWx1ZTpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykuY2RrLWZvY3VzZWQubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlciB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC43KSwgcmdiYSgwLCAwLCAwLCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMC4wMDAxZGVnLCByZ2JhKDAsIDAsIDAsIDAuNyksIHJnYmEoMCwgMCwgMCwgMC43KSAycHgsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwgMCwgMCwgMC43KSwgcmdiYSgwLCAwLCAwLCAwLjcpIDJweCwgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWhlYWRlci5jZGsta2V5Ym9hcmQtZm9jdXNlZCwgLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWhlYWRlci5jZGstcHJvZ3JhbS1mb2N1c2VkLCAuZGVmYXVsdE1hdCAubWF0LXN0ZXAtaGVhZGVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbkBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWhlYWRlcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxufVxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwsXG4uZGVmYXVsdE1hdCAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1vcHRpb25hbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1oZWFkZXIgLm1hdC1zdGVwLWljb24tc2VsZWN0ZWQsXG4uZGVmYXVsdE1hdCAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsXG4uZGVmYXVsdE1hdCAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWhlYWRlciAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtYWN0aXZlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXN0ZXAtaGVhZGVyIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1lcnJvciB7XG4gIGNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5kZWZhdWx0TWF0IC5tYXQtc3RlcHBlci12ZXJ0aWNhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwcGVyLXZlcnRpY2FsLWxpbmU6OmJlZm9yZSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4uZGVmYXVsdE1hdCAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmFmdGVyLFxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwcGVyLWhvcml6b250YWwtbGluZSB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgY29sb3I6ICM3NTc1NzU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC1pbnZlcnRlZC1oZWFkZXIgLm1hdC10YWItbmF2LWJhcixcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLWludmVydGVkLWhlYWRlciAubWF0LXRhYi1oZWFkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWxhYmVsLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1sYWJlbC5tYXQtdGFiLWRpc2FibGVkLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1saW5rLm1hdC10YWItZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1kaXNhYmxlZCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXBbY2xhc3MqPW1hdC1iYWNrZ3JvdW5kLV0gLm1hdC10YWItaGVhZGVyLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhcltjbGFzcyo9bWF0LWJhY2tncm91bmQtXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTg3LCAyMjIsIDI1MSwgMC4zKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1wcmltYXJ5IC5tYXQtaW5rLWJhciwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NmYzO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LWluay1iYXIsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LXByaW1hcnkubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDE0MSwgMC4zKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFyLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQgLm1hdC1pbmstYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWFjY2VudC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC1pbmstYmFyLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1hY2NlbnQubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtaW5rLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC13YXJuIC5tYXQtdGFiLWxhYmVsLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4gLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMDUsIDIxMCwgMC4zKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC13YXJuIC5tYXQtaW5rLWJhciwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtd2FybiAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2O1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2FybiAubWF0LWluay1iYXIsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LXdhcm4ubWF0LWJhY2tncm91bmQtd2FybiAubWF0LWluay1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTg3LCAyMjIsIDI1MSwgMC4zKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmtzLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGlua3MsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTk2ZjM7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmssIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1sYWJlbCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtcHJpbWFyeSAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXByaW1hcnkgLm1hdC1yaXBwbGUtZWxlbWVudCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1rZXlib2FyZC1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDE0MSwgMC4zKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rcywgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXIsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmtzLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHllbGxvdztcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1sYWJlbCwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmssIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxhYmVsLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1saW5rIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC1hY2NlbnQgLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtYWNjZW50IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50LCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLWFjY2VudCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSwgLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksXG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5jZGstcHJvZ3JhbS1mb2N1c2VkOm5vdCgubWF0LXRhYi1kaXNhYmxlZCksIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbC5jZGsta2V5Ym9hcmQtZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwuY2RrLXByb2dyYW0tZm9jdXNlZDpub3QoLm1hdC10YWItZGlzYWJsZWQpLFxuLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsuY2RrLWtleWJvYXJkLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSxcbi5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1saW5rLmNkay1wcm9ncmFtLWZvY3VzZWQ6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMDUsIDIxMCwgMC4zKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmtzLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGlua3MsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDQzMzY7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmssIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1sYWJlbCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsge1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxhYmVsLm1hdC10YWItZGlzYWJsZWQsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGluay5tYXQtdGFiLWRpc2FibGVkLCAuZGVmYXVsdE1hdCAubWF0LXRhYi1uYXYtYmFyLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItbGFiZWwubWF0LXRhYi1kaXNhYmxlZCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWxpbmsubWF0LXRhYi1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRhYi1ncm91cC5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24sIC5kZWZhdWx0TWF0IC5tYXQtdGFiLW5hdi1iYXIubWF0LWJhY2tncm91bmQtd2FybiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdGFiLWdyb3VwLm1hdC1iYWNrZ3JvdW5kLXdhcm4gLm1hdC1yaXBwbGUtZWxlbWVudCwgLmRlZmF1bHRNYXQgLm1hdC10YWItbmF2LWJhci5tYXQtYmFja2dyb3VuZC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIHtcbiAgYmFja2dyb3VuZDogd2hpdGVzbW9rZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIubWF0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjMjE5NmYzO1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIubWF0LWFjY2VudCB7XG4gIGJhY2tncm91bmQ6IHllbGxvdztcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIubWF0LXdhcm4ge1xuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xuICBjb2xvcjogd2hpdGU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSxcbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5kZWZhdWx0TWF0IC5tYXQtdG9vbGJhciAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LXZhbHVlLFxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIC5tYXQtc2VsZWN0LWFycm93LFxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLmRlZmF1bHRNYXQgLm1hdC10b29sYmFyIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIGNhcmV0LWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDk3LCA5NywgOTcsIDAuOSk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRyZWUge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtdHJlZS1ub2RlLFxuLmRlZmF1bHRNYXQgLm1hdC1uZXN0ZWQtdHJlZS1ub2RlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICBiYWNrZ3JvdW5kOiAjMzIzMjMyO1xuICBib3gtc2hhZG93OiAwcHggM3B4IDVweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDZweCAxMHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMXB4IDE4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICBjb2xvcjogeWVsbG93O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1iYWRnZS1zbWFsbCAubWF0LWJhZGdlLWNvbnRlbnQge1xuICBmb250LXNpemU6IDlweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYmFkZ2UtbGFyZ2UgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgZm9udC1zaXplOiAyNHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1oMSwgLmRlZmF1bHRNYXQgLm1hdC1oZWFkbGluZSwgLmRlZmF1bHRNYXQgLm1hdC10eXBvZ3JhcGh5IGgxIHtcbiAgZm9udDogNjAwIDI0cHgvMzJweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWgyLCAuZGVmYXVsdE1hdCAubWF0LXRpdGxlLCAuZGVmYXVsdE1hdCAubWF0LXR5cG9ncmFwaHkgaDIge1xuICBmb250OiA2MDAgMjBweC8zMnB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaDMsIC5kZWZhdWx0TWF0IC5tYXQtc3ViaGVhZGluZy0yLCAuZGVmYXVsdE1hdCAubWF0LXR5cG9ncmFwaHkgaDMge1xuICBmb250OiA2MDAgMTZweC8yMnB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaDQsIC5kZWZhdWx0TWF0IC5tYXQtc3ViaGVhZGluZy0xLCAuZGVmYXVsdE1hdCAubWF0LXR5cG9ncmFwaHkgaDQge1xuICBmb250OiA2MDAgMTVweC8yNHB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaDUsIC5kZWZhdWx0TWF0IC5tYXQtdHlwb2dyYXBoeSBoNSB7XG4gIGZvbnQ6IDYwMCBjYWxjKDE0cHggKiAwLjgzKS8zMHB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTJweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtaDYsIC5kZWZhdWx0TWF0IC5tYXQtdHlwb2dyYXBoeSBoNiB7XG4gIGZvbnQ6IDYwMCBjYWxjKDE0cHggKiAwLjY3KS8zMHB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwIDAgMTJweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYm9keS1zdHJvbmcsIC5kZWZhdWx0TWF0IC5tYXQtYm9keS0yIHtcbiAgZm9udDogNjAwIDE0cHgvMjRweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJvZHksIC5kZWZhdWx0TWF0IC5tYXQtYm9keS0xLCAuZGVmYXVsdE1hdCAubWF0LXR5cG9ncmFwaHkge1xuICBmb250OiA2MDAgMTRweC8zMHB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtYm9keSBwLCAuZGVmYXVsdE1hdCAubWF0LWJvZHktMSBwLCAuZGVmYXVsdE1hdCAubWF0LXR5cG9ncmFwaHkgcCB7XG4gIG1hcmdpbjogMCAwIDEycHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LXNtYWxsLCAuZGVmYXVsdE1hdCAubWF0LWNhcHRpb24ge1xuICBmb250OiA2MDAgMTJweC8yMHB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGlzcGxheS00LCAuZGVmYXVsdE1hdCAubWF0LXR5cG9ncmFwaHkgLm1hdC1kaXNwbGF5LTQge1xuICBmb250OiAzMDAgMTEycHgvMTEycHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCA1NnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kaXNwbGF5LTMsIC5kZWZhdWx0TWF0IC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktMyB7XG4gIGZvbnQ6IDYwMCA1NnB4LzU2cHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCA2NHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kaXNwbGF5LTIsIC5kZWZhdWx0TWF0IC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktMiB7XG4gIGZvbnQ6IDQwMCA0NXB4LzQ4cHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCA2NHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1kaXNwbGF5LTEsIC5kZWZhdWx0TWF0IC5tYXQtdHlwb2dyYXBoeSAubWF0LWRpc3BsYXktMSB7XG4gIGZvbnQ6IDYwMCAzNHB4LzQwcHggXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDAgMCA2NHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyIHtcbiAgZm9udDogNjAwIDE0cHgvMzBweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbiwgLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLCAuZGVmYXVsdE1hdCAubWF0LWljb24tYnV0dG9uLCAuZGVmYXVsdE1hdCAubWF0LXN0cm9rZWQtYnV0dG9uLFxuLmRlZmF1bHRNYXQgLm1hdC1mbGF0LWJ1dHRvbiwgLmRlZmF1bHRNYXQgLm1hdC1mYWIsIC5kZWZhdWx0TWF0IC5tYXQtbWluaS1mYWIge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWJ1dHRvbi10b2dnbGUge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYXJkIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FyZC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxlIHtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYXJkLXN1YnRpdGxlLFxuLmRlZmF1bHRNYXQgLm1hdC1jYXJkLWNvbnRlbnQge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94IHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtbGF5b3V0IC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICBsaW5lLWhlaWdodDogMjRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2hpcCAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbixcbi5kZWZhdWx0TWF0IC5tYXQtY2hpcCAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uIHtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWhlYWRlci1jZWxsIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jZWxsLCAuZGVmYXVsdE1hdCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1jYWxlbmRhciB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhbGVuZGFyLWJvZHkge1xuICBmb250LXNpemU6IDEzcHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwsXG4uZGVmYXVsdE1hdCAubWF0LWNhbGVuZGFyLXBlcmlvZC1idXR0b24ge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlciB0aCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZGlhbG9nLXRpdGxlIHtcbiAgZm9udDogNjAwIDIwcHgvMzJweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50IHtcbiAgZm9udDogNjAwIDE0cHgvMzBweCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDEuMzQzNzVlbTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLFxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXN1ZmZpeCAubWF0LWljb24ge1xuICBmb250LXNpemU6IDE1MCU7XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbixcbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1zdWZmaXggLm1hdC1pY29uLWJ1dHRvbiB7XG4gIGhlaWdodDogMS41ZW07XG4gIHdpZHRoOiAxLjVlbTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1wcmVmaXggLm1hdC1pY29uLWJ1dHRvbiAubWF0LWljb24sXG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtc3VmZml4IC5tYXQtaWNvbi1idXR0b24gLm1hdC1pY29uIHtcbiAgaGVpZ2h0OiAxLjEyNWVtO1xuICBsaW5lLWhlaWdodDogMS4xMjU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICBwYWRkaW5nOiAwLjVlbSAwO1xuICBib3JkZXItdG9wOiAwLjg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjM0MzczZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzM1MzMzMzMlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMzQzNzJlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzYzMzMzMyU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gIHRvcDogLTAuODQzNzVlbTtcbiAgcGFkZGluZy10b3A6IDAuODQzNzVlbTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMS4zNDM3NWVtO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gIGJvdHRvbTogMS4zNDM3NWVtO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIG1hcmdpbi10b3A6IDAuNjY2NjY2NjY2N2VtO1xuICB0b3A6IGNhbGMoMTAwJSAtIDEuNzkxNjY2NjY2N2VtKTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjI1ZW07XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgcGFkZGluZzogMC40Mzc1ZW0gMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwNnB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODExOWVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzOTMzMzMzJTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODEyNWVtKSBzY2FsZSgwLjc1KSBwZXJzcGVjdGl2ZSgxMDBweCkgdHJhbnNsYXRlWigwLjAwMTA3cHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTE4ZW0pIHNjYWxlKDAuNzUpO1xuICB3aWR0aDogMTMzLjMzMzQwMzMzMzMlO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDEwOHB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS4yODExN2VtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzM0MTMzMzMzJTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuMjgxMjVlbTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgYm90dG9tOiAxLjI1ZW07XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgbWFyZ2luLXRvcDogMC41NDE2NjY2NjY3ZW07XG4gIHRvcDogY2FsYygxMDAlIC0gMS42NjY2NjY2NjY3ZW0pO1xufVxuQG1lZGlhIHByaW50IHtcbiAgLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5Lm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTE2ZW0pIHNjYWxlKDAuNzUpO1xuICB9XG4gIC5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjI4MTE1ZW0pIHNjYWxlKDAuNzUpO1xuICB9XG4gIC5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeS5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuMjgxMTRlbSkgc2NhbGUoMC43NSk7XG4gIH1cbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgcGFkZGluZzogMC4yNWVtIDAgMC43NWVtIDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRvcDogMS4wOTM3NWVtO1xuICBtYXJnaW4tdG9wOiAtMC41ZW07XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdC5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuNTkzNzNlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzUzMzMzMyU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuNTkzNzJlbSkgc2NhbGUoMC43NSk7XG4gIHdpZHRoOiAxMzMuMzMzMzYzMzMzMyU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gIHBhZGRpbmc6IDFlbSAwIDFlbSAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICB0b3A6IDEuODQzNzVlbTtcbiAgbWFyZ2luLXRvcDogLTAuMjVlbTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0Lm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4uZGVmYXVsdE1hdCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41OTM3M2VtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNTMzMzMzJTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS41OTM3MmVtKSBzY2FsZSgwLjc1KTtcbiAgd2lkdGg6IDEzMy4zMzMzNjMzMzMzJTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZ3JpZC10aWxlLWhlYWRlcixcbi5kZWZhdWx0TWF0IC5tYXQtZ3JpZC10aWxlLWZvb3RlciB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtZ3JpZC10aWxlLWhlYWRlciAubWF0LWxpbmUsXG4uZGVmYXVsdE1hdCAubWF0LWdyaWQtdGlsZS1mb290ZXIgLm1hdC1saW5lIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1ncmlkLXRpbGUtaGVhZGVyIC5tYXQtbGluZTpudGgtY2hpbGQobisyKSxcbi5kZWZhdWx0TWF0IC5tYXQtZ3JpZC10aWxlLWZvb3RlciAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMikge1xuICBmb250LXNpemU6IDEycHg7XG59XG4uZGVmYXVsdE1hdCBpbnB1dC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gIG1hcmdpbi10b3A6IC0wLjA2MjVlbTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbWVudS1pdGVtIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1wYWdpbmF0b3IsXG4uZGVmYXVsdE1hdCAubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2VsZWN0IHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICBoZWlnaHQ6IDEuMTI1ZW07XG59XG4uZGVmYXVsdE1hdCAubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LXN0ZXBwZXItdmVydGljYWwsIC5kZWZhdWx0TWF0IC5tYXQtc3RlcHBlci1ob3Jpem9udGFsIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3Ige1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItZ3JvdXAge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10YWItbGFiZWwsIC5kZWZhdWx0TWF0IC5tYXQtdGFiLWxpbmsge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIsXG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIgaDEsXG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIgaDIsXG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIgaDMsXG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIgaDQsXG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIgaDUsXG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIgaDYge1xuICBmb250OiA2MDAgMjBweC8zMnB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10b29sdGlwIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBwYWRkaW5nLXRvcDogNnB4O1xuICBwYWRkaW5nLWJvdHRvbTogNnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC10b29sdGlwLWhhbmRzZXQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtaXRlbSB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1pdGVtIHtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5lIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlIC5tYXQtbGlzdC1vcHRpb24gLm1hdC1saW5lIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2UgLm1hdC1saXN0LW9wdGlvbiAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMikge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZSAubWF0LXN1YmhlYWRlciB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtbGlzdC1iYXNlW2RlbnNlXSAubWF0LWxpc3QtaXRlbSAubWF0LWxpbmUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LWl0ZW0gLm1hdC1saW5lOm50aC1jaGlsZChuKzIpIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0LWJhc2VbZGVuc2VdIC5tYXQtbGlzdC1vcHRpb24ge1xuICBmb250LXNpemU6IDEycHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LW9wdGlvbiAubWF0LWxpbmUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1saXN0LW9wdGlvbiAubWF0LWxpbmU6bnRoLWNoaWxkKG4rMikge1xuICBmb250LXNpemU6IDEycHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QtYmFzZVtkZW5zZV0gLm1hdC1zdWJoZWFkZXIge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LW9wdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICBmb250OiA2MDAgMTRweC8yNHB4IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtc2ltcGxlLXNuYWNrYmFyIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1zaW1wbGUtc25hY2tiYXItYWN0aW9uIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRyZWUge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xufVxuLmRlZmF1bHRNYXQgLm1hdC10cmVlLW5vZGUsXG4uZGVmYXVsdE1hdCAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDE0cHg7XG59XG4uZGVmYXVsdE1hdCBtYWluIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YwRjBGMDtcbn1cbi5kZWZhdWx0TWF0IC5tZW51IHtcbiAgLypiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyovXG4gIGNvbG9yOiBibGFjaztcbiAgZGlzcGxheTogZmxleDtcbn1cbi5kZWZhdWx0TWF0IGEsIC5kZWZhdWx0TWF0IGE6aG92ZXIsIC5kZWZhdWx0TWF0IGE6aG92ZXIgc3BhbiB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtcmFpc2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSxcbi5kZWZhdWx0TWF0IC5tYXQtYnV0dG9uLFxuLmRlZmF1bHRNYXQgLm1hdC1mYWI6bm90KFtjbGFzcyo9bWF0LWVsZXZhdGlvbi16XSksXG4uZGVmYXVsdE1hdCAubWF0LW1pbmktZmFiOm5vdChbY2xhc3MqPW1hdC1lbGV2YXRpb24tel0pLFxuLmRlZmF1bHRNYXQgLm1hdC1pY29uLWJ1dHRvbiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoaXAge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuLmRlZmF1bHRNYXQgLm1hdC1yYWlzZWQtYnV0dG9uLmJhY2sge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MTYxNjE7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNhcmQge1xuICBtYXJnaW46IDEwcHggMTBweCAwIDEwcHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWxheW91dCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XG59XG4uZGVmYXVsdE1hdCAubWF0LWxpc3QgLm1hdC1saXN0LWl0ZW0gLm1hdC1saXN0LXRleHQgaDQubWF0LWxpbmUge1xuICBmb250LXdlaWdodDogODAwO1xufVxuLmRlZmF1bHRNYXQgLm1hdC1saXN0IC5tYXQtbGlzdC1pdGVtIC5tYXQtbGlzdC10ZXh0IHAubWF0LWxpbmUge1xuICBjb2xvcjogIzgyYjFmZjtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FyZDpub3QoW2NsYXNzKj1tYXQtZWxldmF0aW9uLXpdKSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZsZXg6IDE7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uZGVmYXVsdE1hdCAubWF0LXRvb2xiYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FyZC5tYXQtY2FyZC1hY2NlbnQge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi5kZWZhdWx0TWF0IC5tYXQtY2FyZC5tYXQtY2FyZC13YXJuIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmRlZmF1bHRNYXQgLndoaXRlLWljb24ge1xuICBjb2xvcjogd2hpdGU7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygxMDApO1xufVxuXG4uZ3JlZW4taWNvbiB7XG4gIGNvbG9yOiBncmVlbjtcbn1cblxuLlN0YXJ0LCAuUHJpbWFyeUlQIHtcbiAgY29sb3I6ICM2NGI1ZjY7XG59XG5cbi5TdG9wLCAuU2Vjb25kYXJ5SVAge1xuICBjb2xvcjogI2Y0NDMzNjtcbn1cblxuLklkbGVPckRpc2Nvbm4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5O1xufVxuXG4uQ29ubmVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuXG4uSW5jb21pbmdPckFuc3dlcmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsdWV2aW9sZXQ7XG59XG5cbi5vdGhlckNhbGxTdGF0cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTtcbn1cblxuLmZvb3RlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyouY2hlY2tib3hzaXplIC5kZWZhdWx0TWF0IC5tYXQtY2hlY2tib3gtaW5uZXItY29udGFpbmVyIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn1cblxuXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveCAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgYm9yZGVyLWNvbG9yOiB2aW9sZXQ7XG4gIHRvcDogMTBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn1cblxuXG5cbjo6bmctZGVlcCAubWF0LWNoZWNrYm94LWNoZWNrZWQgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kLFxuOjpuZy1kZWVwIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlICFpbXBvcnRhbnQ7XG4gIHRvcDogMTBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn0qL1xuLmJsaW5rIHtcbiAgYW5pbWF0aW9uOiBibGluayAycyBzdGVwcyg1LCBzdGFydCkgaW5maW5pdGU7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBibGluayAxcyBzdGVwcyg1LCBzdGFydCkgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgYmxpbmsge1xuICB0byB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgYmxpbmsge1xuICB0byB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG59XG4uY2xpY2sge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmEuZGlzYWJsZWQge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uZmxleC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5zaG93Q29tcGxldGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xufSIsIi8qaHR0cHM6IC8vc3RhY2tibGl0ei5jb20vZWRpdC9hbmd1bGFyLW1hdGVyaWFsLXRoZW1lLXNlY3JldHM/ZW1iZWQ9MSZmaWxlPXNyYyUyRnRoZW1lLnNjc3Mmc291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1PcGVuK1NhbnM6NDAwLDMwMCwzMDBpdGFsaWMsNDAwaXRhbGljLDYwMCw2MDBpdGFsaWMsNzAwLDcwMGl0YWxpYyw4MDAsODAwaXRhbGljJnN1YnNldD1sYXRpbi1leHQnKTtcclxuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86MzAwLDQwMCw1MDAsNzAwLDQwMGl0YWxpYyZhbXA7c3Vic2V0PWxhdGluLWV4dCcpOyovXHJcbi8qQGltcG9ydCAnLi4vY3NzL0dvb2dsZUZvbnRzT3BlblNhbnMuY3NzJztcclxuQGltcG9ydCAnLi4vY3NzL0dvb2dsZUZvbnRzUm9ib3RvLmNzcyc7Ki9cclxuXHJcbkBpbXBvcnQgJ35AYW5ndWxhci9tYXRlcmlhbC90aGVtaW5nJztcclxuXHJcbkBpbmNsdWRlIG1hdC1jb3JlKCk7XHJcblxyXG4vL2h0dHBzOi8vbWVkaXVtLmNvbS90ZW5zdWx0L2FuZ3VsYXItbWF0ZXJpYWwtY3VzdG9tLXRoZW1lLWltcGxlbWVudGF0aW9uLWluLWFuZ3VsYXItNi1kNDI0YTJhNDdlNGNcclxuLy9odHRwczovL21hdGVyaWFsLXVpLmNvbS9jdXN0b21pemF0aW9uL2NvbG9yL1xyXG4vL0N1c3RvbSB0aGVtZVxyXG4kY3VzdG9tLXRoZW1lLXByaW1hcnk6IG1hdC1wYWxldHRlKCRtYXQtYmx1ZSwgMzAwKTtcclxuJGN1c3RvbS10aGVtZS1hY2NlbnQ6IG1hdC1wYWxldHRlKCRtYXQteWVsbG93LCBBMjAwLCBBMTAwLCBBNDAwKTsvL21hdC1wYWxldHRlKCRtYXQtcGluaywgQTIwMCwgQTEwMCwgQTQwMCk7XHJcbiRjdXN0b20tdGhlbWUtd2FybjogbWF0LXBhbGV0dGUoJG1hdC1yZWQpO1xyXG4kY3VzdG9tLXRoZW1lOiBtYXQtbGlnaHQtdGhlbWUoJGN1c3RvbS10aGVtZS1wcmltYXJ5LCAkY3VzdG9tLXRoZW1lLWFjY2VudCwgJGN1c3RvbS10aGVtZS13YXJuKTtcclxuXHJcbi8vQWRkIHRvIGFuZ3VsYXIgbWF0ZXJpYWxcclxuQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10aGVtZSgkY3VzdG9tLXRoZW1lKTtcclxuXHJcblxyXG5cclxuLy9odHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vZ3VpZGUvdGhlbWluZ1xyXG4vL2h0dHBzOi8vd3d3LmZyZWVjb2RlY2FtcC5vcmcvbmV3cy9ob3ctdG8tbWFrZS1hLWN1c3RvbS10aGVtZS1pbi1hbmd1bGFyLW1hdGVyaWFsLWQ0NzEyMmExZTM2MS9cclxuLy8gRGVmaW5lIGFuIGFsdGVybmF0ZSBkYXJrIHRoZW1lLlxyXG4kZGFyay1wcmltYXJ5OiBtYXQtcGFsZXR0ZSgkbWF0LWJsdWUtZ3JleSk7XHJcbiRkYXJrLWFjY2VudDogbWF0LXBhbGV0dGUoJG1hdC1hbWJlciwgQTIwMCwgQTEwMCwgQTQwMCk7XHJcbiRkYXJrLXdhcm46IG1hdC1wYWxldHRlKCRtYXQtZGVlcC1vcmFuZ2UpO1xyXG4kZGFyay10aGVtZTogbWF0LWRhcmstdGhlbWUoJGRhcmstcHJpbWFyeSwgJGRhcmstYWNjZW50LCAkZGFyay13YXJuKTtcclxuXHJcbi8vIEluY2x1ZGUgdGhlIGFsdGVybmF0aXZlIHRoZW1lIHN0eWxlcyBpbnNpZGUgb2YgYSBibG9jayB3aXRoIGEgQ1NTIGNsYXNzLiBZb3UgY2FuIG1ha2UgdGhpc1xyXG4vLyBDU1MgY2xhc3Mgd2hhdGV2ZXIgeW91IHdhbnQuIEluIHRoaXMgZXhhbXBsZSwgYW55IGNvbXBvbmVudCBpbnNpZGUgb2YgYW4gZWxlbWVudCB3aXRoXHJcbi8vIGAudW5pY29ybi1kYXJrLXRoZW1lYCB3aWxsIGJlIGFmZmVjdGVkIGJ5IHRoaXMgYWx0ZXJuYXRlIGRhcmsgdGhlbWUgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCB0aGVtZS5cclxuLnVuaWNvcm4tZGFyay10aGVtZSB7XHJcbiAgQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10aGVtZSgkZGFyay10aGVtZSk7XHJcbn1cclxuXHJcblxyXG4vKlxyXG4gIGh0dHBzOiAvL3N0YWNrYmxpdHouY29tL2VkaXQvYW5ndWxhci1tYXRlcmlhbC10aGVtZS1zZWNyZXRzP2VtYmVkPTEmZmlsZT1zcmMlMkZ0aGVtZS5zY3NzJnNvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICBodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vZ3VpZGUvdHlwb2dyYXBoeVxyXG4gIGh0dHBzOi8vbWF0ZXJpYWwtdWkuY29tL2N1c3RvbWl6YXRpb24vY29sb3IvXHJcbiovXHJcbiRkZWZhdWx0TWF0LXR5cG9ncmFwaHk6IG1hdC10eXBvZ3JhcGh5LWNvbmZpZyhcclxuICAkZm9udC1mYW1pbHk6ICdcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWYnLFxyXG4gICRkaXNwbGF5LTQ6IG1hdC10eXBvZ3JhcGh5LWxldmVsKDExMnB4LCAxMTJweCwgMzAwKSxcclxuICAkZGlzcGxheS0zOiBtYXQtdHlwb2dyYXBoeS1sZXZlbCg1NnB4LCA1NnB4LCA2MDApLFxyXG4gICRkaXNwbGF5LTI6IG1hdC10eXBvZ3JhcGh5LWxldmVsKDQ1cHgsIDQ4cHgsIDQwMCksXHJcbiAgJGRpc3BsYXktMTogbWF0LXR5cG9ncmFwaHktbGV2ZWwoMzRweCwgNDBweCwgNjAwKSwgJGhlYWRsaW5lOiBtYXQtdHlwb2dyYXBoeS1sZXZlbCgyNHB4LCAzMnB4LCA2MDApLFxyXG4gICR0aXRsZTogbWF0LXR5cG9ncmFwaHktbGV2ZWwoMjBweCwgMzJweCwgNjAwKSwgJHN1YmhlYWRpbmctMjogbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTZweCwgMjJweCwgNjAwKSxcclxuICAkc3ViaGVhZGluZy0xOiBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNXB4LCAyNHB4LCA2MDApLCAkYm9keS0yOiBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNHB4LCAyNHB4LCA2MDApLFxyXG4gICRib2R5LTE6IG1hdC10eXBvZ3JhcGh5LWxldmVsKDE0cHgsIDMwcHgsIDYwMCksICRjYXB0aW9uOiBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxMnB4LCAyMHB4LCA2MDApLFxyXG4gICRidXR0b246IG1hdC10eXBvZ3JhcGh5LWxldmVsKDEwcHgsIDE0cHgsIDgwMCksXHJcbiAgLy8gTGluZS1oZWlnaHQgbXVzdCBiZSB1bml0LWxlc3MgZnJhY3Rpb24gb2YgdGhlIGZvbnQtc2l6ZS5cclxuICAkaW5wdXQ6IG1hdC10eXBvZ3JhcGh5LWxldmVsKGluaGVyaXQsIDEuMTI1LCA0MDApXHJcbik7XHJcblxyXG4kZGVmYXVsdE1hdC1wcmltYXJ5LWNvbG9yOiAoXHJcbi8vIE5vbi1hY2NlbnQgQmFja2dyb3VuZHNcclxuLy8gR2VuZXJhbFxyXG41MDogI2UzZjJmZCwgLy8gTW9zdCBmYXIgYXdheVxyXG4xMDA6ICNiYmRlZmIsIC8vIEZhciBmYXIgYXdheVxyXG4yMDA6ICM5MGNhZjksIC8vIEZhciBhd2F5XHJcbjMwMDogIzY0YjVmNiwgLy8gTWlkZGxlIGZhclxyXG40MDA6ICM0MmE1ZjUsIC8vIE1pZGRsZVxyXG41MDA6ICMyMTk2ZjMsIC8vIE1pZGRsZSBjbG9zZSBcXC0gM0Y1MUI1XHJcbjYwMDogIzFlODhlNSwgLy8gQ2xvc2VcclxuNzAwOiAjMTk3NmQyLCAvLyBWZXJ5IGNsb3NlIC0gNUI5QkQ1XHJcbjgwMDogIzE1NjVjMCwgLy8gVmVyeSB2ZXJ5IENsb3NlXHJcbjkwMDogIzBkNDdhMSwgLy8gQ2xvc2VzdFxyXG5BMTAwOiAjODJiMWZmLCAvLyBNb3N0IGZhciBhd2F5XHJcbkEyMDA6ICM0NDhhZmYsIC8vIE1pZGRsZVxyXG5BNDAwOiAjMjk3OWZmLCAvLyBDbG9zZVxyXG5BNzAwOiAjMjk2MmZmLCAvLyBDbG9zZXN0XHJcbmNvbnRyYXN0OiAoIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsIC8vIE1vc3QgZmFyIGF3YXlcclxuMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsIC8vIEZhciBmYXIgYXdheVxyXG4yMDA6ICRkYXJrLXByaW1hcnktdGV4dCwgLy8gRmFyIGF3YXlcclxuMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsIC8vIE1pZGRsZSBmYXJcclxuNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsIC8vIE1pZGRsZVxyXG41MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsIC8vIE1pZGRsZSBjbG9zZVxyXG42MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsIC8vIENsb3NlXHJcbjcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCwgLy8gVmVyeSBjbG9zZVxyXG44MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsIC8vIFZlcnkgdmVyeSBDbG9zZVxyXG45MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsIC8vIENsb3Nlc3RcclxuQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LCAvLyBNb3N0IGZhciBhd2F5XHJcbkEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsIC8vIE1pZGRsZVxyXG5BNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LCAvLyBDbG9zZVxyXG5BNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LCAvLyBDbG9zZXN0XHJcbikgKTtcclxuXHJcbiRkZWZhdWx0TWF0LXRoZW1lOiBtYXQtbGlnaHQtdGhlbWUoIG1hdC1wYWxldHRlKCRkZWZhdWx0TWF0LXByaW1hcnktY29sb3IpLCBtYXQtcGFsZXR0ZSgkbWF0LXllbGxvdywgQTIwMCwgQTEwMCwgQTQwMCksIG1hdC1wYWxldHRlKCRtYXQtcmVkKSApO1xyXG5cclxuLmRlZmF1bHRNYXQge1xyXG4gIEBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdGhlbWUoJGRlZmF1bHRNYXQtdGhlbWUpO1xyXG4gIEBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdHlwb2dyYXBoeSgkZGVmYXVsdE1hdC10eXBvZ3JhcGh5KTtcclxuICAkYmFja2dyb3VuZDogI0YwRjBGMDsgLy9tYXQtY29sb3IoJGRlZmF1bHRNYXQtcHJpbWFyeS1jb2xvciwgNzAwKTsgLSBJTVBcclxuICAkcHJpbWFyeTogbWF0LWNvbG9yKCRkZWZhdWx0TWF0LXByaW1hcnktY29sb3IpO1xyXG4gICRhY2NlbnQ6IG1hdC1jb2xvcigkbWF0LXllbGxvdyk7XHJcbiAgJHdhcm46IG1hdC1jb2xvcigkbWF0LXJlZCk7XHJcblxyXG4gIG1haW4ge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XHJcbiAgfVxyXG5cclxuICAubWVudSB7XHJcbiAgICAvKmJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyovXHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICBkaXNwbGF5OmZsZXg7XHJcbiAgfVxyXG5cclxuICBhLCBhOmhvdmVyLCBhOmhvdmVyIHNwYW4ge1xyXG4gICAgY29sb3I6ICRwcmltYXJ5O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICB9XHJcblxyXG4gIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIGg3IHtcclxuICAgIGNvbG9yOiAkcHJpbWFyeTtcclxuICB9XHJcblxyXG4gIC5tYXQtcmFpc2VkLWJ1dHRvbjpub3QoW2NsYXNzKj1cIm1hdC1lbGV2YXRpb24telwiXSksXHJcbiAgLm1hdC1idXR0b24sXHJcbiAgLm1hdC1mYWI6bm90KFtjbGFzcyo9XCJtYXQtZWxldmF0aW9uLXpcIl0pLFxyXG4gIC5tYXQtbWluaS1mYWI6bm90KFtjbGFzcyo9XCJtYXQtZWxldmF0aW9uLXpcIl0pLFxyXG4gIC5tYXQtaWNvbi1idXR0b24ge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGJvcmRlci13aWR0aDogMXB4O1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAubWF0LWNoaXAge1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGJvcmRlci13aWR0aDogMXB4O1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgfVxyXG5cclxuICAubWF0LXJhaXNlZC1idXR0b24uYmFjayB7XHJcbiAgICBjb2xvcjogJGxpZ2h0LXByaW1hcnktdGV4dDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkbWF0LWdyZXksIEE3MDApO1xyXG4gIH1cclxuXHJcbiAgLm1hdC1jYXJkIHtcclxuICAgIG1hcmdpbjogMTBweCAxMHB4IDAgMTBweDtcclxuICB9XHJcblxyXG4gIC8qLm1hdC1jaGVja2JveC1pbm5lci1jb250YWluZXIsIHtcclxuICAgIGhlaWdodDogNDBweDtcclxuICAgIHdpZHRoOiA0MHB4O1xyXG4gIH0qL1xyXG5cclxuICAubWF0LWNoZWNrYm94LWxheW91dCAubWF0LWNoZWNrYm94LWxhYmVsIHtcclxuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xyXG4gIH1cclxuXHJcbiAgLm1hdC1saXN0IC5tYXQtbGlzdC1pdGVtIC5tYXQtbGlzdC10ZXh0IGg0Lm1hdC1saW5lIHtcclxuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgICBjb2xvcjogJHByaW1hcnk7XHJcbiAgfVxyXG5cclxuICAubWF0LWxpc3QgLm1hdC1saXN0LWl0ZW0gLm1hdC1saXN0LXRleHQgcC5tYXQtbGluZSB7XHJcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRkZWZhdWx0TWF0LXByaW1hcnktY29sb3IsIEExMDApO1xyXG4gIH1cclxuXHJcbiAgLm1hdC1jYXJkOm5vdChbY2xhc3MqPVwibWF0LWVsZXZhdGlvbi16XCJdKSB7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgZmxleDogMTtcclxuICAgIGJvcmRlci13aWR0aDogMXB4O1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEyKTtcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAubWF0LXRvb2xiYXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICBib3JkZXItd2lkdGg6IDFweDtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xMik7XHJcbiAgICBib3gtc2hhZG93OiBub25lO1xyXG4gIH1cclxuXHJcbiAgLm1hdC1jYXJkLm1hdC1jYXJkLWFjY2VudCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xyXG4gICAgY29sb3I6ICRkYXJrLXByaW1hcnktdGV4dDtcclxuICB9XHJcblxyXG4gIC5tYXQtY2FyZC5tYXQtY2FyZC13YXJuIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICR3YXJuO1xyXG4gICAgY29sb3I6ICRsaWdodC1wcmltYXJ5LXRleHQ7XHJcbiAgfVxyXG4gIC8qaHR0cHM6IC8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2ODEyMDY0L2hvdy10by1zZXQtdGhlLWNvbG9yLW9mLWFuLWljb24taW4tYW5ndWxhci1tYXRlcmlhbFxyXG5odHRwczogLy9jc3MtdHJpY2tzLmNvbS9zb2x2ZWQtd2l0aC1jc3MtY29sb3JpemluZy1zdmctYmFja2dyb3VuZHMvKi9cclxuICAud2hpdGUtaWNvbiB7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMTAwKTtcclxuICB9XHJcbiAgLyogTm90ZTogSWYgeW91J3JlIHVzaW5nIGFuIFNWRyBpY29uLCB5b3Ugc2hvdWxkIG1ha2UgdGhlIGNsYXNzIHRhcmdldCB0aGUgYDxzdmc+YCBlbGVtZW50ICovXHJcbiAgLyoud2hpdGUtaWNvbiBzdmcge1xyXG4gIGZpbGw6IHdoaXRlO1xyXG4gIGZpbHRlcjpicmlnaHRuZXNzKDEwMCk7XHJcbn0qL1xyXG4gIC8qLm1hdC1tZW51LWl0ZW0ge1xyXG4gICAgaGVpZ2h0OjIwcHg7XHJcbiAgfVxyXG4gIGJ1dHRvbi5tYXQtbWVudS1pdGVtIHtcclxuICAgIGhlaWdodDogMzBweDtcclxuICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICB9Ki9cclxufVxyXG4iLCIvLyBJbXBvcnQgYWxsIHRoZSB0aGVtaW5nIGZ1bmN0aW9uYWxpdHkuXG4vLyBXZSBjYW4gdXNlIHJlbGF0aXZlIGltcG9ydHMgZm9yIGltcG9ydHMgZnJvbSB0aGUgY2RrIGJlY2F1c2Ugd2UgYnVuZGxlIGV2ZXJ5dGhpbmdcbi8vIHVwIGludG8gYSBzaW5nbGUgZmxhdCBzY3NzIGZpbGUgZm9yIG1hdGVyaWFsLlxuLy8gV2Ugd2FudCBvdmVybGF5cyB0byBhbHdheXMgYXBwZWFyIG92ZXIgdXNlciBjb250ZW50LCBzbyBzZXQgYSBiYXNlbGluZVxuLy8gdmVyeSBoaWdoIHotaW5kZXggZm9yIHRoZSBvdmVybGF5IGNvbnRhaW5lciwgd2hpY2ggaXMgd2hlcmUgd2UgY3JlYXRlIHRoZSBuZXdcbi8vIHN0YWNraW5nIGNvbnRleHQgZm9yIGFsbCBvdmVybGF5cy5cbiRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjogMTAwMCAhZGVmYXVsdDtcbiRjZGstei1pbmRleC1vdmVybGF5OiAxMDAwICFkZWZhdWx0O1xuJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A6IDEwMDAgIWRlZmF1bHQ7XG5cbi8vIEJhY2tncm91bmQgY29sb3IgZm9yIGFsbCBvZiB0aGUgYmFja2Ryb3BzXG4kY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzIpICFkZWZhdWx0O1xuXG4vLyBEZWZhdWx0IGJhY2tkcm9wIGFuaW1hdGlvbiBpcyBiYXNlZCBvbiB0aGUgTWF0ZXJpYWwgRGVzaWduIHN3aWZ0LWVhc2Utb3V0LlxuJGJhY2tkcm9wLWFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXMgIWRlZmF1bHQ7XG4kYmFja2Ryb3AtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSkgIWRlZmF1bHQ7XG5cblxuQG1peGluIGNkay1vdmVybGF5KCkge1xuICAuY2RrLW92ZXJsYXktY29udGFpbmVyLCAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIC8vIERpc2FibGUgZXZlbnRzIGZyb20gYmVpbmcgY2FwdHVyZWQgb24gdGhlIG92ZXJsYXkgY29udGFpbmVyLlxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgLy8gVGhlIGNvbnRhaW5lciBzaG91bGQgYmUgdGhlIHNpemUgb2YgdGhlIHZpZXdwb3J0LlxuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIFRoZSBvdmVybGF5LWNvbnRhaW5lciBpcyBhbiBpbnZpc2libGUgZWxlbWVudCB3aGljaCBjb250YWlucyBhbGwgaW5kaXZpZHVhbCBvdmVybGF5cy5cbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcjtcblxuICAgICY6ZW1wdHkge1xuICAgICAgLy8gSGlkZSB0aGUgZWxlbWVudCB3aGVuIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgY2hpbGQgbm9kZXMuIFRoaXMgZG9lc24ndFxuICAgICAgLy8gaW5jbHVkZSBvdmVybGF5cyB0aGF0IGhhdmUgYmVlbiBkZXRhY2hlZCwgcmF0aGVyIHRoYW4gZGlzcG9zZWQuXG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIHVzZSBhbiBleHRyYSB3cmFwcGVyIGVsZW1lbnQgaW4gb3JkZXIgdG8gdXNlIG1ha2UgdGhlIG92ZXJsYXkgaXRzZWxmIGEgZmxleCBpdGVtLlxuICAvLyBUaGlzIG1ha2VzIGNlbnRlcmluZyB0aGUgb3ZlcmxheSBlYXN5IHdpdGhvdXQgcnVubmluZyBpbnRvIHRoZSBzdWJwaXhlbCByZW5kZXJpbmdcbiAgLy8gcHJvYmxlbXMgdGllZCB0byB1c2luZyBgdHJhbnNmb3JtYCBhbmQgd2l0aG91dCBpbnRlcmZlcmluZyB3aXRoIHRoZSBvdGhlciBwb3NpdGlvblxuICAvLyBzdHJhdGVnaWVzLlxuICAuY2RrLWdsb2JhbC1vdmVybGF5LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuICB9XG5cbiAgLy8gQSBzaW5nbGUgb3ZlcmxheSBwYW5lLlxuICAuY2RrLW92ZXJsYXktcGFuZSB7XG4gICAgLy8gTm90ZTogaXQncyBpbXBvcnRhbnQgZm9yIHRoaXMgb25lIHRvIHN0YXJ0IG9mZiBgYWJzb2x1dGVgLFxuICAgIC8vIGluIG9yZGVyIGZvciB1cyB0byBiZSBhYmxlIHRvIG1lYXN1cmUgaXQgY29ycmVjdGx5LlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuXG4gICAgLy8gRm9yIGNvbm5lY3RlZC1wb3NpdGlvbiBvdmVybGF5cywgd2Ugc2V0IGBkaXNwbGF5OiBmbGV4YCBpblxuICAgIC8vIG9yZGVyIHRvIGZvcmNlIGBtYXgtd2lkdGhgIGFuZCBgbWF4LWhlaWdodGAgdG8gdGFrZSBlZmZlY3QuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1iYWNrZHJvcCB7XG4gICAgLy8gVE9ETyhqZWxib3Vybik6IHJldXNlIHNpZGVuYXYgZnVsbHNjcmVlbiBtaXhpbi5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3A7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb24gJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb247XG4gICAgb3BhY2l0eTogMDtcblxuICAgICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAvLyBJbiBoaWdoIGNvbnRyYXN0IG1vZGUgdGhlIHJnYmEgYmFja2dyb3VuZCB3aWxsIGJlY29tZSBzb2xpZCBzbyB3ZSBuZWVkIHRvIGZhbGwgYmFja1xuICAgICAgLy8gdG8gbWFraW5nIGl0IG9wYXF1ZSB1c2luZyBgb3BhY2l0eWAuIE5vdGUgdGhhdCB3ZSBjYW4ndCB1c2UgdGhlIGBjZGstaGlnaC1jb250cmFzdGBcbiAgICAgIC8vIG1peGluLCBiZWNhdXNlIHdlIGNhbid0IG5vcm1hbGl6ZSB0aGUgaW1wb3J0IHBhdGggdG8gdGhlIF9hMTF5LnNjc3MgYm90aCBmb3IgdGhlXG4gICAgICAvLyBzb3VyY2UgYW5kIHdoZW4gdGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkLiBTZWUgIzEwOTA4LlxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jZGstb3ZlcmxheS1kYXJrLWJhY2tkcm9wIHtcbiAgICBiYWNrZ3JvdW5kOiAkY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLmNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wIHtcbiAgICAvLyBOb3RlOiBhcyBvZiBGaXJlZm94IDU3LCBoYXZpbmcgdGhlIGJhY2tkcm9wIGJlIGBiYWNrZ3JvdW5kOiBub25lYCB3aWxsIHByZXZlbnQgaXQgZnJvbVxuICAgIC8vIGNhcHR1cmluZyB0aGUgdXNlcidzIG1vdXNlIHNjcm9sbCBldmVudHMuIFNpbmNlIHdlIGFsc28gY2FuJ3QgdXNlIHNvbWV0aGluZyBsaWtlXG4gICAgLy8gYHJnYmEoMCwgMCwgMCwgMClgLCB3ZSB3b3JrIGFyb3VuZCB0aGUgaW5jb25zaXN0ZW5jeSBieSBub3Qgc2V0dGluZyB0aGUgYmFja2dyb3VuZCBhdFxuICAgIC8vIGFsbCBhbmQgdXNpbmcgYG9wYWNpdHlgIHRvIG1ha2UgdGhlIGVsZW1lbnQgdHJhbnNwYXJlbnQuXG4gICAgJiwgJi5jZGstb3ZlcmxheS1iYWNrZHJvcC1zaG93aW5nIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gT3ZlcmxheSBwYXJlbnQgZWxlbWVudCB1c2VkIHdpdGggdGhlIGNvbm5lY3RlZCBwb3NpdGlvbiBzdHJhdGVneS4gVXNlZCB0byBjb25zdHJhaW4gdGhlXG4gIC8vIG92ZXJsYXkgZWxlbWVudCdzIHNpemUgdG8gZml0IHdpdGhpbiB0aGUgdmlld3BvcnQuXG4gIC5jZGstb3ZlcmxheS1jb25uZWN0ZWQtcG9zaXRpb24tYm91bmRpbmctYm94IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogJGNkay16LWluZGV4LW92ZXJsYXk7XG5cbiAgICAvLyBXZSB1c2UgYGRpc3BsYXk6IGZsZXhgIG9uIHRoaXMgZWxlbWVudCBleGNsdXNpdmVseSBmb3IgY2VudGVyaW5nIGNvbm5lY3RlZCBvdmVybGF5cy5cbiAgICAvLyBXaGVuICpub3QqIGNlbnRlcmluZywgYSB0b3AvbGVmdC9ib3R0b20vcmlnaHQgd2lsbCBiZSBzZXQgd2hpY2ggb3ZlcnJpZGVzIHRoZSBub3JtYWxcbiAgICAvLyBmbGV4IGxheW91dC5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLy8gV2UgdXNlIHRoZSBgY29sdW1uYCBkaXJlY3Rpb24gaGVyZSB0byBhdm9pZCBzb21lIGZsZXhib3ggaXNzdWVzIGluIEVkZ2VcbiAgICAvLyB3aGVuIHVzaW5nIHRoZSBcImdyb3cgYWZ0ZXIgb3BlblwiIG9wdGlvbnMuXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC8vIEFkZCBzb21lIGRpbWVuc2lvbnMgc28gdGhlIGVsZW1lbnQgaGFzIGFuIGBpbm5lclRleHRgIHdoaWNoIHNvbWUgcGVvcGxlIGRlcGVuZCBvbiBpbiB0ZXN0cy5cbiAgICBtaW4td2lkdGg6IDFweDtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gIH1cblxuICAvLyBVc2VkIHdoZW4gZGlzYWJsaW5nIGdsb2JhbCBzY3JvbGxpbmcuXG4gIC5jZGstZ2xvYmFsLXNjcm9sbGJsb2NrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgICAvLyBOZWNlc3NhcnkgZm9yIHRoZSBjb250ZW50IG5vdCB0byBsb3NlIGl0cyB3aWR0aC4gTm90ZSB0aGF0IHdlJ3JlIHVzaW5nIDEwMCUsIGluc3RlYWQgb2ZcbiAgICAvLyAxMDB2dywgYmVjYXVzZSAxMDB2dyBpbmNsdWRlcyB0aGUgd2lkdGggcGx1cyB0aGUgc2Nyb2xsYmFyLCB3aGVyZWFzIDEwMCUgaXMgdGhlIHdpZHRoXG4gICAgLy8gdGhhdCB0aGUgZWxlbWVudCBoYWQgYmVmb3JlIHdlIG1hZGUgaXQgYGZpeGVkYC5cbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC8vIE5vdGU6IHRoaXMgd2lsbCBhbHdheXMgYWRkIGEgc2Nyb2xsYmFyIHRvIHdoYXRldmVyIGVsZW1lbnQgaXQgaXMgb24sIHdoaWNoIGNhblxuICAgIC8vIHBvdGVudGlhbGx5IHJlc3VsdCBpbiBkb3VibGUgc2Nyb2xsYmFycy4gSXQgc2hvdWxkbid0IGJlIGFuIGlzc3VlLCBiZWNhdXNlIHdlIHdvbid0XG4gICAgLy8gYmxvY2sgc2Nyb2xsaW5nIG9uIGEgcGFnZSB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHNjcm9sbGJhciBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICB9XG59XG5cbkBtaXhpbiBjZGstYTExeSB7XG4gIC5jZGstdmlzdWFsbHktaGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuXG4gICAgLy8gQXZvaWQgYnJvd3NlcnMgcmVuZGVyaW5nIHRoZSBmb2N1cyByaW5nIGluIHNvbWUgY2FzZXMuXG4gICAgb3V0bGluZTogMDtcblxuICAgIC8vIEF2b2lkIHNvbWUgY2FzZXMgd2hlcmUgdGhlIGJyb3dzZXIgd2lsbCBzdGlsbCByZW5kZXIgdGhlIG5hdGl2ZSBjb250cm9scyAoc2VlICM5MDQ5KS5cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICB9XG59XG5cbi8vIEFwcGxpZXMgc3R5bGVzIGZvciB1c2VycyBpbiBoaWdoIGNvbnRyYXN0IG1vZGUuIE5vdGUgdGhhdCB0aGlzIG9ubHkgYXBwbGllc1xuLy8gdG8gTWljcm9zb2Z0IGJyb3dzZXJzLiBDaHJvbWUgY2FuIGJlIGluY2x1ZGVkIGJ5IGNoZWNraW5nIGZvciB0aGUgYGh0bWxbaGNdYFxuLy8gYXR0cmlidXRlLCBob3dldmVyIENocm9tZSBoYW5kbGVzIGhpZ2ggY29udHJhc3QgZGlmZmVyZW50bHkuXG4vL1xuLy8gQHBhcmFtIHRhcmdldCBXaGljaCBraW5kIG9mIGhpZ2ggY29udHJhc3Qgc2V0dGluZyB0byB0YXJnZXQuIERlZmF1bHRzIHRvIGBhY3RpdmVgLCBjYW4gYmVcbi8vICAgIGB3aGl0ZS1vbi1ibGFja2Agb3IgYGJsYWNrLW9uLXdoaXRlYC5cbkBtaXhpbiBjZGstaGlnaC1jb250cmFzdCgkdGFyZ2V0OiBhY3RpdmUpIHtcbiAgQG1lZGlhICgtbXMtaGlnaC1jb250cmFzdDogJHRhcmdldCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgZW5hYmxlIG1vbml0b3JpbmcgYXV0b2ZpbGwgc3RhdGUgb2YgdGV4dCBmaWVsZHMuXG5AbWl4aW4gY2RrLXRleHQtZmllbGQge1xuICAvLyBLZXlmcmFtZXMgdGhhdCBhcHBseSBubyBzdHlsZXMsIGJ1dCBhbGxvdyB1cyB0byBtb25pdG9yIHdoZW4gYW4gdGV4dCBmaWVsZCBiZWNvbWVzIGF1dG9maWxsZWRcbiAgLy8gYnkgd2F0Y2hpbmcgZm9yIHRoZSBhbmltYXRpb24gZXZlbnRzIHRoYXQgYXJlIGZpcmVkIHdoZW4gdGhleSBzdGFydC4gTm90ZTogdGhlIC8qISovIGNvbW1lbnQgaXNcbiAgLy8gbmVlZGVkIHRvIHByZXZlbnQgTGliU2FzcyBmcm9tIHN0cmlwcGluZyB0aGUga2V5ZnJhbWVzIG91dC5cbiAgLy8gQmFzZWQgb246IGh0dHBzOi8vbWVkaXVtLmNvbS9AYnJ1bm4vZGV0ZWN0aW5nLWF1dG9maWxsZWQtZmllbGRzLWluLWphdmFzY3JpcHQtYWVkNTk4ZDI1ZGE3XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQgey8qISovfVxuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWVuZCB7LyohKi99XG5cbiAgLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgICBhbmltYXRpb24tbmFtZTogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQ7XG4gIH1cblxuICAuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1lbmQ7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIHJlc2l6ZSBoYW5kbGUgb24gYXV0b3NpemluZyB0ZXh0YXJlYXMsIGJlY2F1c2Ugd2hhdGV2ZXIgaGVpZ2h0XG4gIC8vIHRoZSB1c2VyIHJlc2l6ZWQgdG8gd2lsbCBiZSBvdmVyd3JpdHRlbiBvbmNlIHRoZXkgc3RhcnQgdHlwaW5nIGFnYWluLlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUge1xuICAgIHJlc2l6ZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRoaXMgY2xhc3MgaXMgdGVtcG9yYXJpbHkgYXBwbGllZCB0byB0aGUgdGV4dGFyZWEgd2hlbiBpdCBpcyBiZWluZyBtZWFzdXJlZC4gSXQgaXMgaW1tZWRpYXRlbHlcbiAgLy8gcmVtb3ZlZCB3aGVuIG1lYXN1cmluZyBpcyBjb21wbGV0ZS4gV2UgdXNlIGAhaW1wb3J0YW50YCBydWxlcyBoZXJlIHRvIG1ha2Ugc3VyZSB1c2VyLXNwZWNpZmllZFxuICAvLyBydWxlcyBkbyBub3QgaW50ZXJmZXJlIHdpdGggdGhlIG1lYXN1cmVtZW50LlxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nIHtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgLy8gSGF2aW5nIDJweCB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nIHNlZW1zIHRvIGZpeCBhIGJ1ZyB3aGVyZSBDaHJvbWUgZ2V0cyBhbiBpbmNvcnJlY3RcbiAgICAvLyBtZWFzdXJlbWVudC4gV2UganVzdCBoYXZlIHRvIGFjY291bnQgZm9yIGl0IGxhdGVyIGFuZCBzdWJ0cmFjdCBpdCBvZmYgdGhlIGZpbmFsIHJlc3VsdC5cbiAgICBwYWRkaW5nOiAycHggMCAhaW1wb3J0YW50O1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8gVXNlZCB0byBnZW5lcmF0ZSBVSURzIGZvciBrZXlmcmFtZXMgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQgZmllbGQgYXV0b2ZpbGwgc3R5bGVzLlxuJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OiAwO1xuXG4vLyBNaXhpbiB1c2VkIHRvIGFwcGx5IGN1c3RvbSBiYWNrZ3JvdW5kIGFuZCBmb3JlZ3JvdW5kIGNvbG9ycyB0byBhbiBhdXRvZmlsbGVkIHRleHQgZmllbGQuXG4vLyBCYXNlZCBvbjogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjc4MTU0OS9cbi8vIHJlbW92aW5nLWlucHV0LWJhY2tncm91bmQtY29sb3VyLWZvci1jaHJvbWUtYXV0b2NvbXBsZXRlI2Fuc3dlci0zNzQzMjI2MFxuQG1peGluIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yKCRiYWNrZ3JvdW5kLCAkZm9yZWdyb3VuZDonJykge1xuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSB7XG4gICAgdG8ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICBAaWYgJGZvcmVncm91bmQgIT0gJycgeyBjb2xvcjogJGZvcmVncm91bmQ7IH1cbiAgICB9XG4gIH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH07XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgfVxuXG4gICYuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCxcbiAgICAgICAgICAgICAgICAgICAgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9O1xuICB9XG5cbiAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OlxuICAgICAgJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50ICsgMSAhZ2xvYmFsO1xufVxuXG5cbi8vIENvcmUgc3R5bGVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXBwbHkgbWF0ZXJpYWwgZGVzaWduIHRyZWF0bWVudHMgdG8gYW55IGVsZW1lbnQuXG4vLyBNZWRpYSBxdWVyaWVzXG4vLyBUT0RPKGpvc2VwaHBlcnJvdHQpOiBDaGFuZ2UgJG1hdC14c21hbGwgYW5kICRtYXQtc21hbGwgdXNhZ2VzIHRvIHJlbHkgb24gQnJlYWtwb2ludE9ic2VydmVyLFxuJG1hdC14c21hbGw6ICdtYXgtd2lkdGg6IDU5OXB4JztcbiRtYXQtc21hbGw6ICdtYXgtd2lkdGg6IDk1OXB4JztcblxuLy8gVE9ETzogUmV2aXNpdCBhbGwgei1pbmRpY2VzIGJlZm9yZSBiZXRhXG4vLyB6LWluZGV4IG1hc3RlciBsaXN0XG5cbiR6LWluZGV4LWZhYjogMjAgIWRlZmF1bHQ7XG4kei1pbmRleC1kcmF3ZXI6IDEwMCAhZGVmYXVsdDtcblxuLy8gR2xvYmFsIGNvbnN0YW50c1xuJHBpOiAzLjE0MTU5MjY1O1xuXG4vLyBQYWRkaW5nIGJldHdlZW4gaW5wdXQgdG9nZ2xlcyBhbmQgdGhlaXIgbGFiZWxzXG4kbWF0LXRvZ2dsZS1wYWRkaW5nOiA4cHggIWRlZmF1bHQ7XG4vLyBXaWR0aCBhbmQgaGVpZ2h0IG9mIGlucHV0IHRvZ2dsZXNcbiRtYXQtdG9nZ2xlLXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vIEVhc2luZyBDdXJ2ZXNcbi8vIFRPRE8oamVsYm91cm4pOiBhbGwgb2YgdGhlc2UgbmVlZCB0byBiZSByZXZpc2l0ZWRcblxuLy8gVGhlIGRlZmF1bHQgYW5pbWF0aW9uIGN1cnZlcyB1c2VkIGJ5IG1hdGVyaWFsIGRlc2lnbi5cbiRtYXQtbGluZWFyLW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKSAhZGVmYXVsdDtcbiRtYXQtZmFzdC1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWRlZmF1bHQ7XG4kbWF0LWZhc3Qtb3V0LWxpbmVhci1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpICFkZWZhdWx0O1xuXG4kZWFzZS1pbi1vdXQtY3VydmUtZnVuY3Rpb246IGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKSAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uOiA0MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2Utb3V0OiBhbGwgJHN3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uICRzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG5cbiRzd2lmdC1lYXNlLWluLWR1cmF0aW9uOiAzMDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMikgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbjogYWxsICRzd2lmdC1lYXNlLWluLWR1cmF0aW9uICRzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuJHN3aWZ0LWVhc2UtaW4tb3V0LWR1cmF0aW9uOiA1MDBtcyAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb246ICRlYXNlLWluLW91dC1jdXJ2ZS1mdW5jdGlvbiAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLWluLW91dDogYWxsICRzd2lmdC1lYXNlLWluLW91dC1kdXJhdGlvbiAkc3dpZnQtZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG4kc3dpZnQtbGluZWFyLWR1cmF0aW9uOiA4MG1zICFkZWZhdWx0O1xuJHN3aWZ0LWxpbmVhci10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhZGVmYXVsdDtcbiRzd2lmdC1saW5lYXI6IGFsbCAkc3dpZnQtbGluZWFyLWR1cmF0aW9uICRzd2lmdC1saW5lYXItdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG5cblxuLy8gQSBjb2xsZWN0aW9uIG9mIG1peGlucyBhbmQgQ1NTIGNsYXNzZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBhcHBseSBlbGV2YXRpb24gdG8gYSBtYXRlcmlhbFxuLy8gZWxlbWVudC5cbi8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vZW52aXJvbm1lbnQvZWxldmF0aW9uLmh0bWxcbi8vIEV4YW1wbGVzOlxuLy9cbi8vXG4vLyAubWF0LWZvbyB7XG4vLyAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDIpO1xuLy9cbi8vICAgJjphY3RpdmUge1xuLy8gICAgIEBpbmNsdWRlICRtYXQtZWxldmF0aW9uKDgpO1xuLy8gICB9XG4vLyB9XG4vL1xuLy8gPGRpdiBpZD1cImV4dGVybmFsLWNhcmRcIiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejJcIj48cD5Tb21lIGNvbnRlbnQ8L3A+PC9kaXY+XG4vL1xuLy8gRm9yIGFuIGV4cGxhbmF0aW9uIG9mIHRoZSBkZXNpZ24gYmVoaW5kIGhvdyBlbGV2YXRpb24gaXMgaW1wbGVtZW50ZWQsIHNlZSB0aGUgZGVzaWduIGRvYyBhdFxuLy8gaHR0cHM6Ly9nb28uZ2wvS3EwazlaLlxuXG4vLyBDb2xvcnMgZm9yIHVtYnJhLCBwZW51bWJyYSwgYW5kIGFtYmllbnQgc2hhZG93cy4gQXMgZGVzY3JpYmVkIGluIHRoZSBkZXNpZ24gZG9jLCBlYWNoIGVsZXZhdGlvblxuLy8gbGV2ZWwgaXMgY3JlYXRlZCB1c2luZyBhIHNldCBvZiAzIHNoYWRvdyB2YWx1ZXMsIG9uZSBmb3IgdW1icmEgKHRoZSBzaGFkb3cgcmVwcmVzZW50aW5nIHRoZVxuLy8gc3BhY2UgY29tcGxldGVseSBvYnNjdXJlZCBieSBhbiBvYmplY3QgcmVsYXRpdmUgdG8gaXRzIGxpZ2h0IHNvdXJjZSksIG9uZSBmb3IgcGVudW1icmEgKHRoZVxuLy8gc3BhY2UgcGFydGlhbGx5IG9ic2N1cmVkIGJ5IGFuIG9iamVjdCksIGFuZCBvbmUgZm9yIGFtYmllbnQgKHRoZSBzcGFjZSB3aGljaCBjb250YWlucyB0aGUgb2JqZWN0XG4vLyBpdHNlbGYpLiBGb3IgYSBmdXJ0aGVyIGV4cGxhbmF0aW9uIG9mIHRoZXNlIHRlcm1zIGFuZCB0aGVpciBtZWFuaW5ncywgc2VlXG4vLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VbWJyYSxfcGVudW1icmFfYW5kX2FudHVtYnJhLlxuXG4vLyBNYXBzIGZvciB0aGUgZGlmZmVyZW50IHNoYWRvdyBzZXRzIGFuZCB0aGVpciB2YWx1ZXMgd2l0aGluIGVhY2ggei1zcGFjZS4gVGhlc2UgdmFsdWVzIHdlcmVcbi8vIGNyZWF0ZWQgYnkgdGFraW5nIGEgZmV3IHJlZmVyZW5jZSBzaGFkb3cgc2V0cyBjcmVhdGVkIGJ5IEdvb2dsZSdzIERlc2lnbmVycyBhbmQgaW50ZXJwb2xhdGluZ1xuLy8gYWxsIG9mIHRoZSB2YWx1ZXMgYmV0d2VlbiB0aGVtLlxuXG5AZnVuY3Rpb24gX2dldC11bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMiksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDJweCAxcHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDNweCAxcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAzOiAnMHB4IDNweCAzcHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDJweCA0cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA1OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA2OiAnMHB4IDNweCA1cHggLTFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA3OiAnMHB4IDRweCA1cHggLTJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA4OiAnMHB4IDVweCA1cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA5OiAnMHB4IDVweCA2cHggLTNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMDogJzBweCA2cHggNnB4IC0zcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTE6ICcwcHggNnB4IDdweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDdweCA4cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMzogJzBweCA3cHggOHB4IC00cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTQ6ICcwcHggN3B4IDlweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDhweCA5cHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNjogJzBweCA4cHggMTBweCAtNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDhweCAxMXB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTg6ICcwcHggOXB4IDExcHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOTogJzBweCA5cHggMTJweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDEwcHggMTNweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIyOiAnMHB4IDEwcHggMTRweCAtNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDExcHggMTRweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDExcHggMTVweCAtN3B4ICN7JHNoYWRvdy1jb2xvcn0nXG4gICk7XG59XG5cbkBmdW5jdGlvbiBfZ2V0LXBlbnVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSB7XG4gICRzaGFkb3ctY29sb3I6IGlmKHR5cGUtb2YoJGNvbG9yKSA9PSBjb2xvciwgcmdiYSgkY29sb3IsICRvcGFjaXR5ICogMC4xNCksICRjb2xvcik7XG5cbiAgQHJldHVybiAoXG4gICAgMDogJzBweCAwcHggMHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxOiAnMHB4IDFweCAxcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI6ICcwcHggMnB4IDJweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMzogJzBweCAzcHggNHB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA0OiAnMHB4IDRweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDU6ICcwcHggNXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCA2cHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCA3cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCA4cHggMTBweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCA5cHggMTJweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggMTBweCAxNHB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMTogJzBweCAxMXB4IDE1cHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEyOiAnMHB4IDEycHggMTdweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggMTNweCAxOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNDogJzBweCAxNHB4IDIxcHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE1OiAnMHB4IDE1cHggMjJweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggMTZweCAyNHB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNzogJzBweCAxN3B4IDI2cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE4OiAnMHB4IDE4cHggMjhweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggMTlweCAyOXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMDogJzBweCAyMHB4IDMxcHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIxOiAnMHB4IDIxcHggMzNweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggMjJweCAzNXB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMzogJzBweCAyM3B4IDM2cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDI0OiAnMHB4IDI0cHggMzhweCAzcHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuQGZ1bmN0aW9uIF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMTIpLCAkY29sb3IpO1xuXG4gIEByZXR1cm4gKFxuICAgIDA6ICcwcHggMHB4IDBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTogJzBweCAxcHggM3B4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDFweCA1cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDM6ICcwcHggMXB4IDhweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNDogJzBweCAxcHggMTBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNTogJzBweCAxcHggMTRweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCAxcHggMThweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCAycHggMTZweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCAzcHggMTRweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCAzcHggMTZweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggNHB4IDE4cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDExOiAnMHB4IDRweCAyMHB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMjogJzBweCA1cHggMjJweCA0cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggNXB4IDI0cHggNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE0OiAnMHB4IDVweCAyNnB4IDRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNTogJzBweCA2cHggMjhweCA1cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggNnB4IDMwcHggNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE3OiAnMHB4IDZweCAzMnB4IDVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxODogJzBweCA3cHggMzRweCA2cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggN3B4IDM2cHggNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIwOiAnMHB4IDhweCAzOHB4IDdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMTogJzBweCA4cHggNDBweCA3cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjI6ICcwcHggOHB4IDQycHggN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIzOiAnMHB4IDlweCA0NHB4IDhweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyNDogJzBweCA5cHggNDZweCA4cHggI3skc2hhZG93LWNvbG9yfSdcbiAgKTtcbn1cblxuLy8gVGhlIGRlZmF1bHQgZHVyYXRpb24gdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb246IDI4MG1zICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBlYXNpbmcgdmFsdWUgZm9yIGVsZXZhdGlvbiB0cmFuc2l0aW9ucy5cbiRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkbWF0LWZhc3Qtb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uO1xuXG4vLyBUaGUgZGVmYXVsdCBjb2xvciBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IG9wYWNpdHkgc2NhbGluZyB2YWx1ZSBmb3IgZWxldmF0aW9uIHNoYWRvd3MuXG4kbWF0LWVsZXZhdGlvbi1vcGFjaXR5OiAxICFkZWZhdWx0O1xuXG4vLyBQcmVmaXggZm9yIGVsZXZhdGlvbi1yZWxhdGVkIHNlbGVjdG9ycy5cbiRfbWF0LWVsZXZhdGlvbi1wcmVmaXg6ICdtYXQtZWxldmF0aW9uLXonO1xuXG4vLyBBcHBsaWVzIHRoZSBjb3JyZWN0IGNzcyBydWxlcyB0byBhbiBlbGVtZW50IHRvIGdpdmUgaXQgdGhlIGVsZXZhdGlvbiBzcGVjaWZpZWQgYnkgJHpWYWx1ZS5cbi8vIFRoZSAkelZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNC5cbkBtaXhpbiBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsICRvcGFjaXR5OiAkbWF0LWVsZXZhdGlvbi1vcGFjaXR5KSB7XG4gIEBpZiB0eXBlLW9mKCR6VmFsdWUpICE9IG51bWJlciBvciBub3QgdW5pdGxlc3MoJHpWYWx1ZSkge1xuICAgIEBlcnJvciAnJHpWYWx1ZSBtdXN0IGJlIGEgdW5pdGxlc3MgbnVtYmVyJztcbiAgfVxuICBAaWYgJHpWYWx1ZSA8IDAgb3IgJHpWYWx1ZSA+IDI0IHtcbiAgICBAZXJyb3IgJyR6VmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0JztcbiAgfVxuXG4gIGJveC1zaGFkb3c6ICN7bWFwLWdldChfZ2V0LXVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSwgJHpWYWx1ZSl9LFxuICAgICAgICAgICAgICAje21hcC1nZXQoX2dldC1wZW51bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfSxcbiAgICAgICAgICAgICAgI3ttYXAtZ2V0KF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfTtcbn1cblxuQG1peGluIF9tYXQtdGhlbWUtZWxldmF0aW9uKCR6VmFsdWUsICR0aGVtZSwgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGVsZXZhdGlvbi1jb2xvcjogbWFwLWdldCgkZm9yZWdyb3VuZCwgZWxldmF0aW9uKTtcbiAgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0OiBpZigkZWxldmF0aW9uLWNvbG9yID09IG51bGwsICRtYXQtZWxldmF0aW9uLWNvbG9yLCAkZWxldmF0aW9uLWNvbG9yKTtcblxuICBAaW5jbHVkZSBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdCwgJG9wYWNpdHkpO1xufVxuXG4vLyBBcHBsaWVzIHRoZSBlbGV2YXRpb24gdG8gYW4gZWxlbWVudCBpbiBhIG1hbm5lciB0aGF0IGFsbG93c1xuLy8gY29uc3VtZXJzIHRvIG92ZXJyaWRlIGl0IHZpYSB0aGUgTWF0ZXJpYWwgZWxldmF0aW9uIGNsYXNzZXMuXG5AbWl4aW4gbWF0LW92ZXJyaWRhYmxlLWVsZXZhdGlvbihcbiAgICAkelZhbHVlLFxuICAgICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsXG4gICAgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJjpub3QoW2NsYXNzKj0nI3skX21hdC1lbGV2YXRpb24tcHJlZml4fSddKSB7XG4gICAgQGluY2x1ZGUgbWF0LWVsZXZhdGlvbigkelZhbHVlLCAkY29sb3IsICRvcGFjaXR5KTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJHRoZW1lLCAkb3BhY2l0eTogJG1hdC1lbGV2YXRpb24tb3BhY2l0eSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkZWxldmF0aW9uLWNvbG9yOiBtYXAtZ2V0KCRmb3JlZ3JvdW5kLCBlbGV2YXRpb24pO1xuICAkZWxldmF0aW9uLWNvbG9yLW9yLWRlZmF1bHQ6IGlmKCRlbGV2YXRpb24tY29sb3IgPT0gbnVsbCwgJG1hdC1lbGV2YXRpb24tY29sb3IsICRlbGV2YXRpb24tY29sb3IpO1xuXG4gIEBpbmNsdWRlIG1hdC1vdmVycmlkYWJsZS1lbGV2YXRpb24oJHpWYWx1ZSwgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0LCAkb3BhY2l0eSk7XG59XG5cbi8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCBhcyB0aGUgdmFsdWUgZm9yIGEgdHJhbnNpdGlvbiBwcm9wZXJ0eSBmb3IgZWxldmF0aW9uLlxuLy8gQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIGRpcmVjdGx5IGlzIHVzZWZ1bCBpbiBzaXR1YXRpb25zIHdoZXJlIGEgY29tcG9uZW50IG5lZWRzIHRvIHRyYW5zaXRpb25cbi8vIG1vcmUgdGhhbiBvbmUgcHJvcGVydHkuXG4vL1xuLy8gLmZvbyB7XG4vLyAgIHRyYW5zaXRpb246IG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1wcm9wZXJ0eS12YWx1ZSgpLCBvcGFjaXR5IDEwMG1zIGVhc2U7XG4vLyB9XG5AZnVuY3Rpb24gbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKFxuICAgICRkdXJhdGlvbjogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgICAkZWFzaW5nOiAkbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbikge1xuICBAcmV0dXJuIGJveC1zaGFkb3cgI3skZHVyYXRpb259ICN7JGVhc2luZ307XG59XG5cbi8vIEFwcGxpZXMgdGhlIGNvcnJlY3QgY3NzIHJ1bGVzIG5lZWRlZCB0byBoYXZlIGFuIGVsZW1lbnQgdHJhbnNpdGlvbiBiZXR3ZWVuIGVsZXZhdGlvbnMuXG4vLyBUaGlzIG1peGluIHNob3VsZCBiZSBhcHBsaWVkIHRvIGVsZW1lbnRzIHdob3NlIGVsZXZhdGlvbiB2YWx1ZXMgd2lsbCBjaGFuZ2UgZGVwZW5kaW5nIG9uIHRoZWlyXG4vLyBjb250ZXh0IChlLmcuIHdoZW4gYWN0aXZlIG9yIGRpc2FibGVkKS5cbi8vXG4vLyBOT1RFKHRyYXZpc2thdWZtYW4pOiBCb3RoIHRoaXMgbWl4aW4gYW5kIHRoZSBhYm92ZSBmdW5jdGlvbiB1c2UgZGVmYXVsdCBwYXJhbWV0ZXJzIHNvIHRoZXkgY2FuXG4vLyBiZSB1c2VkIGluIHRoZSBzYW1lIHdheSBieSBjbGllbnRzLlxuQG1peGluIG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbihcbiAgICAkZHVyYXRpb246ICRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICAgJGVhc2luZzogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pIHtcbiAgdHJhbnNpdGlvbjogbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXByb3BlcnR5LXZhbHVlKCRkdXJhdGlvbiwgJGVhc2luZyk7XG59XG5cbi8vIENvbG9yIHBhbGV0dGVzIGZyb20gdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbG9yL1xuLy9cbi8vIENvbnRyYXN0IGNvbG9ycyBhcmUgaGFyZC1jb2RlZCBiZWNhdXNlIGl0IGlzIHRvbyBkaWZmaWN1bHQgKHByb2JhYmx5IGltcG9zc2libGUpIHRvXG4vLyBjYWxjdWxhdGUgdGhlbS4gVGhlc2UgY29udHJhc3QgY29sb3JzIGFyZSBwdWxsZWQgZnJvbSB0aGUgcHVibGljIE1hdGVyaWFsIERlc2lnbiBzcGVjIHN3YXRjaGVzLlxuLy8gV2hpbGUgdGhlIGNvbnRyYXN0IGNvbG9ycyBpbiB0aGUgc3BlYyBhcmUgbm90IHByZXNjcmlwdGl2ZSwgd2UgdXNlIHRoZW0gZm9yIGNvbnZlbmllbmNlLlxuXG5cbi8vIEBkZXByZWNhdGVkIHJlbmFtZWQgdG8gJGRhcmstcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJGJsYWNrLTg3LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgcmVuYW1lZCB0byAkbGlnaHQtcHJpbWFyeS10ZXh0LlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTg3LW9wYWNpdHk6IHJnYmEod2hpdGUsIDAuODcpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRkYXJrLVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kYmxhY2stMTItb3BhY2l0eTogcmdiYShibGFjaywgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGxpZ2h0LVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kd2hpdGUtMTItb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4xMik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGRhcmstW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiRibGFjay02LW9wYWNpdHk6IHJnYmEoYmxhY2ssIDAuMDYpO1xuLy8gQGRlcHJlY2F0ZWQgdXNlICRsaWdodC1bc2Vjb25kYXJ5LXRleHQsZGlzYWJsZWQtdGV4dCxkaXZpZGVycyxmb2N1c2VkXSBpbnN0ZWFkLlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJHdoaXRlLTYtb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC4wNik7XG5cbiRkYXJrLXByaW1hcnktdGV4dDogcmdiYShibGFjaywgMC44Nyk7XG4kZGFyay1zZWNvbmRhcnktdGV4dDogcmdiYShibGFjaywgMC41NCk7XG4kZGFyay1kaXNhYmxlZC10ZXh0OiByZ2JhKGJsYWNrLCAwLjM4KTtcbiRkYXJrLWRpdmlkZXJzOiByZ2JhKGJsYWNrLCAwLjEyKTtcbiRkYXJrLWZvY3VzZWQ6IHJnYmEoYmxhY2ssIDAuMTIpO1xuJGxpZ2h0LXByaW1hcnktdGV4dDogd2hpdGU7XG4kbGlnaHQtc2Vjb25kYXJ5LXRleHQ6IHJnYmEod2hpdGUsIDAuNyk7XG4kbGlnaHQtZGlzYWJsZWQtdGV4dDogcmdiYSh3aGl0ZSwgMC41KTtcbiRsaWdodC1kaXZpZGVyczogcmdiYSh3aGl0ZSwgMC4xMik7XG4kbGlnaHQtZm9jdXNlZDogcmdiYSh3aGl0ZSwgMC4xMik7XG5cbiRtYXQtcmVkOiAoXG4gIDUwOiAjZmZlYmVlLFxuICAxMDA6ICNmZmNkZDIsXG4gIDIwMDogI2VmOWE5YSxcbiAgMzAwOiAjZTU3MzczLFxuICA0MDA6ICNlZjUzNTAsXG4gIDUwMDogI2Y0NDMzNixcbiAgNjAwOiAjZTUzOTM1LFxuICA3MDA6ICNkMzJmMmYsXG4gIDgwMDogI2M2MjgyOCxcbiAgOTAwOiAjYjcxYzFjLFxuICBBMTAwOiAjZmY4YTgwLFxuICBBMjAwOiAjZmY1MjUyLFxuICBBNDAwOiAjZmYxNzQ0LFxuICBBNzAwOiAjZDUwMDAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtcGluazogKFxuICA1MDogI2ZjZTRlYyxcbiAgMTAwOiAjZjhiYmQwLFxuICAyMDA6ICNmNDhmYjEsXG4gIDMwMDogI2YwNjI5MixcbiAgNDAwOiAjZWM0MDdhLFxuICA1MDA6ICNlOTFlNjMsXG4gIDYwMDogI2Q4MWI2MCxcbiAgNzAwOiAjYzIxODViLFxuICA4MDA6ICNhZDE0NTcsXG4gIDkwMDogIzg4MGU0ZixcbiAgQTEwMDogI2ZmODBhYixcbiAgQTIwMDogI2ZmNDA4MSxcbiAgQTQwMDogI2Y1MDA1NyxcbiAgQTcwMDogI2M1MTE2MixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXB1cnBsZTogKFxuICA1MDogI2YzZTVmNSxcbiAgMTAwOiAjZTFiZWU3LFxuICAyMDA6ICNjZTkzZDgsXG4gIDMwMDogI2JhNjhjOCxcbiAgNDAwOiAjYWI0N2JjLFxuICA1MDA6ICM5YzI3YjAsXG4gIDYwMDogIzhlMjRhYSxcbiAgNzAwOiAjN2IxZmEyLFxuICA4MDA6ICM2YTFiOWEsXG4gIDkwMDogIzRhMTQ4YyxcbiAgQTEwMDogI2VhODBmYyxcbiAgQTIwMDogI2UwNDBmYixcbiAgQTQwMDogI2Q1MDBmOSxcbiAgQTcwMDogI2FhMDBmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtZGVlcC1wdXJwbGU6IChcbiAgNTA6ICNlZGU3ZjYsXG4gIDEwMDogI2QxYzRlOSxcbiAgMjAwOiAjYjM5ZGRiLFxuICAzMDA6ICM5NTc1Y2QsXG4gIDQwMDogIzdlNTdjMixcbiAgNTAwOiAjNjczYWI3LFxuICA2MDA6ICM1ZTM1YjEsXG4gIDcwMDogIzUxMmRhOCxcbiAgODAwOiAjNDUyN2EwLFxuICA5MDA6ICMzMTFiOTIsXG4gIEExMDA6ICNiMzg4ZmYsXG4gIEEyMDA6ICM3YzRkZmYsXG4gIEE0MDA6ICM2NTFmZmYsXG4gIEE3MDA6ICM2MjAwZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWluZGlnbzogKFxuICA1MDogI2U4ZWFmNixcbiAgMTAwOiAjYzVjYWU5LFxuICAyMDA6ICM5ZmE4ZGEsXG4gIDMwMDogIzc5ODZjYixcbiAgNDAwOiAjNWM2YmMwLFxuICA1MDA6ICMzZjUxYjUsXG4gIDYwMDogIzM5NDlhYixcbiAgNzAwOiAjMzAzZjlmLFxuICA4MDA6ICMyODM1OTMsXG4gIDkwMDogIzFhMjM3ZSxcbiAgQTEwMDogIzhjOWVmZixcbiAgQTIwMDogIzUzNmRmZSxcbiAgQTQwMDogIzNkNWFmZSxcbiAgQTcwMDogIzMwNGZmZSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtYmx1ZTogKFxuICA1MDogI2UzZjJmZCxcbiAgMTAwOiAjYmJkZWZiLFxuICAyMDA6ICM5MGNhZjksXG4gIDMwMDogIzY0YjVmNixcbiAgNDAwOiAjNDJhNWY1LFxuICA1MDA6ICMyMTk2ZjMsXG4gIDYwMDogIzFlODhlNSxcbiAgNzAwOiAjMTk3NmQyLFxuICA4MDA6ICMxNTY1YzAsXG4gIDkwMDogIzBkNDdhMSxcbiAgQTEwMDogIzgyYjFmZixcbiAgQTIwMDogIzQ0OGFmZixcbiAgQTQwMDogIzI5NzlmZixcbiAgQTcwMDogIzI5NjJmZixcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWxpZ2h0LWJsdWU6IChcbiAgNTA6ICNlMWY1ZmUsXG4gIDEwMDogI2IzZTVmYyxcbiAgMjAwOiAjODFkNGZhLFxuICAzMDA6ICM0ZmMzZjcsXG4gIDQwMDogIzI5YjZmNixcbiAgNTAwOiAjMDNhOWY0LFxuICA2MDA6ICMwMzliZTUsXG4gIDcwMDogIzAyODhkMSxcbiAgODAwOiAjMDI3N2JkLFxuICA5MDA6ICMwMTU3OWIsXG4gIEExMDA6ICM4MGQ4ZmYsXG4gIEEyMDA6ICM0MGM0ZmYsXG4gIEE0MDA6ICMwMGIwZmYsXG4gIEE3MDA6ICMwMDkxZWEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtY3lhbjogKFxuICA1MDogI2UwZjdmYSxcbiAgMTAwOiAjYjJlYmYyLFxuICAyMDA6ICM4MGRlZWEsXG4gIDMwMDogIzRkZDBlMSxcbiAgNDAwOiAjMjZjNmRhLFxuICA1MDA6ICMwMGJjZDQsXG4gIDYwMDogIzAwYWNjMSxcbiAgNzAwOiAjMDA5N2E3LFxuICA4MDA6ICMwMDgzOGYsXG4gIDkwMDogIzAwNjA2NCxcbiAgQTEwMDogIzg0ZmZmZixcbiAgQTIwMDogIzE4ZmZmZixcbiAgQTQwMDogIzAwZTVmZixcbiAgQTcwMDogIzAwYjhkNCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LXRlYWw6IChcbiAgNTA6ICNlMGYyZjEsXG4gIDEwMDogI2IyZGZkYixcbiAgMjAwOiAjODBjYmM0LFxuICAzMDA6ICM0ZGI2YWMsXG4gIDQwMDogIzI2YTY5YSxcbiAgNTAwOiAjMDA5Njg4LFxuICA2MDA6ICMwMDg5N2IsXG4gIDcwMDogIzAwNzk2YixcbiAgODAwOiAjMDA2OTVjLFxuICA5MDA6ICMwMDRkNDAsXG4gIEExMDA6ICNhN2ZmZWIsXG4gIEEyMDA6ICM2NGZmZGEsXG4gIEE0MDA6ICMxZGU5YjYsXG4gIEE3MDA6ICMwMGJmYTUsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1ncmVlbjogKFxuICA1MDogI2U4ZjVlOSxcbiAgMTAwOiAjYzhlNmM5LFxuICAyMDA6ICNhNWQ2YTcsXG4gIDMwMDogIzgxYzc4NCxcbiAgNDAwOiAjNjZiYjZhLFxuICA1MDA6ICM0Y2FmNTAsXG4gIDYwMDogIzQzYTA0NyxcbiAgNzAwOiAjMzg4ZTNjLFxuICA4MDA6ICMyZTdkMzIsXG4gIDkwMDogIzFiNWUyMCxcbiAgQTEwMDogI2I5ZjZjYSxcbiAgQTIwMDogIzY5ZjBhZSxcbiAgQTQwMDogIzAwZTY3NixcbiAgQTcwMDogIzAwYzg1MyxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGlnaHQtZ3JlZW46IChcbiAgNTA6ICNmMWY4ZTksXG4gIDEwMDogI2RjZWRjOCxcbiAgMjAwOiAjYzVlMWE1LFxuICAzMDA6ICNhZWQ1ODEsXG4gIDQwMDogIzljY2M2NSxcbiAgNTAwOiAjOGJjMzRhLFxuICA2MDA6ICM3Y2IzNDIsXG4gIDcwMDogIzY4OWYzOCxcbiAgODAwOiAjNTU4YjJmLFxuICA5MDA6ICMzMzY5MWUsXG4gIEExMDA6ICNjY2ZmOTAsXG4gIEEyMDA6ICNiMmZmNTksXG4gIEE0MDA6ICM3NmZmMDMsXG4gIEE3MDA6ICM2NGRkMTcsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGltZTogKFxuICA1MDogI2Y5ZmJlNyxcbiAgMTAwOiAjZjBmNGMzLFxuICAyMDA6ICNlNmVlOWMsXG4gIDMwMDogI2RjZTc3NSxcbiAgNDAwOiAjZDRlMTU3LFxuICA1MDA6ICNjZGRjMzksXG4gIDYwMDogI2MwY2EzMyxcbiAgNzAwOiAjYWZiNDJiLFxuICA4MDA6ICM5ZTlkMjQsXG4gIDkwMDogIzgyNzcxNyxcbiAgQTEwMDogI2Y0ZmY4MSxcbiAgQTIwMDogI2VlZmY0MSxcbiAgQTQwMDogI2M2ZmYwMCxcbiAgQTcwMDogI2FlZWEwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQteWVsbG93OiAoXG4gIDUwOiAjZmZmZGU3LFxuICAxMDA6ICNmZmY5YzQsXG4gIDIwMDogI2ZmZjU5ZCxcbiAgMzAwOiAjZmZmMTc2LFxuICA0MDA6ICNmZmVlNTgsXG4gIDUwMDogI2ZmZWIzYixcbiAgNjAwOiAjZmRkODM1LFxuICA3MDA6ICNmYmMwMmQsXG4gIDgwMDogI2Y5YTgyNSxcbiAgOTAwOiAjZjU3ZjE3LFxuICBBMTAwOiAjZmZmZjhkLFxuICBBMjAwOiAjZmZmZjAwLFxuICBBNDAwOiAjZmZlYTAwLFxuICBBNzAwOiAjZmZkNjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWFtYmVyOiAoXG4gIDUwOiAjZmZmOGUxLFxuICAxMDA6ICNmZmVjYjMsXG4gIDIwMDogI2ZmZTA4MixcbiAgMzAwOiAjZmZkNTRmLFxuICA0MDA6ICNmZmNhMjgsXG4gIDUwMDogI2ZmYzEwNyxcbiAgNjAwOiAjZmZiMzAwLFxuICA3MDA6ICNmZmEwMDAsXG4gIDgwMDogI2ZmOGYwMCxcbiAgOTAwOiAjZmY2ZjAwLFxuICBBMTAwOiAjZmZlNTdmLFxuICBBMjAwOiAjZmZkNzQwLFxuICBBNDAwOiAjZmZjNDAwLFxuICBBNzAwOiAjZmZhYjAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LW9yYW5nZTogKFxuICA1MDogI2ZmZjNlMCxcbiAgMTAwOiAjZmZlMGIyLFxuICAyMDA6ICNmZmNjODAsXG4gIDMwMDogI2ZmYjc0ZCxcbiAgNDAwOiAjZmZhNzI2LFxuICA1MDA6ICNmZjk4MDAsXG4gIDYwMDogI2ZiOGMwMCxcbiAgNzAwOiAjZjU3YzAwLFxuICA4MDA6ICNlZjZjMDAsXG4gIDkwMDogI2U2NTEwMCxcbiAgQTEwMDogI2ZmZDE4MCxcbiAgQTIwMDogI2ZmYWI0MCxcbiAgQTQwMDogI2ZmOTEwMCxcbiAgQTcwMDogI2ZmNmQwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogYmxhY2ssXG4gIClcbik7XG5cbiRtYXQtZGVlcC1vcmFuZ2U6IChcbiAgNTA6ICNmYmU5ZTcsXG4gIDEwMDogI2ZmY2NiYyxcbiAgMjAwOiAjZmZhYjkxLFxuICAzMDA6ICNmZjhhNjUsXG4gIDQwMDogI2ZmNzA0MyxcbiAgNTAwOiAjZmY1NzIyLFxuICA2MDA6ICNmNDUxMWUsXG4gIDcwMDogI2U2NGExOSxcbiAgODAwOiAjZDg0MzE1LFxuICA5MDA6ICNiZjM2MGMsXG4gIEExMDA6ICNmZjllODAsXG4gIEEyMDA6ICNmZjZlNDAsXG4gIEE0MDA6ICNmZjNkMDAsXG4gIEE3MDA6ICNkZDJjMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWJyb3duOiAoXG4gIDUwOiAjZWZlYmU5LFxuICAxMDA6ICNkN2NjYzgsXG4gIDIwMDogI2JjYWFhNCxcbiAgMzAwOiAjYTE4ODdmLFxuICA0MDA6ICM4ZDZlNjMsXG4gIDUwMDogIzc5NTU0OCxcbiAgNjAwOiAjNmQ0YzQxLFxuICA3MDA6ICM1ZDQwMzcsXG4gIDgwMDogIzRlMzQyZSxcbiAgOTAwOiAjM2UyNzIzLFxuICBBMTAwOiAjZDdjY2M4LFxuICBBMjAwOiAjYmNhYWE0LFxuICBBNDAwOiAjOGQ2ZTYzLFxuICBBNzAwOiAjNWQ0MDM3LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWdyZXk6IChcbiAgNTA6ICNmYWZhZmEsXG4gIDEwMDogI2Y1ZjVmNSxcbiAgMjAwOiAjZWVlZWVlLFxuICAzMDA6ICNlMGUwZTAsXG4gIDQwMDogI2JkYmRiZCxcbiAgNTAwOiAjOWU5ZTllLFxuICA2MDA6ICM3NTc1NzUsXG4gIDcwMDogIzYxNjE2MSxcbiAgODAwOiAjNDI0MjQyLFxuICA5MDA6ICMyMTIxMjEsXG4gIEExMDA6ICNmZmZmZmYsXG4gIEEyMDA6ICNlZWVlZWUsXG4gIEE0MDA6ICNiZGJkYmQsXG4gIEE3MDA6ICM2MTYxNjEsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuLy8gQWxpYXMgZm9yIGFsdGVybmF0ZSBzcGVsbGluZy5cbiRtYXQtZ3JheTogJG1hdC1ncmV5O1xuXG4kbWF0LWJsdWUtZ3JleTogKFxuICA1MDogI2VjZWZmMSxcbiAgMTAwOiAjY2ZkOGRjLFxuICAyMDA6ICNiMGJlYzUsXG4gIDMwMDogIzkwYTRhZSxcbiAgNDAwOiAjNzg5MDljLFxuICA1MDA6ICM2MDdkOGIsXG4gIDYwMDogIzU0NmU3YSxcbiAgNzAwOiAjNDU1YTY0LFxuICA4MDA6ICMzNzQ3NGYsXG4gIDkwMDogIzI2MzIzOCxcbiAgQTEwMDogI2NmZDhkYyxcbiAgQTIwMDogI2IwYmVjNSxcbiAgQTQwMDogIzc4OTA5YyxcbiAgQTcwMDogIzQ1NWE2NCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4vLyBBbGlhcyBmb3IgYWx0ZXJuYXRlIHNwZWxsaW5nLlxuJG1hdC1ibHVlLWdyYXk6ICRtYXQtYmx1ZS1ncmV5O1xuXG5cbi8vIEJhY2tncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBhcHAtYmFyOiAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgMTAwKSxcbiAgYmFja2dyb3VuZDogbWFwX2dldCgkbWF0LWdyZXksIDUwKSxcbiAgaG92ZXI6ICAgICAgcmdiYShibGFjaywgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIHdoaXRlLFxuICBkaWFsb2c6ICAgICB3aGl0ZSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKGJsYWNrLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogd2hpdGUsXG4gIGZvY3VzZWQtYnV0dG9uOiAkZGFyay1mb2N1c2VkLFxuICBzZWxlY3RlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBzZWxlY3RlZC1kaXNhYmxlZC1idXR0b246IG1hcF9nZXQoJG1hdC1ncmV5LCA0MDApLFxuICBkaXNhYmxlZC1idXR0b24tdG9nZ2xlOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMjAwKSxcbiAgdW5zZWxlY3RlZC1jaGlwOiBtYXBfZ2V0KCRtYXQtZ3JleSwgMzAwKSxcbiAgZGlzYWJsZWQtbGlzdC1vcHRpb246IG1hcF9nZXQoJG1hdC1ncmV5LCAyMDApLFxuKTtcblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiRtYXQtZGFyay10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IGJsYWNrLFxuICBhcHAtYmFyOiAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgYmFja2dyb3VuZDogIzMwMzAzMCxcbiAgaG92ZXI6ICAgICAgcmdiYSh3aGl0ZSwgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIG1hcF9nZXQoJG1hdC1ncmV5LCA4MDApLFxuICBkaWFsb2c6ICAgICBtYXBfZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKHdoaXRlLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDgwMCksXG4gIGZvY3VzZWQtYnV0dG9uOiAkbGlnaHQtZm9jdXNlZCxcbiAgc2VsZWN0ZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uOiBtYXBfZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZTogYmxhY2ssXG4gIHVuc2VsZWN0ZWQtY2hpcDogbWFwX2dldCgkbWF0LWdyZXksIDcwMCksXG4gIGRpc2FibGVkLWxpc3Qtb3B0aW9uOiBibGFjayxcbik7XG5cbi8vIEZvcmVncm91bmQgcGFsZXR0ZSBmb3IgbGlnaHQgdGhlbWVzLlxuJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kOiAoXG4gIGJhc2U6ICAgICAgICAgICAgICBibGFjayxcbiAgZGl2aWRlcjogICAgICAgICAgICRkYXJrLWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGRhcmstZGl2aWRlcnMsXG4gIGRpc2FibGVkOiAgICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246ICAgcmdiYShibGFjaywgMC4yNiksXG4gIGRpc2FibGVkLXRleHQ6ICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246ICAgICAgICAgYmxhY2ssXG4gIGhpbnQtdGV4dDogICAgICAgICAkZGFyay1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGRhcmstc2Vjb25kYXJ5LXRleHQsXG4gIGljb246ICAgICAgICAgICAgICByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgaWNvbnM6ICAgICAgICAgICAgIHJnYmEoYmxhY2ssIDAuNTQpLFxuICB0ZXh0OiAgICAgICAgICAgICAgcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1taW46ICAgICAgICByZ2JhKGJsYWNrLCAwLjg3KSxcbiAgc2xpZGVyLW9mZjogICAgICAgIHJnYmEoYmxhY2ssIDAuMjYpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYShibGFjaywgMC4zOCksXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGRhcmsgdGhlbWVzLlxuJG1hdC1kYXJrLXRoZW1lLWZvcmVncm91bmQ6IChcbiAgYmFzZTogICAgICAgICAgICAgIHdoaXRlLFxuICBkaXZpZGVyOiAgICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXZpZGVyczogICAgICAgICAgJGxpZ2h0LWRpdmlkZXJzLFxuICBkaXNhYmxlZDogICAgICAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGRpc2FibGVkLWJ1dHRvbjogICByZ2JhKHdoaXRlLCAwLjMpLFxuICBkaXNhYmxlZC10ZXh0OiAgICAgJGxpZ2h0LWRpc2FibGVkLXRleHQsXG4gIGVsZXZhdGlvbjogICAgICAgICBibGFjayxcbiAgaGludC10ZXh0OiAgICAgICAgICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBzZWNvbmRhcnktdGV4dDogICAgJGxpZ2h0LXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiAgICAgICAgICAgICAgd2hpdGUsXG4gIGljb25zOiAgICAgICAgICAgICB3aGl0ZSxcbiAgdGV4dDogICAgICAgICAgICAgIHdoaXRlLFxuICBzbGlkZXItbWluOiAgICAgICAgd2hpdGUsXG4gIHNsaWRlci1vZmY6ICAgICAgICByZ2JhKHdoaXRlLCAwLjMpLFxuICBzbGlkZXItb2ZmLWFjdGl2ZTogcmdiYSh3aGl0ZSwgMC4zKSxcbik7XG5cblxuXG4vLyBGb3IgYSBnaXZlbiBodWUgaW4gYSBwYWxldHRlLCByZXR1cm4gdGhlIGNvbnRyYXN0IGNvbG9yIGZyb20gdGhlIG1hcCBvZiBjb250cmFzdCBwYWxldHRlcy5cbi8vIEBwYXJhbSAkY29sb3ItbWFwXG4vLyBAcGFyYW0gJGh1ZVxuQGZ1bmN0aW9uIG1hdC1jb250cmFzdCgkcGFsZXR0ZSwgJGh1ZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkcGFsZXR0ZSwgY29udHJhc3QpLCAkaHVlKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgbWFwIG9mIGh1ZXMgdG8gY29sb3JzIGZvciBhIHRoZW1lLiBUaGlzIGlzIHVzZWQgdG8gZGVmaW5lIGEgdGhlbWUgcGFsZXR0ZSBpbiB0ZXJtc1xuLy8gb2YgdGhlIE1hdGVyaWFsIERlc2lnbiBodWVzLlxuLy8gQHBhcmFtICRjb2xvci1tYXBcbi8vIEBwYXJhbSAkcHJpbWFyeVxuLy8gQHBhcmFtICRsaWdodGVyXG5AZnVuY3Rpb24gbWF0LXBhbGV0dGUoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQ6IDUwMCwgJGxpZ2h0ZXI6IDEwMCwgJGRhcmtlcjogNzAwLCAkdGV4dDogJGRlZmF1bHQpIHtcbiAgJHJlc3VsdDogbWFwX21lcmdlKCRiYXNlLXBhbGV0dGUsIChcbiAgICBkZWZhdWx0OiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRkZWZhdWx0KSxcbiAgICBsaWdodGVyOiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICRsaWdodGVyKSxcbiAgICBkYXJrZXI6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlciksXG4gICAgdGV4dDogbWFwLWdldCgkYmFzZS1wYWxldHRlLCAkdGV4dCksXG5cbiAgICBkZWZhdWx0LWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQpLFxuICAgIGxpZ2h0ZXItY29udHJhc3Q6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkbGlnaHRlciksXG4gICAgZGFya2VyLWNvbnRyYXN0OiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGRhcmtlcilcbiAgKSk7XG5cbiAgLy8gRm9yIGVhY2ggaHVlIGluIHRoZSBwYWxldHRlLCBhZGQgYSBcIi1jb250cmFzdFwiIGNvbG9yIHRvIHRoZSBtYXAuXG4gIEBlYWNoICRodWUsICRjb2xvciBpbiAkYmFzZS1wYWxldHRlIHtcbiAgICAkcmVzdWx0OiBtYXBfbWVyZ2UoJHJlc3VsdCwgKFxuICAgICAgJyN7JGh1ZX0tY29udHJhc3QnOiBtYXQtY29udHJhc3QoJGJhc2UtcGFsZXR0ZSwgJGh1ZSlcbiAgICApKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuXG4vLyBHZXRzIGEgY29sb3IgZnJvbSBhIHRoZW1lIHBhbGV0dGUgKHRoZSBvdXRwdXQgb2YgbWF0LXBhbGV0dGUpLlxuLy8gVGhlIGh1ZSBjYW4gYmUgb25lIG9mIHRoZSBzdGFuZGFyZCB2YWx1ZXMgKDUwMCwgQTQwMCwgZXRjLiksIG9uZSBvZiB0aGUgdGhyZWUgcHJlY29uZmlndXJlZFxuLy8gaHVlcyAoZGVmYXVsdCwgbGlnaHRlciwgZGFya2VyKSwgb3IgYW55IG9mIHRoZSBhZm9yZW1lbnRpb25lZCBwcmVmaXhlZCB3aXRoIFwiLWNvbnRyYXN0XCIuXG4vL1xuLy8gQHBhcmFtICRjb2xvci1tYXAgVGhlIHRoZW1lIHBhbGV0dGUgKG91dHB1dCBvZiBtYXQtcGFsZXR0ZSkuXG4vLyBAcGFyYW0gJGh1ZSBUaGUgaHVlIGZyb20gdGhlIHBhbGV0dGUgdG8gdXNlLiBJZiB0aGlzIGlzIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLCBpdCB3aWxsXG4vLyAgICAgYmUgdHJlYXRlZCBhcyBvcGFjaXR5LlxuLy8gQHBhcmFtICRvcGFjaXR5IFRoZSBhbHBoYSBjaGFubmVsIHZhbHVlIGZvciB0aGUgY29sb3IuXG5AZnVuY3Rpb24gbWF0LWNvbG9yKCRwYWxldHRlLCAkaHVlOiBkZWZhdWx0LCAkb3BhY2l0eTogbnVsbCkge1xuICAvLyBJZiBodWVLZXkgaXMgYSBudW1iZXIgYmV0d2VlbiB6ZXJvIGFuZCBvbmUsIHRoZW4gaXQgYWN0dWFsbHkgY29udGFpbnMgYW5cbiAgLy8gb3BhY2l0eSB2YWx1ZSwgc28gcmVjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCB0aGUgZGVmYXVsdCBodWUgYW5kIHRoYXQgZ2l2ZW4gb3BhY2l0eS5cbiAgQGlmIHR5cGUtb2YoJGh1ZSkgPT0gbnVtYmVyIGFuZCAkaHVlID49IDAgYW5kICRodWUgPD0gMSB7XG4gICAgQHJldHVybiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQsICRodWUpO1xuICB9XG5cbiAgJGNvbG9yOiBtYXAtZ2V0KCRwYWxldHRlLCAkaHVlKTtcblxuICBAaWYgKHR5cGUtb2YoJGNvbG9yKSAhPSBjb2xvcikge1xuICAgIC8vIElmIHRoZSAkY29sb3IgcmVzb2x2ZWQgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIGEgY29sb3IgKGUuZy4gYSBDU1MgdmFyaWFibGUpLFxuICAgIC8vIHdlIGNhbid0IGFwcGx5IHRoZSBvcGFjaXR5IGFueXdheSBzbyB3ZSByZXR1cm4gdGhlIHZhbHVlIGFzIGlzLCBvdGhlcndpc2UgU2FzcyBjYW5cbiAgICAvLyB0aHJvdyBhbiBlcnJvciBvciBvdXRwdXQgc29tZXRoaW5nIGludmFsaWQuXG4gICAgQHJldHVybiAkY29sb3I7XG4gIH1cblxuICBAcmV0dXJuIHJnYmEoJGNvbG9yLCBpZigkb3BhY2l0eSA9PSBudWxsLCBvcGFjaXR5KCRjb2xvciksICRvcGFjaXR5KSk7XG59XG5cblxuLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBvYmplY3QgZm9yIGEgbGlnaHQgdGhlbWUgdG8gYmUgZ2l2ZW4gdG8gaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLlxuQGZ1bmN0aW9uIG1hdC1saWdodC10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogJHdhcm4sXG4gICAgaXMtZGFyazogZmFsc2UsXG4gICAgZm9yZWdyb3VuZDogJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kLFxuICAgIGJhY2tncm91bmQ6ICRtYXQtbGlnaHQtdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuXG4vLyBDcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBmb3IgYSBkYXJrIHRoZW1lIHRvIGJlIGdpdmVuIHRvIGluZGl2aWR1YWwgY29tcG9uZW50IHRoZW1lIG1peGlucy5cbkBmdW5jdGlvbiBtYXQtZGFyay10aGVtZSgkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogJHdhcm4sXG4gICAgaXMtZGFyazogdHJ1ZSxcbiAgICBmb3JlZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtZm9yZWdyb3VuZCxcbiAgICBiYWNrZ3JvdW5kOiAkbWF0LWRhcmstdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuXG5cbiRtYXQtcmlwcGxlLWNvbG9yLW9wYWNpdHk6IDAuMTtcblxuQG1peGluIG1hdC1yaXBwbGUoKSB7XG5cbiAgLy8gVGhlIGhvc3QgZWxlbWVudCBvZiBhbiBtYXQtcmlwcGxlIGRpcmVjdGl2ZSBzaG91bGQgYWx3YXlzIGhhdmUgYSBwb3NpdGlvbiBvZiBcImFic29sdXRlXCIgb3JcbiAgLy8gXCJyZWxhdGl2ZVwiIHNvIHRoYXQgdGhlIHJpcHBsZXMgaW5zaWRlIGFyZSBjb3JyZWN0bHkgcG9zaXRpb25lZCByZWxhdGl2ZWx5IHRvIHRoZSBjb250YWluZXIuXG4gIC5tYXQtcmlwcGxlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gQnkgZGVmYXVsdCwgZXZlcnkgcmlwcGxlIGNvbnRhaW5lciBzaG91bGQgaGF2ZSBwb3NpdGlvbjogcmVsYXRpdmUgaW4gZmF2b3Igb2YgY3JlYXRpbmcgYW5cbiAgICAvLyBlYXN5IEFQSSBmb3IgZGV2ZWxvcGVycyB1c2luZyB0aGUgTWF0UmlwcGxlIGRpcmVjdGl2ZS5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAubWF0LXJpcHBsZS5tYXQtcmlwcGxlLXVuYm91bmRlZCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSwgdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuXG4gICAgLy8gSW4gaGlnaCBjb250cmFzdCBtb2RlIHRoZSByaXBwbGUgaXMgb3BhcXVlLCBjYXVzaW5nIGl0IHRvIG9ic3RydWN0IHRoZSBjb250ZW50LlxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8qIFRoZW1lIGZvciB0aGUgcmlwcGxlIGVsZW1lbnRzLiovXG5AbWl4aW4gbWF0LXJpcHBsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcF9nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQtYmFzZTogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgLy8gSWYgdGhlIHJpcHBsZSBjb2xvciBpcyByZXNvbHZlcyB0byBhIGNvbG9yICp0eXBlKiwgd2UgY2FuIHVzZSBpdCBkaXJlY3RseSwgb3RoZXJ3aXNlXG4gICAgLy8gKGUuZy4gaXQgcmVzb2x2ZXMgdG8gYSBDU1MgdmFyaWFibGUpIHdlIGZhbGwgYmFjayB0byB1c2luZyB0aGUgY29sb3IgYW5kIHNldHRpbmcgYW4gb3BhY2l0eS5cbiAgICBAaWYgKHR5cGUtb2YoJGZvcmVncm91bmQtYmFzZSkgPT0gY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGZvcmVncm91bmQtYmFzZSwgJG1hdC1yaXBwbGUtY29sb3Itb3BhY2l0eSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JlZ3JvdW5kLWJhc2U7XG4gICAgICBvcGFjaXR5OiAkbWF0LXJpcHBsZS1jb2xvci1vcGFjaXR5O1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gVXRpbGl0eSBmb3IgZmV0Y2hpbmcgYSBuZXN0ZWQgdmFsdWUgZnJvbSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCAkbmFtZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkY29uZmlnLCAkbGV2ZWwpLCAkbmFtZSk7XG59XG5cbi8vIEdldHMgdGhlIGZvbnQgc2l6ZSBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtZm9udC1zaXplKCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXNpemUpO1xufVxuXG4vLyBHZXRzIHRoZSBsaW5lIGhlaWdodCBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKSB7XG4gIEByZXR1cm4gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGxpbmUtaGVpZ2h0KTtcbn1cblxuLy8gR2V0cyB0aGUgZm9udCB3ZWlnaHQgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBmb250LXdlaWdodCk7XG59XG5cbi8vIEdldHMgdGhlIGxldHRlciBzcGFjaW5nIGZvciBhIGxldmVsIGluc2lkZSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgbGV0dGVyLXNwYWNpbmcpO1xufVxuXG4vLyBHZXRzIHRoZSBmb250LWZhbWlseSBmcm9tIGEgdHlwb2dyYXBoeSBjb25maWcgYW5kIHJlbW92ZXMgdGhlIHF1b3RlcyBhcm91bmQgaXQuXG5AZnVuY3Rpb24gbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsICRsZXZlbDogbnVsbCkge1xuICAkZm9udC1mYW1pbHk6IG1hcC1nZXQoJGNvbmZpZywgZm9udC1mYW1pbHkpO1xuXG4gIEBpZiAkbGV2ZWwgIT0gbnVsbCB7XG4gICAgJGZvbnQtZmFtaWx5OiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgZm9udC1mYW1pbHkpO1xuICB9XG5cbiAgLy8gR3VhcmQgYWdhaW5zdCB1bnF1b3Rpbmcgbm9uLXN0cmluZyB2YWx1ZXMsIGJlY2F1c2UgaXQncyBkZXByZWNhdGVkLlxuICBAcmV0dXJuIGlmKHR5cGUtb2YoJGZvbnQtZmFtaWx5KSA9PSBzdHJpbmcsIHVucXVvdGUoJGZvbnQtZmFtaWx5KSwgJGZvbnQtZmFtaWx5KTtcbn1cblxuLy8gT3V0cHV0cyB0aGUgc2hvcnRoYW5kIGBmb250YCBDU1MgcHJvcGVydHksIGJhc2VkIG9uIGEgc2V0IG9mIHR5cG9ncmFwaHkgdmFsdWVzLiBGYWxscyBiYWNrIHRvXG4vLyB0aGUgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIGlmIGEgdmFsdWUgdGhhdCBpc24ndCBhbGxvd2VkIGluIHRoZSBzaG9ydGhhbmQgaXMgcGFzc2VkIGluLlxuQG1peGluIG1hdC10eXBvZ3JhcGh5LWZvbnQtc2hvcnRoYW5kKCRmb250LXNpemUsICRmb250LXdlaWdodCwgJGxpbmUtaGVpZ2h0LCAkZm9udC1mYW1pbHkpIHtcbiAgLy8gSWYgYW55IG9mIHRoZSB2YWx1ZXMgYXJlIHNldCB0byBgaW5oZXJpdGAsIHdlIGNhbid0IHVzZSB0aGUgc2hvcnRoYW5kXG4gIC8vIHNvIHdlIGZhbGwgYmFjayB0byBwYXNzaW5nIGluIHRoZSBpbmRpdmlkdWFsIHByb3BlcnRpZXMuXG4gIEBpZiAoJGZvbnQtc2l6ZSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IGluaGVyaXQgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gaW5oZXJpdCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBpbmhlcml0IG9yXG4gICAgICAgJGZvbnQtc2l6ZSA9PSBudWxsIG9yXG4gICAgICAgJGZvbnQtd2VpZ2h0ID09IG51bGwgb3JcbiAgICAgICAkbGluZS1oZWlnaHQgPT0gbnVsbCBvclxuICAgICAgICRmb250LWZhbWlseSA9PSBudWxsKSB7XG5cbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIE90aGVyd2lzZSB1c2UgdGhlIHNob3J0aGFuZCBgZm9udGAsIGJlY2F1c2UgaXQncyB0aGUgbGVhc3QgYW1vdW50IG9mIGJ5dGVzLiBOb3RlXG4gICAgLy8gdGhhdCB3ZSBuZWVkIHRvIHVzZSBpbnRlcnBvbGF0aW9uIGZvciBgZm9udC1zaXplL2xpbmUtaGVpZ2h0YCBpbiBvcmRlciB0byBwcmV2ZW50XG4gICAgLy8gU2FzcyBmcm9tIGRpdmlkaW5nIHRoZSB0d28gdmFsdWVzLlxuICAgIGZvbnQ6ICRmb250LXdlaWdodCAjeyRmb250LXNpemV9LyN7JGxpbmUtaGVpZ2h0fSAkZm9udC1mYW1pbHk7XG4gIH1cbn1cblxuLy8gQ29udmVydHMgYSB0eXBvZ3JhcGh5IGxldmVsIGludG8gQ1NTIHN0eWxlcy5cbkBtaXhpbiBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgJGxldmVsKSB7XG4gICRmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgJGxldmVsKTtcbiAgJGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgJGxldmVsKTtcblxuICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZCgkZm9udC1zaXplLCAkZm9udC13ZWlnaHQsICRsaW5lLWhlaWdodCwgJGZvbnQtZmFtaWx5KTtcbiAgbGV0dGVyLXNwYWNpbmc6IG1hdC1sZXR0ZXItc3BhY2luZygkY29uZmlnLCAkbGV2ZWwpO1xufVxuXG5cbkBtaXhpbiBtYXQtb3B0aW9uLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAubWF0LW9wdGlvbiB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmOmhvdmVyOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCksXG4gICAgJjpmb2N1czpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgIH1cblxuICAgIC8vIEluIG11bHRpcGxlIG1vZGUgdGhlcmUgaXMgYSBjaGVja2JveCB0byBzaG93IHRoYXQgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC5cbiAgICAmLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuXG4gICAgJi5tYXQtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtb3B0aW9uLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LW9wdGlvbi10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1vcHRpb24ge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTIpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTIpO1xuICB9XG59XG5cblxuXG5AbWl4aW4gbWF0LXBzZXVkby1jaGVja2JveC10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG5cbiAgLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogV2hpbGUgdGhlIHNwZWMgY2FsbHMgZm9yIHRyYW5zbHVjZW50IGJsYWNrcy93aGl0ZXMgZm9yIGRpc2FibGVkIGNvbG9ycyxcbiAgLy8gdGhpcyBkb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBlbGVtZW50cyBsYXllcmVkIG9uIHRvcCBvZiBvbmUgYW5vdGhlci4gVG8gZ2V0IGFyb3VuZCB0aGlzIHdlXG4gIC8vIGJsZW5kIHRoZSBjb2xvcnMgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGJhc2UgY29sb3IgYW5kIHRoZSB0aGVtZSBiYWNrZ3JvdW5kLlxuICAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrOiAjNjg2ODY4O1xuICAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodDogI2IwYjBiMDtcbiAgJGRpc2FibGVkLWNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyaywgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQpO1xuICAkY29sb3JlZC1ib3gtc2VsZWN0b3I6ICcubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLCAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlJztcblxuICAubWF0LXBzZXVkby1jaGVja2JveCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCksIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICBjb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICB9XG5cbiAgLy8gRGVmYXVsdCB0byB0aGUgYWNjZW50IGNvbG9yLiBOb3RlIHRoYXQgdGhlIHBzZXVkbyBjaGVja2JveGVzIGFyZSBtZWFudCB0byBpbmhlcml0IHRoZVxuICAvLyB0aGVtZSBmcm9tIHRoZWlyIHBhcmVudCwgcmF0aGVyIHRoYW4gaW1wbGVtZW50aW5nIHRoZWlyIG93biB0aGVtaW5nLCB3aGljaCBpcyB3aHkgd2VcbiAgLy8gZG9uJ3QgYXR0YWNoIHRvIHRoZSBgbWF0LSpgIGNsYXNzZXMuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUsXG4gIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KSk7XG4gIH1cblxuICAubWF0LXByaW1hcnkgLm1hdC1wc2V1ZG8tY2hlY2tib3gtY2hlY2tlZCxcbiAgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSkpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIHdhcm4pKTtcbiAgfVxuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgICYubWF0LXBzZXVkby1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuICB9XG59XG5cblxuXG4vLyBSZXByZXNlbnRzIGEgdHlwb2dyYXBoeSBsZXZlbCBmcm9tIHRoZSBNYXRlcmlhbCBkZXNpZ24gc3BlYy5cbkBmdW5jdGlvbiBtYXQtdHlwb2dyYXBoeS1sZXZlbChcbiAgJGZvbnQtc2l6ZSxcbiAgJGxpbmUtaGVpZ2h0OiAkZm9udC1zaXplLFxuICAkZm9udC13ZWlnaHQ6IDQwMCxcbiAgJGZvbnQtZmFtaWx5OiBudWxsLFxuICAkbGV0dGVyLXNwYWNpbmc6IG51bGwpIHtcblxuICBAcmV0dXJuIChcbiAgICBmb250LXNpemU6ICRmb250LXNpemUsXG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodCxcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LFxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHksXG4gICAgbGV0dGVyLXNwYWNpbmc6ICRsZXR0ZXItc3BhY2luZ1xuICApO1xufVxuXG4vLyBSZXByZXNlbnRzIGEgY29sbGVjdGlvbiBvZiB0eXBvZ3JhcGh5IGxldmVscy5cbi8vIERlZmF1bHRzIGNvbWUgZnJvbSBodHRwczovL21hdGVyaWFsLmlvL2d1aWRlbGluZXMvc3R5bGUvdHlwb2dyYXBoeS5odG1sXG4vLyBOb3RlOiBUaGUgc3BlYyBkb2Vzbid0IG1lbnRpb24gbGV0dGVyIHNwYWNpbmcuIFRoZSB2YWx1ZXMgaGVyZSBjb21lIGZyb21cbi8vIGV5ZWJhbGxpbmcgaXQgdW50aWwgaXQgbG9va2VkIGV4YWN0bHkgbGlrZSB0aGUgc3BlYyBleGFtcGxlcy5cbkBmdW5jdGlvbiBtYXQtdHlwb2dyYXBoeS1jb25maWcoXG4gICRmb250LWZhbWlseTogICAnUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWYnLFxuICAkZGlzcGxheS00OiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTEycHgsIDExMnB4LCAzMDAsICRsZXR0ZXItc3BhY2luZzogLTAuMDVlbSksXG4gICRkaXNwbGF5LTM6ICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCg1NnB4LCA1NnB4LCA0MDAsICRsZXR0ZXItc3BhY2luZzogLTAuMDJlbSksXG4gICRkaXNwbGF5LTI6ICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCg0NXB4LCA0OHB4LCA0MDAsICRsZXR0ZXItc3BhY2luZzogLTAuMDA1ZW0pLFxuICAkZGlzcGxheS0xOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMzRweCwgNDBweCwgNDAwKSxcbiAgJGhlYWRsaW5lOiAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDI0cHgsIDMycHgsIDQwMCksXG4gICR0aXRsZTogICAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgyMHB4LCAzMnB4LCA1MDApLFxuICAkc3ViaGVhZGluZy0yOiAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTZweCwgMjhweCwgNDAwKSxcbiAgJHN1YmhlYWRpbmctMTogIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE1cHgsIDI0cHgsIDQwMCksXG4gICRib2R5LTI6ICAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNHB4LCAyNHB4LCA1MDApLFxuICAkYm9keS0xOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMjBweCwgNDAwKSxcbiAgJGNhcHRpb246ICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDEycHgsIDIwcHgsIDQwMCksXG4gICRidXR0b246ICAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNHB4LCAxNHB4LCA1MDApLFxuICAvLyBMaW5lLWhlaWdodCBtdXN0IGJlIHVuaXQtbGVzcyBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplLlxuICAkaW5wdXQ6ICAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoaW5oZXJpdCwgMS4xMjUsIDQwMClcbikge1xuXG4gIC8vIERlY2xhcmUgYW4gaW5pdGlhbCBtYXAgd2l0aCBhbGwgb2YgdGhlIGxldmVscy5cbiAgJGNvbmZpZzogKFxuICAgIGRpc3BsYXktNDogICAgICAkZGlzcGxheS00LFxuICAgIGRpc3BsYXktMzogICAgICAkZGlzcGxheS0zLFxuICAgIGRpc3BsYXktMjogICAgICAkZGlzcGxheS0yLFxuICAgIGRpc3BsYXktMTogICAgICAkZGlzcGxheS0xLFxuICAgIGhlYWRsaW5lOiAgICAgICAkaGVhZGxpbmUsXG4gICAgdGl0bGU6ICAgICAgICAgICR0aXRsZSxcbiAgICBzdWJoZWFkaW5nLTI6ICAgJHN1YmhlYWRpbmctMixcbiAgICBzdWJoZWFkaW5nLTE6ICAgJHN1YmhlYWRpbmctMSxcbiAgICBib2R5LTI6ICAgICAgICAgJGJvZHktMixcbiAgICBib2R5LTE6ICAgICAgICAgJGJvZHktMSxcbiAgICBjYXB0aW9uOiAgICAgICAgJGNhcHRpb24sXG4gICAgYnV0dG9uOiAgICAgICAgICRidXR0b24sXG4gICAgaW5wdXQ6ICAgICAgICAgICRpbnB1dCxcbiAgKTtcblxuICAvLyBMb29wIHRocm91Z2ggdGhlIGxldmVscyBhbmQgc2V0IHRoZSBgZm9udC1mYW1pbHlgIG9mIHRoZSBvbmVzIHRoYXQgZG9uJ3QgaGF2ZSBvbmUgdG8gdGhlIGJhc2UuXG4gIC8vIE5vdGUgdGhhdCBTYXNzIGNhbid0IG1vZGlmeSBtYXBzIGluIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IHdlIG5lZWQgdG8gbWVyZ2UgYW5kIHJlLWFzc2lnbi5cbiAgQGVhY2ggJGtleSwgJGxldmVsIGluICRjb25maWcge1xuICAgIEBpZiBtYXAtZ2V0KCRsZXZlbCwgZm9udC1mYW1pbHkpID09IG51bGwge1xuICAgICAgJG5ldy1sZXZlbDogbWFwLW1lcmdlKCRsZXZlbCwgKGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHkpKTtcbiAgICAgICRjb25maWc6IG1hcC1tZXJnZSgkY29uZmlnLCAoJGtleTogJG5ldy1sZXZlbCkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFkZCB0aGUgYmFzZSBmb250IGZhbWlseSB0byB0aGUgY29uZmlnLlxuICBAcmV0dXJuIG1hcC1tZXJnZSgkY29uZmlnLCAoZm9udC1mYW1pbHk6ICRmb250LWZhbWlseSkpO1xufVxuXG4vLyBBZGRzIHRoZSBiYXNlIHR5cG9ncmFwaHkgc3R5bGVzLCBiYXNlZCBvbiBhIGNvbmZpZy5cbkBtaXhpbiBtYXQtYmFzZS10eXBvZ3JhcGh5KCRjb25maWcsICRzZWxlY3RvcjogJy5tYXQtdHlwb2dyYXBoeScpIHtcbiAgLm1hdC1oMSwgLm1hdC1oZWFkbGluZSwgI3skc2VsZWN0b3J9IGgxIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgaGVhZGxpbmUpO1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gIH1cblxuICAubWF0LWgyLCAubWF0LXRpdGxlLCAjeyRzZWxlY3Rvcn0gaDIge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCB0aXRsZSk7XG4gICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgfVxuXG4gIC5tYXQtaDMsIC5tYXQtc3ViaGVhZGluZy0yLCAjeyRzZWxlY3Rvcn0gaDMge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBzdWJoZWFkaW5nLTIpO1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gIH1cblxuICAubWF0LWg0LCAubWF0LXN1YmhlYWRpbmctMSwgI3skc2VsZWN0b3J9IGg0IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgc3ViaGVhZGluZy0xKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLy8gTm90ZTogdGhlIHNwZWMgZG9lc24ndCBoYXZlIGFueXRoaW5nIHRoYXQgd291bGQgY29ycmVzcG9uZCB0byBoNSBhbmQgaDYsIGJ1dCB3ZSBhZGQgdGhlc2UgZm9yXG4gIC8vIGNvbnNpc3RlbmN5LiBUaGUgZm9udCBzaXplcyBjb21lIGZyb20gdGhlIENocm9tZSB1c2VyIGFnZW50IHN0eWxlcyB3aGljaCBoYXZlIGg1IGF0IDAuODNlbVxuICAvLyBhbmQgaDYgYXQgMC42N2VtLlxuICAubWF0LWg1LCAjeyRzZWxlY3Rvcn0gaDUge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWZvbnQtc2hvcnRoYW5kKFxuICAgICAgIC8vIGNhbGMgaXMgdXNlZCBoZXJlIHRvIHN1cHBvcnQgY3NzIHZhcmlhYmxlc1xuICAgICAgY2FsYygje21hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKX0gKiAwLjgzKSxcbiAgICAgIG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGJvZHktMSksXG4gICAgICBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKVxuICAgICk7XG5cbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICB9XG5cbiAgLm1hdC1oNiwgI3skc2VsZWN0b3J9IGg2IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZChcbiAgICAgICAvLyBjYWxjIGlzIHVzZWQgaGVyZSB0byBzdXBwb3J0IGNzcyB2YXJpYWJsZXNcbiAgICAgIGNhbGMoI3ttYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSl9ICogMC42NyksXG4gICAgICBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSlcbiAgICApO1xuXG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgfVxuXG4gIC5tYXQtYm9keS1zdHJvbmcsIC5tYXQtYm9keS0yIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtYm9keSwgLm1hdC1ib2R5LTEsICN7JHNlbGVjdG9yfSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMSk7XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbjogMCAwIDEycHg7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbWFsbCwgLm1hdC1jYXB0aW9uIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgY2FwdGlvbik7XG4gIH1cblxuICAubWF0LWRpc3BsYXktNCwgI3skc2VsZWN0b3J9IC5tYXQtZGlzcGxheS00IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgZGlzcGxheS00KTtcbiAgICBtYXJnaW46IDAgMCA1NnB4O1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTMsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktMyB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktMyk7XG4gICAgbWFyZ2luOiAwIDAgNjRweDtcbiAgfVxuXG4gIC5tYXQtZGlzcGxheS0yLCAjeyRzZWxlY3Rvcn0gLm1hdC1kaXNwbGF5LTIge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBkaXNwbGF5LTIpO1xuICAgIG1hcmdpbjogMCAwIDY0cHg7XG4gIH1cblxuICAubWF0LWRpc3BsYXktMSwgI3skc2VsZWN0b3J9IC5tYXQtZGlzcGxheS0xIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgZGlzcGxheS0xKTtcbiAgICBtYXJnaW46IDAgMCA2NHB4O1xuICB9XG59XG5cblxuXG5cbkBtaXhpbiBtYXQtYXV0b2NvbXBsZXRlLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuXG4gIC5tYXQtYXV0b2NvbXBsZXRlLXBhbmVsIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig0LCAkdGhlbWUpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAvLyBTZWxlY3RlZCBvcHRpb25zIGluIGF1dG9jb21wbGV0ZXMgc2hvdWxkIG5vdCBiZSBncmF5LCBidXQgd2VcbiAgICAvLyBvbmx5IHdhbnQgdG8gb3ZlcnJpZGUgdGhlIGJhY2tncm91bmQgZm9yIHNlbGVjdGVkIG9wdGlvbnMgaWZcbiAgICAvLyB0aGV5IGFyZSAqbm90KiBpbiBob3ZlciBvciBmb2N1cyBzdGF0ZS4gVGhpcyBjaGFuZ2UgaGFzIHRvIGJlXG4gICAgLy8gbWFkZSBoZXJlIGJlY2F1c2UgYmFzZSBvcHRpb24gc3R5bGVzIGFyZSBzaGFyZWQgYmV0d2VlbiB0aGVcbiAgICAvLyBhdXRvY29tcGxldGUgYW5kIHRoZSBzZWxlY3QuXG4gICAgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LWFjdGl2ZSk6bm90KDpob3Zlcikge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcblxuICAgICAgJjpub3QoLm1hdC1vcHRpb24tZGlzYWJsZWQpIHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuQG1peGluIG1hdC1hdXRvY29tcGxldGUtdHlwb2dyYXBoeSgkY29uZmlnKSB7IH1cblxuLy8gVGhpcyBjb250YWlucyBhbGwgb2YgdGhlIHN0eWxlcyBmb3IgdGhlIGJhZGdlXG4vLyByYXRoZXIgdGhhbiBqdXN0IHRoZSBjb2xvci90aGVtZSBiZWNhdXNlIG9mXG4vLyBubyBzdHlsZSBzaGVldCBzdXBwb3J0IGZvciBkaXJlY3RpdmVzLlxuXG5cblxuXG5cbiRtYXQtYmFkZ2UtZm9udC1zaXplOiAxMnB4O1xuJG1hdC1iYWRnZS1mb250LXdlaWdodDogNjAwO1xuJG1hdC1iYWRnZS1kZWZhdWx0LXNpemU6IDIycHggIWRlZmF1bHQ7XG4kbWF0LWJhZGdlLXNtYWxsLXNpemU6ICRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplIC0gNjtcbiRtYXQtYmFkZ2UtbGFyZ2Utc2l6ZTogJG1hdC1iYWRnZS1kZWZhdWx0LXNpemUgKyA2O1xuXG4vLyBNaXhpbiBmb3IgYnVpbGRpbmcgb2Zmc2V0IGdpdmVuIGRpZmZlcmVudCBzaXplc1xuQG1peGluIF9tYXQtYmFkZ2Utc2l6ZSgkc2l6ZSkge1xuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIHdpZHRoOiAkc2l6ZTtcbiAgICBoZWlnaHQ6ICRzaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkc2l6ZTtcbiAgfVxuXG4gICYubWF0LWJhZGdlLWFib3ZlIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgdG9wOiAtJHNpemUgLyAyO1xuICAgIH1cbiAgfVxuXG4gICYubWF0LWJhZGdlLWJlbG93IHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgYm90dG9tOiAtJHNpemUgLyAyO1xuICAgIH1cbiAgfVxuXG4gICYubWF0LWJhZGdlLWJlZm9yZSB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGxlZnQ6IC0kc2l6ZTtcbiAgICB9XG4gIH1cblxuICBbZGlyPSdydGwnXSAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IC0kc2l6ZTtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1hZnRlciB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIHJpZ2h0OiAtJHNpemU7XG4gICAgfVxuICB9XG5cbiAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IC0kc2l6ZTtcbiAgICB9XG4gIH1cblxuICAmLm1hdC1iYWRnZS1vdmVybGFwIHtcbiAgICAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgbGVmdDogLSRzaXplIC8gMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBbZGlyPSdydGwnXSAmLm1hdC1iYWRnZS1iZWZvcmUge1xuICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgcmlnaHQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgW2Rpcj0ncnRsJ10gJi5tYXQtYmFkZ2UtYWZ0ZXIge1xuICAgICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGxlZnQ6IC0kc2l6ZSAvIDI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtYmFkZ2UtdGhlbWUoJHRoZW1lKSB7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRwcmltYXJ5KTtcblxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAgIG91dGxpbmU6IHNvbGlkIDFweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZS1hY2NlbnQge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2Utd2FybiB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIGRlZmF1bHQtY29udHJhc3QpO1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAubWF0LWJhZGdlLWhpZGRlbiB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZS1kaXNhYmxlZCB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgICRhcHAtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnYmFja2dyb3VuZCcpO1xuICAgICAgJGJhZGdlLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLWJ1dHRvbik7XG5cbiAgICAgIC8vIFRoZSBkaXNhYmxlZCBjb2xvciB1c3VhbGx5IGhhcyBzb21lIGtpbmQgb2Ygb3BhY2l0eSwgYnV0IGJlY2F1c2UgdGhlIGJhZGdlIGlzIG92ZXJsYXllZFxuICAgICAgLy8gb24gdG9wIG9mIHNvbWV0aGluZyBlbHNlLCBpdCB3b24ndCBsb29rIGdvb2QgaWYgaXQncyBvcGFxdWUuIElmIGl0IGlzIGEgY29sb3IgKnR5cGUqLFxuICAgICAgLy8gd2UgY29udmVydCBpdCBpbnRvIGEgc29saWQgY29sb3IgYnkgdGFraW5nIHRoZSBvcGFjaXR5IGZyb20gdGhlIHJnYmEgdmFsdWUgYW5kIHVzaW5nXG4gICAgICAvLyB0aGUgdmFsdWUgdG8gZGV0ZXJtaW5lIHRoZSBwZXJjZW50YWdlIG9mIHRoZSBiYWNrZ3JvdW5kIHRvIHB1dCBpbnRvIGZvcmVncm91bmQgd2hlblxuICAgICAgLy8gbWl4aW5nIHRoZSBjb2xvcnMgdG9nZXRoZXIuXG4gICAgICBAaWYgKHR5cGUtb2YoJGJhZGdlLWNvbG9yKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYXBwLWJhY2tncm91bmQpID09IGNvbG9yKSB7XG4gICAgICAgICRiYWRnZS1vcGFjaXR5OiBvcGFjaXR5KCRiYWRnZS1jb2xvcik7XG4gICAgICAgIGJhY2tncm91bmQ6IG1peCgkYXBwLWJhY2tncm91bmQsIHJnYmEoJGJhZGdlLWNvbG9yLCAxKSwgKDEgLSAkYmFkZ2Utb3BhY2l0eSkgKiAxMDAlKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGJhZGdlLWNvbG9yO1xuICAgICAgfVxuXG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjYpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gIC5uZy1hbmltYXRlLWRpc2FibGVkIC5tYXQtYmFkZ2UtY29udGVudCxcbiAgLm1hdC1iYWRnZS1jb250ZW50Ll9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gVGhlIGFjdGl2ZSBjbGFzcyBpcyBhZGRlZCBhZnRlciB0aGUgZWxlbWVudCBpcyBhZGRlZFxuICAvLyBzbyBpdCBjYW4gYW5pbWF0ZSBzY2FsZSB0byBkZWZhdWx0XG4gIC5tYXQtYmFkZ2UtY29udGVudC5tYXQtYmFkZ2UtYWN0aXZlIHtcbiAgICAvLyBTY2FsZSB0byBgbm9uZWAgaW5zdGVhZCBvZiBgMWAgdG8gYXZvaWQgYmx1cnJ5IHRleHQgaW4gc29tZSBicm93c2Vycy5cbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAubWF0LWJhZGdlLXNtYWxsIHtcbiAgICBAaW5jbHVkZSBfbWF0LWJhZGdlLXNpemUoJG1hdC1iYWRnZS1zbWFsbC1zaXplKTtcbiAgfVxuICAubWF0LWJhZGdlLW1lZGl1bSB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2UtZGVmYXVsdC1zaXplKTtcbiAgfVxuICAubWF0LWJhZGdlLWxhcmdlIHtcbiAgICBAaW5jbHVkZSBfbWF0LWJhZGdlLXNpemUoJG1hdC1iYWRnZS1sYXJnZS1zaXplKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJhZGdlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIGZvbnQtd2VpZ2h0OiAkbWF0LWJhZGdlLWZvbnQtd2VpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJG1hdC1iYWRnZS1mb250LXNpemU7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtYmFkZ2Utc21hbGwgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAvLyBTZXQgdGhlIGZvbnQgc2l6ZSB0byA3NSUgb2YgdGhlIG9yaWdpbmFsLlxuICAgIGZvbnQtc2l6ZTogJG1hdC1iYWRnZS1mb250LXNpemUgKiAwLjc1O1xuICB9XG5cbiAgLm1hdC1iYWRnZS1sYXJnZSAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgIGZvbnQtc2l6ZTogJG1hdC1iYWRnZS1mb250LXNpemUgKiAyO1xuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC1ib3R0b20tc2hlZXQtdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1ib3R0b20tc2hlZXQtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigxNiwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGRpYWxvZyk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1ib3R0b20tc2hlZXQtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtYm90dG9tLXNoZWV0LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuXG4kX21hdC1idXR0b24tcmlwcGxlLW9wYWNpdHk6IDAuMTtcblxuLy8gQXBwbGllcyBhIGZvY3VzIHN0eWxlIHRvIGFuIG1hdC1idXR0b24gZWxlbWVudCBmb3IgZWFjaCBvZiB0aGUgc3VwcG9ydGVkIHBhbGV0dGVzLlxuQG1peGluIF9tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXktY29sb3IoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gICYubWF0LXByaW1hcnkgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgfVxuXG4gICYubWF0LWFjY2VudCAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gIH1cblxuICAmLm1hdC13YXJuIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2Fybik7XG4gIH1cblxuICAmW2Rpc2FibGVkXSAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1idXR0b24tcmlwcGxlLWNvbG9yKCR0aGVtZSwgJGh1ZSwgJG9wYWNpdHk6ICRfbWF0LWJ1dHRvbi1yaXBwbGUtb3BhY2l0eSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAmLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgJGh1ZSwgJG9wYWNpdHkpO1xuICB9XG5cbiAgJi5tYXQtYWNjZW50IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cblxuICAmLm1hdC13YXJuIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2FybiwgJGh1ZSwgJG9wYWNpdHkpO1xuICB9XG59XG5cbi8vIEFwcGxpZXMgYSBwcm9wZXJ0eSB0byBhbiBtYXQtYnV0dG9uIGVsZW1lbnQgZm9yIGVhY2ggb2YgdGhlIHN1cHBvcnRlZCBwYWxldHRlcy5cbkBtaXhpbiBfbWF0LWJ1dHRvbi10aGVtZS1wcm9wZXJ0eSgkdGhlbWUsICRwcm9wZXJ0eSwgJGh1ZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAmLm1hdC1wcmltYXJ5IHtcbiAgICAjeyRwcm9wZXJ0eX06IG1hdC1jb2xvcigkcHJpbWFyeSwgJGh1ZSk7XG4gIH1cbiAgJi5tYXQtYWNjZW50IHtcbiAgICAjeyRwcm9wZXJ0eX06IG1hdC1jb2xvcigkYWNjZW50LCAkaHVlKTtcbiAgfVxuICAmLm1hdC13YXJuIHtcbiAgICAjeyRwcm9wZXJ0eX06IG1hdC1jb2xvcigkd2FybiwgJGh1ZSk7XG4gIH1cblxuICAmLm1hdC1wcmltYXJ5LCAmLm1hdC1hY2NlbnQsICYubWF0LXdhcm4sICZbZGlzYWJsZWRdIHtcbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAkcGFsZXR0ZTogaWYoJHByb3BlcnR5ID09ICdjb2xvcicsICRmb3JlZ3JvdW5kLCAkYmFja2dyb3VuZCk7XG4gICAgICAjeyRwcm9wZXJ0eX06IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGlzYWJsZWQtYnV0dG9uKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1idXR0b24tdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtYnV0dG9uLCAubWF0LWljb24tYnV0dG9uLCAubWF0LXN0cm9rZWQtYnV0dG9uIHtcbiAgICAvLyBCdXR0b25zIHdpdGhvdXQgYSBiYWNrZ3JvdW5kIGNvbG9yIHNob3VsZCBpbmhlcml0IHRoZSBmb250IGNvbG9yLiBUaGlzIGlzIG5lY2Vzc2FyeSB0b1xuICAgIC8vIGVuc3VyZSB0aGF0IHRoZSBidXR0b24gaXMgcmVhZGFibGUgb24gY3VzdG9tIGJhY2tncm91bmQgY29sb3JzLiBJdCdzIHdyb25nIHRvIGFsd2F5cyBhc3N1bWVcbiAgICAvLyB0aGF0IHRob3NlIGJ1dHRvbnMgYXJlIGFsd2F5cyBwbGFjZWQgaW5zaWRlIG9mIGNvbnRhaW5lcnMgd2l0aCB0aGUgZGVmYXVsdCBiYWNrZ3JvdW5kXG4gICAgLy8gY29sb3Igb2YgdGhlIHRoZW1lIChlLmcuIHRoZW1lZCB0b29sYmFycykuXG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi10aGVtZS1wcm9wZXJ0eSgkdGhlbWUsICdjb2xvcicsIHRleHQpO1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXktY29sb3IoJHRoZW1lKTtcblxuICAgIC8vIFNldHVwIHRoZSByaXBwbGUgY29sb3IgdG8gYmUgYmFzZWQgb24gdGhlIHRleHQgY29sb3IuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSByaXBwbGVzXG4gICAgLy8gYXJlIG1hdGNoaW5nIHdpdGggdGhlIGN1cnJlbnQgdGhlbWUgcGFsZXR0ZSBhbmQgYXJlIGluIGNvbnRyYXN0IHRvIHRoZSBiYWNrZ3JvdW5kIGNvbG9yXG4gICAgLy8gKGUuZyBpbiB0aGVtZWQgdG9vbGJhcnMpLlxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgb3BhY2l0eTogJF9tYXQtYnV0dG9uLXJpcHBsZS1vcGFjaXR5O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQ6IG1hcF9nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuICB9XG5cbiAgLy8gTm90ZTogdGhpcyBuZWVkcyBhIGJpdCBleHRyYSBzcGVjaWZpY2l0eSwgYmVjYXVzZSB3ZSdyZSBub3QgZ3VhcmFudGVlZCB0aGUgaW5jbHVzaW9uXG4gIC8vIG9yZGVyIG9mIHRoZSB0aGVtZSBzdHlsZXMgYW5kIHRoZSBidXR0b24gcmVzZXQgbWF5IGVuZCB1cCByZXNldHRpbmcgdGhpcyBhcyB3ZWxsLlxuICAubWF0LXN0cm9rZWQtYnV0dG9uOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1mbGF0LWJ1dHRvbiwgLm1hdC1yYWlzZWQtYnV0dG9uLCAubWF0LWZhYiwgLm1hdC1taW5pLWZhYiB7XG4gICAgLy8gRGVmYXVsdCBmb250IGFuZCBiYWNrZ3JvdW5kIGNvbG9yIHdoZW4gbm90IHVzaW5nIGFueSBjb2xvciBwYWxldHRlLlxuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgcmFpc2VkLWJ1dHRvbik7XG5cbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi10aGVtZS1wcm9wZXJ0eSgkdGhlbWUsICdjb2xvcicsIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXRoZW1lLXByb3BlcnR5KCR0aGVtZSwgJ2JhY2tncm91bmQtY29sb3InLCBkZWZhdWx0KTtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1yaXBwbGUtY29sb3IoJHRoZW1lLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxuXG4gIC5tYXQtc3Ryb2tlZC1idXR0b24sIC5tYXQtZmxhdC1idXR0b24ge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gIH1cblxuICAubWF0LXJhaXNlZC1idXR0b24ge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDIsICR0aGVtZSk7XG5cbiAgICAmOm5vdChbZGlzYWJsZWRdKTphY3RpdmUge1xuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oOCwgJHRoZW1lKTtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigwLCAkdGhlbWUpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZmFiLCAubWF0LW1pbmktZmFiIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig2LCAkdGhlbWUpO1xuXG4gICAgJjpub3QoW2Rpc2FibGVkXSk6YWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDEyLCAkdGhlbWUpO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDAsICR0aGVtZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWJ1dHRvbiwgLm1hdC1yYWlzZWQtYnV0dG9uLCAubWF0LWljb24tYnV0dG9uLCAubWF0LXN0cm9rZWQtYnV0dG9uLFxuICAubWF0LWZsYXQtYnV0dG9uLCAubWF0LWZhYiwgLm1hdC1taW5pLWZhYiB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYnV0dG9uKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYnV0dG9uKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJ1dHRvbik7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWJ1dHRvbi10b2dnbGUtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRkaXZpZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLFxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtZWxldmF0aW9uKDIsICR0aGVtZSk7XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhbG9uZS5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkLFxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaGludC10ZXh0KTtcblxuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZS1mb2N1cy1vdmVybGF5IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZm9jdXNlZC1idXR0b24pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBmb2N1c2VkLWJ1dHRvbiwgMSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBib3JkZXItbGVmdDogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG5cbiAgW2Rpcj0ncnRsJ10gLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQgLm1hdC1idXR0b24tdG9nZ2xlICsgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCAkZGl2aWRlci1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkLm1hdC1idXR0b24tdG9nZ2xlLXZlcnRpY2FsIHtcbiAgICAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICBib3JkZXItdG9wOiBzb2xpZCAxcHggJGRpdmlkZXItY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgc2VsZWN0ZWQtYnV0dG9uKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG5cbiAgICAmLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24pO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZSk7XG5cbiAgICAmLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICB9XG5cbiAgICAmLm1hdC1idXR0b24tdG9nZ2xlLWNoZWNrZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBzZWxlY3RlZC1kaXNhYmxlZC1idXR0b24pO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBib3JkZXI6IHNvbGlkIDFweCAkZGl2aWRlci1jb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJ1dHRvbi10b2dnbGUtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxufVxuXG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWNhcmQtdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1jYXJkIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigxLCAkdGhlbWUpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAvLyBOZWVkcyBleHRyYSBzcGVjaWZpY2l0eSB0byBiZSBhYmxlIHRvIG92ZXJyaWRlIHRoZSBlbGV2YXRpb24gc2VsZWN0b3JzLlxuICAgICYubWF0LWNhcmQtZmxhdCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigwLCAkdGhlbWUpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FyZC1zdWJ0aXRsZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtY2FyZC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1jYXJkIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1jYXJkLXRpdGxlIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGhlYWRsaW5lKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIHRpdGxlKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhcmQtaGVhZGVyIC5tYXQtY2FyZC10aXRsZSB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHRpdGxlKTtcbiAgfVxuXG4gIC5tYXQtY2FyZC1zdWJ0aXRsZSxcbiAgLm1hdC1jYXJkLWNvbnRlbnQge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWNoZWNrYm94LXRoZW1lKCR0aGVtZSkge1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuXG4gIC8vIFRoZSBjb2xvciBvZiB0aGUgY2hlY2tib3gncyBjaGVja21hcmsgLyBtaXhlZG1hcmsuXG4gICRjaGVja2JveC1tYXJrLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuXG4gIC8vIE5PVEUodHJhdmlza2F1Zm1hbik6IFdoaWxlIHRoZSBzcGVjIGNhbGxzIGZvciB0cmFuc2x1Y2VudCBibGFja3Mvd2hpdGVzIGZvciBkaXNhYmxlZCBjb2xvcnMsXG4gIC8vIHRoaXMgZG9lcyBub3Qgd29yayB3ZWxsIHdpdGggZWxlbWVudHMgbGF5ZXJlZCBvbiB0b3Agb2Ygb25lIGFub3RoZXIuIFRvIGdldCBhcm91bmQgdGhpcyB3ZVxuICAvLyBibGVuZCB0aGUgY29sb3JzIHRvZ2V0aGVyIGJhc2VkIG9uIHRoZSBiYXNlIGNvbG9yIGFuZCB0aGUgdGhlbWUgYmFja2dyb3VuZC5cbiAgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyazogIzY4Njg2ODtcbiAgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQ6ICNiMGIwYjA7XG4gICRkaXNhYmxlZC1jb2xvcjogaWYoJGlzLWRhcmstdGhlbWUsICR3aGl0ZS0zMHBjdC1vcGFjaXR5LW9uLWRhcmssICRibGFjay0yNnBjdC1vcGFjaXR5LW9uLWxpZ2h0KTtcblxuICAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1jaGVja21hcmsge1xuICAgIGZpbGw6ICRjaGVja2JveC1tYXJrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gICAgLy8gIWltcG9ydGFudCBpcyBuZWVkZWQgaGVyZSBiZWNhdXNlIGEgc3Ryb2tlIG11c3QgYmUgc2V0IGFzIGFuXG4gICAgLy8gYXR0cmlidXRlIG9uIHRoZSBTVkcgaW4gb3JkZXIgZm9yIGxpbmUgYW5pbWF0aW9uIHRvIHdvcmsgcHJvcGVybHkuXG4gICAgc3Ryb2tlOiAkY2hlY2tib3gtbWFyay1jb2xvciAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgY2RrLWhpZ2gtY29udHJhc3QoYmxhY2stb24td2hpdGUpIHtcbiAgICAgIC8vIEhhdmluZyB0aGUgb25lIGFib3ZlIGJlICFpbXBvcnRhbnQgZW5kcyB1cCBvdmVycmlkaW5nIHRoZSBicm93c2VyJ3MgYXV0b21hdGljXG4gICAgICAvLyBjb2xvciBpbnZlcnNpb24gc28gd2UgbmVlZCB0byByZS1pbnZlcnQgaXQgb3Vyc2VsdmVzIGZvciBibGFjay1vbi13aGl0ZS5cbiAgICAgIHN0cm9rZTogIzAwMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2hlY2tib3gtbWl4ZWRtYXJrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2hlY2tib3gtbWFyay1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSwgLm1hdC1jaGVja2JveC1jaGVja2VkIHtcbiAgICAmLm1hdC1wcmltYXJ5IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4gLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jaGVja2JveC1kaXNhYmxlZCB7XG4gICAgJi5tYXQtY2hlY2tib3gtY2hlY2tlZCxcbiAgICAmLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICAgIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LWNoZWNrYm94LWNoZWNrZWQpIHtcbiAgICAgIC5tYXQtY2hlY2tib3gtZnJhbWUge1xuICAgICAgICBib3JkZXItY29sb3I6ICRkaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdCB7XG4gICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhpcyBvbmUgaXMgbW92ZWQgZG93biBoZXJlIHNvIGl0IGNhbiB0YXJnZXQgYm90aFxuICAvLyB0aGUgdGhlbWUgY29sb3JzIGFuZCB0aGUgZGlzYWJsZWQgc3RhdGUuXG4gIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0IHtcbiAgICAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgLy8gTmVlZHMgdG8gYmUgcmVtb3ZlZCBiZWNhdXNlIGl0IGhpZGVzIHRoZSBjaGVja2JveCBvdXRsaW5lLlxuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBTd2l0Y2ggdGhpcyB0byBhIHNvbGlkIGNvbG9yIHNpbmNlIHdlJ3JlIHVzaW5nIGBvcGFjaXR5YFxuICAvLyB0byBjb250cm9sIGhvdyBvcGFxdWUgdGhlIHJpcHBsZSBzaG91bGQgYmUuXG4gIC5tYXQtY2hlY2tib3ggLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWFwX2dldChtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCksIGJhc2UpO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKSxcbiAgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpIHtcbiAgICAmLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtY2hlY2tib3gtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtY2hlY2tib3gge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAvLyBUT0RPKGthcmEpOiBSZW1vdmUgdGhpcyBzdHlsZSB3aGVuIGZpeGluZyB2ZXJ0aWNhbCBiYXNlbGluZVxuICAubWF0LWNoZWNrYm94LWxheW91dCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgICBsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gIH1cbn1cblxuXG5cblxuXG5cbiRtYXQtY2hpcC1yZW1vdmUtZm9udC1zaXplOiAxOHB4O1xuXG5AbWl4aW4gbWF0LWNoaXBzLWNvbG9yKCRmb3JlZ3JvdW5kLCAkYmFja2dyb3VuZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRmb3JlZ3JvdW5kO1xuXG4gIC5tYXQtY2hpcC1yZW1vdmUge1xuICAgIGNvbG9yOiAkZm9yZWdyb3VuZDtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGlwcy10aGVtZS1jb2xvcigkcGFsZXR0ZSkge1xuICBAaW5jbHVkZSBtYXQtY2hpcHMtY29sb3IobWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KSwgbWF0LWNvbG9yKCRwYWxldHRlKSk7XG5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjEpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtY2hpcHMtdGhlbWUoJHRoZW1lKSB7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICR1bnNlbGVjdGVkLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgdW5zZWxlY3RlZC1jaGlwKTtcbiAgJHVuc2VsZWN0ZWQtZm9yZWdyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAge1xuICAgIEBpbmNsdWRlIG1hdC1jaGlwcy1jb2xvcigkdW5zZWxlY3RlZC1mb3JlZ3JvdW5kLCAkdW5zZWxlY3RlZC1iYWNrZ3JvdW5kKTtcblxuICAgICY6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCkge1xuICAgICAgJjphY3RpdmUge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigzLCAkdGhlbWUpO1xuICAgICAgfVxuXG4gICAgICAubWF0LWNoaXAtcmVtb3ZlOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMC41NDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1jaGlwLWRpc2FibGVkIHtcbiAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXBfZ2V0KCRmb3JlZ3JvdW5kLCBiYXNlKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNoaXAubWF0LXN0YW5kYXJkLWNoaXAubWF0LWNoaXAtc2VsZWN0ZWQge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgbWF0LWNoaXBzLXRoZW1lLWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jaGlwcy10aGVtZS1jb2xvcigkd2Fybik7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jaGlwcy10aGVtZS1jb2xvcigkYWNjZW50KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGlwcy10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1jaGlwIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgICBmb250LXdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMik7XG5cbiAgICAubWF0LWNoaXAtdHJhaWxpbmctaWNvbi5tYXQtaWNvbixcbiAgICAubWF0LWNoaXAtcmVtb3ZlLm1hdC1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogJG1hdC1jaGlwLXJlbW92ZS1mb250LXNpemU7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC10YWJsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXRhYmxlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LXRhYmxlIHRoZWFkLCAubWF0LXRhYmxlIHRib2R5LCAubWF0LXRhYmxlIHRmb290LFxuICBtYXQtaGVhZGVyLXJvdywgbWF0LXJvdywgbWF0LWZvb3Rlci1yb3csXG4gIFttYXQtaGVhZGVyLXJvd10sIFttYXQtcm93XSwgW21hdC1mb290ZXItcm93XSxcbiAgLm1hdC10YWJsZS1zdGlja3kge1xuICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gIH1cblxuICBtYXQtcm93LCBtYXQtaGVhZGVyLXJvdywgbWF0LWZvb3Rlci1yb3csXG4gIHRoLm1hdC1oZWFkZXItY2VsbCwgdGQubWF0LWNlbGwsIHRkLm1hdC1mb290ZXItY2VsbCB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxuXG4gIC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2VsbCwgLm1hdC1mb290ZXItY2VsbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC10YWJsZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC10YWJsZSB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtaGVhZGVyLWNlbGwge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICBmb250LXdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gIH1cblxuICAubWF0LWNlbGwsIC5tYXQtZm9vdGVyLWNlbGwge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cblxuXG5cbiRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC10b2RheS1ib3gtc2hhZG93LXdpZHRoOiAxcHg7XG4kbWF0LWRhdGVwaWNrZXItc2VsZWN0ZWQtZmFkZS1hbW91bnQ6IDAuNjtcbiRtYXQtZGF0ZXBpY2tlci10b2RheS1mYWRlLWFtb3VudDogMC4yO1xuJG1hdC1jYWxlbmRhci1ib2R5LWZvbnQtc2l6ZTogMTNweCAhZGVmYXVsdDtcbiRtYXQtY2FsZW5kYXItd2Vla2RheS10YWJsZS1mb250LXNpemU6IDExcHggIWRlZmF1bHQ7XG5cbkBtaXhpbiBfbWF0LWRhdGVwaWNrZXItY29sb3IoJHBhbGV0dGUpIHtcbiAgLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgICAkYmFja2dyb3VuZDogbWF0LWNvbG9yKCRwYWxldHRlKTtcblxuICAgIEBpZiAodHlwZS1vZigkYmFja2dyb3VuZCkgPT0gY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGZhZGUtb3V0KCRiYWNrZ3JvdW5kLCAkbWF0LWRhdGVwaWNrZXItc2VsZWN0ZWQtZmFkZS1hbW91bnQpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBJZiB3ZSBjb3VsZG4ndCByZXNvbHZlIHRvIGJhY2tncm91bmQgdG8gYSBjb2xvciAoZS5nLiBpdCdzIGEgQ1NTIHZhcmlhYmxlKSxcbiAgICAgIC8vIGZhbGwgYmFjayB0byBmYWRpbmcgdGhlIGNvbnRlbnQgb3V0IHZpYSBgb3BhY2l0eWAuXG4gICAgICBvcGFjaXR5OiAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQ7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Lm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAkbWF0LWRhdGVwaWNrZXItc2VsZWN0ZWQtdG9kYXktYm94LXNoYWRvdy13aWR0aFxuICAgICAgICAgICAgICAgIG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1kYXRlcGlja2VyLXRoZW1lKCR0aGVtZSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuXG4gIC5tYXQtY2FsZW5kYXItYXJyb3cge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaWNvbik7XG4gIH1cblxuICAvLyBUaGUgcHJldi9uZXh0IGJ1dHRvbnMgbmVlZCBhIGJpdCBtb3JlIHNwZWNpZmljaXR5IHRvXG4gIC8vIGF2b2lkIGJlaW5nIG92ZXJ3cml0dGVuIGJ5IHRoZSAubWF0LWljb24tYnV0dG9uLlxuICAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLFxuICAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLW5leHQtYnV0dG9uLFxuICAubWF0LWRhdGVwaWNrZXItY29udGVudCAubWF0LWNhbGVuZGFyLXByZXZpb3VzLWJ1dHRvbiB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaWNvbik7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaGludC10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItdGFibGUtaGVhZGVyLWRpdmlkZXI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWxhYmVsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50IHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpub3QoLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkKTpob3ZlcixcbiAgLmNkay1rZXlib2FyZC1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmUsXG4gIC5jZGstcHJvZ3JhbS1mb2N1c2VkIC5tYXQtY2FsZW5kYXItYm9keS1hY3RpdmUge1xuICAgICYgPiAubWF0LWNhbGVuZGFyLWJvZHktY2VsbC1jb250ZW50Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS10b2RheTpub3QoLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkKSB7XG4gICAgLy8gTm90ZTogdGhvdWdoIGl0J3Mgbm90IHRleHQsIHRoZSBib3JkZXIgaXMgYSBoaW50IGFib3V0IHRoZSBmYWN0IHRoYXQgdGhpcyBpcyB0b2RheSdzIGRhdGUsXG4gICAgLy8gc28gd2UgdXNlIHRoZSBoaW50IGNvbG9yLlxuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWRpc2FibGVkID4gLm1hdC1jYWxlbmRhci1ib2R5LXRvZGF5Om5vdCgubWF0LWNhbGVuZGFyLWJvZHktc2VsZWN0ZWQpIHtcbiAgICAkY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaGludC10ZXh0KTtcblxuICAgIEBpZiAodHlwZS1vZigkY29sb3IpID09IGNvbG9yKSB7XG4gICAgICBib3JkZXItY29sb3I6IGZhZGUtb3V0KCRjb2xvciwgJG1hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gSWYgdGhlIGNvbG9yIGRpZG4ndCByZXNvbHZlIHRvIGEgY29sb3IgdmFsdWUsIGJ1dCBzb21ldGhpbmcgbGlrZSBhIENTUyB2YXJpYWJsZSwgd2UgY2FuJ3RcbiAgICAgIC8vIGZhZGUgaXQgb3V0IHNvIHdlIGZhbGwgYmFjayB0byByZWR1Y2luZyB0aGUgZWxlbWVudCBvcGFjaXR5LiBOb3RlIHRoYXQgd2UgZG9uJ3QgdXNlIHRoZVxuICAgICAgLy8gJG1hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50LCBiZWNhdXNlIGhpbnQgdGV4dCB1c3VhbGx5IGhhcyBzb21lIG9wYWNpdHkgYXBwbGllZFxuICAgICAgLy8gdG8gaXQgYWxyZWFkeSBhbmQgd2UgZG9uJ3Qgd2FudCB0aGVtIHRvIHN0YWNrIG9uIHRvcCBvZiBlYWNoIG90aGVyLlxuICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSkpO1xuXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbig0LCAkdGhlbWUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpKTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgd2FybikpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZGF0ZXBpY2tlci1jb250ZW50LXRvdWNoIHtcbiAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigwLCAkdGhlbWUpO1xuICB9XG5cbiAgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZS1hY3RpdmUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIHByaW1hcnkpLCB0ZXh0KTtcblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkdGhlbWUsIHdhcm4pLCB0ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1kYXRlcGlja2VyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWNhbGVuZGFyIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5IHtcbiAgICBmb250LXNpemU6ICRtYXQtY2FsZW5kYXItYm9keS1mb250LXNpemU7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwsXG4gIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbiB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYnV0dG9uKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlciB0aCB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogJG1hdC1jYWxlbmRhci13ZWVrZGF5LXRhYmxlLWZvbnQtc2l6ZTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtZGlhbG9nLXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMjQsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtZGlhbG9nLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWRpYWxvZy10aXRsZSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHRpdGxlKTtcbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIG1hdC1leHBhbnNpb24tcGFuZWwtdGhlbWUoJHRoZW1lKSB7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwge1xuICAgIEBpbmNsdWRlIF9tYXQtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDIsICR0aGVtZSk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtYWN0aW9uLXJvdyB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgICY6bm90KFthcmlhLWRpc2FibGVkPSd0cnVlJ10pIHtcbiAgICAgICYuY2RrLWtleWJvYXJkLWZvY3VzZWQsXG4gICAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZSB0aGUgaG92ZXIgb24gdG91Y2ggZGV2aWNlcyBzaW5jZSBpdCBjYW4gYXBwZWFyIGxpa2UgaXQgaXMgc3R1Y2suIFdlIGNhbid0IHVzZVxuICAvLyBgQG1lZGlhIChob3ZlcilgIGFib3ZlLCBiZWNhdXNlIHRoZSBkZXNrdG9wIHN1cHBvcnQgYnJvd3NlciBzdXBwb3J0IGlzbid0IGdyZWF0LlxuICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWw6bm90KC5tYXQtZXhwYW5kZWQpOm5vdChbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddKVxuICAgICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZXNjcmlwdGlvbixcbiAgLm1hdC1leHBhbnNpb24taW5kaWNhdG9yOjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtYnV0dG9uKTtcblxuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSxcbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24ge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZXhwYW5zaW9uLXBhbmVsLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG5cbi8vIFRoaXMgbWl4aW4gd2lsbCBlbnN1cmUgdGhhdCBsaW5lcyB0aGF0IG92ZXJmbG93IHRoZSBjb250YWluZXIgd2lsbCBoaWRlIHRoZSBvdmVyZmxvdyBhbmRcbi8vIHRydW5jYXRlIG5lYXRseSB3aXRoIGFuIGVsbGlwc2lzLlxuQG1peGluIG1hdC10cnVuY2F0ZS1saW5lKCkge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLy8gTWl4aW4gdG8gcHJvdmlkZSBhbGwgbWF0LWxpbmUgc3R5bGVzLCBjaGFuZ2luZyBzZWNvbmRhcnkgZm9udCBzaXplIGJhc2VkIG9uIHdoZXRoZXIgdGhlIGxpc3Rcbi8vIGlzIGluIGRlbnNlIG1vZGUuXG5AbWl4aW4gbWF0LWxpbmUtYmFzZSgkc2Vjb25kYXJ5LWZvbnQtc2l6ZSkge1xuICAubWF0LWxpbmUge1xuICAgIEBpbmNsdWRlIG1hdC10cnVuY2F0ZS1saW5lKCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC8vIGFsbCBsaW5lcyBidXQgdGhlIHRvcCBsaW5lIHNob3VsZCBoYXZlIHNtYWxsZXIgdGV4dFxuICAgICY6bnRoLWNoaWxkKG4rMikge1xuICAgICAgZm9udC1zaXplOiAkc2Vjb25kYXJ5LWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBtaXhpbiBub3JtYWxpemVzIGRlZmF1bHQgZWxlbWVudCBzdHlsZXMsIGUuZy4gZm9udCB3ZWlnaHQgZm9yIGhlYWRpbmcgdGV4dC5cbkBtaXhpbiBtYXQtbm9ybWFsaXplLXRleHQoKSB7XG4gICYgPiAqIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBUaGlzIG1peGluIHByb3ZpZGVzIGJhc2Ugc3R5bGVzIGZvciB0aGUgd3JhcHBlciBhcm91bmQgbWF0LWxpbmUgZWxlbWVudHMgaW4gYSBsaXN0LlxuQG1peGluIG1hdC1saW5lLXdyYXBwZXItYmFzZSgpIHtcbiAgQGluY2x1ZGUgbWF0LW5vcm1hbGl6ZS10ZXh0KCk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLy8gTXVzdCByZW1vdmUgd3JhcHBlciB3aGVuIGxpbmVzIGFyZSBlbXB0eSBvciBpdCB0YWtlcyB1cCBob3Jpem9udGFsXG4gIC8vIHNwYWNlIGFuZCBwdXNoZXMgb3RoZXIgZWxlbWVudHMgdG8gdGhlIHJpZ2h0LlxuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlIHRoaXMgZW1wdHkgbWl4aW4gZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIG90aGVyIGNvbXBvbmVudHMuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10aGVtZSgkdGhlbWUpIHsgfVxuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1ncmlkLXRpbGUtaGVhZGVyLFxuICAubWF0LWdyaWQtdGlsZS1mb290ZXIge1xuICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuXG5cblxuLy8gSW5jbHVkZSB0aGlzIGVtcHR5IG1peGluIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBvdGhlciBjb21wb25lbnRzLlxuQG1peGluIG1hdC1pY29uLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWljb24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1pY29uLXR5cG9ncmFwaHkoJGNvbmZpZykgeyB9XG5cblxuXG5cblxuLy8gUmVuZGVycyBhIGdyYWRpZW50IGZvciBzaG93aW5nIHRoZSBkYXNoZWQgbGluZSB3aGVuIHRoZSBpbnB1dCBpcyBkaXNhYmxlZC5cbi8vIFVubGlrZSB1c2luZyBhIGJvcmRlciwgYSBncmFkaWVudCBhbGxvd3MgdXMgdG8gYWRqdXN0IHRoZSBzcGFjaW5nIG9mIHRoZSBkb3R0ZWQgbGluZVxuLy8gdG8gbWF0Y2ggdGhlIE1hdGVyaWFsIERlc2lnbiBzcGVjLlxuQG1peGluIG1hdC1jb250cm9sLWRpc2FibGVkLXVuZGVybGluZSgkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkY29sb3IgMCUsICRjb2xvciAzMyUsIHRyYW5zcGFyZW50IDAlKTtcbiAgYmFja2dyb3VuZC1zaXplOiA0cHggMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG4vLyBGaWd1cmVzIG91dCB0aGUgY29sb3Igb2YgdGhlIHBsYWNlaG9sZGVyIGZvciBhIGZvcm0gY29udHJvbC5cbi8vIFVzZWQgcHJpbWFyaWx5IHRvIHByZXZlbnQgdGhlIHZhcmlvdXMgZm9ybSBjb250cm9scyBmcm9tXG4vLyBiZWNvbWluZyBvdXQgb2Ygc3luYyBzaW5jZSB0aGVzZSBjb2xvcnMgYXJlbid0IGluIGEgcGFsZXR0ZS5cbkBmdW5jdGlvbiBfbWF0LWNvbnRyb2wtcGxhY2Vob2xkZXItY29sb3IoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG4gIEByZXR1cm4gbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNSwgMC40MikpO1xufVxuXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIG1hdGVyaWFsL25vLXByZWZpeGVzICovXG5AbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlKSB7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgLW1vei11c2VyLXNlbGVjdDogJHZhbHVlO1xuICAtbXMtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbn1cblxuQG1peGluIGlucHV0LXBsYWNlaG9sZGVyIHtcbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWIge1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgY3Vyc29yOiBncmFiO1xufVxuXG5AbWl4aW4gY3Vyc29yLWdyYWJiaW5nIHtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmFsdWUpIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiAkdmFsdWU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6ICR2YWx1ZTtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuXG5cbkBtaXhpbiBtYXQtaW5wdXQtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCxcbiAgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuXG4gICAgQGluY2x1ZGUgaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IF9tYXQtY29udHJvbC1wbGFjZWhvbGRlci1jb2xvcigkdGhlbWUpO1xuICAgIH1cblxuICAgIC8vIE9uIGRhcmsgdGhlbWVzIHdlIHNldCB0aGUgbmF0aXZlIGBzZWxlY3RgIGNvbG9yIHRvIHNvbWUgc2hhZGUgb2Ygd2hpdGUsXG4gICAgLy8gaG93ZXZlciB0aGUgY29sb3IgcHJvcGFnYXRlcyB0byBhbGwgb2YgdGhlIGBvcHRpb25gIGVsZW1lbnRzLCB3aGljaCBhcmVcbiAgICAvLyBhbHdheXMgb24gYSB3aGl0ZSBiYWNrZ3JvdW5kIGluc2lkZSB0aGUgZHJvcGRvd24sIGNhdXNpbmcgdGhlbSB0byBibGVuZCBpbi5cbiAgICAvLyBTaW5jZSB3ZSBjYW4ndCBjaGFuZ2UgYmFja2dyb3VuZCBvZiB0aGUgZHJvcGRvd24sIHdlIG5lZWQgdG8gZXhwbGljaXRseVxuICAgIC8vIHJlc2V0IHRoZSBjb2xvciBvZiB0aGUgb3B0aW9ucyB0byBzb21ldGhpbmcgZGFyay5cbiAgICBAaWYgKG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKSkge1xuICAgICAgb3B0aW9uIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLXByaW1hcnktdGV4dDtcbiAgICAgIH1cblxuICAgICAgb3B0aW9uOmRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLWRpc2FibGVkLXRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbiAgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1pbnB1dC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcblxuICAvLyA8aW5wdXQ+IGVsZW1lbnRzIHNlZW0gdG8gaGF2ZSB0aGVpciBoZWlnaHQgc2V0IHNsaWdodGx5IHRvbyBsYXJnZSBvbiBTYWZhcmkgY2F1c2luZyB0aGUgdGV4dCB0b1xuICAvLyBiZSBtaXNhbGlnbmVkIHcuci50LiB0aGUgcGxhY2Vob2xkZXIuIEFkZGluZyB0aGlzIG1hcmdpbiBjb3JyZWN0cyBpdC5cbiAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IC0kbGluZS1zcGFjaW5nICogMWVtO1xuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtbGlzdC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1saXN0LWl0ZW0tZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlzYWJsZWQtbGlzdC1vcHRpb24pO1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbixcbiAgLm1hdC1uYXYtbGlzdCAubWF0LWxpc3QtaXRlbSxcbiAgLm1hdC1hY3Rpb24tbGlzdCAubWF0LWxpc3QtaXRlbSB7XG4gICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdob3ZlcicpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWxpc3QtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gICRmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuXG4gIC5tYXQtbGlzdC1pdGVtIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICB9XG5cbiAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgbGlzdFxuICAubWF0LWxpc3QtYmFzZSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMik7XG4gICAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKSk7XG4gICAgfVxuXG4gICAgLm1hdC1saXN0LW9wdGlvbiB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpKTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMik7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cblxuICAvLyBEZW5zZSBsaXN0XG4gIC5tYXQtbGlzdC1iYXNlW2RlbnNlXSB7XG4gICAgLm1hdC1saXN0LWl0ZW0ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pKTtcbiAgICB9XG5cbiAgICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgfVxuXG4gICAgLm1hdC1zdWJoZWFkZXIge1xuICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1tZW51LXRoZW1lKCR0aGVtZSkge1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtbWVudS1wYW5lbCB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ3RleHQnKTtcblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICYsICY6OmFmdGVyIHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2Rpc2FibGVkJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW0gLm1hdC1pY29uLW5vLWNvbG9yLFxuICAubWF0LW1lbnUtaXRlbS1zdWJtZW51LXRyaWdnZXI6OmFmdGVyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnaWNvbicpO1xuICB9XG5cbiAgLm1hdC1tZW51LWl0ZW06aG92ZXIsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gIC5tYXQtbWVudS1pdGVtLmNkay1rZXlib2FyZC1mb2N1c2VkLFxuICAubWF0LW1lbnUtaXRlbS1oaWdobGlnaHRlZCB7XG4gICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnaG92ZXInKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1tZW51LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcblxuICAubWF0LXBhZ2luYXRvciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICB9XG5cbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsICdpY29uJyk7XG4gIH1cblxuICAubWF0LXBhZ2luYXRvci1maXJzdCxcbiAgLm1hdC1wYWdpbmF0b3ItbGFzdCB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgfVxuXG4gIC5tYXQtaWNvbi1idXR0b25bZGlzYWJsZWRdIHtcbiAgICAubWF0LXBhZ2luYXRvci1kZWNyZW1lbnQsXG4gICAgLm1hdC1wYWdpbmF0b3ItaW5jcmVtZW50LFxuICAgIC5tYXQtcGFnaW5hdG9yLWZpcnN0LFxuICAgIC5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICAgICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsICdkaXNhYmxlZCcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1wYWdpbmF0b3IsXG4gIC5tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZSAubWF0LXNlbGVjdC10cmlnZ2VyIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgIGZpbGw6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgbGlnaHRlcik7XG4gIH1cblxuICAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC1hY2NlbnQge1xuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgICAgZmlsbDogbWF0LWNvbG9yKCRhY2NlbnQsIGxpZ2h0ZXIpO1xuICAgIH1cblxuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLm1hdC13YXJuIHtcbiAgICAubWF0LXByb2dyZXNzLWJhci1iYWNrZ3JvdW5kIHtcbiAgICAgIGZpbGw6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkd2FybiwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItZmlsbDo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItdHlwb2dyYXBoeSgkY29uZmlnKSB7IH1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1wcm9ncmVzcy1zcGlubmVyLCAubWF0LXNwaW5uZXIge1xuICAgIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIGNpcmNsZSB7XG4gICAgICBzdHJva2U6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cbkBtaXhpbiBfbWF0LXJhZGlvLWNvbG9yKCRwYWxldHRlKSB7XG4gICYubWF0LXJhZGlvLWNoZWNrZWQgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgfVxuXG4gIC5tYXQtcmFkaW8taW5uZXItY2lyY2xlLFxuICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50Om5vdCgubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlKSxcbiAgJi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlLFxuICAmOmFjdGl2ZSAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1yYWRpby1idXR0b24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC1yYWRpby1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcmFkaW8tY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXJhZGlvLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIG5lZWRzIGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHRoZSBjbGFzc2VzIGFib3ZlIGFyZSBjb21iaW5lZFxuICAgIC8vIChlLmcuIGAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50YCkgd2hpY2ggaW5jcmVhc2VzIHRoZWlyIHNwZWNpZmljaXR5IGEgbG90LlxuICAgIC8vIFRPRE86IGNvbnNpZGVyIG1ha2luZyB0aGUgc2VsZWN0b3JzIGludG8gZGVzY2VuZGFudHMgKGAubWF0LXByaW1hcnkgLm1hdC1yYWRpby1idXR0b25gKS5cbiAgICAmLm1hdC1yYWRpby1kaXNhYmxlZCB7XG4gICAgICAmLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuICAgICAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgICAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuXG4gICAgICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50LFxuICAgICAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gICAgLy8gdG8gY29udHJvbCBob3cgb3BhcXVlIHRoZSByaXBwbGUgc2hvdWxkIGJlLlxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwX2dldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1zZWxlY3QtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuXG4gIC5tYXQtc2VsZWN0LXZhbHVlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogX21hdC1jb250cm9sLXBsYWNlaG9sZGVyLWNvbG9yKCR0aGVtZSk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC12YWx1ZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtcGFuZWwge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oNCwgJHRoZW1lKTtcblxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIsIDAuMTIpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgJi5tYXQtZm9jdXNlZCB7XG4gICAgICAmLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWludmFsaWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zZWxlY3QtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcblxuICAubWF0LXNlbGVjdCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIGhlaWdodDogJGxpbmUtaGVpZ2h0ICogMWVtO1xuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LXNpZGVuYXYtdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOiAgbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcbiAgJGRyYXdlci1wdXNoLWJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlhbG9nKTtcbiAgJGRyYXdlci1zaWRlLWJvcmRlcjogc29saWQgMXB4IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1kcmF3ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWRyYXdlci1wdXNoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItcHVzaC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgICAgIC8vIFRoZSBlbGV2YXRpb24gb2Ygei0xNiBpcyBub3RlZCBpbiB0aGUgZGVzaWduIHNwZWNpZmljYXRpb25zLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1kcmF3ZXIuaHRtbFxuICAgICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMTYsICR0aGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kcmF3ZXItc2lkZSB7XG4gICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuXG4gICAgJi5tYXQtZHJhd2VyLWVuZCB7XG4gICAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICB9XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWRyYXdlci1zaWRlIHtcbiAgICBib3JkZXItbGVmdDogJGRyYXdlci1zaWRlLWJvcmRlcjtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG5cbiAgICAmLm1hdC1kcmF3ZXItZW5kIHtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZHJhd2VyLWJhY2tkcm9wLm1hdC1kcmF3ZXItc2hvd24ge1xuICAgICRvcGFjaXR5OiAwLjY7XG4gICAgJGJhY2tkcm9wLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQsICRvcGFjaXR5KTtcblxuICAgIEBpZiAodHlwZS1vZigkYmFja2Ryb3AtY29sb3IpID09IGNvbG9yKSB7XG4gICAgICAvLyBXZSB1c2UgaW52ZXJ0KCkgaGVyZSB0byBoYXZlIHRoZSBkYXJrZW4gdGhlIGJhY2tncm91bmQgY29sb3IgZXhwZWN0ZWQgdG8gYmUgdXNlZC4gSWYgdGhlXG4gICAgICAvLyBiYWNrZ3JvdW5kIGlzIGxpZ2h0LCB3ZSB1c2UgYSBkYXJrIGJhY2tkcm9wLiBJZiB0aGUgYmFja2dyb3VuZCBpcyBkYXJrLFxuICAgICAgLy8gd2UgdXNlIGEgbGlnaHQgYmFja2Ryb3AuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbnZlcnQoJGJhY2tkcm9wLWNvbG9yKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gSWYgd2UgY291bGRuJ3QgcmVzb2x2ZSB0aGUgYmFja2Ryb3AgY29sb3IgdG8gYSBjb2xvciB2YWx1ZSwgZmFsbCBiYWNrIHRvIHVzaW5nXG4gICAgICAvLyBgb3BhY2l0eWAgdG8gbWFrZSBpdCBvcGFxdWUgc2luY2UgaXRzIGVuZCB2YWx1ZSBjb3VsZCBiZSBhIHNvbGlkIGNvbG9yLlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tkcm9wLWNvbG9yO1xuICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc2lkZW5hdi10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSkge1xuICAmLm1hdC1jaGVja2VkIHtcbiAgICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgLm1hdC1zbGlkZS10b2dnbGUtYmFyIHtcbiAgICAgIC8vIE9wYWNpdHkgaXMgZGV0ZXJtaW5lZCBmcm9tIHRoZSBzcGVjcyBmb3IgdGhlIHNlbGVjdGlvbiBjb250cm9scy5cbiAgICAgIC8vIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29tcG9uZW50cy9zZWxlY3Rpb24tY29udHJvbHMuaHRtbCNzcGVjc1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUsIDAuNTQpO1xuICAgIH1cblxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgLy8gU2V0IG5vIG9wYWNpdHkgZm9yIHRoZSByaXBwbGVzIGJlY2F1c2UgdGhlIHJpcHBsZSBvcGFjaXR5IHdpbGwgYmUgYWRqdXN0ZWQgZHluYW1pY2FsbHlcbiAgICAgIC8vIGJhc2VkIG9uIHRoZSB0eXBlIG9mIGludGVyYWN0aW9uIHdpdGggdGhlIHNsaWRlLXRvZ2dsZSAoZS5nLiBmb3IgaG92ZXIsIGZvY3VzKVxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlLXRvZ2dsZS10aGVtZSgkdGhlbWUpIHtcbiAgJGlzLWRhcms6IG1hcF9nZXQoJHRoZW1lLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgLy8gQ29sb3IgaHVlcyBhcmUgYmFzZWQgb24gdGhlIHNwZWNzIHdoaWNoIGJyaWVmbHkgc2hvdyB0aGUgaHVlcyB0aGF0IGFyZSBhcHBsaWVkIHRvIGEgc3dpdGNoLlxuICAvLyBUaGUgMjAxOCBzcGVjcyBubyBsb25nZXIgZGVzY3JpYmUgaG93IGRhcmsgc3dpdGNoZXMgc2hvdWxkIGxvb2sgbGlrZS4gRHVlIHRvIHRoZSBsYWNrIG9mXG4gIC8vIGluZm9ybWF0aW9uIGZvciBkYXJrIHRoZW1lZCBzd2l0Y2hlcywgd2UgcGFydGlhbGx5IGtlZXAgdGhlIG9sZCBiZWhhdmlvciB0aGF0IGlzIGJhc2VkIG9uXG4gIC8vIHRoZSBwcmV2aW91cyBzcGVjaWZpY2F0aW9ucy4gRm9yIHRoZSBjaGVja2VkIGNvbG9yIHdlIGFsd2F5cyB1c2UgdGhlIGBkZWZhdWx0YCBodWUgYmVjYXVzZVxuICAvLyB0aGF0IGZvbGxvd3MgTURDIGFuZCBhbHNvIG1ha2VzIGl0IGVhc2llciBmb3IgcGVvcGxlIHRvIGNyZWF0ZSBhIGN1c3RvbSB0aGVtZSB3aXRob3V0IG5lZWRpbmdcbiAgLy8gdG8gc3BlY2lmeSBlYWNoIGh1ZSBpbmRpdmlkdWFsbHkuXG4gICR0aHVtYi11bmNoZWNrZWQtaHVlOiBpZigkaXMtZGFyaywgNDAwLCA1MCk7XG4gICR0aHVtYi1jaGVja2VkLWh1ZTogZGVmYXVsdDtcblxuICAkYmFyLXVuY2hlY2tlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZCk7XG4gICRyaXBwbGUtdW5jaGVja2VkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UpO1xuXG4gIC5tYXQtc2xpZGUtdG9nZ2xlIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCRhY2NlbnQsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG5cbiAgICAmLm1hdC1wcmltYXJ5IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2xpZGUtdG9nZ2xlLWNoZWNrZWQoJHByaW1hcnksICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCR3YXJuLCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tlZCkgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICAvLyBTZXQgbm8gb3BhY2l0eSBmb3IgdGhlIHJpcHBsZXMgYmVjYXVzZSB0aGUgcmlwcGxlIG9wYWNpdHkgd2lsbCBiZSBhZGp1c3RlZCBkeW5hbWljYWxseVxuICAgICAgLy8gYmFzZWQgb24gdGhlIHR5cGUgb2YgaW50ZXJhY3Rpb24gd2l0aCB0aGUgc2xpZGUtdG9nZ2xlIChlLmcuIGZvciBob3ZlciwgZm9jdXMpXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmlwcGxlLXVuY2hlY2tlZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYiB7XG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oMSwgJHRoZW1lKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJG1hdC1ncmV5LCAkdGh1bWItdW5jaGVja2VkLWh1ZSk7XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXItdW5jaGVja2VkLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc2xpZGUtdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHBhbGV0dGUpIHtcbiAgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbiAgLm1hdC1zbGlkZXItdGh1bWIsXG4gIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gICRtYXQtc2xpZGVyLW9mZi1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItb2ZmLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW9mZi1hY3RpdmUpO1xuICAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW1pbik7XG4gICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1vZmYpO1xuICAkbWF0LXNsaWRlci1mb2N1cy1yaW5nLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgZGVmYXVsdCwgMC4yKTtcbiAgJG1hdC1zbGlkZXItZm9jdXMtcmluZy1taW4tdmFsdWUtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgMC4xMik7XG4gICRtYXQtc2xpZGVyLXRpY2stY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgMC43KTtcbiAgJG1hdC1zbGlkZXItdGljay1zaXplOiAycHg7XG5cbiAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRwcmltYXJ5KTtcbiAgfVxuXG4gIC5tYXQtYWNjZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCRhY2NlbnQpO1xuICB9XG5cbiAgLm1hdC13YXJuIHtcbiAgICBAaW5jbHVkZSBfbWF0LXNsaWRlci1pbm5lci1jb250ZW50LXRoZW1lKCR3YXJuKTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWZvY3VzLXJpbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctY29sb3I7XG4gIH1cblxuICAubWF0LXNsaWRlcjpob3ZlcixcbiAgLmNkay1mb2N1c2VkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLW9mZi1mb2N1c2VkLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWRpc2FibGVkIHtcbiAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kLFxuICAgIC5tYXQtc2xpZGVyLXRyYWNrLWZpbGwsXG4gICAgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbGlkZXItbWluLXZhbHVlIHtcbiAgICAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWZvY3VzLXJpbmctbWluLXZhbHVlLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nIHtcbiAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1sYWJlbGVkLW1pbi12YWx1ZS10aHVtYi1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgJi5jZGstZm9jdXNlZCB7XG4gICAgICAgIC5tYXQtc2xpZGVyLXRodW1iLFxuICAgICAgICAubWF0LXNsaWRlci10aHVtYi1sYWJlbCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItbGFiZWwtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LXNsaWRlci10aHVtYi1sYWJlbC1zaG93aW5nKSB7XG4gICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlcixcbiAgICAgICYuY2RrLWZvY3VzZWQge1xuICAgICAgICAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtZm9jdXNlZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWF0LXNsaWRlci1kaXNhYmxlZCAubWF0LXNsaWRlci10aHVtYiB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWhhcy10aWNrcyAubWF0LXNsaWRlci13cmFwcGVyOjphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAkbWF0LXNsaWRlci10aWNrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItaG9yaXpvbnRhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgICAvLyBGaXJlZm94IGRvZXNuJ3QgZHJhdyB0aGUgZ3JhZGllbnQgY29ycmVjdGx5IHdpdGggJ3RvIHJpZ2h0J1xuICAgIC8vIChzZWUgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNDMxOSkuXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1yZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDAuMDAwMWRlZywgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIC5tYXQtc2xpZGVyLXZlcnRpY2FsIC5tYXQtc2xpZGVyLXRpY2tzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJG1hdC1zbGlkZXItdGljay1jb2xvcixcbiAgICAgICAgJG1hdC1zbGlkZXItdGljay1jb2xvciAkbWF0LXNsaWRlci10aWNrLXNpemUsIHRyYW5zcGFyZW50IDAsIHRyYW5zcGFyZW50KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5AbWl4aW4gbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG5cbiAgLm1hdC1zdGVwLWhlYWRlciB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICB9XG5cbiAgICAvLyBPbiB0b3VjaCBkZXZpY2VzIHRoZSA6aG92ZXIgc3RhdGUgd2lsbCBsaW5nZXIgb24gdGhlIGVsZW1lbnQgYWZ0ZXIgYSB0YXAuXG4gICAgLy8gUmVzZXQgaXQgdmlhIGBAbWVkaWFgIGFmdGVyIHRoZSBkZWNsYXJhdGlvbiwgYmVjYXVzZSB0aGUgbWVkaWEgcXVlcnkgaXNuJ3RcbiAgICAvLyBzdXBwb3J0ZWQgYnkgYWxsIGJyb3dzZXJzIHlldC5cbiAgICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwsXG4gICAgLm1hdC1zdGVwLW9wdGlvbmFsIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxcbiAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVycm9yIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWxhYmVsLm1hdC1zdGVwLWxhYmVsLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zdGVwcGVyLWhvcml6b250YWwsIC5tYXQtc3RlcHBlci12ZXJ0aWNhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBjYXJkKTtcbiAgfVxuXG4gIC5tYXQtc3RlcHBlci12ZXJ0aWNhbC1saW5lOjpiZWZvcmUge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjpiZWZvcmUsXG4gIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlcjo6YWZ0ZXIsXG4gIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsLWxpbmUge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zdGVwcGVyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXN0ZXBwZXItdmVydGljYWwsIC5tYXQtc3RlcHBlci1ob3Jpem9udGFsIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIH07XG4gIH1cblxuICAubWF0LXN0ZXAtc3ViLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsLWVycm9yIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0yKTtcbiAgfVxuXG4gIC5tYXQtc3RlcC1sYWJlbC1zZWxlY3RlZCB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcbiAgICB9O1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc29ydC10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXNvcnQtaGVhZGVyLWFycm93IHtcbiAgICAkdGFibGUtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICAgICR0ZXh0LWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgIC8vIEJlY2F1c2UgdGhlIGFycm93IGlzIG1hZGUgdXAgb2YgbXVsdGlwbGUgZWxlbWVudHMgdGhhdCBhcmUgc3RhY2tlZCBvbiB0b3Agb2YgZWFjaCBvdGhlcixcbiAgICAvLyB3ZSBjYW4ndCB1c2UgdGhlIHNlbWktdHJhc3BhcmVudCBjb2xvciBmcm9tIHRoZSB0aGVtZSBkaXJlY3RseS4gSWYgdGhlIHZhbHVlIGlzIGEgY29sb3JcbiAgICAvLyAqdHlwZSosIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZFxuICAgIC8vIHVzaW5nIHRoZSB2YWx1ZSB0byBkZXRlcm1pbmUgdGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhY2tncm91bmQgdG8gcHV0IGludG8gZm9yZWdyb3VuZFxuICAgIC8vIHdoZW4gbWl4aW5nIHRoZSBjb2xvcnMgdG9nZXRoZXIuIE90aGVyd2lzZSwgaWYgaXQgcmVzb2x2ZXMgdG8gc29tZXRoaW5nIGRpZmZlcmVudFxuICAgIC8vIChlLmcuIGl0IHJlc29sdmVzIHRvIGEgQ1NTIHZhcmlhYmxlKSwgd2UgdXNlIHRoZSBjb2xvciBkaXJlY3RseS5cbiAgICBAaWYgKHR5cGUtb2YoJHRhYmxlLWJhY2tncm91bmQpID09IGNvbG9yIGFuZCB0eXBlLW9mKCR0ZXh0LWNvbG9yKSA9PSBjb2xvcikge1xuICAgICAgJHRleHQtb3BhY2l0eTogb3BhY2l0eSgkdGV4dC1jb2xvcik7XG4gICAgICBjb2xvcjogbWl4KCR0YWJsZS1iYWNrZ3JvdW5kLCByZ2JhKCR0ZXh0LWNvbG9yLCAxKSwgKDEgLSAkdGV4dC1vcGFjaXR5KSAqIDEwMCUpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpIHsgfVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdGFicy10aGVtZSgkdGhlbWUpIHtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJHRoZW1lLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkdGhlbWUsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCR0aGVtZSwgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRoZWFkZXItYm9yZGVyOiAxcHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcblxuICAubWF0LXRhYi1uYXYtYmFyLFxuICAubWF0LXRhYi1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWFkZXItYm9yZGVyO1xuICB9XG5cbiAgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIHtcbiAgICAubWF0LXRhYi1uYXYtYmFyLFxuICAgIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgICBib3JkZXItdG9wOiAkaGVhZGVyLWJvcmRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtdGFiLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC8vIFJlbW92ZSBoZWFkZXIgYm9yZGVyIHdoZW4gdGhlcmUgaXMgYSBiYWNrZ3JvdW5kIGNvbG9yXG4gIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10gLm1hdC10YWItaGVhZGVyLFxuICAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgfVxuXG4gIC5tYXQtdGFiLWdyb3VwLCAubWF0LXRhYi1uYXYtYmFyIHtcbiAgICAkdGhlbWUtY29sb3JzOiAoXG4gICAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICAgIGFjY2VudDogJGFjY2VudCxcbiAgICAgIHdhcm46ICR3YXJuXG4gICAgKTtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJHRoZW1lLWNvbG9ycyB7XG4gICAgICAvLyBTZXQgdGhlIGZvcmVncm91bmQgY29sb3Igb2YgdGhlIHRhYnNcbiAgICAgICYubWF0LSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvcik7XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgaW5rIGJhciB3aGVuIGJhY2tncm91bmQgY29sb3IgaXMgdGhlIHNhbWVcbiAgICAgICAgJi5tYXQtYmFja2dyb3VuZC0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvciwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICR0aGVtZS1jb2xvcnMge1xuICAgICAgLy8gU2V0IGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRhYnMgYW5kIG92ZXJyaWRlIGZvY3VzIGNvbG9yXG4gICAgICAmLm1hdC1iYWNrZ3JvdW5kLSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWJzLWJhY2tncm91bmQoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtaW5rLWJhcigkY29sb3IsICRodWU6IGRlZmF1bHQpIHtcbiAgLm1hdC1pbmstYmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGNvbG9yLCAkaHVlKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10YWItbGFiZWwtZm9jdXMoJHRhYi1mb2N1cy1jb2xvcikge1xuICAubWF0LXRhYi1sYWJlbCxcbiAgLm1hdC10YWItbGluayB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQge1xuICAgICAgJjpub3QoLm1hdC10YWItZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR0YWItZm9jdXMtY29sb3IsIGxpZ2h0ZXIsIDAuMyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRhYnMtYmFja2dyb3VuZCgkYmFja2dyb3VuZC1jb2xvcikge1xuICAvLyBTZXQgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRhYiBncm91cFxuICAubWF0LXRhYi1oZWFkZXIsIC5tYXQtdGFiLWxpbmtzLCAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yKTtcbiAgfVxuXG4gIC8vIFNldCBsYWJlbHMgdG8gY29udHJhc3QgYWdhaW5zdCBiYWNrZ3JvdW5kXG4gIC5tYXQtdGFiLWxhYmVsLCAubWF0LXRhYi1saW5rIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0KTtcblxuICAgICYubWF0LXRhYi1kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBwYWdpbmF0aW9uIGNoZXZyb25zIHRvIGNvbnRyYXN0IGJhY2tncm91bmRcbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tZGlzYWJsZWQgLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24tY2hldnJvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQtY29sb3IsIGRlZmF1bHQtY29udHJhc3QsIDAuNCk7XG4gIH1cblxuICAvLyBTZXQgcmlwcGxlcyBjb2xvciB0byBiZSB0aGUgY29udHJhc3QgY29sb3Igb2YgdGhlIG5ldyBiYWNrZ3JvdW5kLiBPdGhlcndpc2UgdGhlIHJpcHBsZVxuICAvLyBjb2xvciB3aWxsIGJlIGJhc2VkIG9uIHRoZSBhcHAgYmFja2dyb3VuZCBjb2xvci5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjEyKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYnMtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdGFiLWdyb3VwIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJ1dHRvbik7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtdG9vbGJhci1jb2xvcigkcGFsZXR0ZSkge1xuICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICBjb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbn1cblxuQG1peGluIF9tYXQtdG9vbGJhci1mb3JtLWZpZWxkLW92ZXJyaWRlcyB7XG4gIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUsXG4gIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gIC5tYXQtc2VsZWN0LXZhbHVlLFxuICAubWF0LXNlbGVjdC1hcnJvdyxcbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudCB7XG4gICAgY2FyZXQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lKSB7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJHRoZW1lLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkdGhlbWUsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkdGhlbWUsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtdG9vbGJhciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBhcHAtYmFyKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItZm9ybS1maWVsZC1vdmVycmlkZXM7XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sYmFyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXRvb2xiYXIsXG4gIC5tYXQtdG9vbGJhciBoMSxcbiAgLm1hdC10b29sYmFyIGgyLFxuICAubWF0LXRvb2xiYXIgaDMsXG4gIC5tYXQtdG9vbGJhciBoNCxcbiAgLm1hdC10b29sYmFyIGg1LFxuICAubWF0LXRvb2xiYXIgaDYge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCB0aXRsZSk7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cblxuXG5cblxuJG1hdC10b29sdGlwLXRhcmdldC1oZWlnaHQ6IDIycHg7XG4kbWF0LXRvb2x0aXAtZm9udC1zaXplOiAxMHB4O1xuJG1hdC10b29sdGlwLXZlcnRpY2FsLXBhZGRpbmc6ICgkbWF0LXRvb2x0aXAtdGFyZ2V0LWhlaWdodCAtICRtYXQtdG9vbHRpcC1mb250LXNpemUpIC8gMjtcblxuJG1hdC10b29sdGlwLWhhbmRzZXQtdGFyZ2V0LWhlaWdodDogMzBweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTogMTRweDtcbiRtYXQtdG9vbHRpcC1oYW5kc2V0LXZlcnRpY2FsLXBhZGRpbmc6XG4gICAgKCRtYXQtdG9vbHRpcC1oYW5kc2V0LXRhcmdldC1oZWlnaHQgLSAkbWF0LXRvb2x0aXAtaGFuZHNldC1mb250LXNpemUpIC8gMjtcblxuQG1peGluIG1hdC10b29sdGlwLXRoZW1lKCR0aGVtZSkge1xuICAubWF0LXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkbWF0LWdyZXksIDcwMCwgMC45KTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2x0aXAtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC5tYXQtdG9vbHRpcCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1mb250LXNpemU7XG4gICAgcGFkZGluZy10b3A6ICRtYXQtdG9vbHRpcC12ZXJ0aWNhbC1wYWRkaW5nO1xuICAgIHBhZGRpbmctYm90dG9tOiAkbWF0LXRvb2x0aXAtdmVydGljYWwtcGFkZGluZztcbiAgfVxuXG4gIC5tYXQtdG9vbHRpcC1oYW5kc2V0IHtcbiAgICBmb250LXNpemU6ICRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nLXRvcDogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZztcbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXRoZW1lKCR0aGVtZSkge1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkdGhlbWUsIGlzLWRhcmspO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcblxuICAubWF0LXNuYWNrLWJhci1jb250YWluZXIge1xuICAgIC8vIFVzZSB0aGUgcHJpbWFyeSB0ZXh0IG9uIHRoZSBkYXJrIHRoZW1lLCBldmVuIHRob3VnaCB0aGUgbGlnaHRlciBvbmUgdXNlc1xuICAgIC8vIGEgc2Vjb25kYXJ5LCBiZWNhdXNlIHRoZSBjb250cmFzdCBvbiB0aGUgbGlnaHQgcHJpbWFyeSB0ZXh0IGlzIHBvb3IuXG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkZGFyay1wcmltYXJ5LXRleHQsICRsaWdodC1zZWNvbmRhcnktdGV4dCk7XG4gICAgYmFja2dyb3VuZDogaWYoJGlzLWRhcmstdGhlbWUsIG1hcC1nZXQoJG1hdC1ncmV5LCA1MCksICMzMjMyMzIpO1xuXG4gICAgQGluY2x1ZGUgX21hdC10aGVtZS1lbGV2YXRpb24oNiwgJHRoZW1lKTtcbiAgfVxuXG4gIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCBpbmhlcml0LCBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCkpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAubWF0LXNpbXBsZS1zbmFja2JhciB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cblxuICAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogaW5oZXJpdDtcbiAgICAgIHNpemU6IGluaGVyaXQ7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIGZpbGwgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdGhlbWUoJHRoZW1lKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCR0aGVtZSwgaXMtZGFyayk7XG5cbiAgJGZpbGwtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCBpZigkaXMtZGFyay10aGVtZSwgMC4xLCAwLjA0KSk7XG4gICRmaWxsLWRpc2FibGVkLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgYmFzZSwgaWYoJGlzLWRhcmstdGhlbWUsIDAuMDUsIDAuMDIpKTtcbiAgJHVuZGVybGluZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyLCBpZigkaXMtZGFyay10aGVtZSwgMC41LCAwLjQyKSk7XG4gICRsYWJlbC1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIHtcbiAgICAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmlsbC1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWZsZXgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpbGwtZGlzYWJsZWQtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlKVxuICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgd2lkdGg6IDEwMCUgLyAkZm9udC1zY2FsZSArICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKSB7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsIGFuZCBzdWJzY3JpcHQuXG4gICRzdWJzY3JpcHQtZm9udC1zY2FsZTogMC43NTtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdG9wIG9mIHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctdG9wOiAwLjI1ZW07XG4gIC8vIFRoZSBwYWRkaW5nIGJlbG93IHRoZSBpbmZpeC5cbiAgJGluZml4LXBhZGRpbmctYm90dG9tOiAwLjc1ZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBmaWxsIGFwcGVhcmFuY2UuXG4gICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC41ZW07XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZmlsbCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nLXRvcCAwICRpbmZpeC1wYWRkaW5nLWJvdHRvbSAwO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmctdG9wO1xuICAgICAgbWFyZ2luLXRvcDogJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQ7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtZmlsbC1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLXRvcCArICRmaWxsLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmctdG9wICsgJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBsZWdhY3kgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtaGludCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgQGluY2x1ZGUgbWF0LWNvbnRyb2wtZGlzYWJsZWQtdW5kZXJsaW5lKCR1bmRlcmxpbmUtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZygkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFdlIHVzZSBwZXJzcGVjdGl2ZSB0byBmaXggdGhlIHRleHQgYmx1cnJpbmVzcyBhcyBkZXNjcmliZWQgaGVyZTpcbiAgLy8gaHR0cDovL3d3dy51c2VyYWdlbnRtYW4uY29tL2Jsb2cvMjAxNC8wNS8wNC9maXhpbmctdHlwb2dyYXBoeS1pbnNpZGUtb2YtMi1kLWNzcy10cmFuc2Zvcm1zL1xuICAvLyBUaGlzIHJlc3VsdHMgaW4gYSBzbWFsbCBqaXR0ZXIgYWZ0ZXIgdGhlIGxhYmVsIGZsb2F0cyBvbiBGaXJlZm94LCB3aGljaCB0aGVcbiAgLy8gdHJhbnNsYXRlWiBmaXhlcy5cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nKSBzY2FsZSgkZm9udC1zY2FsZSkgcGVyc3BlY3RpdmUoMTAwcHgpXG4gIHRyYW5zbGF0ZVooMC4wMDFweCArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZyArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKVxuICAgICAgICAgICAgICAgICAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuXG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTtcblxuICAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbi8vIFNhbWUgYXMgbWl4aW4gYWJvdmUsIGJ1dCBvbWl0cyB0aGUgdHJhbnNsYXRlWiBmb3IgcHJpbnRpbmcgcHVycG9zZXMuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludCgkZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKSB7XG4gIC8vIFRoaXMgcmVzdWx0cyBpbiBhIHNtYWxsIGppdHRlciBhZnRlciB0aGUgbGFiZWwgZmxvYXRzIG9uIEZpcmVmb3gsIHdoaWNoIHRoZVxuICAvLyB0cmFuc2xhdGVaIGZpeGVzLlxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSlcbiAgICAgICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgLy8gVGhlIHRyaWNrcyBhYm92ZSB1c2VkIHRvIHNtb290aCBvdXQgdGhlIGFuaW1hdGlvbiBvbiBjaHJvbWUgYW5kIGZpcmVmb3ggYWN0dWFsbHkgbWFrZSB0aGluZ3NcbiAgLy8gd29yc2Ugb24gSUUsIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBpbiB0aGUgSUUgdmVyc2lvbi5cbiAgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZSwgYnV0IHNlZW0gdG8gbWVhc3VyZSBmcm9tIHRoZSBlZGdlXG4gIC8vIG9mIHRoZSB0ZXh0IGl0c2VsZiwgbm90IHRoZSBlZGdlIG9mIHRoZSBsaW5lOyB0aGVyZWZvcmUgd2Ugc3VidHJhY3Qgb2ZmIHRoZSBsaW5lIHNwYWNpbmcuXG4gICRpbmZpeC1wYWRkaW5nOiAwLjVlbSAtICRsaW5lLXNwYWNpbmc7XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLiBXZSBhZ2FpbiBuZWVkIHRvIHN1YnRyYWN0IG9mZiB0aGUgbGluZSBzcGFjaW5nIHNpbmNlIHRoZSBtb2NrcyBtZWFzdXJlIHRvIHRoZSBlZGdlIG9mIHRoZVxuICAvLyB0ZXh0LCBub3QgdGhlICBlZGdlIG9mIHRoZSBsaW5lLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlIC0gKCRsaW5lLXNwYWNpbmcgKiAyKTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWxlZ2FjeSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgICAgcGFkZGluZy1ib3R0b206ICR3cmFwcGVyLXBhZGRpbmctYm90dG9tO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsLWNvbnRyb2w6LXdlYmtpdC1hdXRvZmlsbCArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgICAvLyBzbyB3ZSBtb3ZlIGl0IHVwIGJ5IHRoZSBwYWRkaW5nIGFtb3VudC5cbiAgICAgIGJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgICAgIG1hcmdpbi10b3A6ICRzdWJzY3JpcHQtbWFyZ2luLXRvcDtcblxuICAgICAgLy8gV2Ugd2FudCB0aGUgc3Vic2NyaXB0IHRvIHN0YXJ0IGF0IHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQgYm94LCBub3QgdGhlIHBhZGRpbmcgYm94LFxuICAgICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgICAgdG9wOiBjYWxjKDEwMCUgLSAjeyR3cmFwcGVyLXBhZGRpbmctYm90dG9tIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gdHJhbnNsYXRlWiBjYXVzZXMgdGhlIGxhYmVsIHRvIG5vdCBhcHBlYXIgd2hpbGUgcHJpbnRpbmcsIHNvIHdlIG92ZXJyaWRlIGl0IHRvIG5vdFxuICAvLyBhcHBseSB0cmFuc2xhdGVaIHdoaWxlIHByaW50aW5nXG4gIEBtZWRpYSBwcmludCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgd2lsbCByZWx5IG9uIEF1dG9maWxsTW9uaXRvciBpbnN0ZWFkLlxuICAgICAgICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nLXByaW50KFxuICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZy1wcmludChcbiAgICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtZGlzYWJsZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICRvdXRsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjMsIDAuMTIpKTtcbiAgJG91dGxpbmUtY29sb3ItaG92ZXI6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJG91dGxpbmUtY29sb3ItcHJpbWFyeTogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgJG91dGxpbmUtY29sb3ItYWNjZW50OiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICRvdXRsaW5lLWNvbG9yLXdhcm46IG1hdC1jb2xvcigkd2Fybik7XG4gICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjE1LCAwLjA2KSk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1ob3ZlcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb2N1c2VkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLXByaW1hcnk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1hY2NlbnQ7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGFzcyByZXBlYXRlZCBzbyB0aGF0IHJ1bGUgaXMgc3BlY2lmaWMgZW5vdWdoIHRvIG92ZXJyaWRlIGZvY3VzZWQgYWNjZW50IGNvbG9yIGNhc2UuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlKVxuICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXR5cG9ncmFwaHkoJGNvbmZpZykge1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBwYWRkaW5nIGFib3ZlIGFuZCBiZWxvdyB0aGUgaW5maXguXG4gICRpbmZpeC1wYWRkaW5nOiAxZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgcGFkZGluZyBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLXdyYXBwZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHN1YnNjcmlwdCwgc2luY2UgaXQnc1xuICAvLyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgc3Vic2NyaXB0J3MgbWFyZ2luIGFuZCBsaW5lLWhlaWdodCwgYnV0IHdlXG4gIC8vIG5lZWQgdG8gbXVsdGlwbHkgYnkgdGhlIHN1YnNjcmlwdCBmb250IHNjYWxlIGZhY3RvciBzaW5jZSB0aGUgd3JhcHBlciBoYXMgYSBsYXJnZXIgZm9udCBzaXplLlxuICAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTogKCRzdWJzY3JpcHQtbWFyZ2luLXRvcCArICRsaW5lLWhlaWdodCkgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2UuXG4gICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC4yNWVtO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUge1xuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZztcbiAgICAgIG1hcmdpbi10b3A6ICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0O1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLW91dGxpbmUtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZyArICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcgKyAkb3V0bGluZS1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIHN0YW5kYXJkIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBAaW5jbHVkZSBtYXQtY29udHJvbC1kaXNhYmxlZC11bmRlcmxpbmUoJHVuZGVybGluZS1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10eXBvZ3JhcGh5KCRjb25maWcpIHt9XG5cblxuLy8gVGhlbWUgc3R5bGVzIHRoYXQgYXBwbHkgdG8gYWxsIGFwcGVhcmFuY2VzIG9mIHRoZSBmb3JtLWZpZWxkLlxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJHRoZW1lLCBpcy1kYXJrKTtcblxuICAvLyBMYWJlbCBjb2xvcnMuIFJlcXVpcmVkIGlzIHVzZWQgZm9yIHRoZSBgKmAgc3RhciBzaG93biBpbiB0aGUgbGFiZWwuXG4gICRsYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCwgaWYoJGlzLWRhcmstdGhlbWUsIDAuNywgMC42KSk7XG4gICRmb2N1c2VkLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuICAkcmVxdWlyZWQtbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcblxuICAvLyBVbmRlcmxpbmUgY29sb3JzLlxuICAkdW5kZXJsaW5lLWNvbG9yLWJhc2U6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJHVuZGVybGluZS1jb2xvci1hY2NlbnQ6IG1hdC1jb2xvcigkYWNjZW50LCB0ZXh0KTtcbiAgJHVuZGVybGluZS1jb2xvci13YXJuOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1oaW50IHtcbiAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgY29sb3I6ICRmb2N1c2VkLWxhYmVsLWNvbG9yO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1yZXF1aXJlZC1tYXJrZXIge1xuICAgIGNvbG9yOiAkcmVxdWlyZWQtbGFiZWwtY29sb3I7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWJhc2U7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQubWF0LWZvY3VzZWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1mb2N1c2VkLWNvbG9yO1xuXG4gICAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICAgIH1cblxuICAgICAgJi5tYXQtd2FybiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdHlwZS1tYXQtbmF0aXZlLXNlbGVjdC5tYXQtZm9jdXNlZDpub3QoLm1hdC1mb3JtLWZpZWxkLWludmFsaWQpIHtcbiAgICAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWZvY3VzZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3ItYWNjZW50O1xuICAgIH1cblxuICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxpbmcgZm9yIHRoZSBlcnJvciBzdGF0ZSBvZiB0aGUgZm9ybSBmaWVsZC4gTm90ZSB0aGF0IHdoaWxlIHRoZSBzYW1lIGNhbiBiZVxuICAvLyBhY2hpZXZlZCB3aXRoIHRoZSBuZy0qIGNsYXNzZXMsIHdlIHVzZSB0aGlzIGFwcHJvYWNoIGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHRoZSBzYW1lXG4gIC8vIGxvZ2ljIGlzIHVzZWQgdG8gc3R5bGUgdGhlIGVycm9yIHN0YXRlIGFuZCB0byBzaG93IHRoZSBlcnJvciBtZXNzYWdlcy5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuXG4gICAgICAmLm1hdC1hY2NlbnQsXG4gICAgICAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuICAgIC5tYXQtZm9ybS1maWVsZC1yaXBwbGUubWF0LWFjY2VudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgfVxuICB9XG5cbiAgLm1hdC1lcnJvciB7XG4gICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1maWxsLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhlbWUoJHRoZW1lKTtcbn1cblxuLy8gVXNlZCB0byBtYWtlIGluc3RhbmNlcyBvZiB0aGUgX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nIG1peGluIG5lZ2xpZ2libHkgZGlmZmVyZW50LFxuLy8gYW5kIHByZXZlbnQgR29vZ2xlJ3MgQ1NTIE9wdGltaXplciBmcm9tIGNvbGxhcHNpbmcgdGhlIGRlY2xhcmF0aW9ucy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBzb21lXG4vLyBvZiB0aGUgc2VsZWN0b3JzIGNvbnRhaW4gcHNldWRvLWNsYXNzZXMgbm90IHJlY29nbml6ZWQgaW4gYWxsIGJyb3dzZXJzLiBJZiBhIGJyb3dzZXIgZW5jb3VudGVyc1xuLy8gYW4gdW5rbm93biBwc2V1ZG8tY2xhc3MgaXQgd2lsbCBkaXNjYXJkIHRoZSBlbnRpcmUgcnVsZSBzZXQuXG4kbWF0LWZvcm0tZmllbGQtZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWRlZHVwZSlcbiAgICAgICAgICAgICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1kZWR1cGU6ICRtYXQtZm9ybS1maWVsZC1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBwcmVmaXggYW5kIHN1ZmZpeCBpY29ucy5cbiAgJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlOiAxLjU7XG5cbiAgLy8gVGhlIHBhZGRpbmcgb24gdGhlIGluZml4LiBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZS5cbiAgJGluZml4LXBhZGRpbmc6IDAuNWVtO1xuICAvLyBUaGUgbWFyZ2luIGFwcGxpZWQgdG8gdGhlIGZvcm0tZmllbGQtaW5maXggdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsLlxuICAkaW5maXgtbWFyZ2luLXRvcDogMWVtICogJGxpbmUtaGVpZ2h0ICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBGb250IHNpemUgdG8gdXNlIGZvciB0aGUgbGFiZWwgYW5kIHN1YnNjcmlwdCB0ZXh0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2l6ZTogJHN1YnNjcmlwdC1mb250LXNjYWxlICogMTAwJTtcbiAgLy8gRm9udCBzaXplIHRvIHVzZSBmb3IgdGhlIGZvciB0aGUgcHJlZml4IGFuZCBzdWZmaXggaWNvbnMuXG4gICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxMDAlO1xuICAvLyBUaGUgc3BhY2UgYmV0d2VlbiB0aGUgYm90dG9tIG9mIHRoZSAubWF0LWZvcm0tZmllbGQtZmxleCBhcmVhIGFuZCB0aGUgc3Vic2NyaXB0IHdyYXBwZXIuXG4gIC8vIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLCBidXQgdGhpcyBtYXJnaW4gaXMgYXBwbGllZCB0byBhbiBlbGVtZW50IHdpdGggdGhlIHN1YnNjcmlwdFxuICAvLyB0ZXh0IGZvbnQgc2l6ZSwgc28gd2UgbmVlZCB0byBkaXZpZGUgYnkgdGhlIHNjYWxlIGZhY3RvciB0byBtYWtlIGl0IGhhbGYgb2YgdGhlIG9yaWdpbmFsIHRleHRcbiAgLy8gc2l6ZS5cbiAgJHN1YnNjcmlwdC1tYXJnaW4tdG9wOiAwLjVlbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIHBhZGRpbmcgYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC13cmFwcGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBzdWJzY3JpcHQsIHNpbmNlIGl0J3NcbiAgLy8gYWJzb2x1dGVseSBwb3NpdGlvbmVkLiBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgdGhlIHN1YnNjcmlwdCdzIG1hcmdpbiBhbmQgbGluZS1oZWlnaHQsIGJ1dCB3ZVxuICAvLyBuZWVkIHRvIG11bHRpcGx5IGJ5IHRoZSBzdWJzY3JpcHQgZm9udCBzY2FsZSBmYWN0b3Igc2luY2UgdGhlIHdyYXBwZXIgaGFzIGEgbGFyZ2VyIGZvbnQgc2l6ZS5cbiAgJHdyYXBwZXItcGFkZGluZy1ib3R0b206ICgkc3Vic2NyaXB0LW1hcmdpbi10b3AgKyAkbGluZS1oZWlnaHQpICogJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGlucHV0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC13cmFwcGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtcHJlZml4LFxuICAubWF0LWZvcm0tZmllbGQtc3VmZml4IHtcbiAgICAvLyBBbGxvdyBpY29ucyBpbiBhIHByZWZpeCBvciBzdWZmaXggdG8gYWRhcHQgdG8gdGhlIGNvcnJlY3Qgc2l6ZS5cbiAgICAubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgfVxuXG4gICAgLy8gQWxsb3cgaWNvbiBidXR0b25zIGluIGEgcHJlZml4IG9yIHN1ZmZpeCB0byBhZGFwdCB0byB0aGUgY29ycmVjdCBzaXplLlxuICAgIC5tYXQtaWNvbi1idXR0b24ge1xuICAgICAgaGVpZ2h0OiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxZW07XG4gICAgICB3aWR0aDogJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNjYWxlICogMWVtO1xuXG4gICAgICAubWF0LWljb24ge1xuICAgICAgICBoZWlnaHQ6ICRsaW5lLWhlaWdodCAqIDFlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgLy8gVGhyb3dzIG9mZiB0aGUgYmFzZWxpbmUgaWYgd2UgZG8gaXQgYXMgYSByZWFsIG1hcmdpbiwgc28gd2UgZG8gaXQgYXMgYSBib3JkZXIgaW5zdGVhZC5cbiAgICBib3JkZXItdG9wOiAkaW5maXgtbWFyZ2luLXRvcCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG5cbiAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgIC5tYXQtaW5wdXQtc2VydmVyW2xhYmVsXTpub3QoOmxhYmVsLXNob3duKSArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciB7XG4gICAgdG9wOiAtJGluZml4LW1hcmdpbi10b3A7XG4gICAgcGFkZGluZy10b3A6ICRpbmZpeC1tYXJnaW4tdG9wO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICB0b3A6ICRpbmZpeC1tYXJnaW4tdG9wICsgJGluZml4LXBhZGRpbmc7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAvLyBXZSB3YW50IHRoZSB1bmRlcmxpbmUgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQuXG4gICAgYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAkc3Vic2NyaXB0LWZvbnQtc2l6ZTtcbiAgICBtYXJnaW4tdG9wOiAkc3Vic2NyaXB0LW1hcmdpbi10b3A7XG5cbiAgICAvLyBXZSB3YW50IHRoZSBzdWJzY3JpcHQgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgLy8gc28gd2UgbW92ZSBpdCB1cCBieSB0aGUgcGFkZGluZyBhbW91bnQgKGFkanVzdGVkIGZvciB0aGUgc21hbGxlciBmb250IHNpemUpO1xuICAgIHRvcDogY2FsYygxMDAlIC0gI3skd3JhcHBlci1wYWRkaW5nLWJvdHRvbSAvICRzdWJzY3JpcHQtZm9udC1zY2FsZX0pO1xuICB9XG5cbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtbGVnYWN5LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS10eXBvZ3JhcGh5KCRjb25maWcpO1xufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtdHJlZS10aGVtZSgkdGhlbWUpIHtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXRyZWUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdHJlZS1ub2RlLFxuICAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdHJlZS10eXBvZ3JhcGh5KCRjb25maWcpIHtcbiAgLm1hdC10cmVlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10cmVlLW5vZGUsXG4gIC5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlcyBhbGwgb2YgdGhlIHR5cG9ncmFwaGljIHN0eWxlcy5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXR5cG9ncmFwaHkoJGNvbmZpZzogbnVsbCkge1xuICBAaWYgJGNvbmZpZyA9PSBudWxsIHtcbiAgICAkY29uZmlnOiBtYXQtdHlwb2dyYXBoeS1jb25maWcoKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYmFzZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1ib3R0b20tc2hlZXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2FyZC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtY2hlY2tib3gtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10YWJsZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGF0ZXBpY2tlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGlhbG9nLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1leHBhbnNpb24tcGFuZWwtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaWNvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtaW5wdXQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LW1lbnUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3MtYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1zcGlubmVyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yYWRpby10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc2VsZWN0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zaWRlbmF2LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZS10b2dnbGUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNsaWRlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc3RlcHBlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc29ydC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdGFicy10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbGJhci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbHRpcC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtb3B0aW9uLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1vcHRncm91cC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC10cmVlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG59XG5cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBhcmUgbm90IHRoZW1lLWRlcGVuZGVudC5cbkBtaXhpbiBtYXQtY29yZSgkdHlwb2dyYXBoeS1jb25maWc6IG51bGwpIHtcbiAgQGluY2x1ZGUgYW5ndWxhci1tYXRlcmlhbC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5LWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1yaXBwbGUoKTtcbiAgQGluY2x1ZGUgY2RrLWExMXkoKTtcbiAgQGluY2x1ZGUgY2RrLW92ZXJsYXkoKTtcbiAgQGluY2x1ZGUgY2RrLXRleHQtZmllbGQoKTtcbn1cblxuLy8gTWl4aW4gdGhhdCByZW5kZXJzIGFsbCBvZiB0aGUgY29yZSBzdHlsZXMgdGhhdCBkZXBlbmQgb24gdGhlIHRoZW1lLlxuQG1peGluIG1hdC1jb3JlLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtcmlwcGxlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1vcHRpb24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LW9wdGdyb3VwLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wc2V1ZG8tY2hlY2tib3gtdGhlbWUoJHRoZW1lKTtcblxuICAvLyBQcm92aWRlcyBleHRlcm5hbCBDU1MgY2xhc3NlcyBmb3IgZWFjaCBlbGV2YXRpb24gdmFsdWUuIEVhY2ggQ1NTIGNsYXNzIGlzIGZvcm1hdHRlZCBhc1xuICAvLyBgbWF0LWVsZXZhdGlvbi16JHpWYWx1ZWAgd2hlcmUgYCR6VmFsdWVgIGNvcnJlc3BvbmRzIHRvIHRoZSB6LXNwYWNlIHRvIHdoaWNoIHRoZSBlbGVtZW50IGlzXG4gIC8vIGVsZXZhdGVkLlxuICBAZm9yICR6VmFsdWUgZnJvbSAwIHRocm91Z2ggMjQge1xuICAgIC4jeyRfbWF0LWVsZXZhdGlvbi1wcmVmaXh9I3skelZhbHVlfSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRoZW1lLWVsZXZhdGlvbigkelZhbHVlLCAkdGhlbWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdyYXBwZXIgZWxlbWVudCB0aGF0IHByb3ZpZGVzIHRoZSB0aGVtZSBiYWNrZ3JvdW5kIHdoZW4gdGhlIHVzZXIncyBjb250ZW50IGlzbid0XG4gIC8vIGluc2lkZSBvZiBhIGBtYXQtc2lkZW5hdi1jb250YWluZXJgLiBOb3RlIHRoYXQgd2UgbmVlZCB0byBleGNsdWRlIHRoZSBhbXBlcnNhbmRcbiAgLy8gc2VsZWN0b3IgaW4gY2FzZSB0aGUgbWl4aW4gaXMgaW5jbHVkZWQgYXQgdGhlIHRvcCBsZXZlbC5cbiAgLm1hdC1hcHAtYmFja2dyb3VuZCN7aWYoJiwgJywgJi5tYXQtYXBwLWJhY2tncm91bmQnLCAnJyl9IHtcbiAgICAkYmFja2dyb3VuZDogbWFwLWdldCgkdGhlbWUsIGJhY2tncm91bmQpO1xuICAgICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZSwgZm9yZWdyb3VuZCk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLy8gTWFya2VyIHRoYXQgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgdXNlciBoYXMgYWRkZWQgYSB0aGVtZSB0byB0aGVpciBwYWdlLlxuICBAYXQtcm9vdCB7XG4gICAgLm1hdC10aGVtZS1sb2FkZWQtbWFya2VyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWRpdmlkZXIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWRpdmlkZXItdmVydGljYWwge1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vLyBDcmVhdGUgYSB0aGVtZS5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lKCR0aGVtZSkge1xuICBAaW5jbHVkZSBtYXQtY29yZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1iYWRnZS10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1idXR0b24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWNhcmQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWNoZWNrYm94LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtdGFibGUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWRpYWxvZy10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWljb24tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LWlucHV0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1saXN0LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1tZW51LXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wYWdpbmF0b3ItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLWJhci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtcmFkaW8tdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNlbGVjdC10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2lkZW5hdi10aGVtZSgkdGhlbWUpO1xuICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLXRoZW1lKCR0aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXN0ZXBwZXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNvcnQtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRhYnMtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2xiYXItdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXRyZWUtdGhlbWUoJHRoZW1lKTtcbiAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci10aGVtZSgkdGhlbWUpO1xufVxuIl19 */\"","import { Component, OnInit, Output, EventEmitter, ViewChild, OnDestroy, Input, AfterViewInit} from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { MatDialog, MatDialogConfig, PageEvent, MatPaginator, MatSort, MatTableDataSource } from '@angular/material';\r\nimport { CommonFilter } from 'src/app/shared/models/Common/common-filter';\r\nimport { Status, DaysOfMonth, Weekdays, Months } from 'src/app/shared/models/Scheduler/scheduler-status';\r\nimport { environment } from 'src/environments/environment';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { ConfirmDialogComponent } from 'src/app/shared/components/confirm-dialog/confirm-dialog.component';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { SCHEDULER, SCHEDULER_RECURRENCE, SCHEDULER_EMAILANDSMS } from 'src/app/shared/models';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\nimport { Subscription } from 'rxjs';\r\n \r\n@Component({\r\n selector: 'app-scheduler-status',\r\n templateUrl: './scheduler-status.component.html',\r\n styleUrls: ['./scheduler-status.component.scss'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n\r\n trigger('fadeInOut', [\r\n state('in', style({ opacity: 100 })),\r\n transition('* => void', [\r\n animate(300, style({ opacity: 0 }))\r\n ])\r\n ]),\r\n\r\n trigger('simpleFadeAnimation', [\r\n\r\n // the \"in\" style determines the \"resting\" state of the element when it is visible.\r\n state('in', style({ opacity: 1 })),\r\n\r\n // fade in when created. this could also be written as transition('void => *')\r\n transition(':enter', [\r\n style({ opacity: 0 }),\r\n animate(600)\r\n ]),\r\n\r\n // fade out when destroyed. this could also be written as transition('void => *')\r\n transition(':leave',\r\n animate(600, style({ opacity: 0 })))\r\n ]),\r\n ],\r\n\r\n})\r\nexport class SchedulerStatusComponent implements OnInit, AfterViewInit {\r\n\r\n baseUrl: string;\r\n url: string;\r\n rsltType: string = \"Scheduler\";\r\n title: string;\r\n staticScreen = true;\r\n isLoading = false;\r\n isSubLoading = {};\r\n data2: any;\r\n goToPage = null;\r\n\r\n //For Enum object instantiation - IMP\r\n StatusEnum = Status;\r\n\r\n schID: number = 0;\r\n isProfile: boolean = true;\r\n isProfileCheck: boolean = true;\r\n noRecordFound: boolean = false;\r\n\r\n private commonFilter: CommonFilter;\r\n private scheduler: SCHEDULER;\r\n\r\n @Input() StatusVquadID: number = 0;\r\n\r\n //private generalFilterArray: Array;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: false }) sort: MatSort;\r\n //dataSource = new MatTableDataSource();\r\n\r\n dataSource = new MatTableDataSource([]);//: any[]; //new MatTableDataSource(); //[];\r\n dataSource2 = [];\r\n\r\n //'select', 'RowExpand', 'Edit', 'Add', 'NodeIP_Abs'\r\n //'select', \r\n columnsToDisplay = ['RowExpand', 'ReportName_Abs', 'Description_Abs', 'ClientTimeStamp_Abs', 'OccurrencePattern_Abs', 'LatestExecDate_Abs', 'ExecsCount_Abs', 'Status_Abs'];\r\n\r\n SetIPType(LocalIPType_Abs) {\r\n return LocalIPType_Abs == \"0\" ? \"Auto Get Local IP\" : (LocalIPType_Abs == \"1\" ? \"Get Local IP from ..\\\\Profiles\\\\LocalIP.ini\" : \"Use this as Local IP\");\r\n }\r\n isDisabled = {};\r\n onSelectionChanged(matSelected, index) {\r\n //console.log(matSelected.value)\r\n if (matSelected.value == \"2\")\r\n this.isDisabled[index] = false;\r\n else\r\n this.isDisabled[index] = true;\r\n }\r\n\r\n schContactsColumns = ['ContactName_Abs', 'Country_Code_Abs', 'SMS_Number_Abs', 'EMail_Address_Abs'];\r\n\r\n expandedElement: PeriodicElement | null;\r\n\r\n tableDef: Array = [\r\n {\r\n key: 'ID_Abs',\r\n header: 'ID'\r\n },\r\n {\r\n key: 'ReportName_Abs',\r\n header: 'Name'\r\n }, {\r\n key: 'Description_Abs',\r\n header: 'Description'\r\n }, {\r\n key: 'ClientTimeStamp_Abs',\r\n header: 'Created on'\r\n },\r\n {\r\n key: 'OccurrencePattern_Abs',\r\n header: 'Occurrence Pattern'\r\n }, {\r\n key: 'LatestExecDate_Abs',\r\n header: 'Next/Final Execution Date (Central DB Timezone)'\r\n }, {\r\n key: 'ExecsCount_Abs',\r\n header: 'No of Executions happened'\r\n }, {\r\n key: 'Status_Abs',\r\n header: 'Status'\r\n },\r\n ]\r\n\r\n // MatPaginator Inputs\r\n length = 100;\r\n pageSize = 20;\r\n pageSizeOptions: number[] = [1, 10, 25, 100];\r\n pageIndex = 0;\r\n\r\n // MatPaginator Output\r\n pageEvent: PageEvent;\r\n //mySubscription: any;\r\n\r\n AutoRefreshInfo: any;\r\n interval;\r\n\r\n private subscriptions: Subscription[] = [];\r\n constructor(private commonFilterService: CommonFilterService, private http: HttpClient, private dialog: MatDialog, private router: Router, public datepipe: DatePipe) {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n\r\n this.commonFilterService.setNonFiltersScreen(this.staticScreen);\r\n\r\n //Do Refresh\r\n const _broadSubRefresh = this.commonFilterService.componentMethodCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log(res)\r\n this.LoadSchedulerData();\r\n }\r\n );\r\n this.subscriptions.push(_broadSubRefresh);\r\n\r\n //Do Auto-refresh - start/stop\r\n const _broadSubAutoRefresh = this.commonFilterService.componentMethodWithArgCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.AutoRefreshInfo = res;\r\n //console.log(res)\r\n if (this.AutoRefreshInfo.AutoRefStop) {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n }\r\n }\r\n else {\r\n this.interval = setInterval(() => {\r\n //console.log(this.AutoRefreshInfo.AutoRefStop);\r\n\r\n this.LoadSchedulerData();\r\n }, this.AutoRefreshInfo.AutoRefSelected);\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAutoRefresh);\r\n }\r\n //ngOnDestroy() {\r\n // if (this.mySubscription) {\r\n // this.mySubscription.unsubscribe();\r\n // }\r\n //}\r\n\r\n OnReloadRoute() {\r\n //this.router.navigateByUrl('statistics/scheduler');\r\n this.LoadSchedulerData();\r\n }\r\n\r\n ngOnInit() {\r\n //debugger\r\n //this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n // return false;\r\n // };\r\n // this.mySubscription = this.router.events.subscribe((event) => {\r\n // if (event instanceof NavigationEnd) {\r\n // // Trick the Router into believing it's last link wasn't previously loaded\r\n // this.router.navigated = false;\r\n\r\n // // if you need to scroll back to top, here is the right place\r\n // window.scrollTo(0, 0);\r\n // }\r\n // });\r\n\r\n this.LoadSchedulerData();\r\n }\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n\r\n updateManualPage() {\r\n //debugger;\r\n // this.manualPage = index;\r\n this.paginator.pageIndex = this.goToPage - 1;\r\n this.LoadSchedulerData(this.paginator);\r\n }\r\n\r\n ngAfterViewInit() {\r\n //setTimeout(() => this.dataSource.paginator = this.paginator);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n GetFormatedDate(dt) {\r\n ///// https://www.codegrepper.com/code-examples/javascript/date+format+angular\r\n if (dt == null)\r\n return \"\";\r\n\r\n let formatedDate = dt.toString().length > 0 ? this.datepipe.transform(new Date(dt), 'short') : \"\";\r\n return formatedDate;\r\n }\r\n\r\n //load default data\r\n currentPage: number;\r\n completedSchedulesOrNot: boolean=false;\r\n setCompleted() {\r\n this.completedSchedulesOrNot = !this.completedSchedulesOrNot;\r\n this.LoadSchedulerData();\r\n }\r\n LoadSchedulerData(event?: PageEvent) {\r\n //debugger;\r\n this.isLoading = true;\r\n this.commonFilter = new CommonFilter();\r\n this.commonFilter.ResultOrFileType = this.completedSchedulesOrNot == false ? 5 : 7;\r\n\r\n if (event != undefined) {\r\n\r\n this.currentPage = +event.pageIndex + +1;\r\n this.url = this.baseUrl + 'SchedulerStatus/GetSchedulers_New';\r\n this.commonFilter.PerPage = event.pageSize.toString();\r\n this.commonFilter.PageNumber = this.currentPage.toString();\r\n\r\n } else {\r\n this.url = this.baseUrl + 'SchedulerStatus/GetSchedulers_New';\r\n this.commonFilter.PerPage = this.pageSize.toString();\r\n this.commonFilter.PageNumber = \"1\";\r\n }\r\n\r\n this.GetData(this.commonFilter).subscribe((res: any) => {\r\n if (res !== 'null') {\r\n let rows: SCHEDULER[] = JSON.parse(res) as any[];\r\n let newRows = [];\r\n this.length = rows.length;\r\n for (const index in rows) {\r\n //let execDate = rows[index].Report_Start_Timestamp.toString().length > 0 ? (rows[index].Report_Start_Timestamp.getFullYear() < new Date().getFullYear() ? \"\" : rows[index].Report_Start_Timestamp.toString()) : \"\";\r\n ///// https://www.codegrepper.com/code-examples/javascript/date+format+angular\r\n let execDate = rows[index].Report_Start_Timestamp.toString().length > 0 ? (new Date(rows[index].Report_Start_Timestamp).getFullYear() < new Date().getFullYear() ? \"\" : this.GetFormatedDate(rows[index].Report_Start_Timestamp)) : \"\";\r\n let currNoofTimes = rows[index].CurrGenNoOfTimes;\r\n // let createOnDate = rows[index].ClientTimeStamp.toString().length > 0 ? this.datepipe.transform(new Date(rows[index].ClientTimeStamp), 'short') : \"\";\r\n let eachNewRow = {\r\n ID_Abs: rows[index].ID, ReportName_Abs: rows[index].ReportName, Description_Abs: rows[index].Description, ClientTimeStamp_Abs: this.GetFormatedDate(rows[index].ClientTimeStamp),\r\n OccurrencePattern_Abs: '', LatestExecDate_Abs: execDate, ExecsCount_Abs: currNoofTimes, Status_Abs: rows[index].Report_Latest_Status\r\n };\r\n\r\n let cronString = \"\";\r\n let hrsAndMins = rows[index].RecurrenceHrsVal + \" Hrs and \" + rows[index].RecurrenceMinutesVal + \" Mins\";\r\n let noOfTimes = \"\";\r\n let totalNoofTimes = rows[index].TotalGenNoOfTimes.toString();\r\n let recurDate = 0;\r\n let sup = 0;\r\n let currDate: DaysOfMonth;\r\n switch (totalNoofTimes) {\r\n case \"-2\":\r\n totalNoofTimes = \"1\";\r\n hrsAndMins = \"\";\r\n if (rows[index].genEndBy != null && rows[index].genEndBy.length > 0) {\r\n cronString += \"Only once on \" + (rows[index].genEndBy != null ? this.GetFormatedDate(rows[index].genEndBy) : \"\");\r\n\r\n }\r\n else {\r\n cronString += \"At once\";\r\n }\r\n break;\r\n default:\r\n this.GetRecurrence(rows[index].ReportName).subscribe((res: any) => {\r\n let dummy: SCHEDULER_RECURRENCE[] = JSON.parse(res) as any[];\r\n if (dummy != null) {\r\n if (dummy.length > 0) {\r\n let parseVal = 1;\r\n\r\n if (totalNoofTimes == \"0\")//End by particular date\r\n noOfTimes = \" till \" + rows[index].genEndBy;\r\n else if (totalNoofTimes == \"-1\")//Infinitely\r\n noOfTimes = \" endlessly\";\r\n else//Particular no of times\r\n noOfTimes = \" for \" + totalNoofTimes + \" time(s)\";\r\n\r\n switch (rows[index].RecurrenceType.toString()) {\r\n case \"1\"://Hourly\r\n cronString += \"At every \";\r\n break;\r\n case \"2\"://Daily\r\n cronString += \"Daily at \";\r\n break;\r\n case \"3\"://Weekly\r\n let weekType = dummy[0].RecurrenceDayOnEvery.toString();\r\n weekType = weekType == \"1\" ? \"1st\" : (weekType == \"2\" ? \"2nd\" : (weekType == \"3\" ? \"3rd\" : (weekType == \"4\" ? \"4th\" : \"5th\")));\r\n let daysOnEvery = dummy[0].RecurrenceDayOnEvery.toString() == \"0\" ? \"\" : weekType + \" \";\r\n\r\n cronString += \"Only on \" + daysOnEvery;\r\n for (const subIndex in dummy) {\r\n parseVal = 2;\r\n let currWeekDay: Weekdays = dummy[subIndex].RecurrenceDay;\r\n if (cronString.indexOf(currWeekDay.toString() + \", \") == -1)\r\n cronString += currWeekDay.toString() + \", \";\r\n }\r\n cronString = cronString.trim().substring(0, cronString.length - parseVal) + \" of every month at \";\r\n break;\r\n case \"4\"://Monthly\r\n cronString += \"On \";\r\n for (const subIndex in dummy) {\r\n parseVal = 2;\r\n recurDate = dummy[subIndex].RecurrenceDate;\r\n sup = 0;//1,21,31\r\n if ((recurDate >= 4 && recurDate <= 20) || (recurDate >= 24 && recurDate <= 30))\r\n sup = 3;\r\n else if (recurDate == 2 || recurDate == 22)\r\n sup = 1;\r\n else if (recurDate == 3 || recurDate == 23)\r\n sup = 2;\r\n currDate = sup;\r\n\r\n cronString += recurDate.toString() + currDate.toString() + \", \";\r\n }\r\n cronString = cronString.substring(0, cronString.length - parseVal) + \" of every month at \";\r\n break;\r\n case \"5\"://Yearly\r\n cronString += \"In \";\r\n recurDate = dummy[0].RecurrenceDate;\r\n sup = 0;//1,21,31\r\n if ((recurDate >= 4 && recurDate <= 20) || (recurDate >= 24 && recurDate <= 30))\r\n sup = 3;\r\n else if (recurDate == 2 || recurDate == 22)\r\n sup = 1;\r\n else if (recurDate == 3 || recurDate == 23)\r\n sup = 2;\r\n currDate = sup;\r\n\r\n for (const subIndex in dummy) {\r\n parseVal = 2;\r\n let currMonth: Months = dummy[subIndex].RecurrenceMonth;\r\n cronString += currMonth.toString() + \", \";\r\n }\r\n cronString = cronString.substring(0, cronString.length - parseVal) + \" of every year on \" + recurDate.toString() + currDate.toString() + \" at \";\r\n break;\r\n }\r\n }\r\n }\r\n });\r\n break;\r\n }\r\n cronString += hrsAndMins + noOfTimes;\r\n eachNewRow.OccurrencePattern_Abs = cronString;\r\n\r\n newRows.push(eachNewRow);\r\n }\r\n\r\n this.dataSource.data = newRows;\r\n }\r\n //this.length = rows.length;\r\n this.isLoading = false;\r\n },\r\n err => {\r\n this.isLoading = false;\r\n });\r\n\r\n return event;\r\n }\r\n\r\n /// expanded bind\r\n CallFunc(schName: string, elemRowIndex) {\r\n this.isSubLoading[elemRowIndex] = true;\r\n this.noRecordFound = false;\r\n\r\n this.GetEmailAndSMSData(schName).subscribe((res: any) => {\r\n let rows: SCHEDULER_EMAILANDSMS[] = JSON.parse(res) as any[];\r\n //console.log(rows);\r\n if (rows.length == 0)\r\n this.noRecordFound = true;\r\n\r\n let newRows = [];\r\n for (const index in rows) {\r\n let eachNewRow = { ContactName_Abs: rows[index].PersonName, Country_Code_Abs: rows[index].SMSCountryCode, SMS_Number_Abs: rows[index].SMSNumber, EMail_Address_Abs: rows[index].EMailAddress };\r\n newRows.push(eachNewRow);\r\n }\r\n\r\n this.dataSource2 = newRows;\r\n this.isSubLoading[elemRowIndex] = false;\r\n });\r\n }\r\n\r\n GetData(commFilter: CommonFilter) {\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, commFilter, options);\r\n }\r\n\r\n GetEmailAndSMSData(schName: string) {\r\n\r\n this.url = this.baseUrl + 'SchedulerStatus/GetEmailAndSMSBySchID_New?schName=' + schName;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(this.url, { headers: headerOptions });\r\n //.map((data: Response) => {\r\n // return data.json() as EachVqtPolqa[];\r\n //}).toPromise().then(x => {\r\n // this.eachVqtPolqaList = x;\r\n //})\r\n }\r\n GetRecurrence(schName: string) {\r\n\r\n this.url = this.baseUrl + 'SchedulerStatus/GetRecurrenceBySchID_New?schName=' + schName;\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.get(this.url, { headers: headerOptions });\r\n //.map((data: Response) => {\r\n // return data.json() as EachVqtPolqa[];\r\n //}).toPromise().then(x => {\r\n // this.eachVqtPolqaList = x;\r\n //})\r\n }\r\n\r\n parentEvent(title) {\r\n //debugger;\r\n\r\n this.title = title;\r\n this.childTitleEvent.emit({ title: this.title, staticScreen: this.staticScreen });\r\n }\r\n\r\n //change status of schedule\r\n isPaused = {};\r\n PauseRow(rowData: any, rowIndex) {\r\n\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"40%\";\r\n dailogConfig.data = { title: \"Confirm Action\", message: \"Are you sure you want to Pause Schedule?\" };\r\n\r\n this.dialog.open(ConfirmDialogComponent, dailogConfig).afterClosed().subscribe(dialogResult => {\r\n if (dialogResult) {\r\n this.isPaused[rowIndex] = !this.isPaused[rowIndex];\r\n\r\n this.PauseSchedule(rowData).subscribe((res: any) => {\r\n rowData.Status_Abs = -1; /// -1 = Pause status\r\n });\r\n\r\n this.isLoading = true;\r\n setTimeout(() => { this.isLoading = false; this.OnReloadRoute(); }, 3000);\r\n }\r\n });\r\n }\r\n ResumeRow(rowData: any, rowIndex) {\r\n\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"40%\";\r\n dailogConfig.data = { title: \"Confirm Action\", message: \"Are you sure you want to Resume Schedule?\" };\r\n\r\n this.dialog.open(ConfirmDialogComponent, dailogConfig).afterClosed().subscribe(dialogResult => {\r\n if (dialogResult) {\r\n this.isPaused[rowIndex] = !this.isPaused[rowIndex];\r\n\r\n this.ResumeSchedule(rowData).subscribe((res: any) => {\r\n rowData.Status_Abs = 1; /// -1 = Resume status\r\n });\r\n\r\n this.isLoading = true;\r\n setTimeout(() => { this.isLoading = false; this.OnReloadRoute(); }, 3000);\r\n }\r\n });\r\n\r\n }\r\n\r\n PauseSchedule(rowData: any) {\r\n //debugger;\r\n\r\n this.url = this.baseUrl + 'SchedulerStatus/PauseSchStat_Main';\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n //var body = {\r\n // PageNumber: this.commonFilter.PageNumber, PerPage: this.commonFilter.PerPage\r\n //}\r\n //return this.http.post(this.url, \"\", { headers: headerOptions }); for post 3 agrument and for get 2 arguments // JSON.stringify({ commonFilter: this.commonFilter })\r\n return this.http.post(this.url, '=' + rowData.ID_Abs, options);\r\n\r\n }\r\n ResumeSchedule(rowData: any) {\r\n //debugger;\r\n\r\n this.url = this.baseUrl + 'SchedulerStatus/ResumeSchStat_Main';\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n //var body = {\r\n // PageNumber: this.commonFilter.PageNumber, PerPage: this.commonFilter.PerPage\r\n //}\r\n //return this.http.post(this.url, \"\", { headers: headerOptions }); for post 3 agrument and for get 2 arguments // JSON.stringify({ commonFilter: this.commonFilter })\r\n return this.http.post(this.url, '=' + rowData.ID_Abs, options);\r\n\r\n }\r\n\r\n ///////////////////// checkbox selection\r\n selection = new SelectionModel(true, []);\r\n\r\n //** Whether the number of selected elements matches the total number of rows. */\r\n isAllSelected1() {\r\n\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource != null ? this.dataSource.data.length : 0;\r\n return numSelected === numRows;\r\n }\r\n\r\n //** Selects all rows if they are not all selected; otherwise clear selection. */\r\n masterToggle1() {\r\n this.isAllSelected1() ?\r\n this.selection.clear() :\r\n this.dataSource.data.forEach(row => this.selection.select(row));\r\n }\r\n\r\n //** The label for the checkbox on the passed row */\r\n checkboxLabel1(id: number, row?: any): string {\r\n\r\n if (id == 1) {\r\n if (!row) {\r\n id = 0;\r\n return `${this.isAllSelected1() ? 'select' : 'deselect'} all`;\r\n\r\n }\r\n id = 0;\r\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`;\r\n }\r\n else {\r\n this.selection.deselect();\r\n this.selection.clear();\r\n }\r\n }\r\n\r\n selectedRow: string;\r\n DeleteSchedule(ReportName_Abs) {\r\n this.selectedRow = ReportName_Abs + ',';\r\n\r\n if (this.selectedRow != '') {\r\n const dailogConfig = new MatDialogConfig();\r\n dailogConfig.disableClose = true;\r\n dailogConfig.autoFocus = true;\r\n // dailogConfig.restoreFocus = true;\r\n dailogConfig.width = \"40%\";\r\n dailogConfig.data = { title: \"Confirm Action\", message: \"Are you sure, you want to delete selected records?\" };\r\n\r\n this.dialog.open(ConfirmDialogComponent, dailogConfig).afterClosed().subscribe(dialogResult => {\r\n if (dialogResult) {\r\n this.DeleteScheduler(this.selectedRow).subscribe((res: any) => {\r\n this.isLoading = true;\r\n\r\n setTimeout(() => { this.isLoading = false; this.OnReloadRoute(); }, 8000);\r\n });\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n DeleteScheduler(schName: string) {\r\n this.url = this.baseUrl + 'SchedulerStatus/DeleteSchStat_Main';\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n //let body = '=' + JSON.stringify({\r\n // schName: schName\r\n //});\r\n\r\n //https://social.msdn.microsoft.com/Forums/en-US/06eac7a2-6d92-462e-af73-c314a27bb7f6/the-received-value-is-null-when-i-try-to-post-to-my-web-api?forum=aspwebapi\r\n //https://www.coderslexicon.com/solving-null-value-when-posting-simple-string-net-web-api/ - IMP POST method sol\r\n return this.http.post(this.url, '=' + schName, options);\r\n }\r\n ///////////////////////////////////// end checkbox\r\n}\r\n\r\n\r\n\r\nexport interface PeriodicElement {\r\n name: string;\r\n position: number;\r\n weight: number;\r\n symbol: string;\r\n description: string;\r\n}\r\n","module.exports = \".dash-point-graph-holder {\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n -ms-user-select: none;\\n max-width: 620px;\\n max-height: 420px;\\n margin: 10px 5px;\\n background-color: white;\\n}\\n\\n.dash-bar-graph-holder {\\n margin: 10px 5px;\\n background-color: white;\\n}\\n\\n.spinner_overlay {\\n position: fixed;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: #fff;\\n opacity: 0.5;\\n z-index: 1000;\\n}\\n\\n.spinner {\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n height: 60px;\\n width: 60px;\\n margin: 0px auto;\\n -webkit-animation: rotation 0.6s infinite linear;\\n animation: rotation 0.6s infinite linear;\\n border-left: 6px solid rgba(0, 174, 239, 0.15);\\n border-right: 6px solid rgba(0, 174, 239, 0.15);\\n border-bottom: 6px solid rgba(0, 174, 239, 0.15);\\n border-top: 6px solid rgba(0, 174, 239, 0.8);\\n border-radius: 100%;\\n}\\n\\n.divheight {\\n height: 20px;\\n}\\n\\ntable {\\n width: 100%;\\n overflow: auto;\\n /*table-layout:auto;*/\\n}\\n\\n/*th, td {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n}*/\\n\\ntr.example-detail-row {\\n height: 0;\\n}\\n\\ntr.example-element-row:not(.example-expanded-row):hover {\\n background: whitesmoke;\\n}\\n\\ntr.example-element-row:not(.example-expanded-row):active {\\n background: #efefef;\\n}\\n\\n.example-element-row td {\\n border-bottom-width: 0;\\n}\\n\\n.example-element-detail {\\n overflow: hidden;\\n /*display: flex;*/\\n}\\n\\n.example-element-diagram {\\n min-width: 80px;\\n border: 2px solid black;\\n padding: 8px;\\n font-weight: lighter;\\n margin: 8px 0;\\n height: 104px;\\n}\\n\\n.example-element-symbol {\\n font-weight: bold;\\n font-size: 40px;\\n line-height: normal;\\n}\\n\\n.example-element-description {\\n padding: 16px;\\n}\\n\\n.example-element-description-attribution {\\n opacity: 0.5;\\n}\\n\\nth {\\n background-color: #5B9BD5;\\n}\\n\\n.th_expanded {\\n background-color: #C9DFF4;\\n padding: 4px 3px;\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n}\\n\\n.theader {\\n color: white;\\n padding: 4px 3px;\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n /*border-top: 1px solid #c6c6c6;*/\\n}\\n\\n.td_expanded {\\n padding: 4px 3px;\\n border-right: 1px solid #c6c6c6;\\n border-bottom: 1px solid #c6c6c6;\\n border-top: 1px solid #c6c6c6;\\n border-left: 1px solid #c6c6c6;\\n}\\n\\n.divHearder {\\n margin-left: 200px;\\n font-size: large;\\n}\\n\\n.td_Main {\\n padding: 4px 3px;\\n border-bottom: 1px solid #c6c6c6;\\n border-top: 1px solid #c6c6c6;\\n}\\n\\n.highlight {\\n color: blueviolet;\\n}\\n\\n.footer {\\n position: fixed;\\n left: 0;\\n bottom: 0;\\n width: 100%;\\n background-color: red;\\n color: white;\\n text-align: center;\\n}\\n\\n/*start Radio Button*/\\n\\n/*.mat-radio-button ~ .mat-radio-button {\\n margin-left: 16px;\\n}*/\\n\\n/*END Radio Button*/\\n\\n/*start checkbox*/\\n\\n/*.checkboxsize .defaultMat .mat-checkbox-inner-container {\\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n::ng-deep .mat-checkbox .mat-checkbox-frame {\\n border-color: violet;\\n top: 10px;\\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n\\n::ng-deep .mat-checkbox-checked .mat-checkbox-background,\\n::ng-deep .mat-checkbox-indeterminate .mat-checkbox-background {\\n background-color: blue !important;\\n top: 10px;\\n width: 20px;\\n height: 20px;\\n}*/\\n\\n/*::ng-deep .mat-checkbox-checked .mat-checkbox-background {\\n background-color: blue !important;\\n top: 10px;\\n width: 20px;\\n height: 20px;\\n}*/\\n\\n/*end checkbox*/\\n\\n/*::ng-deep .mat-checkbox-checked .mat-checkbox-background {\\n background-color: blue !important;\\n top: 10px;\\n width: 20px;\\n height: 20px;\\n}*/\\n\\n/*end checkbox*/\\n\\n.dt-toolbar-row-AG {\\n display: -ms-flexbox;\\n display: flex;\\n /*margin-right: -5px;\\n margin-left: -5px;\\n margin-bottom: 1rem;*/\\n}\\n\\n.dt-toolbar-col-AG {\\n padding-right: 5px;\\n padding-left: 5px;\\n position: relative;\\n}\\n\\n.dt-toolbar-col-AG .dt-context-menu {\\n width: 170px;\\n display: none;\\n}\\n\\n.dt-toolbar-col-AG.open .dt-context-menu {\\n display: block;\\n}\\n\\n.dt-toolbar-col-AG .dt-list-menu-item.disabled,\\n.dt-toolbar-col-AG .dt-list-menu-item.disabled:hover {\\n color: silver;\\n background-color: transparent;\\n border: 0;\\n box-shadow: 0 0 0;\\n cursor: default;\\n}\\n\\n.click {\\n cursor: pointer;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc3RhdGlzdGljcy92b2ljZS1xdWFsaXR5LXN0YXRpc3RpY3MtcGllLWNoYXJ0L0Q6XFxTcmN3ZWJcXFZTMjAxNyBQcm9qZWN0c1xcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlld2VyX0FuZ01hdFxcV2Vidmlldy9zcmNcXGFwcFxcc3RhdGlzdGljc1xcdm9pY2UtcXVhbGl0eS1zdGF0aXN0aWNzLXBpZS1jaGFydFxcdm9pY2UtcXVhbGl0eS1zdGF0aXN0aWNzLXBpZS1jaGFydC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvc3RhdGlzdGljcy92b2ljZS1xdWFsaXR5LXN0YXRpc3RpY3MtcGllLWNoYXJ0L3ZvaWNlLXF1YWxpdHktc3RhdGlzdGljcy1waWUtY2hhcnQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxzQkFBQTtFQUNBLHlCQUFBO0VBQ0EscUJBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSx1QkFBQTtBQ0NGOztBREVBO0VBQ0UsZ0JBQUE7RUFDQSx1QkFBQTtBQ0NGOztBREdBO0VBQ0UsZUFBQTtFQUNBLE9BQUE7RUFDQSxNQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0FDQUY7O0FER0E7RUFDRSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxRQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtFQUNBLGdEQUFBO0VBR0Esd0NBQUE7RUFDQSw4Q0FBQTtFQUNBLCtDQUFBO0VBQ0EsZ0RBQUE7RUFDQSw0Q0FBQTtFQUNBLG1CQUFBO0FDQUY7O0FER0E7RUFDRSxZQUFBO0FDQUY7O0FER0E7RUFDRSxXQUFBO0VBQ0EsY0FBQTtFQUNBLHFCQUFBO0FDQUY7O0FERUE7Ozs7RUFBQTs7QUFLQTtFQUNFLFNBQUE7QUNDRjs7QURFQTtFQUNFLHNCQUFBO0FDQ0Y7O0FERUE7RUFDRSxtQkFBQTtBQ0NGOztBREVBO0VBQ0Usc0JBQUE7QUNDRjs7QURFQTtFQUNFLGdCQUFBO0VBQ0EsaUJBQUE7QUNDRjs7QURFQTtFQUNFLGVBQUE7RUFDQSx1QkFBQTtFQUNBLFlBQUE7RUFDQSxvQkFBQTtFQUNBLGFBQUE7RUFDQSxhQUFBO0FDQ0Y7O0FERUE7RUFDRSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxtQkFBQTtBQ0NGOztBREVBO0VBQ0UsYUFBQTtBQ0NGOztBREVBO0VBQ0UsWUFBQTtBQ0NGOztBREVBO0VBQ0UseUJBQUE7QUNDRjs7QURFQTtFQUNFLHlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSwrQkFBQTtFQUNBLGdDQUFBO0FDQ0Y7O0FERUE7RUFDRSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSwrQkFBQTtFQUNBLGdDQUFBO0VBQ0EsaUNBQUE7QUNDRjs7QURJQTtFQUNFLGdCQUFBO0VBQ0EsK0JBQUE7RUFDQSxnQ0FBQTtFQUNBLDZCQUFBO0VBQ0EsOEJBQUE7QUNERjs7QURJQTtFQUNFLGtCQUFBO0VBQ0EsZ0JBQUE7QUNERjs7QURJQTtFQUNFLGdCQUFBO0VBQ0EsZ0NBQUE7RUFDQSw2QkFBQTtBQ0RGOztBRElBO0VBQ0UsaUJBQUE7QUNERjs7QURJQTtFQUNFLGVBQUE7RUFDQSxPQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxxQkFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtBQ0RGOztBREtBLHFCQUFBOztBQUNBOztFQUFBOztBQUdBLG1CQUFBOztBQUVBLGlCQUFBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFBQTs7QUEwQkE7Ozs7O0VBQUE7O0FBTUEsZUFBQTs7QUFLQTs7Ozs7RUFBQTs7QUFNQSxlQUFBOztBQUdBO0VBQ0Usb0JBQUE7RUFBQSxhQUFBO0VBQ0E7O3lCQUFBO0FDWEY7O0FEZ0JBO0VBQ0Usa0JBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0FDYkY7O0FEZ0JBO0VBQ0UsWUFBQTtFQUNBLGFBQUE7QUNiRjs7QURnQkE7RUFDRSxjQUFBO0FDYkY7O0FEZ0JBOztFQUVFLGFBQUE7RUFDQSw2QkFBQTtFQUNBLFNBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7QUNiRjs7QURpQkE7RUFDRSxlQUFBO0FDZEYiLCJmaWxlIjoic3JjL2FwcC9zdGF0aXN0aWNzL3ZvaWNlLXF1YWxpdHktc3RhdGlzdGljcy1waWUtY2hhcnQvdm9pY2UtcXVhbGl0eS1zdGF0aXN0aWNzLXBpZS1jaGFydC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5kYXNoLXBvaW50LWdyYXBoLWhvbGRlciB7XHJcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcclxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcclxuICBtYXgtd2lkdGg6IDYyMHB4O1xyXG4gIG1heC1oZWlnaHQ6IDQyMHB4O1xyXG4gIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbi5kYXNoLWJhci1ncmFwaC1ob2xkZXIge1xyXG4gIG1hcmdpbjogMTBweCA1cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcblxyXG4uc3Bpbm5lcl9vdmVybGF5IHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgb3BhY2l0eTogMC41O1xyXG4gIHotaW5kZXg6IDEwMDA7XHJcbn1cclxuXHJcbi5zcGlubmVyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogNTAlO1xyXG4gIHRvcDogNTAlO1xyXG4gIGhlaWdodDogNjBweDtcclxuICB3aWR0aDogNjBweDtcclxuICBtYXJnaW46IDBweCBhdXRvO1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiByb3RhdGlvbiAuNnMgaW5maW5pdGUgbGluZWFyO1xyXG4gIC1tb3otYW5pbWF0aW9uOiByb3RhdGlvbiAuNnMgaW5maW5pdGUgbGluZWFyO1xyXG4gIC1vLWFuaW1hdGlvbjogcm90YXRpb24gLjZzIGluZmluaXRlIGxpbmVhcjtcclxuICBhbmltYXRpb246IHJvdGF0aW9uIC42cyBpbmZpbml0ZSBsaW5lYXI7XHJcbiAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCByZ2JhKDAsMTc0LDIzOSwuMTUpO1xyXG4gIGJvcmRlci1yaWdodDogNnB4IHNvbGlkIHJnYmEoMCwxNzQsMjM5LC4xNSk7XHJcbiAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkIHJnYmEoMCwxNzQsMjM5LC4xNSk7XHJcbiAgYm9yZGVyLXRvcDogNnB4IHNvbGlkIHJnYmEoMCwxNzQsMjM5LC44KTtcclxuICBib3JkZXItcmFkaXVzOiAxMDAlO1xyXG59XHJcblxyXG4uZGl2aGVpZ2h0IHtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbn1cclxuXHJcbnRhYmxlIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBvdmVyZmxvdzogYXV0bztcclxuICAvKnRhYmxlLWxheW91dDphdXRvOyovXHJcbn1cclxuLyp0aCwgdGQge1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufSovXHJcbnRyLmV4YW1wbGUtZGV0YWlsLXJvdyB7XHJcbiAgaGVpZ2h0OiAwO1xyXG59XHJcblxyXG50ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1leHBhbmRlZC1yb3cpOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiB3aGl0ZXNtb2tlO1xyXG59XHJcblxyXG50ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1leHBhbmRlZC1yb3cpOmFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZDogI2VmZWZlZjtcclxufVxyXG5cclxuLmV4YW1wbGUtZWxlbWVudC1yb3cgdGQge1xyXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XHJcbn1cclxuXHJcbi5leGFtcGxlLWVsZW1lbnQtZGV0YWlsIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIC8qZGlzcGxheTogZmxleDsqL1xyXG59XHJcblxyXG4uZXhhbXBsZS1lbGVtZW50LWRpYWdyYW0ge1xyXG4gIG1pbi13aWR0aDogODBweDtcclxuICBib3JkZXI6IDJweCBzb2xpZCBibGFjaztcclxuICBwYWRkaW5nOiA4cHg7XHJcbiAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XHJcbiAgbWFyZ2luOiA4cHggMDtcclxuICBoZWlnaHQ6IDEwNHB4O1xyXG59XHJcblxyXG4uZXhhbXBsZS1lbGVtZW50LXN5bWJvbCB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zaXplOiA0MHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcbn1cclxuXHJcbi5leGFtcGxlLWVsZW1lbnQtZGVzY3JpcHRpb24ge1xyXG4gIHBhZGRpbmc6IDE2cHg7XHJcbn1cclxuXHJcbi5leGFtcGxlLWVsZW1lbnQtZGVzY3JpcHRpb24tYXR0cmlidXRpb24ge1xyXG4gIG9wYWNpdHk6IDAuNTtcclxufVxyXG5cclxudGgge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM1QjlCRDU7XHJcbn1cclxuXHJcbi50aF9leHBhbmRlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0M5REZGNDtcclxuICBwYWRkaW5nOiA0cHggM3B4O1xyXG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjNmM2YzY7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNmM2YzY7XHJcbn1cclxuXHJcbi50aGVhZGVyIHtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgcGFkZGluZzogNHB4IDNweDtcclxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYzZjNmM2O1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzZjNmM2O1xyXG4gIC8qYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjNmM2YzY7Ki9cclxufVxyXG5cclxuXHJcblxyXG4udGRfZXhwYW5kZWQge1xyXG4gIHBhZGRpbmc6IDRweCAzcHg7XHJcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2M2YzZjNjtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M2YzZjNjtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2M2YzZjNjtcclxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjNmM2YzY7XHJcbn1cclxuXHJcbi5kaXZIZWFyZGVyIHtcclxuICBtYXJnaW4tbGVmdDogMjAwcHg7XHJcbiAgZm9udC1zaXplOiBsYXJnZTtcclxufVxyXG5cclxuLnRkX01haW4ge1xyXG4gIHBhZGRpbmc6IDRweCAzcHg7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNmM2YzY7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjNmM2YzY7XHJcbn1cclxuXHJcbi5oaWdobGlnaHQge1xyXG4gIGNvbG9yOiBibHVldmlvbGV0O1xyXG59XHJcblxyXG4uZm9vdGVyIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgbGVmdDogMDtcclxuICBib3R0b206IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcblxyXG4vKnN0YXJ0IFJhZGlvIEJ1dHRvbiovXHJcbi8qLm1hdC1yYWRpby1idXR0b24gfiAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbn0qL1xyXG4vKkVORCBSYWRpbyBCdXR0b24qL1xyXG5cclxuLypzdGFydCBjaGVja2JveCovXHJcbi8qLmNoZWNrYm94c2l6ZSAuZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lciB7XHJcbiAgd2lkdGg6IDIwcHg7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG59XHJcblxyXG5cclxuOjpuZy1kZWVwIC5tYXQtY2hlY2tib3ggLm1hdC1jaGVja2JveC1mcmFtZSB7XHJcbiAgYm9yZGVyLWNvbG9yOiB2aW9sZXQ7XHJcbiAgdG9wOiAxMHB4O1xyXG4gIHdpZHRoOiAyMHB4O1xyXG4gIGhlaWdodDogMjBweDtcclxufVxyXG5cclxuXHJcblxyXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCxcclxuOjpuZy1kZWVwIC5tYXQtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IGJsdWUgIWltcG9ydGFudDtcclxuICB0b3A6IDEwcHg7XHJcbiAgd2lkdGg6IDIwcHg7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG59Ki9cclxuXHJcblxyXG5cclxuXHJcbi8qOjpuZy1kZWVwIC5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IGJsdWUgIWltcG9ydGFudDtcclxuICB0b3A6IDEwcHg7XHJcbiAgd2lkdGg6IDIwcHg7XHJcbiAgaGVpZ2h0OiAyMHB4O1xyXG59Ki9cclxuLyplbmQgY2hlY2tib3gqL1xyXG5cclxuXHJcblxyXG5cclxuLyo6Om5nLWRlZXAgLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZSAhaW1wb3J0YW50O1xyXG4gIHRvcDogMTBweDtcclxuICB3aWR0aDogMjBweDtcclxuICBoZWlnaHQ6IDIwcHg7XHJcbn0qL1xyXG4vKmVuZCBjaGVja2JveCovXHJcblxyXG5cclxuLmR0LXRvb2xiYXItcm93LUFHIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIC8qbWFyZ2luLXJpZ2h0OiAtNXB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IC01cHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyovXHJcbn1cclxuXHJcbi5kdC10b29sYmFyLWNvbC1BRyB7XHJcbiAgcGFkZGluZy1yaWdodDogNXB4O1xyXG4gIHBhZGRpbmctbGVmdDogNXB4O1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmR0LXRvb2xiYXItY29sLUFHIC5kdC1jb250ZXh0LW1lbnUge1xyXG4gIHdpZHRoOiAxNzBweDtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4uZHQtdG9vbGJhci1jb2wtQUcub3BlbiAuZHQtY29udGV4dC1tZW51IHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLmR0LXRvb2xiYXItY29sLUFHIC5kdC1saXN0LW1lbnUtaXRlbS5kaXNhYmxlZCxcclxuLmR0LXRvb2xiYXItY29sLUFHIC5kdC1saXN0LW1lbnUtaXRlbS5kaXNhYmxlZDpob3ZlciB7XHJcbiAgY29sb3I6IHNpbHZlcjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBib3JkZXI6IDA7XHJcbiAgYm94LXNoYWRvdzogMCAwIDA7XHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG59XHJcblxyXG5cclxuLmNsaWNrIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiIsIi5kYXNoLXBvaW50LWdyYXBoLWhvbGRlciB7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgbWF4LXdpZHRoOiA2MjBweDtcbiAgbWF4LWhlaWdodDogNDIwcHg7XG4gIG1hcmdpbjogMTBweCA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuXG4uZGFzaC1iYXItZ3JhcGgtaG9sZGVyIHtcbiAgbWFyZ2luOiAxMHB4IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG5cbi5zcGlubmVyX292ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgb3BhY2l0eTogMC41O1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG4uc3Bpbm5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgaGVpZ2h0OiA2MHB4O1xuICB3aWR0aDogNjBweDtcbiAgbWFyZ2luOiAwcHggYXV0bztcbiAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0aW9uIDAuNnMgaW5maW5pdGUgbGluZWFyO1xuICAtbW96LWFuaW1hdGlvbjogcm90YXRpb24gMC42cyBpbmZpbml0ZSBsaW5lYXI7XG4gIC1vLWFuaW1hdGlvbjogcm90YXRpb24gMC42cyBpbmZpbml0ZSBsaW5lYXI7XG4gIGFuaW1hdGlvbjogcm90YXRpb24gMC42cyBpbmZpbml0ZSBsaW5lYXI7XG4gIGJvcmRlci1sZWZ0OiA2cHggc29saWQgcmdiYSgwLCAxNzQsIDIzOSwgMC4xNSk7XG4gIGJvcmRlci1yaWdodDogNnB4IHNvbGlkIHJnYmEoMCwgMTc0LCAyMzksIDAuMTUpO1xuICBib3JkZXItYm90dG9tOiA2cHggc29saWQgcmdiYSgwLCAxNzQsIDIzOSwgMC4xNSk7XG4gIGJvcmRlci10b3A6IDZweCBzb2xpZCByZ2JhKDAsIDE3NCwgMjM5LCAwLjgpO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuXG4uZGl2aGVpZ2h0IHtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogYXV0bztcbiAgLyp0YWJsZS1sYXlvdXQ6YXV0bzsqL1xufVxuXG4vKnRoLCB0ZCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufSovXG50ci5leGFtcGxlLWRldGFpbC1yb3cge1xuICBoZWlnaHQ6IDA7XG59XG5cbnRyLmV4YW1wbGUtZWxlbWVudC1yb3c6bm90KC5leGFtcGxlLWV4cGFuZGVkLXJvdyk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZXNtb2tlO1xufVxuXG50ci5leGFtcGxlLWVsZW1lbnQtcm93Om5vdCguZXhhbXBsZS1leHBhbmRlZC1yb3cpOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNlZmVmZWY7XG59XG5cbi5leGFtcGxlLWVsZW1lbnQtcm93IHRkIHtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbn1cblxuLmV4YW1wbGUtZWxlbWVudC1kZXRhaWwge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKmRpc3BsYXk6IGZsZXg7Ki9cbn1cblxuLmV4YW1wbGUtZWxlbWVudC1kaWFncmFtIHtcbiAgbWluLXdpZHRoOiA4MHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCBibGFjaztcbiAgcGFkZGluZzogOHB4O1xuICBmb250LXdlaWdodDogbGlnaHRlcjtcbiAgbWFyZ2luOiA4cHggMDtcbiAgaGVpZ2h0OiAxMDRweDtcbn1cblxuLmV4YW1wbGUtZWxlbWVudC1zeW1ib2wge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiA0MHB4O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4uZXhhbXBsZS1lbGVtZW50LWRlc2NyaXB0aW9uIHtcbiAgcGFkZGluZzogMTZweDtcbn1cblxuLmV4YW1wbGUtZWxlbWVudC1kZXNjcmlwdGlvbi1hdHRyaWJ1dGlvbiB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxudGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNUI5QkQ1O1xufVxuXG4udGhfZXhwYW5kZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzlERkY0O1xuICBwYWRkaW5nOiA0cHggM3B4O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYzZjNmM2O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M2YzZjNjtcbn1cblxuLnRoZWFkZXIge1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDRweCAzcHg7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjNmM2YzY7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzZjNmM2O1xuICAvKmJvcmRlci10b3A6IDFweCBzb2xpZCAjYzZjNmM2OyovXG59XG5cbi50ZF9leHBhbmRlZCB7XG4gIHBhZGRpbmc6IDRweCAzcHg7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjNmM2YzY7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzZjNmM2O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2M2YzZjNjtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjYzZjNmM2O1xufVxuXG4uZGl2SGVhcmRlciB7XG4gIG1hcmdpbi1sZWZ0OiAyMDBweDtcbiAgZm9udC1zaXplOiBsYXJnZTtcbn1cblxuLnRkX01haW4ge1xuICBwYWRkaW5nOiA0cHggM3B4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M2YzZjNjtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjNmM2YzY7XG59XG5cbi5oaWdobGlnaHQge1xuICBjb2xvcjogYmx1ZXZpb2xldDtcbn1cblxuLmZvb3RlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLypzdGFydCBSYWRpbyBCdXR0b24qL1xuLyoubWF0LXJhZGlvLWJ1dHRvbiB+IC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XG59Ki9cbi8qRU5EIFJhZGlvIEJ1dHRvbiovXG4vKnN0YXJ0IGNoZWNrYm94Ki9cbi8qLmNoZWNrYm94c2l6ZSAuZGVmYXVsdE1hdCAubWF0LWNoZWNrYm94LWlubmVyLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cblxuOjpuZy1kZWVwIC5tYXQtY2hlY2tib3ggLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gIGJvcmRlci1jb2xvcjogdmlvbGV0O1xuICB0b3A6IDEwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cblxuXG46Om5nLWRlZXAgLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCxcbjo6bmctZGVlcCAubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZSAhaW1wb3J0YW50O1xuICB0b3A6IDEwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59Ki9cbi8qOjpuZy1kZWVwIC5tYXQtY2hlY2tib3gtY2hlY2tlZCAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlICFpbXBvcnRhbnQ7XG4gIHRvcDogMTBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn0qL1xuLyplbmQgY2hlY2tib3gqL1xuLyo6Om5nLWRlZXAgLm1hdC1jaGVja2JveC1jaGVja2VkIC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsdWUgIWltcG9ydGFudDtcbiAgdG9wOiAxMHB4O1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufSovXG4vKmVuZCBjaGVja2JveCovXG4uZHQtdG9vbGJhci1yb3ctQUcge1xuICBkaXNwbGF5OiBmbGV4O1xuICAvKm1hcmdpbi1yaWdodDogLTVweDtcbiAgICBtYXJnaW4tbGVmdDogLTVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyovXG59XG5cbi5kdC10b29sYmFyLWNvbC1BRyB7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmR0LXRvb2xiYXItY29sLUFHIC5kdC1jb250ZXh0LW1lbnUge1xuICB3aWR0aDogMTcwcHg7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kdC10b29sYmFyLWNvbC1BRy5vcGVuIC5kdC1jb250ZXh0LW1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmR0LXRvb2xiYXItY29sLUFHIC5kdC1saXN0LW1lbnUtaXRlbS5kaXNhYmxlZCxcbi5kdC10b29sYmFyLWNvbC1BRyAuZHQtbGlzdC1tZW51LWl0ZW0uZGlzYWJsZWQ6aG92ZXIge1xuICBjb2xvcjogc2lsdmVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBib3gtc2hhZG93OiAwIDAgMDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uY2xpY2sge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59Il19 */\"","import { Component, OnInit, Output, EventEmitter, ViewChild, Sanitizer, ElementRef, OnDestroy } from '@angular/core';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { HttpClient, HttpHeaders, HttpRequest, HttpResponse, HttpParams } from '@angular/common/http';\r\nimport { request } from 'http';\r\n//import { RequestMetadata, PagedResult } from '../../../../lib/ng-crud-table';\r\nimport { MatTableDataSource, fadeInContent } from '@angular/material';\r\nimport { DataSource } from '@angular/cdk/table';\r\nimport { MatDialog, MatDialogConfig, PageEvent, MatPaginator } from '@angular/material';\r\nimport { Row } from 'lib/ng-data-table';\r\nimport { SelectItem, formatDate, lastDateFunc } from 'lib/common';\r\nimport { rsltTypeInTitle } from 'src/app/shared/functions/title';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Chart, ChartType, ChartOptions } from 'chart.js';\r\nimport { ChartsModule } from 'ng2-charts';\r\nimport { CustomStatsConfig } from 'src/app/shared/models/Configuration/CustomStatsConfig';\r\nimport { CommonFilterService } from 'src/app/shared/services/common-filter/common-filter.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { CommonFilter } from 'src/app/shared/models/Common/common-filter';\r\nimport { DataFilter } from 'lib/ng-data-table/base';\r\nimport { DemoService } from 'src/app/shared/demo.service';\r\n\r\n@Component({\r\n selector: 'app-voice-quality-statistics-pie-chart',\r\n templateUrl: './voice-quality-statistics-pie-chart.component.html',\r\n styleUrls: ['./voice-quality-statistics-pie-chart.component.scss', '../../graphics/analysis/analysis.component.scss',\r\n '../../../../lib/dt-toolbar/dt-toolbar.component.css',\r\n '../../../../lib/styles/icons.css',\r\n '../../../../lib/styles/context-menu.css',\r\n '../../../../lib/styles/list-menu.css'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n ]),\r\n ],\r\n})\r\nexport class VoiceQualityStatisticsPieChartComponent implements OnInit, OnDestroy {\r\n baseUrl: string;\r\n url: string;\r\n //public chartNameRTD: string = \"\";\r\n //public chartNameOWD: string = \"\";\r\n //public chartNamePDD: string = \"\";\r\n //public chartNameSNR: string = \"\";\r\n pieChartVQT: Chart;\r\n pieChartPOLQA: Chart;\r\n pieChartPOLQAv3: Chart;\r\n pieChartVBA: Chart;\r\n showLegend: boolean = false;\r\n getLegend: boolean = false;\r\n voiceQualityConfigList = [];\r\n expandedElement: PeriodicElement | null;\r\n voiceQualityConfig = new CustomStatsConfig();\r\n\r\n clearAllFiltersAction: boolean = true;\r\n actionsMessage: string = 'Actions';\r\n modifyFiltersMessage: string = 'Modify filters';\r\n clearFiltersMessage: string = 'Clear all filters';\r\n isFilters: boolean = true;\r\n hasFilters: boolean;\r\n\r\n rsltType: string = \"VoiceQualityStatsPieChart\";\r\n\r\n rsltTypeTS = '-1';\r\n TSSelected: number;\r\n\r\n AutoRefreshInfo: any;\r\n\r\n title: string = \"Voice Quality Statistics\";\r\n staticScreen = false;\r\n @Output() childTitleEvent = new EventEmitter();\r\n\r\n isLoading = true;\r\n\r\n interval;\r\n\r\n private subscriptions: Subscription[] = [];\r\n filterEventIDSelected = false;\r\n delColSelected = false;\r\n columnName = \"VQuad_Timestamp\";\r\n TimestampType = 1;\r\n\r\n //public pieChartOptionsRTD: ChartOptions = {\r\n // responsive: true,\r\n // legend: {\r\n // position: 'left',\r\n // },\r\n // plugins: {\r\n // datalabels: {\r\n // formatter: (value, ctx) => {\r\n // const label = ctx.chart.data.labels[ctx.dataIndex];\r\n // return label;\r\n // },\r\n // },\r\n // }\r\n //};\r\n //public pieChartLabelsRTD: string[] = [];\r\n //public pieChartDataRTD: number[] = [300, 500, 100, 200];\r\n //public pieChartTypeRTD: ChartType = 'pie';\r\n //public pieChartLegendRTD = true;\r\n ////public pieChartPlugins = [pluginDataLabels];\r\n //public pieChartColorsRTD = [\r\n // {\r\n // backgroundColor: ['rgba(0, 0, 255)', 'rgba(0, 0, 255)', 'rgba(0, 0, 255)', 'rgba(0, 0, 255)'],\r\n // },\r\n //];\r\n\r\n //public pieChartOptionsOWD: ChartOptions = {\r\n // responsive: true,\r\n // legend: {\r\n // position: 'left',\r\n // },\r\n // plugins: {\r\n // datalabels: {\r\n // formatter: (value, ctx) => {\r\n // const label = ctx.chart.data.labels[ctx.dataIndex];\r\n // return label;\r\n // },\r\n // },\r\n // }\r\n //};\r\n //public pieChartLabelsOWD: string[] = [];\r\n //public pieChartDataOWD: number[] = [300, 500, 100, 200];\r\n //public pieChartTypeOWD: ChartType = 'pie';\r\n //public pieChartLegendOWD = true;\r\n ////public pieChartPlugins = [pluginDataLabels];\r\n //public pieChartColorsOWD = [\r\n // {\r\n // backgroundColor: ['rgba(255,255,0)', 'rgba(255,255,0)', 'rgba(255,255,0)', 'rgba(255,255,0)'],\r\n // },\r\n //];\r\n\r\n //public pieChartOptionsPDD: ChartOptions = {\r\n // responsive: true,\r\n // legend: {\r\n // position: 'left',\r\n // },\r\n // plugins: {\r\n // datalabels: {\r\n // formatter: (value, ctx) => {\r\n // const label = ctx.chart.data.labels[ctx.dataIndex];\r\n // return label;\r\n // },\r\n // },\r\n // }\r\n //};\r\n //public pieChartLabelsPDD: string[] = [];\r\n //public pieChartDataPDD: number[] = [300, 500, 100, 200];\r\n //public pieChartTypePDD: ChartType = 'pie';\r\n //public pieChartLegendPDD = true;\r\n ////public pieChartPlugins = [pluginDataLabels];\r\n //public pieChartColorsPDD = [\r\n // {\r\n // backgroundColor: ['rgba(0, 0, 255)', 'rgba(0, 0, 255)', 'rgba(0, 0, 255)', 'rgba(0, 0, 255)'],\r\n // },\r\n //];\r\n\r\n //public pieChartOptionsSNR: ChartOptions = {\r\n // responsive: true,\r\n // legend: {\r\n // position: 'left',\r\n // },\r\n // plugins: {\r\n // datalabels: {\r\n // formatter: (value, ctx) => {\r\n // const label = ctx.chart.data.labels[ctx.dataIndex];\r\n // return label;\r\n // },\r\n // },\r\n // }\r\n //};\r\n //public pieChartLabelsSNR: string[] = [];\r\n //public pieChartDataSNR: number[] = [300, 500, 100, 200];\r\n //public pieChartTypeSNR: ChartType = 'pie';\r\n //public pieChartLegendSNR = true;\r\n ////public pieChartPlugins = [pluginDataLabels];\r\n //public pieChartColorsSNR = [\r\n // {\r\n // backgroundColor: ['rgba(0, 0, 255)', 'rgba(0, 0, 255)', 'rgba(0, 0, 255)', 'rgba(0, 0, 255)'],\r\n // },\r\n //];\r\n\r\n dataSource: any[];\r\n dataSourceExpanded = [];\r\n dataSourcePolqa: any[];\r\n dataSourceExpandedPolqa = [];\r\n dataSourceVBA: any[];\r\n dataSourceExpandedVBA = [];\r\n lstPieChartSetting: [] = [];\r\n\r\n vqtColumnsToDisplay = ['RowExpand', 'VQuad_Location', 'AVGOfPESQ_LQ', 'MAXOfPESQ_LQ', 'MINOfPESQ_LQ', 'AVGOfPESQ_MOS', 'MAXOfPESQ_MOS', 'MINOfPESQ_MOS', 'AVGOfPESQ_WB'\r\n , 'MAXOfPESQ_WB', 'MINOfPESQ_WB', 'AVGOfPESQ_Score', 'MAXOfPESQ_Score', 'MINOfPESQ_Score', 'AVGOfPESQ_Average_offset', 'AVGOfPESQ_Max_Offset', 'AVGOfPESQ_Min_Offset', 'AVGOfPESQ_Std_Deviation_Offset'\r\n , 'AVGOfAverage_Jitter', 'AVGOfNumber_All_clipping', 'AVGOfProportion_All_clipping', 'AVGOfDuration_ALL_Clipping', 'AVGOfMean_Duration_ALL_Clipping', 'AVGOfduration_hangover'\r\n , 'AVGOfNumber_of_hangover', 'TotalRecord'];\r\n\r\n pesqExpandedColumns = ['VQuad_PhoneID', 'AVGOfPESQ_LQ', 'MAXOfPESQ_LQ', 'MINOfPESQ_LQ', 'AVGOfPESQ_MOS', 'MAXOfPESQ_MOS', 'MINOfPESQ_MOS', 'AVGOfPESQ_WB'\r\n , 'MAXOfPESQ_WB', 'MINOfPESQ_WB', 'AVGOfPESQ_Score', 'MAXOfPESQ_Score', 'MINOfPESQ_Score', 'AVGOfPESQ_Average_offset', 'AVGOfPESQ_Max_Offset', 'AVGOfPESQ_Min_Offset', 'AVGOfPESQ_Std_Deviation_Offset'\r\n , 'AVGOfAverage_Jitter', 'AVGOfNumber_All_clipping', 'AVGOfProportion_All_clipping', 'AVGOfDuration_ALL_Clipping', 'AVGOfMean_Duration_ALL_Clipping', 'AVGOfduration_hangover'\r\n , 'AVGOfNumber_of_hangover', 'TotalRecord'];\r\n\r\n //// Polqa\r\n polqaColumnsToDisplay = ['RowExpand', 'VQuad_Location', 'AVGOfPOLQA_v3', 'MAXOfPOLQA_v3', 'MINOfPOLQA_v3', 'AVGOfPOLQA_Score', 'MAXOfPOLQA_Score', 'MINOfPOLQA_Score'\r\n , 'AVGOfEModel_Polqa', 'MAXOfEModel_Polqa', 'MINOfEModel_Polqa', 'AVGOfSpeech_Level_Diff', 'MAXOfSpeech_Level_Diff', 'MINOfSpeech_Level_Diff', 'AVGOfSNR_Diff'\r\n , 'MAXOfSNR_Diff', 'MINOfSNR_Diff', 'AVGOfJitter_Ave', 'MAXOfJitter_Max', 'MINOfJitter_Min', 'AVGOfASR_Ref'\r\n , 'AVGOfASR_Deg', 'AVGOfNumber_of_Utterance', 'TotalRecord'];\r\n\r\n polqaExpandedColumns = ['VQuad_PhoneID', 'AVGOfPOLQA_v3', 'MAXOfPOLQA_v3', 'MINOfPOLQA_v3', 'AVGOfPOLQA_Score', 'MAXOfPOLQA_Score', 'MINOfPOLQA_Score'\r\n , 'AVGOfEModel_Polqa', 'MAXOfEModel_Polqa', 'MINOfEModel_Polqa', 'AVGOfSpeech_Level_Diff', 'MAXOfSpeech_Level_Diff', 'MINOfSpeech_Level_Diff', 'AVGOfSNR_Diff'\r\n , 'MAXOfSNR_Diff', 'MINOfSNR_Diff', 'AVGOfJitter_Ave', 'MAXOfJitter_Max', 'MINOfJitter_Min', 'AVGOfASR_Ref'\r\n , 'AVGOfASR_Deg', 'AVGOfNumber_of_Utterance', 'TotalRecord'];\r\n expandedElementPolqa: PeriodicElement | null;\r\n\r\n ///// VBA\r\n vbaColumnsToDisplay = ['RowExpand', 'VQuad_Location', 'AVGOfMOS_CQ', 'MAXOfMOS_CQ', 'MINOfMOS_CQ', 'AVGOfRFactor', 'MAXOfRFactor', 'MINOfRFactor', 'TotalRecord'];\r\n\r\n vbaExpandedColumns = ['VQuad_PhoneID', 'AVGOfMOS_CQ', 'MAXOfMOS_CQ', 'MINOfMOS_CQ', 'AVGOfRFactor', 'MAXOfRFactor', 'MINOfRFactor', 'TotalRecord'];\r\n expandedElementVBA: PeriodicElement | null;\r\n\r\n constructor(private _Activatedroute: ActivatedRoute, private _router: Router, private service: DemoService, private commonFilterService: CommonFilterService, private http: HttpClient, private dialog: MatDialog) {\r\n this.baseUrl = environment.urlAddress + '/api/';\r\n\r\n _Activatedroute.params.subscribe(val => {\r\n this.rsltType = _Activatedroute.snapshot.url[1].path;\r\n\r\n this.parentEvent();\r\n });\r\n this.commonFilterService.setNonFiltersScreen(this.staticScreen);\r\n\r\n this.commonFilterService.TSType.subscribe(res => {//TsType\r\n this.TimestampType = res;\r\n if (this.TimestampType >= 2)//\r\n this.TimestampType = 1;//Change VQT to VQuad Timestamp if screen doesn't belongs to VQT types nd send as TSTYpe in filtering - IMP\r\n this.columnName = \"VQuad_Timestamp\";\r\n if (this.TimestampType == 2) {\r\n this.columnName = \"VQT_Timestamp\";\r\n }\r\n else if (this.TimestampType == 0) {\r\n this.columnName = \"Call_Timestamp\";\r\n }\r\n });\r\n\r\n const _broadSublisten = this.commonFilterService.listen.subscribe(res => {\r\n if (res === 'onlVQTStatInit' && !this.filterEventIDSelected)\r\n this.LoadVQT('');\r\n if (this.filterEventIDSelected)\r\n this.filterEventIDSelected = false;\r\n });\r\n this.subscriptions.push(_broadSublisten);\r\n\r\n this.commonFilterService.isFilters$.subscribe(res => {\r\n this.isFilters = res;\r\n });\r\n\r\n //Do Refresh\r\n const _broadSubRefresh = this.commonFilterService.componentMethodCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.LoadVQT('');\r\n }\r\n );\r\n this.subscriptions.push(_broadSubRefresh);\r\n\r\n const _broadSubDeleteFilter = this.commonFilterService.DeleteFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n if (res !== '') {//IMP IMP\r\n this.LoadVQT(res);\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubDeleteFilter);\r\n\r\n const _broadSubAllGeneralFilter = this.commonFilterService.AllGeneralFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log('AllGeneralFilter')\r\n this.AllGeneralFilter = res;\r\n if (!this.delColSelected && !this.clearAllFiltersBool && this.AllGeneralFilter.length > 0)\r\n this.LoadVQT('');\r\n\r\n //reset here\r\n if (this.delColSelected)\r\n this.delColSelected = false;\r\n if (this.clearAllFiltersBool)\r\n this.clearAllFiltersBool = false;\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAllGeneralFilter);\r\n\r\n //const _broadSubGeneralDFFilter = this.commonFilterService.GeneralFilterDF.subscribe(res => {\r\n // //console.log('GeneralDFFilter')\r\n // this.filters = res;\r\n //});\r\n //this.subscriptions.push(_broadSubGeneralDFFilter);\r\n const _broadSubGeneralFilter = this.commonFilterService.GeneralFilter.subscribe(res => {\r\n //console.log('GeneralFilter')\r\n this.filters = res;\r\n });\r\n this.subscriptions.push(_broadSubGeneralFilter);\r\n\r\n const _broadSubEventIDFilter = this.commonFilterService.GeneralEventIDFilter.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n //console.log('filtersWithEventID')\r\n //this.filterEventIDSelected = true;\r\n this.filtersWithEventID = res;\r\n //if (!this.delColSelected && !this.clearAllFiltersBool && (typeof this.filtersWithEventID == 'object' && Object.keys(this.filtersWithEventID).length > 0))\r\n // this.LoadVQT('');\r\n }\r\n );\r\n this.subscriptions.push(_broadSubEventIDFilter);\r\n\r\n //Do Auto-refresh - start/stop\r\n const _broadSubAutoRefresh = this.commonFilterService.componentMethodWithArgCalled$.subscribe(\r\n //() => {\r\n // alert('(Component2) Method called!');\r\n //}\r\n\r\n res => {\r\n this.AutoRefreshInfo = res;\r\n //console.log(this.AutoRefreshInfo);\r\n\r\n if (this.AutoRefreshInfo.AutoRefStop) {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n }\r\n }\r\n else {\r\n this.interval = setInterval(() => {\r\n //console.log(this.AutoRefreshInfo.AutoRefStop);\r\n this.LoadVQT('');\r\n }, this.AutoRefreshInfo.AutoRefSelected);\r\n }\r\n }\r\n );\r\n this.subscriptions.push(_broadSubAutoRefresh);\r\n\r\n const _broadStatsRefresh = this.commonFilterService.componentVoiceStatsMethodCalled$.subscribe(\r\n res => {\r\n this.commonFilterService.basicVoiceSavedRefresh(0);\r\n this.getLegend = false;\r\n this.LoadVQT('');\r\n }\r\n );\r\n this.subscriptions.push(_broadStatsRefresh);\r\n }\r\n\r\n ngOnInit() {\r\n //this.LoadVQT();\r\n this.getLegend = false;\r\n }\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n parentEvent() {\r\n //debugger;\r\n\r\n this.title = rsltTypeInTitle(this.rsltType);\r\n this.childTitleEvent.emit({ title: this.title });\r\n }\r\n\r\n parentRef(TSSelected) {\r\n this.TSSelected = parseInt(TSSelected);\r\n //this.setRsltType();\r\n }\r\n parentEventID() {\r\n this.LoadVQT('');\r\n }\r\n parentAutoRef(AutoRefreshInfo) {\r\n this.TSSelected = parseInt(AutoRefreshInfo.TSSelected);\r\n this.AutoRefreshInfo = AutoRefreshInfo;\r\n }\r\n\r\n modifyFilter() {\r\n //this._router.navigate([{ outlets: { filterPopup: ['filters'], configPopup: null } }]);\r\n let selectedMainFilterCrieriaName = 'null';\r\n this.commonFilterService.mainFilter_CriteriaName.subscribe(res => selectedMainFilterCrieriaName = res);\r\n this._router.navigate([{ outlets: { filterPopup: ['filters', selectedMainFilterCrieriaName], configPopup: null } }]);\r\n\r\n /////// when calling modify search set mainfilter to initial values\r\n //this.commonFilterService.SetMainFilter(0);// set selected mainfilter id\r\n //this.commonFilterService.setMFCustDT(\"\");\r\n //this.commonFilterService.setMFTZON(0);\r\n ////this.commonFilterService.basicRefresh();\r\n }\r\n\r\n clearAllFiltersBool = false;\r\n clearAllFilters() {\r\n this.LoadVQT('clearAllFilters');\r\n //this.table.sorter.sortMeta = [];\r\n //this.table.events.onSort();//IMP- to reset sorting sel cols to none\r\n\r\n //if (this.table.dataFilter.hasFilters()) {\r\n // this.table.dataFilter.clear();\r\n // //console.log(this.table.dataFilter.hasFilters())\r\n // this.table.events.onFilter();\r\n // //this.table.events.onFilterClear();\r\n // this.clearFilters.emit();\r\n //}\r\n }\r\n\r\n AllGeneralFilter = [];\r\n genArrDel = [];\r\n filtersWithEventID = {};\r\n filters = {};\r\n selectedCallIDOrDevID = false;\r\n async LoadVQT(delFilterColName, dontReload?) {\r\n\r\n if (delFilterColName == 'VQuad_CallID') {\r\n this.filtersWithEventID = {};\r\n for (const key in this.filters) {\r\n if (key == 'VQuad_CallID')\r\n delete this.filters[key];\r\n }\r\n }\r\n else if (delFilterColName == 'clearAllFilters') {\r\n this.filtersWithEventID = {};\r\n for (const key in this.filters) {\r\n if (key !== this.columnName)\r\n delete this.filters[key];\r\n }\r\n }\r\n\r\n this.hasFilters = Object.keys(this.filters).length <= 1 ? false : true;/// enable /disable clear all filter option under action dropdown\r\n\r\n if (dontReload) {\r\n //do nothing as already screen loaded\r\n }\r\n else {\r\n if (!this.selectedCallIDOrDevID)\r\n this.isLoading = true;\r\n\r\n this.url = this.baseUrl + 'CustomStatsConfig/GetVoiceQualityData';\r\n await this.GetVoiceQualityMainData_Service(delFilterColName, this.AllGeneralFilter, this.filtersWithEventID, this.filters, this.TimestampType, this.columnName).then((res: any) => {\r\n //console.log(res);\r\n if (!this.selectedCallIDOrDevID) {\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //console.log(rows);\r\n this.dataSource = rows[\"lstVoiceQualityVQT\"];\r\n if (rows[\"lstVoiceQualityVQT\"].length > 0)\r\n this.currPESQVQuadLocationSelected = rows[\"lstVoiceQualityVQT\"][0].VQuad_Location;\r\n\r\n this.dataSourcePolqa = rows[\"lstVoiceQualityPOLQA\"];\r\n if (rows[\"lstVoiceQualityPOLQA\"].length > 0)\r\n this.currPOLQAVQuadLocationSelected = rows[\"lstVoiceQualityPOLQA\"][0].VQuad_Location;\r\n\r\n this.dataSourceVBA = rows[\"lstVoiceQualityVBA\"];\r\n if (rows[\"lstVoiceQualityVBA\"].length > 0)\r\n this.currVBAVQuadLocationSelected = rows[\"lstVoiceQualityVBA\"][0].VQuad_Location;\r\n\r\n this.BindPieChart(rows[\"lstPieChartSetting\"], null);\r\n }\r\n });\r\n this.isLoading = false;\r\n this.selectedCallIDOrDevID = false;\r\n }\r\n\r\n if (delFilterColName != '' && delFilterColName != 'clearAllFilters') {\r\n this.delColSelected = true;\r\n\r\n this.commonFilterService.setDeleteFilterData('');//reset if delete\r\n\r\n if (delFilterColName == 'VQuad_CallID') {\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n }\r\n\r\n this.genArrDel = this.AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"] != delFilterColName;\r\n });\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n else if (delFilterColName == 'clearAllFilters') {\r\n this.clearAllFiltersBool = true;\r\n\r\n this.commonFilterService.setClearAllFiltersData();//reset if delete\r\n this.commonFilterService.setGeneralFilterData(this.filters);\r\n this.commonFilterService.setGeneralFilterDFData(this.filters);//mainly used in main screen\r\n\r\n this.filtersWithEventID = {};\r\n this.commonFilterService.setGeneralEventIDFilterData({});\r\n\r\n this.genArrDel = [];\r\n this.commonFilterService.setAllGeneralFilterData(this.genArrDel);\r\n }\r\n }\r\n\r\n LoadSelectedCallIDVoiceQuality(event, vquadLocation, resultType, collapsed?) {\r\n if (event != null)\r\n event.preventDefault();\r\n\r\n if ((resultType == \"VQT\" && (this.currPESQVQuadLocationSelected != vquadLocation || this.expandedElement == null)) || (resultType == \"POLQA\" && (this.currPOLQAVQuadLocationSelected != vquadLocation || this.expandedElementPolqa == null))\r\n || (resultType == \"VBA\" && (this.currVBAVQuadLocationSelected != vquadLocation || this.expandedElementVBA == null)) || collapsed) {\r\n\r\n if (resultType == \"VQT\") {\r\n this.currPESQVQuadLocationSelected = vquadLocation;\r\n this.currPESQVQuadPhoneIDSelected = \"\";//reset\r\n }\r\n else if (resultType == \"POLQA\") {\r\n this.currPOLQAVQuadLocationSelected = vquadLocation;\r\n this.currPOLQAVQuadPhoneIDSelected = \"\";//reset\r\n }\r\n else {\r\n this.currVBAVQuadLocationSelected = vquadLocation;\r\n this.currVBAVQuadPhoneIDSelected = \"\";//reset\r\n }\r\n\r\n this.isLoading = true;\r\n this.url = this.baseUrl + 'CustomStatsConfig/GetVoiceQualityData?strVQuadLocation=' + vquadLocation + '&resultType=' + resultType;\r\n\r\n this.GetVoiceQualityData_Service().subscribe((resCache: any) => {\r\n //console.log(res);\r\n if (resCache == \"CacheExpired\") {\r\n this.selectedCallIDOrDevID = true;\r\n this.LoadVQT('');\r\n\r\n this.GetVoiceQualityData_Service().subscribe((res: any) => {\r\n let rows: any[] = JSON.parse(res) as any[];\r\n\r\n //this.dataSource = rows[\"lstVoiceQualityVQT\"];\r\n //this.dataSourcePolqa = rows[\"lstVoiceQualityPOLQA\"];\r\n //this.dataSourceVBA = rows[\"lstVoiceQualityVBA\"];\r\n\r\n this.BindPieChart(rows[\"lstPieChartSetting\"], resultType);\r\n this.isLoading = false;\r\n },\r\n err => {\r\n this.isLoading = false;\r\n });\r\n }\r\n else {\r\n let rows: any[] = JSON.parse(resCache) as any[];\r\n //this.dataSource = rows[\"lstVoiceQualityVQT\"];\r\n //this.dataSourcePolqa = rows[\"lstVoiceQualityPOLQA\"];\r\n //this.dataSourceVBA = rows[\"lstVoiceQualityVBA\"];\r\n\r\n this.BindPieChart(rows[\"lstPieChartSetting\"], resultType);\r\n this.isLoading = false;\r\n }\r\n },\r\n err => {\r\n this.isLoading = false;\r\n });\r\n }\r\n }\r\n\r\n BindPieChart(pieChartList, resultType) {\r\n debugger;\r\n if (this.pieChartVQT != null)\r\n this.pieChartVQT.destroy();\r\n if (this.pieChartPOLQA != null)\r\n this.pieChartPOLQA.destroy();\r\n if (this.pieChartPOLQAv3 != null)\r\n this.pieChartPOLQAv3.destroy();\r\n if (this.pieChartVBA != null)\r\n this.pieChartVBA.destroy();\r\n //console.log(pieCharList);\r\n // this.pieChartLabels.pop();\r\n let VQTNoData = false;\r\n \r\n let POLQANoData = false;\r\n \r\n let POLQAv3NoData = false;\r\n \r\n let VBANoData = false;\r\n \r\n for (let i = 0; i < pieChartList.length; i++) {\r\n //// VQT piechart\r\n if (resultType == null || resultType == \"VQT\") {\r\n if (pieChartList[i].pieChartName.split('@')[1].includes('VQT')) {\r\n VQTNoData = true;\r\n //this.chartNameRTD = pieChartList[i].pieChartName.split('@')[0] + ' (PESQ)';\r\n //this.pieChartDataRTD = pieChartList[i].pieChartData;\r\n //this.pieChartColorsRTD[0].backgroundColor = pieChartList[i].pieChartRGBColors;\r\n\r\n //for (let j = 0; j < pieChartList[i].pieChartLabels.length; j++)\r\n // this.pieChartLabelsRTD.push(pieChartList[i].pieChartLabels[j]);\r\n if (document.getElementById(\"VQTPieChart\") != null) {\r\n this.pieChartVQT = new Chart((document.getElementById(\"VQTPieChart\")).getContext(\"2d\"), {\r\n type: 'pie',\r\n data: {\r\n labels: pieChartList[i].pieChartLabels,\r\n datasets: [{\r\n backgroundColor: pieChartList[i].pieChartRGBColors,\r\n data: pieChartList[i].pieChartData\r\n }]\r\n },\r\n options: {\r\n title: {\r\n display: true,\r\n text: pieChartList[i].pieChartName\r\n },\r\n responsive: true\r\n }\r\n });\r\n this.pieChartVQT.render();\r\n }\r\n }\r\n }\r\n\r\n if (resultType == null || resultType == \"POLQA\") {\r\n //// POLQA piechart\r\n if (pieChartList[i].pieChartName.split('@')[1].includes('POLQA')) {\r\n POLQANoData = true;\r\n //this.chartNameOWD = pieChartList[i].pieChartName.split('@')[0] + ' (POLQA MOS)';\r\n //this.pieChartDataOWD = pieChartList[i].pieChartData;\r\n //this.pieChartColorsOWD[0].backgroundColor = pieChartList[i].pieChartRGBColors;\r\n\r\n //for (let j = 0; j < pieChartList[i].pieChartLabels.length; j++)\r\n // this.pieChartLabelsOWD.push(pieChartList[i].pieChartLabels[j]);\r\n if (document.getElementById(\"POLQAPieChart\") != null) {\r\n this.pieChartPOLQA = new Chart((document.getElementById(\"POLQAPieChart\")).getContext(\"2d\"), {\r\n type: 'pie',\r\n data: {\r\n labels: pieChartList[i].pieChartLabels,\r\n datasets: [{\r\n backgroundColor: pieChartList[i].pieChartRGBColors,\r\n data: pieChartList[i].pieChartData\r\n }]\r\n },\r\n options: {\r\n title: {\r\n display: true,\r\n text: pieChartList[i].pieChartName\r\n },\r\n responsive: true\r\n }\r\n });\r\n this.pieChartPOLQA.render();\r\n }\r\n }\r\n //// POLQA v3 piechart\r\n if (pieChartList[i].pieChartName.split('@')[1].includes('v3')) {\r\n POLQAv3NoData = true;\r\n //this.chartNamePDD = pieChartList[i].pieChartName.split('@')[0] + ' (POLQA v3 MOS)';\r\n //this.pieChartDataPDD = pieChartList[i].pieChartData;\r\n //this.pieChartColorsPDD[0].backgroundColor = pieChartList[i].pieChartRGBColors;\r\n\r\n //for (let j = 0; j < pieChartList[i].pieChartLabels.length; j++)\r\n // this.pieChartLabelsPDD.push(pieChartList[i].pieChartLabels[j]);\r\n if (document.getElementById(\"POLQAv3PieChart\") != null) {\r\n this.pieChartPOLQAv3 = new Chart((document.getElementById(\"POLQAv3PieChart\")).getContext(\"2d\"), {\r\n type: 'pie',\r\n data: {\r\n labels: pieChartList[i].pieChartLabels,\r\n datasets: [{\r\n backgroundColor: pieChartList[i].pieChartRGBColors,\r\n data: pieChartList[i].pieChartData\r\n }]\r\n },\r\n options: {\r\n title: {\r\n display: true,\r\n text: pieChartList[i].pieChartName\r\n },\r\n responsive: true\r\n }\r\n });\r\n this.pieChartPOLQAv3.render();\r\n }\r\n }\r\n }\r\n\r\n if (resultType == null || resultType == \"VBA\") {\r\n //// VBA piechart\r\n if (pieChartList[i].pieChartName.split('@')[1].includes('VBA')) {\r\n VBANoData = true;\r\n //this.chartNameSNR = pieChartList[i].pieChartName.split('@')[0] + ' (MOS CQ)';\r\n //this.pieChartDataSNR = pieChartList[i].pieChartData;\r\n //this.pieChartColorsSNR[0].backgroundColor = pieChartList[i].pieChartRGBColors;\r\n\r\n //for (let j = 0; j < pieChartList[i].pieChartLabels.length; j++)\r\n // this.pieChartLabelsSNR.push(pieChartList[i].pieChartLabels[j]);\r\n if (document.getElementById(\"VBAPieChart\") != null) {\r\n this.pieChartVBA = new Chart((document.getElementById(\"VBAPieChart\")).getContext(\"2d\"), {\r\n type: 'pie',\r\n data: {\r\n labels: pieChartList[i].pieChartLabels,\r\n datasets: [{\r\n backgroundColor: pieChartList[i].pieChartRGBColors,\r\n data: pieChartList[i].pieChartData\r\n }]\r\n },\r\n options: {\r\n title: {\r\n display: true,\r\n text: pieChartList[i].pieChartName\r\n },\r\n responsive: true\r\n }\r\n });\r\n this.pieChartVBA.render();\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (document.getElementById(\"VQTPieChart\") != null && !VQTNoData) {\r\n this.pieChartVQT = new Chart((document.getElementById(\"VQTPieChart\")).getContext(\"2d\"), {\r\n type: 'pie',\r\n options: {\r\n title: {\r\n display: true,\r\n text: 'No Data Found (VQT)'\r\n },\r\n responsive: true\r\n }\r\n });\r\n this.pieChartVQT.render();\r\n }\r\n\r\n if (document.getElementById(\"POLQAPieChart\") != null && !POLQANoData) {\r\n this.pieChartPOLQA = new Chart((document.getElementById(\"POLQAPieChart\")).getContext(\"2d\"), {\r\n type: 'pie',\r\n options: {\r\n title: {\r\n display: true,\r\n text: 'No Data Found (POLQA MOS)'\r\n },\r\n responsive: true\r\n }\r\n });\r\n this.pieChartPOLQA.render();\r\n }\r\n\r\n if (document.getElementById(\"POLQAv3PieChart\") != null && !POLQAv3NoData) {\r\n this.pieChartPOLQAv3 = new Chart((document.getElementById(\"POLQAv3PieChart\")).getContext(\"2d\"), {\r\n type: 'pie',\r\n options: {\r\n title: {\r\n display: true,\r\n text: 'No Data Found (POLQA v3)'\r\n },\r\n responsive: true\r\n }\r\n });\r\n this.pieChartPOLQAv3.render();\r\n }\r\n\r\n if (document.getElementById(\"VBAPieChart\") != null && !VBANoData) {\r\n this.pieChartVBA = new Chart((document.getElementById(\"VBAPieChart\")).getContext(\"2d\"), {\r\n type: 'pie',\r\n options: {\r\n title: {\r\n display: true,\r\n text: 'No Data Found (VBA)'\r\n },\r\n responsive: true\r\n }\r\n });\r\n this.pieChartVBA.render();\r\n }\r\n\r\n ////for (let i = 0; i < pieCharList.length; i++)\r\n //// this.pieChartColors[0].backgroundColor = pieCharList[i].pieChartRGBColors;\r\n\r\n //if (VQTNoData == false) {\r\n // this.chartNameRTD = \"\";\r\n // this.pieChartDataRTD = [];\r\n // this.pieChartLabelsRTD = [];\r\n //}\r\n //if (POLQANoData == false) {\r\n // this.chartNameOWD = \"\";\r\n // this.pieChartDataOWD = [];\r\n // this.pieChartLabelsOWD = [];\r\n //}\r\n //if (POLQAv3NoData == false) {\r\n // this.chartNamePDD = \"\";\r\n // this.pieChartDataPDD = [];\r\n // this.pieChartLabelsPDD = [];\r\n //}\r\n //if (VBANoData == false) {\r\n // this.chartNameSNR = \"\";\r\n // this.pieChartDataSNR = [];\r\n // this.pieChartLabelsSNR = [];\r\n //}\r\n }\r\n\r\n currPESQVQuadLocationSelected = \"\";\r\n currPESQVQuadPhoneIDSelected = \"\";\r\n currPOLQAVQuadLocationSelected = \"\";\r\n currPOLQAVQuadPhoneIDSelected = \"\";\r\n currVBAVQuadLocationSelected = \"\";\r\n currVBAVQuadPhoneIDSelected = \"\";\r\n GetVoiceQualitExpandedData(event, vquadLocation, resultType, VQuadPhoneID?) {\r\n if (event != null)\r\n event.preventDefault();\r\n\r\n if (this.expandedElement != null || this.expandedElementPolqa != null || this.expandedElementVBA != null) {\r\n this.isLoading = true;\r\n //console.log(vquadLocation);\r\n if (VQuadPhoneID) {\r\n if ((resultType == \"VQT\" && this.currPESQVQuadPhoneIDSelected != VQuadPhoneID) || (resultType == \"POLQA\" && this.currPOLQAVQuadPhoneIDSelected != VQuadPhoneID)\r\n || (resultType == \"VBA\" && this.currVBAVQuadPhoneIDSelected != VQuadPhoneID)) {\r\n\r\n if (resultType == \"VQT\")\r\n this.currPESQVQuadPhoneIDSelected = VQuadPhoneID;\r\n else if (resultType == \"POLQA\")\r\n this.currPOLQAVQuadPhoneIDSelected = VQuadPhoneID;\r\n else\r\n this.currVBAVQuadPhoneIDSelected = VQuadPhoneID;\r\n\r\n this.url = this.baseUrl + 'CustomStatsConfig/GetVoiceQualityExpandedData?strVQuadLocation=' + vquadLocation + '&resultType=' + resultType + '&VQuadPhoneID=' + VQuadPhoneID;\r\n }\r\n else\r\n this.isLoading = false;\r\n }\r\n else {\r\n if (resultType == \"VQT\")\r\n this.currPESQVQuadLocationSelected = vquadLocation;\r\n else if (resultType == \"POLQA\")\r\n this.currPOLQAVQuadLocationSelected = vquadLocation;\r\n else\r\n this.currVBAVQuadLocationSelected = vquadLocation;\r\n\r\n this.url = this.baseUrl + 'CustomStatsConfig/GetVoiceQualityExpandedData?strVQuadLocation=' + vquadLocation + '&resultType=' + resultType;\r\n }\r\n\r\n if (this.isLoading) {//same phone id not selected again\r\n this.GetVoiceQualityData_Service().subscribe((resCache: any) => {\r\n if (resCache == \"CacheExpired\") {\r\n this.selectedCallIDOrDevID = true;\r\n this.LoadVQT('');\r\n\r\n this.GetVoiceQualityData_Service().subscribe((res: any) => {\r\n\r\n let rows: any[] = JSON.parse(res) as any[];\r\n\r\n if (VQuadPhoneID) { }//sub grid already loaded\r\n else {\r\n if (resultType == \"VQT\") {\r\n this.dataSourceExpanded = rows[\"lstVoiceQualityVQT\"];//sub grid loading first time\r\n if (rows[\"lstVoiceQualityVQT\"].length > 0)\r\n this.currPESQVQuadPhoneIDSelected = rows[\"lstVoiceQualityVQT\"][0].VQuad_PhoneID;\r\n }\r\n else if (resultType == \"POLQA\") {\r\n this.dataSourceExpandedPolqa = rows[\"lstVoiceQualityPOLQA\"];//sub grid loading first time\r\n if (rows[\"lstVoiceQualityPOLQA\"].length > 0)\r\n this.currPOLQAVQuadPhoneIDSelected = rows[\"lstVoiceQualityPOLQA\"][0].VQuad_PhoneID;\r\n }\r\n else {\r\n this.dataSourceExpandedVBA = rows[\"lstVoiceQualityVBA\"];//sub grid loading first time\r\n if (rows[\"lstVoiceQualityVBA\"].length > 0)\r\n this.currVBAVQuadPhoneIDSelected = rows[\"lstVoiceQualityVBA\"][0].VQuad_PhoneID;\r\n } \r\n }\r\n\r\n this.BindPieChart(rows[\"lstPieChartSetting\"], resultType);//selected or first phone id pie data loading\r\n this.isLoading = false;\r\n },\r\n err => {\r\n this.isLoading = false;\r\n });\r\n }\r\n else {\r\n\r\n //console.log(resCache);\r\n let rows: any[] = JSON.parse(resCache) as any[];\r\n if (VQuadPhoneID) { }//sub grid already loaded\r\n else {\r\n if (resultType == \"VQT\") {\r\n this.dataSourceExpanded = rows[\"lstVoiceQualityVQT\"];//sub grid loading first time\r\n if (rows[\"lstVoiceQualityVQT\"].length > 0)\r\n this.currPESQVQuadPhoneIDSelected = rows[\"lstVoiceQualityVQT\"][0].VQuad_PhoneID;\r\n }\r\n else if (resultType == \"POLQA\") {\r\n this.dataSourceExpandedPolqa = rows[\"lstVoiceQualityPOLQA\"];//sub grid loading first time\r\n if (rows[\"lstVoiceQualityPOLQA\"].length > 0)\r\n this.currPOLQAVQuadPhoneIDSelected = rows[\"lstVoiceQualityPOLQA\"][0].VQuad_PhoneID;\r\n }\r\n else {\r\n this.dataSourceExpandedVBA = rows[\"lstVoiceQualityVBA\"];//sub grid loading first time\r\n if (rows[\"lstVoiceQualityVBA\"].length > 0)\r\n this.currVBAVQuadPhoneIDSelected = rows[\"lstVoiceQualityVBA\"][0].VQuad_PhoneID;\r\n }\r\n }\r\n\r\n this.BindPieChart(rows[\"lstPieChartSetting\"], resultType);\r\n this.isLoading = false;\r\n }\r\n },\r\n err => {\r\n this.isLoading = false;\r\n });\r\n }\r\n }\r\n else {\r\n let currVQuadLocationSelected = \"\";\r\n\r\n if (resultType == \"VQT\")\r\n currVQuadLocationSelected = this.currPESQVQuadLocationSelected;\r\n else if (resultType == \"POLQA\")\r\n currVQuadLocationSelected = this.currPOLQAVQuadLocationSelected;\r\n else\r\n currVQuadLocationSelected = this.currVBAVQuadLocationSelected;\r\n\r\n this.LoadSelectedCallIDVoiceQuality(null, currVQuadLocationSelected, resultType, true);//switch back to original Call ID Pie graphs\r\n }\r\n }\r\n\r\n////////////////////////////// get config data\r\n GetVoiceQualityConfig() {\r\n this.showLegend = !this.showLegend; // open/hide legend div\r\n /////if call api for one time only\r\n if (this.getLegend)\r\n return;\r\n\r\n this.url = this.baseUrl + 'CustomStatsConfig/GetVoiceQualityPieChartConfig';\r\n this.GetVoiceQualityData_Service().subscribe((res: any) => {\r\n //console.log(res);\r\n let rows: any[] = JSON.parse(res) as any[];\r\n //console.log(rows);\r\n this.voiceQualityConfigList = rows;\r\n this.getLegend = true;\r\n });\r\n }\r\n\r\n /////////////////////////////////////////////////////// SERVICES\r\n GetVoiceQualityData_Service() {\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return this.http.post(this.url, options);\r\n }\r\n\r\n commonFilter = new CommonFilter();\r\n generalFilterArray = [];\r\n dataFilter = new DataFilter();\r\n async GetVoiceQualityMainData_Service(delFilterColName, AllGeneralFilter, filtersWithEventID, filters, TimestampType, columnName) {\r\n //let params = new HttpParams()\r\n // .set('TSType', TSType)\r\n // .set('TSBetween', TSBetween);\r\n this.generalFilterArray = [];\r\n this.commonFilter.TimestampType = TimestampType;\r\n\r\n let dbTz = -500;\r\n //this.commonFilterService.DB_TZ.subscribe(res => {\r\n // dbTz = res;\r\n //});\r\n //if (dbTz == -500) {//query var col table\r\n // await this.service.getDBTimezoneDiff('VquadData').then(res => {\r\n // this.commonFilterService.setDBTZFromVarCol(res);\r\n // dbTz = res;\r\n // });\r\n //}\r\n ////console.log(dbTz)\r\n\r\n let MainFilterTZ = 0;\r\n this.commonFilterService.mainFilterID.subscribe(res => this.commonFilter.MainFilterID = res);// set mainfilter ID\r\n this.commonFilterService.mfTZ.subscribe(res => MainFilterTZ = res);\r\n let dbAndBrHrs = -500;\r\n //if (this.commonFilter.MainFilterID != 0) {\r\n this.commonFilterService.DB_BRDiff.subscribe(res => {\r\n dbAndBrHrs = res;\r\n });\r\n if (dbAndBrHrs == -500) {//query var col table\r\n await this.service.getDBAndBrowserDiffHours('VquadData').then(res => {\r\n this.commonFilterService.setDBAndBrowserHrsDiff(res);\r\n dbAndBrHrs = res;\r\n });\r\n }\r\n //}\r\n\r\n let dates = formatDate(new Date(Date.now() + -1 * 600 * 1000), dbTz, dbAndBrHrs) + \"^\" + formatDate(new Date(), dbTz, dbAndBrHrs);//\"06/02/2019 11:00:00^06/02/2019 20:00:00\"; \r\n this.commonFilterService.TSBetween.subscribe(res => dates = res);//latest dates selected is set here from service\r\n //Added to set proper dates here based on range selection\r\n this.commonFilterService.TSRangeFilter.subscribe(res => { if (res.RangeType !== \"custom\") { dates = lastDateFunc(res.RangeType, dbTz, dbAndBrHrs) } });//sets start and end dates to latest timestamps based on range type selection - IMP\r\n //Save current date selection in service to affected when switched to other screens from here - IMP\r\n this.commonFilterService.setDatesProperties(dates);\r\n\r\n this.generalFilterArray.push({ ColumnName: columnName, Operator: 6, Value: (dates.split('^'))[0], ValueTo: (dates.split('^'))[1], LoggedInUserName: null });\r\n this.generalFilterArray.push({ ColumnName: columnName, Operator: 13, Value: null, ValueTo: null, LoggedInUserName: null });\r\n //console.log(this.generalFilterArray)\r\n let genArr = [];\r\n let genArrCnt = 0;\r\n\r\n if (delFilterColName != 'clearAllFilters') {\r\n genArr = AllGeneralFilter.filter(el => {\r\n return el[\"ColumnName\"].toUpperCase() != columnName.toUpperCase() && (el[\"RsltType\"] == 'pesq' || el[\"RsltType\"] == 'polqa' || el[\"RsltType\"] == 'audio-delay' || el[\"RsltType\"] == 'fax' || el[\"RsltType\"] == '');\r\n });\r\n\r\n this.commonFilterService.GeneralFilterDF.subscribe(res => {\r\n //console.log(res)\r\n filters = res;\r\n });\r\n }\r\n\r\n if (typeof filtersWithEventID == 'object' && Object.keys(filtersWithEventID).length > 0) {\r\n this.dataFilter.filters = filtersWithEventID;\r\n //console.log(filtersWithEventID)\r\n genArr = genArr.filter(el => {\r\n return el[\"ColumnName\"] != 'VQuad_CallID';\r\n });\r\n let generalFilterArrayAll = this.dataFilter.getProcessedFiltersArray(\"ALL\");\r\n genArr = [...genArr, ...generalFilterArrayAll];\r\n\r\n for (const key in filters) {\r\n if (key == 'VQuad_CallID')\r\n delete filters[key];\r\n }\r\n let generalFilterArrayNew = this.dataFilter.getProcessedFilters(\"\");\r\n filters = { ...filters, ...generalFilterArrayNew };\r\n }\r\n //console.log(genArr)\r\n //console.log(filters)\r\n\r\n if (delFilterColName != '' && delFilterColName != 'clearAllFilters') {\r\n //cleared = 1;\r\n genArr = genArr.filter(el => {\r\n return el[\"ColumnName\"] != delFilterColName;\r\n });\r\n\r\n for (const key in filters) {\r\n if (key == delFilterColName)\r\n delete filters[key];\r\n }\r\n }\r\n\r\n this.generalFilterArray.push(...genArr);\r\n genArrCnt = genArr.length;\r\n\r\n if (delFilterColName != 'clearAllFilters') {\r\n let newFilters = {};\r\n for (const key in filters) {\r\n if (filters[key].rsltType == 'pesq' || filters[key].rsltType == 'polqa' || filters[key].rsltType == 'audio-delay' || filters[key].rsltType == 'fax' || filters[key].rsltType == '') {\r\n let value = filters[key].value;\r\n let matchMode = filters[key].matchMode;\r\n let valueTo = filters[key].valueTo;\r\n let type = filters[key].type;\r\n let rsltType = filters[key].rsltType;\r\n let title = filters[key].title;\r\n newFilters[key] = { value, matchMode, valueTo, type, rsltType, title };\r\n }\r\n }\r\n //console.log(newFilters)\r\n this.commonFilterService.setGeneralFilterData(newFilters);\r\n }\r\n\r\n let body = JSON.stringify({ commonFilter: this.commonFilter, generalFilterArray: this.generalFilterArray });\r\n\r\n var headerOptions = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n let options = {\r\n headers: headerOptions\r\n };\r\n\r\n return await this.http.post(this.url, body, options).toPromise();\r\n }\r\n}\r\n\r\nexport interface PeriodicElement {\r\n name: string;\r\n position: number;\r\n weight: number;\r\n symbol: string;\r\n description: string;\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3dlbGNvbWUvd2VsY29tZS5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\n//https://www.toptal.com/angular/angular-5-asp-net-core\n@Component({\n selector: 'app-welcome',\n templateUrl: './welcome.component.html',\n styleUrls: ['./welcome.component.scss']\n})\nexport class WelcomeComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n urlAddress: 'http://localhost/WebviewerAPI',\n bckURLAddress: 'http://localhost/DataBackupScheduler',\n assetsPath: '../../',\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport 'hammerjs';\n\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\n//https://stackoverflow.com/questions/35721206/how-to-enable-production-mode\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"sourceRoot":""}