@coreui/angular-pro 4.3.6 → 4.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +4 -4
- package/README.md +175 -175
- package/esm2020/coreui-angular-pro.mjs +4 -4
- package/esm2020/lib/accordion/accordion/accordion.component.mjs +40 -40
- package/esm2020/lib/accordion/accordion-button/accordion-button.directive.mjs +43 -43
- package/esm2020/lib/accordion/accordion-item/accordion-item.component.mjs +72 -72
- package/esm2020/lib/accordion/accordion.module.mjs +48 -48
- package/esm2020/lib/accordion/accordion.service.mjs +36 -36
- package/esm2020/lib/accordion/index.mjs +2 -2
- package/esm2020/lib/accordion/public_api.mjs +5 -5
- package/esm2020/lib/alert/alert-heading.directive.mjs +22 -22
- package/esm2020/lib/alert/alert-link.directive.mjs +22 -22
- package/esm2020/lib/alert/alert.component.mjs +181 -181
- package/esm2020/lib/alert/alert.module.mjs +38 -38
- package/esm2020/lib/alert/index.mjs +2 -2
- package/esm2020/lib/alert/public_api.mjs +5 -5
- package/esm2020/lib/avatar/avatar.component.mjs +49 -49
- package/esm2020/lib/avatar/avatar.module.mjs +24 -24
- package/esm2020/lib/avatar/index.mjs +2 -2
- package/esm2020/lib/avatar/public_api.mjs +3 -3
- package/esm2020/lib/backdrop/backdrop.service.mjs +52 -52
- package/esm2020/lib/badge/badge.component.mjs +42 -42
- package/esm2020/lib/badge/badge.module.mjs +24 -24
- package/esm2020/lib/badge/index.mjs +2 -2
- package/esm2020/lib/badge/public_api.mjs +3 -3
- package/esm2020/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +43 -43
- package/esm2020/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +37 -37
- package/esm2020/lib/breadcrumb/breadcrumb-item/breadcrumb-item.mjs +2 -2
- package/esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +41 -41
- package/esm2020/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +52 -52
- package/esm2020/lib/breadcrumb/breadcrumb.module.mjs +37 -37
- package/esm2020/lib/breadcrumb/index.mjs +2 -2
- package/esm2020/lib/breadcrumb/public_api.mjs +6 -6
- package/esm2020/lib/button/button-close.directive.mjs +44 -44
- package/esm2020/lib/button/button.directive.mjs +112 -112
- package/esm2020/lib/button/button.module.mjs +29 -29
- package/esm2020/lib/button/index.mjs +2 -2
- package/esm2020/lib/button/public_api.mjs +4 -4
- package/esm2020/lib/button-group/button-group/button-group.component.mjs +41 -41
- package/esm2020/lib/button-group/button-group.module.mjs +29 -29
- package/esm2020/lib/button-group/button-toolbar/button-toolbar.component.mjs +35 -35
- package/esm2020/lib/button-group/index.mjs +2 -2
- package/esm2020/lib/button-group/public_api.mjs +4 -4
- package/esm2020/lib/calendar/calendar/calendar-class-view.pipe.mjs +19 -19
- package/esm2020/lib/calendar/calendar/calendar.component.mjs +376 -376
- package/esm2020/lib/calendar/calendar-month/calendar-class-day.pipe.mjs +28 -28
- package/esm2020/lib/calendar/calendar-month/calendar-class-month.pipe.mjs +21 -21
- package/esm2020/lib/calendar/calendar-month/calendar-class-year.pipe.mjs +21 -21
- package/esm2020/lib/calendar/calendar-month/calendar-day-title.pipe.mjs +16 -16
- package/esm2020/lib/calendar/calendar-month/calendar-day.directive.mjs +81 -81
- package/esm2020/lib/calendar/calendar-month/calendar-day.pipe.mjs +18 -18
- package/esm2020/lib/calendar/calendar-month/calendar-month.component.mjs +324 -324
- package/esm2020/lib/calendar/calendar-month/calendar-weekday.pipe.mjs +20 -20
- package/esm2020/lib/calendar/calendar-navigation/calendar-navigation.component.mjs +79 -79
- package/esm2020/lib/calendar/calendar.module.mjs +62 -62
- package/esm2020/lib/calendar/calendar.service.mjs +60 -60
- package/esm2020/lib/calendar/calendar.utils.mjs +275 -275
- package/esm2020/lib/calendar/index.mjs +2 -2
- package/esm2020/lib/calendar/public_api.mjs +5 -5
- package/esm2020/lib/callout/callout.component.mjs +23 -23
- package/esm2020/lib/callout/callout.module.mjs +20 -20
- package/esm2020/lib/callout/index.mjs +2 -2
- package/esm2020/lib/callout/public_api.mjs +3 -3
- package/esm2020/lib/card/card-body.component.mjs +22 -22
- package/esm2020/lib/card/card-footer.component.mjs +22 -22
- package/esm2020/lib/card/card-group.component.mjs +22 -22
- package/esm2020/lib/card/card-header-actions.component.mjs +20 -20
- package/esm2020/lib/card/card-header.component.mjs +22 -22
- package/esm2020/lib/card/card-img-overlay/card-img-overlay.component.mjs +19 -19
- package/esm2020/lib/card/card-img.directive.mjs +25 -25
- package/esm2020/lib/card/card-link.directive.mjs +21 -21
- package/esm2020/lib/card/card-subtitle.directive.mjs +21 -21
- package/esm2020/lib/card/card-text.directive.mjs +21 -21
- package/esm2020/lib/card/card-title.directive.mjs +21 -21
- package/esm2020/lib/card/card.component.mjs +29 -29
- package/esm2020/lib/card/card.module.mjs +79 -79
- package/esm2020/lib/card/index.mjs +2 -2
- package/esm2020/lib/card/public_api.mjs +14 -14
- package/esm2020/lib/carousel/carousel/carousel.component.mjs +214 -214
- package/esm2020/lib/carousel/carousel-caption/carousel-caption.component.mjs +17 -17
- package/esm2020/lib/carousel/carousel-control/carousel-control.component.mjs +83 -83
- package/esm2020/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +45 -45
- package/esm2020/lib/carousel/carousel-inner/carousel-inner.component.mjs +47 -47
- package/esm2020/lib/carousel/carousel-item/carousel-item.component.mjs +68 -68
- package/esm2020/lib/carousel/carousel-state.mjs +77 -77
- package/esm2020/lib/carousel/carousel-state.type.mjs +2 -2
- package/esm2020/lib/carousel/carousel.animation.mjs +70 -70
- package/esm2020/lib/carousel/carousel.config.mjs +22 -22
- package/esm2020/lib/carousel/carousel.module.mjs +54 -54
- package/esm2020/lib/carousel/carousel.service.mjs +18 -18
- package/esm2020/lib/carousel/index.mjs +2 -2
- package/esm2020/lib/carousel/public_api.mjs +9 -9
- package/esm2020/lib/collapse/collapse.animations.mjs +18 -18
- package/esm2020/lib/collapse/collapse.directive.mjs +190 -190
- package/esm2020/lib/collapse/collapse.module.mjs +23 -23
- package/esm2020/lib/collapse/index.mjs +2 -2
- package/esm2020/lib/collapse/public_api.mjs +3 -3
- package/esm2020/lib/coreui.types.mjs +10 -10
- package/esm2020/lib/date-picker/date-picker.component.mjs +81 -81
- package/esm2020/lib/date-picker/date-picker.module.mjs +59 -59
- package/esm2020/lib/date-picker/index.mjs +2 -2
- package/esm2020/lib/date-picker/public_api.mjs +3 -3
- package/esm2020/lib/date-range-picker/date-range-picker/date-range-picker.component.mjs +629 -608
- package/esm2020/lib/date-range-picker/date-range-picker.module.mjs +55 -55
- package/esm2020/lib/date-range-picker/index.mjs +2 -2
- package/esm2020/lib/date-range-picker/public_api.mjs +3 -3
- package/esm2020/lib/dropdown/dropdown/dropdown.component.mjs +374 -366
- package/esm2020/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +72 -72
- package/esm2020/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +23 -23
- package/esm2020/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +23 -23
- package/esm2020/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +23 -23
- package/esm2020/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +86 -86
- package/esm2020/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +81 -81
- package/esm2020/lib/dropdown/dropdown.module.mjs +64 -64
- package/esm2020/lib/dropdown/dropdown.service.mjs +18 -18
- package/esm2020/lib/dropdown/index.mjs +2 -2
- package/esm2020/lib/dropdown/public_api.mjs +10 -10
- package/esm2020/lib/element-cover/element-cover.component.mjs +71 -71
- package/esm2020/lib/element-cover/element-cover.module.mjs +28 -28
- package/esm2020/lib/element-cover/index.mjs +2 -2
- package/esm2020/lib/element-cover/public_api.mjs +3 -3
- package/esm2020/lib/footer/footer.component.mjs +38 -38
- package/esm2020/lib/footer/footer.module.mjs +24 -24
- package/esm2020/lib/footer/index.mjs +2 -2
- package/esm2020/lib/footer/public_api.mjs +3 -3
- package/esm2020/lib/form/form/form.directive.mjs +38 -38
- package/esm2020/lib/form/form-check/form-check-input.directive.mjs +62 -62
- package/esm2020/lib/form/form-check/form-check-label.directive.mjs +21 -21
- package/esm2020/lib/form/form-check/form-check.component.mjs +75 -75
- package/esm2020/lib/form/form-control/form-control.directive.mjs +71 -71
- package/esm2020/lib/form/form-feedback/form-feedback.component.mjs +42 -42
- package/esm2020/lib/form/form-floating/form-floating.directive.mjs +38 -38
- package/esm2020/lib/form/form-label/form-label.directive.mjs +39 -39
- package/esm2020/lib/form/form-select/form-select.directive.mjs +34 -34
- package/esm2020/lib/form/form-text/form-text.directive.mjs +22 -22
- package/esm2020/lib/form/form.module.mjs +77 -77
- package/esm2020/lib/form/index.mjs +2 -2
- package/esm2020/lib/form/input-group/input-group.component.mjs +31 -31
- package/esm2020/lib/form/input-group-text/input-group-text.directive.mjs +22 -22
- package/esm2020/lib/form/public_api.mjs +14 -14
- package/esm2020/lib/grid/col.component.mjs +12 -12
- package/esm2020/lib/grid/col.directive.mjs +156 -156
- package/esm2020/lib/grid/col.type.mjs +2 -2
- package/esm2020/lib/grid/container.component.mjs +43 -43
- package/esm2020/lib/grid/container.type.mjs +2 -2
- package/esm2020/lib/grid/grid.module.mjs +48 -48
- package/esm2020/lib/grid/gutter.directive.mjs +56 -56
- package/esm2020/lib/grid/gutter.type.mjs +2 -2
- package/esm2020/lib/grid/index.mjs +2 -2
- package/esm2020/lib/grid/public_api.mjs +8 -8
- package/esm2020/lib/grid/row.component.mjs +12 -12
- package/esm2020/lib/grid/row.directive.mjs +45 -45
- package/esm2020/lib/grid/row.type.mjs +2 -2
- package/esm2020/lib/header/header/header.component.mjs +47 -47
- package/esm2020/lib/header/header-brand/header-brand.component.mjs +31 -31
- package/esm2020/lib/header/header-divider/header-divider.component.mjs +20 -20
- package/esm2020/lib/header/header-nav/header-nav.component.mjs +28 -28
- package/esm2020/lib/header/header-text/header-text.component.mjs +20 -20
- package/esm2020/lib/header/header-toggler/header-toggler.directive.mjs +54 -54
- package/esm2020/lib/header/header.module.mjs +49 -49
- package/esm2020/lib/header/index.mjs +2 -2
- package/esm2020/lib/header/public_api.mjs +8 -8
- package/esm2020/lib/image/img.directive.mjs +91 -91
- package/esm2020/lib/image/img.module.mjs +24 -24
- package/esm2020/lib/image/index.mjs +2 -2
- package/esm2020/lib/image/public_api.mjs +3 -3
- package/esm2020/lib/list-group/index.mjs +2 -2
- package/esm2020/lib/list-group/list-group-item.directive.mjs +73 -73
- package/esm2020/lib/list-group/list-group.directive.mjs +44 -44
- package/esm2020/lib/list-group/list-group.module.mjs +25 -25
- package/esm2020/lib/list-group/public_api.mjs +4 -4
- package/esm2020/lib/loading-button/index.mjs +2 -2
- package/esm2020/lib/loading-button/loading-button.component.mjs +84 -84
- package/esm2020/lib/loading-button/loading-button.module.mjs +28 -28
- package/esm2020/lib/loading-button/public_api.mjs +3 -3
- package/esm2020/lib/modal/index.mjs +2 -2
- package/esm2020/lib/modal/modal/modal.component.mjs +311 -311
- package/esm2020/lib/modal/modal-body/modal-body.component.mjs +19 -19
- package/esm2020/lib/modal/modal-content/modal-content.component.mjs +23 -23
- package/esm2020/lib/modal/modal-dialog/modal-dialog.component.mjs +32 -32
- package/esm2020/lib/modal/modal-dismiss/modal-toggle.directive.mjs +27 -27
- package/esm2020/lib/modal/modal-footer/modal-footer.component.mjs +22 -22
- package/esm2020/lib/modal/modal-header/modal-header.component.mjs +24 -24
- package/esm2020/lib/modal/modal-title/modal-title.directive.mjs +21 -21
- package/esm2020/lib/modal/modal.module.mjs +69 -69
- package/esm2020/lib/modal/modal.service.mjs +21 -21
- package/esm2020/lib/modal/public_api.mjs +11 -11
- package/esm2020/lib/multi-select/index.mjs +2 -2
- package/esm2020/lib/multi-select/multi-select/multi-select.component.mjs +536 -536
- package/esm2020/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +30 -30
- package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +20 -20
- package/esm2020/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +52 -52
- package/esm2020/lib/multi-select/multi-select-option/multi-select-option.component.mjs +144 -144
- package/esm2020/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +36 -55
- package/esm2020/lib/multi-select/multi-select.module.mjs +51 -51
- package/esm2020/lib/multi-select/multi-select.service.mjs +23 -23
- package/esm2020/lib/multi-select/multi-select.type.mjs +2 -2
- package/esm2020/lib/multi-select/public_api.mjs +7 -7
- package/esm2020/lib/nav/index.mjs +2 -2
- package/esm2020/lib/nav/nav-item.component.mjs +19 -19
- package/esm2020/lib/nav/nav-link.directive.mjs +86 -86
- package/esm2020/lib/nav/nav.component.mjs +25 -25
- package/esm2020/lib/nav/nav.module.mjs +22 -22
- package/esm2020/lib/nav/public_api.mjs +5 -5
- package/esm2020/lib/navbar/index.mjs +2 -2
- package/esm2020/lib/navbar/navbar-brand/navbar-brand.directive.mjs +23 -23
- package/esm2020/lib/navbar/navbar-nav/navbar-nav.component.mjs +40 -40
- package/esm2020/lib/navbar/navbar-text/navbar-text.component.mjs +20 -20
- package/esm2020/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +63 -63
- package/esm2020/lib/navbar/navbar.component.mjs +84 -84
- package/esm2020/lib/navbar/navbar.module.mjs +48 -48
- package/esm2020/lib/navbar/public_api.mjs +7 -7
- package/esm2020/lib/offcanvas/index.mjs +2 -2
- package/esm2020/lib/offcanvas/offcanvas/offcanvas.component.mjs +244 -244
- package/esm2020/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +19 -19
- package/esm2020/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +19 -19
- package/esm2020/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +21 -21
- package/esm2020/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +27 -27
- package/esm2020/lib/offcanvas/offcanvas.module.mjs +57 -57
- package/esm2020/lib/offcanvas/offcanvas.service.mjs +21 -21
- package/esm2020/lib/offcanvas/public_api.mjs +8 -8
- package/esm2020/lib/pagination/index.mjs +2 -2
- package/esm2020/lib/pagination/page-item/page-item.component.mjs +12 -12
- package/esm2020/lib/pagination/page-item/page-item.directive.mjs +62 -62
- package/esm2020/lib/pagination/page-link/page-link.directive.mjs +21 -21
- package/esm2020/lib/pagination/pagination/pagination.component.mjs +41 -41
- package/esm2020/lib/pagination/pagination.module.mjs +38 -38
- package/esm2020/lib/pagination/public_api.mjs +5 -5
- package/esm2020/lib/placeholder/index.mjs +2 -2
- package/esm2020/lib/placeholder/placeholder-animation.directive.mjs +34 -34
- package/esm2020/lib/placeholder/placeholder.directive.mjs +51 -51
- package/esm2020/lib/placeholder/placeholder.module.mjs +29 -29
- package/esm2020/lib/placeholder/public_api.mjs +4 -4
- package/esm2020/lib/popover/index.mjs +2 -2
- package/esm2020/lib/popover/popover/popover.component.mjs +92 -92
- package/esm2020/lib/popover/popover.directive.mjs +196 -196
- package/esm2020/lib/popover/popover.module.mjs +29 -29
- package/esm2020/lib/popover/public_api.mjs +4 -4
- package/esm2020/lib/progress/index.mjs +2 -2
- package/esm2020/lib/progress/progress-bar.component.mjs +112 -112
- package/esm2020/lib/progress/progress-bar.mjs +2 -2
- package/esm2020/lib/progress/progress.component.mjs +72 -72
- package/esm2020/lib/progress/progress.module.mjs +25 -25
- package/esm2020/lib/progress/public_api.mjs +4 -4
- package/esm2020/lib/services/class-toggle.service.mjs +30 -30
- package/esm2020/lib/services/index.mjs +2 -2
- package/esm2020/lib/services/intersection.service.mjs +34 -34
- package/esm2020/lib/services/listeners.service.mjs +43 -43
- package/esm2020/lib/services/public_api.mjs +3 -3
- package/esm2020/lib/shared/html-attr.directive.mjs +52 -52
- package/esm2020/lib/shared/index.mjs +2 -2
- package/esm2020/lib/shared/public_api.mjs +4 -4
- package/esm2020/lib/shared/shared.module.mjs +46 -46
- package/esm2020/lib/shared/template-id.directive.mjs +19 -19
- package/esm2020/lib/sidebar/index.mjs +2 -2
- package/esm2020/lib/sidebar/public_api.mjs +10 -10
- package/esm2020/lib/sidebar/sidebar/sidebar.component.mjs +246 -246
- package/esm2020/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +60 -60
- package/esm2020/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +30 -30
- package/esm2020/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +20 -20
- package/esm2020/lib/sidebar/sidebar-header/sidebar-header.component.mjs +20 -20
- package/esm2020/lib/sidebar/sidebar-nav/index.mjs +2 -2
- package/esm2020/lib/sidebar/sidebar-nav/public_api.mjs +14 -14
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +24 -24
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +18 -18
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-group.service.mjs +18 -18
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +21 -21
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +33 -33
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +43 -43
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +94 -94
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +23 -23
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +68 -68
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +204 -204
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.mjs +2 -2
- package/esm2020/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +54 -54
- package/esm2020/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +40 -40
- package/esm2020/lib/sidebar/sidebar-toggler/sidebar-toggler.component.mjs +26 -26
- package/esm2020/lib/sidebar/sidebar.module.mjs +99 -99
- package/esm2020/lib/sidebar/sidebar.service.mjs +21 -21
- package/esm2020/lib/smart-pagination/index.mjs +2 -2
- package/esm2020/lib/smart-pagination/public_api.mjs +3 -3
- package/esm2020/lib/smart-pagination/smart-pagination.component.mjs +196 -196
- package/esm2020/lib/smart-pagination/smart-pagination.module.mjs +28 -28
- package/esm2020/lib/smart-pagination/smart-pagination.type.mjs +2 -2
- package/esm2020/lib/smart-table/index.mjs +2 -2
- package/esm2020/lib/smart-table/public_api.mjs +5 -4
- package/esm2020/lib/smart-table/smart-table/smart-table.component.mjs +515 -517
- package/esm2020/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.mjs +30 -30
- package/esm2020/lib/smart-table/smart-table-filter/filter-input.directive.mjs +78 -78
- package/esm2020/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +46 -46
- package/esm2020/lib/smart-table/smart-table-head/smart-table-head.component.mjs +165 -165
- package/esm2020/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +49 -49
- package/esm2020/lib/smart-table/smart-table.module.mjs +76 -76
- package/esm2020/lib/smart-table/smart-table.type.mjs +1 -1
- package/esm2020/lib/spinner/index.mjs +2 -2
- package/esm2020/lib/spinner/public_api.mjs +3 -3
- package/esm2020/lib/spinner/spinner.component.mjs +49 -49
- package/esm2020/lib/spinner/spinner.module.mjs +28 -28
- package/esm2020/lib/table/index.mjs +2 -2
- package/esm2020/lib/table/public_api.mjs +5 -5
- package/esm2020/lib/table/table-active.directive.mjs +40 -40
- package/esm2020/lib/table/table-color.directive.mjs +24 -24
- package/esm2020/lib/table/table.directive.mjs +147 -147
- package/esm2020/lib/table/table.module.mjs +34 -34
- package/esm2020/lib/table/table.type.mjs +2 -2
- package/esm2020/lib/tabs/index.mjs +2 -2
- package/esm2020/lib/tabs/public_api.mjs +6 -6
- package/esm2020/lib/tabs/tab-content/tab-content.component.mjs +92 -92
- package/esm2020/lib/tabs/tab-content-ref.directive.mjs +128 -128
- package/esm2020/lib/tabs/tab-pane/tab-pane.component.mjs +57 -57
- package/esm2020/lib/tabs/tab.service.mjs +21 -21
- package/esm2020/lib/tabs/tabs.module.mjs +40 -40
- package/esm2020/lib/time-picker/index.mjs +2 -2
- package/esm2020/lib/time-picker/public_api.mjs +3 -3
- package/esm2020/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.mjs +103 -103
- package/esm2020/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.mjs +104 -104
- package/esm2020/lib/time-picker/time-picker.component.mjs +490 -490
- package/esm2020/lib/time-picker/time-picker.module.mjs +50 -50
- package/esm2020/lib/time-picker/time.utils.mjs +645 -645
- package/esm2020/lib/toast/index.mjs +2 -2
- package/esm2020/lib/toast/public_api.mjs +9 -9
- package/esm2020/lib/toast/toast/toast.component.mjs +238 -238
- package/esm2020/lib/toast/toast-body/toast-body.component.mjs +21 -21
- package/esm2020/lib/toast/toast-close.directive.mjs +28 -28
- package/esm2020/lib/toast/toast-header/toast-header.component.mjs +31 -31
- package/esm2020/lib/toast/toast.module.mjs +50 -50
- package/esm2020/lib/toast/toaster/toaster-host.directive.mjs +17 -17
- package/esm2020/lib/toast/toaster/toaster.component.mjs +131 -131
- package/esm2020/lib/toast/toaster/toaster.service.mjs +21 -21
- package/esm2020/lib/tooltip/index.mjs +2 -2
- package/esm2020/lib/tooltip/public_api.mjs +4 -4
- package/esm2020/lib/tooltip/tooltip/tooltip.component.mjs +88 -88
- package/esm2020/lib/tooltip/tooltip.directive.mjs +191 -191
- package/esm2020/lib/tooltip/tooltip.module.mjs +29 -29
- package/esm2020/lib/utilities/align.directive.mjs +24 -24
- package/esm2020/lib/utilities/bg-color.directive.mjs +33 -33
- package/esm2020/lib/utilities/border.directive.mjs +66 -66
- package/esm2020/lib/utilities/border.type.mjs +2 -2
- package/esm2020/lib/utilities/index.mjs +2 -2
- package/esm2020/lib/utilities/public_api.mjs +7 -7
- package/esm2020/lib/utilities/rounded.directive.mjs +65 -65
- package/esm2020/lib/utilities/rounded.type.mjs +2 -2
- package/esm2020/lib/utilities/text-color.directive.mjs +32 -32
- package/esm2020/lib/utilities/utilities.module.mjs +44 -44
- package/esm2020/lib/widget/index.mjs +2 -2
- package/esm2020/lib/widget/public_api.mjs +8 -8
- package/esm2020/lib/widget/widget-stat-a/widget-stat-a.component.mjs +49 -49
- package/esm2020/lib/widget/widget-stat-b/widget-stat-b.component.mjs +52 -52
- package/esm2020/lib/widget/widget-stat-c/widget-stat-c.component.mjs +80 -80
- package/esm2020/lib/widget/widget-stat-d/widget-stat-d.component.mjs +39 -39
- package/esm2020/lib/widget/widget-stat-e/widget-stat-e.component.mjs +30 -30
- package/esm2020/lib/widget/widget-stat-f/widget-stat-f.component.mjs +92 -92
- package/esm2020/lib/widget/widget.module.mjs +57 -57
- package/esm2020/public-api.mjs +50 -50
- package/fesm2015/coreui-angular-pro.mjs +15302 -15296
- package/fesm2015/coreui-angular-pro.mjs.map +1 -1
- package/fesm2020/coreui-angular-pro.mjs +15179 -15173
- package/fesm2020/coreui-angular-pro.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/accordion/accordion/accordion.component.d.ts +22 -22
- package/lib/accordion/accordion-button/accordion-button.directive.d.ts +18 -18
- package/lib/accordion/accordion-item/accordion-item.component.d.ts +33 -33
- package/lib/accordion/accordion.module.d.ts +12 -12
- package/lib/accordion/accordion.service.d.ts +13 -13
- package/lib/accordion/index.d.ts +1 -1
- package/lib/accordion/public_api.d.ts +4 -4
- package/lib/alert/alert-heading.directive.d.ts +7 -7
- package/lib/alert/alert-link.directive.d.ts +7 -7
- package/lib/alert/alert.component.d.ts +68 -68
- package/lib/alert/alert.module.d.ts +11 -11
- package/lib/alert/index.d.ts +1 -1
- package/lib/alert/public_api.d.ts +4 -4
- package/lib/avatar/avatar.component.d.ts +40 -40
- package/lib/avatar/avatar.module.d.ts +8 -8
- package/lib/avatar/index.d.ts +1 -1
- package/lib/avatar/public_api.d.ts +2 -2
- package/lib/backdrop/backdrop.service.d.ts +16 -16
- package/lib/badge/badge.component.d.ts +32 -32
- package/lib/badge/badge.module.d.ts +8 -8
- package/lib/badge/index.d.ts +1 -1
- package/lib/badge/public_api.d.ts +2 -2
- package/lib/breadcrumb/breadcrumb/breadcrumb.component.d.ts +21 -21
- package/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.d.ts +28 -28
- package/lib/breadcrumb/breadcrumb-item/breadcrumb-item.d.ts +9 -9
- package/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.d.ts +21 -21
- package/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.d.ts +14 -14
- package/lib/breadcrumb/breadcrumb.module.d.ts +12 -12
- package/lib/breadcrumb/index.d.ts +1 -1
- package/lib/breadcrumb/public_api.d.ts +6 -6
- package/lib/button/button-close.directive.d.ts +16 -16
- package/lib/button/button.directive.d.ts +54 -54
- package/lib/button/button.module.d.ts +9 -9
- package/lib/button/index.d.ts +1 -1
- package/lib/button/public_api.d.ts +3 -3
- package/lib/button-group/button-group/button-group.component.d.ts +23 -23
- package/lib/button-group/button-group.module.d.ts +9 -9
- package/lib/button-group/button-toolbar/button-toolbar.component.d.ts +13 -13
- package/lib/button-group/index.d.ts +1 -1
- package/lib/button-group/public_api.d.ts +3 -3
- package/lib/calendar/calendar/calendar-class-view.pipe.d.ts +7 -7
- package/lib/calendar/calendar/calendar.component.d.ts +155 -155
- package/lib/calendar/calendar-month/calendar-class-day.pipe.d.ts +15 -15
- package/lib/calendar/calendar-month/calendar-class-month.pipe.d.ts +7 -7
- package/lib/calendar/calendar-month/calendar-class-year.pipe.d.ts +7 -7
- package/lib/calendar/calendar-month/calendar-day-title.pipe.d.ts +7 -7
- package/lib/calendar/calendar-month/calendar-day.directive.d.ts +29 -29
- package/lib/calendar/calendar-month/calendar-day.pipe.d.ts +8 -8
- package/lib/calendar/calendar-month/calendar-month.component.d.ts +121 -121
- package/lib/calendar/calendar-month/calendar-weekday.pipe.d.ts +8 -8
- package/lib/calendar/calendar-navigation/calendar-navigation.component.d.ts +30 -30
- package/lib/calendar/calendar.module.d.ts +19 -19
- package/lib/calendar/calendar.service.d.ts +33 -33
- package/lib/calendar/calendar.utils.d.ts +26 -26
- package/lib/calendar/index.d.ts +1 -1
- package/lib/calendar/public_api.d.ts +4 -4
- package/lib/callout/callout.component.d.ts +13 -13
- package/lib/callout/callout.module.d.ts +8 -8
- package/lib/callout/index.d.ts +1 -1
- package/lib/callout/public_api.d.ts +2 -2
- package/lib/card/card-body.component.d.ts +6 -6
- package/lib/card/card-footer.component.d.ts +6 -6
- package/lib/card/card-group.component.d.ts +6 -6
- package/lib/card/card-header-actions.component.d.ts +6 -6
- package/lib/card/card-header.component.d.ts +6 -6
- package/lib/card/card-img-overlay/card-img-overlay.component.d.ts +6 -6
- package/lib/card/card-img.directive.d.ts +11 -11
- package/lib/card/card-link.directive.d.ts +6 -6
- package/lib/card/card-subtitle.directive.d.ts +6 -6
- package/lib/card/card-text.directive.d.ts +6 -6
- package/lib/card/card-title.directive.d.ts +6 -6
- package/lib/card/card.component.d.ts +18 -18
- package/lib/card/card.module.d.ts +19 -19
- package/lib/card/index.d.ts +1 -1
- package/lib/card/public_api.d.ts +13 -13
- package/lib/carousel/carousel/carousel.component.d.ts +92 -92
- package/lib/carousel/carousel-caption/carousel-caption.component.d.ts +7 -7
- package/lib/carousel/carousel-control/carousel-control.component.d.ts +31 -31
- package/lib/carousel/carousel-indicators/carousel-indicators.component.d.ts +18 -18
- package/lib/carousel/carousel-inner/carousel-inner.component.d.ts +21 -21
- package/lib/carousel/carousel-item/carousel-item.component.d.ts +30 -30
- package/lib/carousel/carousel-state.d.ts +16 -16
- package/lib/carousel/carousel-state.type.d.ts +15 -15
- package/lib/carousel/carousel.animation.d.ts +4 -4
- package/lib/carousel/carousel.config.d.ts +10 -10
- package/lib/carousel/carousel.module.d.ts +15 -15
- package/lib/carousel/carousel.service.d.ts +14 -14
- package/lib/carousel/index.d.ts +1 -1
- package/lib/carousel/public_api.d.ts +8 -8
- package/lib/collapse/collapse.animations.d.ts +4 -4
- package/lib/collapse/collapse.directive.d.ts +65 -65
- package/lib/collapse/collapse.module.d.ts +10 -10
- package/lib/collapse/index.d.ts +1 -1
- package/lib/collapse/public_api.d.ts +2 -2
- package/lib/coreui.types.d.ts +45 -45
- package/lib/date-picker/date-picker.component.d.ts +18 -18
- package/lib/date-picker/date-picker.module.d.ts +16 -16
- package/lib/date-picker/index.d.ts +1 -1
- package/lib/date-picker/public_api.d.ts +3 -3
- package/lib/date-range-picker/date-range-picker/date-range-picker.component.d.ts +249 -240
- package/lib/date-range-picker/date-range-picker.module.d.ts +15 -15
- package/lib/date-range-picker/index.d.ts +1 -1
- package/lib/date-range-picker/public_api.d.ts +2 -2
- package/lib/dropdown/dropdown/dropdown.component.d.ts +136 -135
- package/lib/dropdown/dropdown-close/dropdown-close.directive.d.ts +26 -26
- package/lib/dropdown/dropdown-divider/dropdown-divider.directive.d.ts +7 -7
- package/lib/dropdown/dropdown-header/dropdown-header.directive.d.ts +7 -7
- package/lib/dropdown/dropdown-item/dropdown-item-plain.directive.d.ts +7 -7
- package/lib/dropdown/dropdown-item/dropdown-item.directive.d.ts +36 -36
- package/lib/dropdown/dropdown-menu/dropdown-menu.directive.d.ts +36 -36
- package/lib/dropdown/dropdown.module.d.ts +14 -14
- package/lib/dropdown/dropdown.service.d.ts +13 -13
- package/lib/dropdown/index.d.ts +1 -1
- package/lib/dropdown/public_api.d.ts +9 -9
- package/lib/element-cover/element-cover.component.d.ts +27 -27
- package/lib/element-cover/element-cover.module.d.ts +9 -9
- package/lib/element-cover/index.d.ts +1 -1
- package/lib/element-cover/public_api.d.ts +2 -2
- package/lib/footer/footer.component.d.ts +18 -18
- package/lib/footer/footer.module.d.ts +8 -8
- package/lib/footer/index.d.ts +1 -1
- package/lib/footer/public_api.d.ts +2 -2
- package/lib/form/form/form.directive.d.ts +17 -17
- package/lib/form/form-check/form-check-input.directive.d.ts +31 -31
- package/lib/form/form-check/form-check-label.directive.d.ts +6 -6
- package/lib/form/form-check/form-check.component.d.ts +36 -36
- package/lib/form/form-control/form-control.directive.d.ts +34 -34
- package/lib/form/form-feedback/form-feedback.component.d.ts +18 -18
- package/lib/form/form-floating/form-floating.directive.d.ts +16 -16
- package/lib/form/form-label/form-label.directive.d.ts +16 -16
- package/lib/form/form-select/form-select.directive.d.ts +16 -16
- package/lib/form/form-text/form-text.directive.d.ts +7 -7
- package/lib/form/form.module.d.ts +19 -19
- package/lib/form/index.d.ts +1 -1
- package/lib/form/input-group/input-group.component.d.ts +11 -11
- package/lib/form/input-group-text/input-group-text.directive.d.ts +7 -7
- package/lib/form/public_api.d.ts +13 -13
- package/lib/grid/col.component.d.ts +6 -6
- package/lib/grid/col.directive.d.ts +75 -75
- package/lib/grid/col.type.d.ts +11 -11
- package/lib/grid/container.component.d.ts +20 -20
- package/lib/grid/container.type.d.ts +5 -5
- package/lib/grid/grid.module.d.ts +13 -13
- package/lib/grid/gutter.directive.d.ts +13 -13
- package/lib/grid/gutter.type.d.ts +13 -13
- package/lib/grid/index.d.ts +1 -1
- package/lib/grid/public_api.d.ts +7 -7
- package/lib/grid/row.component.d.ts +6 -6
- package/lib/grid/row.directive.d.ts +37 -37
- package/lib/grid/row.type.d.ts +9 -9
- package/lib/header/header/header.component.d.ts +25 -25
- package/lib/header/header-brand/header-brand.component.d.ts +12 -12
- package/lib/header/header-divider/header-divider.component.d.ts +6 -6
- package/lib/header/header-nav/header-nav.component.d.ts +12 -12
- package/lib/header/header-text/header-text.component.d.ts +6 -6
- package/lib/header/header-toggler/header-toggler.directive.d.ts +25 -25
- package/lib/header/header.module.d.ts +13 -13
- package/lib/header/index.d.ts +1 -1
- package/lib/header/public_api.d.ts +7 -7
- package/lib/image/img.directive.d.ts +42 -42
- package/lib/image/img.module.d.ts +8 -8
- package/lib/image/index.d.ts +1 -1
- package/lib/image/public_api.d.ts +2 -2
- package/lib/list-group/index.d.ts +1 -1
- package/lib/list-group/list-group-item.directive.d.ts +33 -33
- package/lib/list-group/list-group.directive.d.ts +21 -21
- package/lib/list-group/list-group.module.d.ts +9 -9
- package/lib/list-group/public_api.d.ts +3 -3
- package/lib/loading-button/index.d.ts +1 -1
- package/lib/loading-button/loading-button.component.d.ts +43 -43
- package/lib/loading-button/loading-button.module.d.ts +9 -9
- package/lib/loading-button/public_api.d.ts +2 -2
- package/lib/modal/index.d.ts +1 -1
- package/lib/modal/modal/modal.component.d.ts +104 -104
- package/lib/modal/modal-body/modal-body.component.d.ts +6 -6
- package/lib/modal/modal-content/modal-content.component.d.ts +7 -7
- package/lib/modal/modal-dialog/modal-dialog.component.d.ts +25 -25
- package/lib/modal/modal-dismiss/modal-toggle.directive.d.ts +13 -13
- package/lib/modal/modal-footer/modal-footer.component.d.ts +6 -6
- package/lib/modal/modal-header/modal-header.component.d.ts +6 -6
- package/lib/modal/modal-title/modal-title.directive.d.ts +6 -6
- package/lib/modal/modal.module.d.ts +16 -16
- package/lib/modal/modal.service.d.ts +15 -15
- package/lib/modal/public_api.d.ts +10 -10
- package/lib/multi-select/index.d.ts +1 -1
- package/lib/multi-select/multi-select/multi-select.component.d.ts +150 -150
- package/lib/multi-select/multi-select-native-select/multi-select-native-select.component.d.ts +14 -14
- package/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.d.ts +9 -9
- package/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.d.ts +20 -20
- package/lib/multi-select/multi-select-option/multi-select-option.component.d.ts +49 -49
- package/lib/multi-select/multi-select-tag/multi-select-tag.component.d.ts +17 -21
- package/lib/multi-select/multi-select.module.d.ts +17 -17
- package/lib/multi-select/multi-select.service.d.ts +12 -12
- package/lib/multi-select/multi-select.type.d.ts +34 -34
- package/lib/multi-select/public_api.d.ts +6 -6
- package/lib/nav/index.d.ts +1 -1
- package/lib/nav/nav-item.component.d.ts +6 -6
- package/lib/nav/nav-link.directive.d.ts +34 -34
- package/lib/nav/nav.component.d.ts +16 -16
- package/lib/nav/nav.module.d.ts +10 -10
- package/lib/nav/public_api.d.ts +4 -4
- package/lib/navbar/index.d.ts +1 -1
- package/lib/navbar/navbar-brand/navbar-brand.directive.d.ts +7 -7
- package/lib/navbar/navbar-nav/navbar-nav.component.d.ts +15 -15
- package/lib/navbar/navbar-text/navbar-text.component.d.ts +6 -6
- package/lib/navbar/navbar-toggler/navbar-toggler.directive.d.ts +33 -33
- package/lib/navbar/navbar.component.d.ts +39 -39
- package/lib/navbar/navbar.module.d.ts +13 -13
- package/lib/navbar/public_api.d.ts +6 -6
- package/lib/offcanvas/index.d.ts +1 -1
- package/lib/offcanvas/offcanvas/offcanvas.component.d.ts +82 -82
- package/lib/offcanvas/offcanvas-body/offcanvas-body.component.d.ts +6 -6
- package/lib/offcanvas/offcanvas-header/offcanvas-header.component.d.ts +6 -6
- package/lib/offcanvas/offcanvas-title/offcanvas-title.directive.d.ts +6 -6
- package/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.d.ts +14 -14
- package/lib/offcanvas/offcanvas.module.d.ts +13 -13
- package/lib/offcanvas/offcanvas.service.d.ts +15 -15
- package/lib/offcanvas/public_api.d.ts +7 -7
- package/lib/pagination/index.d.ts +1 -1
- package/lib/pagination/page-item/page-item.component.d.ts +6 -6
- package/lib/pagination/page-item/page-item.directive.d.ts +24 -24
- package/lib/pagination/page-link/page-link.directive.d.ts +6 -6
- package/lib/pagination/pagination/pagination.component.d.ts +22 -22
- package/lib/pagination/pagination.module.d.ts +11 -11
- package/lib/pagination/public_api.d.ts +5 -5
- package/lib/placeholder/index.d.ts +1 -1
- package/lib/placeholder/placeholder-animation.directive.d.ts +18 -18
- package/lib/placeholder/placeholder.directive.d.ts +22 -22
- package/lib/placeholder/placeholder.module.d.ts +9 -9
- package/lib/placeholder/public_api.d.ts +3 -3
- package/lib/popover/index.d.ts +1 -1
- package/lib/popover/popover/popover.component.d.ts +30 -30
- package/lib/popover/popover.directive.d.ts +58 -58
- package/lib/popover/popover.module.d.ts +9 -9
- package/lib/popover/public_api.d.ts +3 -3
- package/lib/progress/index.d.ts +1 -1
- package/lib/progress/progress-bar.component.d.ts +52 -52
- package/lib/progress/progress-bar.d.ts +10 -10
- package/lib/progress/progress.component.d.ts +32 -32
- package/lib/progress/progress.module.d.ts +9 -9
- package/lib/progress/public_api.d.ts +4 -4
- package/lib/services/class-toggle.service.d.ts +11 -11
- package/lib/services/index.d.ts +1 -1
- package/lib/services/intersection.service.d.ts +22 -22
- package/lib/services/listeners.service.d.ts +19 -19
- package/lib/services/public_api.d.ts +2 -2
- package/lib/shared/html-attr.directive.d.ts +16 -16
- package/lib/shared/index.d.ts +1 -1
- package/lib/shared/public_api.d.ts +3 -3
- package/lib/shared/shared.module.d.ts +11 -11
- package/lib/shared/template-id.directive.d.ts +9 -9
- package/lib/sidebar/index.d.ts +1 -1
- package/lib/sidebar/public_api.d.ts +9 -9
- package/lib/sidebar/sidebar/sidebar.component.d.ts +85 -85
- package/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.d.ts +16 -16
- package/lib/sidebar/sidebar-brand/sidebar-brand.component.d.ts +12 -12
- package/lib/sidebar/sidebar-footer/sidebar-footer.component.d.ts +7 -7
- package/lib/sidebar/sidebar-header/sidebar-header.component.d.ts +7 -7
- package/lib/sidebar/sidebar-nav/index.d.ts +1 -1
- package/lib/sidebar/sidebar-nav/public_api.d.ts +12 -12
- package/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.d.ts +7 -7
- package/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.d.ts +7 -7
- package/lib/sidebar/sidebar-nav/sidebar-nav-group.service.d.ts +14 -14
- package/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.d.ts +7 -7
- package/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.d.ts +10 -10
- package/lib/sidebar/sidebar-nav/sidebar-nav-label.component.d.ts +18 -18
- package/lib/sidebar/sidebar-nav/sidebar-nav-link.component.d.ts +34 -34
- package/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.d.ts +7 -7
- package/lib/sidebar/sidebar-nav/sidebar-nav-title.component.d.ts +15 -15
- package/lib/sidebar/sidebar-nav/sidebar-nav.component.d.ts +59 -59
- package/lib/sidebar/sidebar-nav/sidebar-nav.d.ts +53 -53
- package/lib/sidebar/sidebar-nav/sidebar-nav.service.d.ts +20 -20
- package/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.d.ts +25 -25
- package/lib/sidebar/sidebar-toggler/sidebar-toggler.component.d.ts +7 -7
- package/lib/sidebar/sidebar.module.d.ts +25 -25
- package/lib/sidebar/sidebar.service.d.ts +19 -19
- package/lib/smart-pagination/index.d.ts +1 -1
- package/lib/smart-pagination/public_api.d.ts +2 -2
- package/lib/smart-pagination/smart-pagination.component.d.ts +109 -109
- package/lib/smart-pagination/smart-pagination.module.d.ts +9 -9
- package/lib/smart-pagination/smart-pagination.type.d.ts +79 -79
- package/lib/smart-table/index.d.ts +1 -1
- package/lib/smart-table/public_api.d.ts +4 -3
- package/lib/smart-table/smart-table/smart-table.component.d.ts +145 -144
- package/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.d.ts +11 -11
- package/lib/smart-table/smart-table-filter/filter-input.directive.d.ts +24 -24
- package/lib/smart-table/smart-table-filter/smart-table-filter.component.d.ts +16 -16
- package/lib/smart-table/smart-table-head/smart-table-head.component.d.ts +45 -45
- package/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.d.ts +14 -14
- package/lib/smart-table/smart-table.module.d.ts +22 -22
- package/lib/smart-table/smart-table.type.d.ts +275 -275
- package/lib/spinner/index.d.ts +1 -1
- package/lib/spinner/public_api.d.ts +2 -2
- package/lib/spinner/spinner.component.d.ts +31 -31
- package/lib/spinner/spinner.module.d.ts +9 -9
- package/lib/table/index.d.ts +1 -1
- package/lib/table/public_api.d.ts +4 -4
- package/lib/table/table-active.directive.d.ts +16 -16
- package/lib/table/table-color.directive.d.ts +12 -12
- package/lib/table/table.directive.d.ts +90 -90
- package/lib/table/table.module.d.ts +10 -10
- package/lib/table/table.type.d.ts +76 -76
- package/lib/tabs/index.d.ts +1 -1
- package/lib/tabs/public_api.d.ts +5 -5
- package/lib/tabs/tab-content/tab-content.component.d.ts +33 -33
- package/lib/tabs/tab-content-ref.directive.d.ts +50 -50
- package/lib/tabs/tab-pane/tab-pane.component.d.ts +26 -26
- package/lib/tabs/tab.service.d.ts +14 -14
- package/lib/tabs/tabs.module.d.ts +10 -10
- package/lib/time-picker/index.d.ts +1 -1
- package/lib/time-picker/public_api.d.ts +2 -2
- package/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.d.ts +39 -39
- package/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.d.ts +38 -38
- package/lib/time-picker/time-picker.component.d.ts +196 -196
- package/lib/time-picker/time-picker.module.d.ts +14 -14
- package/lib/time-picker/time.utils.d.ts +57 -57
- package/lib/toast/index.d.ts +1 -1
- package/lib/toast/public_api.d.ts +8 -8
- package/lib/toast/toast/toast.component.d.ts +84 -84
- package/lib/toast/toast-body/toast-body.component.d.ts +9 -9
- package/lib/toast/toast-close.directive.d.ts +10 -10
- package/lib/toast/toast-header/toast-header.component.d.ts +14 -14
- package/lib/toast/toast.module.d.ts +14 -14
- package/lib/toast/toaster/toaster-host.directive.d.ts +8 -8
- package/lib/toast/toaster/toaster.component.d.ts +54 -54
- package/lib/toast/toaster/toaster.service.d.ts +16 -16
- package/lib/tooltip/index.d.ts +1 -1
- package/lib/tooltip/public_api.d.ts +3 -3
- package/lib/tooltip/tooltip/tooltip.component.d.ts +30 -30
- package/lib/tooltip/tooltip.directive.d.ts +58 -58
- package/lib/tooltip/tooltip.module.d.ts +9 -9
- package/lib/utilities/align.directive.d.ts +12 -12
- package/lib/utilities/bg-color.directive.d.ts +17 -17
- package/lib/utilities/border.directive.d.ts +12 -12
- package/lib/utilities/border.type.d.ts +15 -15
- package/lib/utilities/index.d.ts +1 -1
- package/lib/utilities/public_api.d.ts +6 -6
- package/lib/utilities/rounded.directive.d.ts +12 -12
- package/lib/utilities/rounded.type.d.ts +12 -12
- package/lib/utilities/text-color.directive.d.ts +13 -13
- package/lib/utilities/utilities.module.d.ts +12 -12
- package/lib/widget/index.d.ts +1 -1
- package/lib/widget/public_api.d.ts +7 -7
- package/lib/widget/widget-stat-a/widget-stat-a.component.d.ts +37 -37
- package/lib/widget/widget-stat-b/widget-stat-b.component.d.ts +47 -47
- package/lib/widget/widget-stat-c/widget-stat-c.component.d.ts +58 -58
- package/lib/widget/widget-stat-d/widget-stat-d.component.d.ts +31 -31
- package/lib/widget/widget-stat-e/widget-stat-e.component.d.ts +24 -24
- package/lib/widget/widget-stat-f/widget-stat-f.component.d.ts +77 -77
- package/lib/widget/widget.module.d.ts +15 -15
- package/package.json +1 -1
- package/public-api.d.ts +46 -46
|
@@ -1,645 +1,645 @@
|
|
|
1
|
-
import { isValid } from 'date-fns';
|
|
2
|
-
export const getSupportedLocale = (locale = 'default') => {
|
|
3
|
-
let supportedLocale;
|
|
4
|
-
try {
|
|
5
|
-
supportedLocale = Intl.DateTimeFormat.supportedLocalesOf(locale).length ? locale : 'default';
|
|
6
|
-
}
|
|
7
|
-
catch (e) {
|
|
8
|
-
supportedLocale = 'default';
|
|
9
|
-
}
|
|
10
|
-
return supportedLocale;
|
|
11
|
-
};
|
|
12
|
-
export const isHour12 = (locale = 'default') => {
|
|
13
|
-
const supportedLocale = getSupportedLocale(locale);
|
|
14
|
-
const hour12 = Intl.DateTimeFormat(supportedLocale, { timeStyle: 'short' }).resolvedOptions().hour12;
|
|
15
|
-
return hour12 ?? false;
|
|
16
|
-
};
|
|
17
|
-
export const convert12hTo24h = (abbr, hour) => {
|
|
18
|
-
if (abbr === 'am' && hour === 12) {
|
|
19
|
-
return 0;
|
|
20
|
-
}
|
|
21
|
-
if (abbr === 'am') {
|
|
22
|
-
return hour;
|
|
23
|
-
}
|
|
24
|
-
if (abbr === 'pm' && hour === 12) {
|
|
25
|
-
return 12;
|
|
26
|
-
}
|
|
27
|
-
return hour + 12;
|
|
28
|
-
};
|
|
29
|
-
export const convert24hTo12h = (hour) => hour % 12 || 12;
|
|
30
|
-
export const convertTimeToDate = (time) => time ? (time instanceof Date ? new Date(time) : new Date(`1970-01-01 ${time}`)) : null;
|
|
31
|
-
// export const getAmPm = (date: Date, locale: string) => {
|
|
32
|
-
// if (date.toLocaleTimeString(locale).includes('AM')) {
|
|
33
|
-
// return 'am'
|
|
34
|
-
// }
|
|
35
|
-
// if (date.toLocaleTimeString(locale).includes('PM')) {
|
|
36
|
-
// return 'pm'
|
|
37
|
-
// }
|
|
38
|
-
// return date.getHours() >= 12 ? 'pm' : 'am'
|
|
39
|
-
// }
|
|
40
|
-
export const getAmPm = (date, locale, options = {}) => {
|
|
41
|
-
const dayPeriods = getDayPeriods('en-US', options);
|
|
42
|
-
const time = new Intl.DateTimeFormat('en-US', { timeStyle: "short", hour12: true }).format(date);
|
|
43
|
-
const dayPeriod = dayPeriods.find(element => time.includes(element.label));
|
|
44
|
-
return (dayPeriod?.value ?? (date.getHours() >= 12 ? 'pm' : 'am'));
|
|
45
|
-
};
|
|
46
|
-
export const isAm = (date) => {
|
|
47
|
-
return date.getHours() < 12;
|
|
48
|
-
};
|
|
49
|
-
export const isPm = (date) => {
|
|
50
|
-
return date.getHours() > 11;
|
|
51
|
-
};
|
|
52
|
-
export const isValidTimeZone = (timeZone) => {
|
|
53
|
-
try {
|
|
54
|
-
if (timeZone === undefined) {
|
|
55
|
-
return false;
|
|
56
|
-
}
|
|
57
|
-
if (!Intl || !Intl.DateTimeFormat().resolvedOptions().timeZone) {
|
|
58
|
-
throw new Error('Time zones not supported.');
|
|
59
|
-
}
|
|
60
|
-
if (typeof timeZone !== 'string') {
|
|
61
|
-
throw new Error(`Invalid timeZone type specified: ${timeZone}`);
|
|
62
|
-
}
|
|
63
|
-
try {
|
|
64
|
-
// throws an error if timezone is not valid
|
|
65
|
-
Intl.DateTimeFormat(undefined, { timeZone: timeZone });
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
throw new Error(`Invalid timeZone string specified: ${timeZone}`);
|
|
69
|
-
}
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
catch (error) {
|
|
73
|
-
console.warn(error);
|
|
74
|
-
return false;
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
export const getListOfHours = (locale, options = {}) => {
|
|
78
|
-
const hour12 = isHour12(locale);
|
|
79
|
-
const time = new Date(0);
|
|
80
|
-
return Array.from({ length: 24 }, (_, i) => {
|
|
81
|
-
time.setHours(i);
|
|
82
|
-
const dayPeriod = getAmPm(time, locale);
|
|
83
|
-
return {
|
|
84
|
-
value: i,
|
|
85
|
-
dayPeriod: dayPeriod,
|
|
86
|
-
label: time.toLocaleTimeString(locale, {
|
|
87
|
-
hour: '2-digit',
|
|
88
|
-
hour12: hour12,
|
|
89
|
-
minute: '2-digit',
|
|
90
|
-
second: '2-digit',
|
|
91
|
-
}).split(':')[0],
|
|
92
|
-
};
|
|
93
|
-
});
|
|
94
|
-
};
|
|
95
|
-
export const getListOfMinutes = (locale, options = {}, valueAsString = false) => {
|
|
96
|
-
const d = new Date(0);
|
|
97
|
-
return Array.from({ length: 60 }, (_, i) => {
|
|
98
|
-
d.setMinutes(i);
|
|
99
|
-
return {
|
|
100
|
-
value: i,
|
|
101
|
-
// value: valueAsString ? i.toString() : i,
|
|
102
|
-
label: d.toLocaleTimeString(locale, {
|
|
103
|
-
// ...options,
|
|
104
|
-
hour: '2-digit',
|
|
105
|
-
hour12: false,
|
|
106
|
-
minute: '2-digit',
|
|
107
|
-
second: '2-digit',
|
|
108
|
-
}).split(':')[1],
|
|
109
|
-
};
|
|
110
|
-
});
|
|
111
|
-
};
|
|
112
|
-
export const getListOfSeconds = (locale, options = {}, valueAsString = false) => Array.from({ length: 60 }, (_, i) => {
|
|
113
|
-
const d = new Date(0);
|
|
114
|
-
d.setSeconds(i);
|
|
115
|
-
return {
|
|
116
|
-
value: i,
|
|
117
|
-
// value: valueAsString ? i.toString() : i,
|
|
118
|
-
label: d.toLocaleTimeString(locale, {
|
|
119
|
-
// ...options,
|
|
120
|
-
hour: '2-digit',
|
|
121
|
-
hour12: false,
|
|
122
|
-
minute: '2-digit',
|
|
123
|
-
second: '2-digit',
|
|
124
|
-
}).split(':')[2],
|
|
125
|
-
};
|
|
126
|
-
});
|
|
127
|
-
export const getSelectedHour = (date, locale) => date instanceof Date ? (isHour12(locale) ? convert24hTo12h(date.getHours()) : date.getHours()) : '';
|
|
128
|
-
export const getSelectedMinutes = (date) => (date ? date.getMinutes() : '');
|
|
129
|
-
export const getSelectedSeconds = (date) => (date ? date.getSeconds() : '');
|
|
130
|
-
// export const isAmPm = (locale: string) =>
|
|
131
|
-
// ['am', 'AM', 'pm', 'PM'].some((el) => new Date().toLocaleString(locale).includes(el))
|
|
132
|
-
export const isAmPm = (locale = 'default') => {
|
|
133
|
-
const supportedLocale = getSupportedLocale(locale);
|
|
134
|
-
const date = new Date();
|
|
135
|
-
const time = new Intl.DateTimeFormat(supportedLocale, { timeStyle: "short" }).format(date);
|
|
136
|
-
const isAmPm = time.match(/(?:\p{L}\p{M}\p{P}*)+|(?:\p{L}\p{P}*)+/gu) ?? [];
|
|
137
|
-
return isAmPm.length > 0;
|
|
138
|
-
};
|
|
139
|
-
export const isValidTime = (time) => {
|
|
140
|
-
if (typeof time === 'string') {
|
|
141
|
-
return isValid(time) || isValid(new Date(`1970-01-01 ${time}`));
|
|
142
|
-
}
|
|
143
|
-
return isValid(time);
|
|
144
|
-
// const d = new Date(`1970-01-01 ${time}`)
|
|
145
|
-
// return d instanceof Date && d.getTime()
|
|
146
|
-
};
|
|
147
|
-
// export const _getDayPeriods = (locale: string = 'default', options: DateTimeFormatOptions = {}) => {
|
|
148
|
-
// const supportedLocale = getSupportedLocale(locale);
|
|
149
|
-
//
|
|
150
|
-
// const dayPeriods = { am: 'am', pm: 'pm' };
|
|
151
|
-
//
|
|
152
|
-
// const hour12 = isHour12(supportedLocale);
|
|
153
|
-
// if (!hour12) {
|
|
154
|
-
// return dayPeriods;
|
|
155
|
-
// }
|
|
156
|
-
//
|
|
157
|
-
// const am = new Date(Date.UTC(1970, 0, 1, 0, 0, 0));
|
|
158
|
-
// const pm = new Date(Date.UTC(1970, 0, 1, 13, 0, 0));
|
|
159
|
-
//
|
|
160
|
-
// const formatter = new Intl.DateTimeFormat(supportedLocale, { hour12: hour12, hour: 'numeric', timeZone: 'UTC' });
|
|
161
|
-
// dayPeriods.am = formatter.formatToParts(am).find(part => part.type === 'dayPeriod')?.value ?? 'am';
|
|
162
|
-
// dayPeriods.pm = formatter.formatToParts(pm).find(part => part.type === 'dayPeriod')?.value ?? 'pm'
|
|
163
|
-
// return dayPeriods;
|
|
164
|
-
// };
|
|
165
|
-
export const getDayPeriods = (locale = 'default', options = {}) => {
|
|
166
|
-
const supportedLocale = getSupportedLocale(locale);
|
|
167
|
-
const dayPeriods = [
|
|
168
|
-
{ value: 'am', label: 'am' },
|
|
169
|
-
{ value: 'pm', label: 'pm' },
|
|
170
|
-
];
|
|
171
|
-
const hour12 = isHour12(supportedLocale);
|
|
172
|
-
if (!hour12) {
|
|
173
|
-
return dayPeriods;
|
|
174
|
-
}
|
|
175
|
-
const am = new Date(Date.UTC(1970, 0, 1, 0, 0, 0));
|
|
176
|
-
const pm = new Date(Date.UTC(1970, 0, 1, 13, 0, 0));
|
|
177
|
-
const formatter = new Intl.DateTimeFormat(supportedLocale, { hour12: hour12, hour: 'numeric', timeZone: 'UTC' });
|
|
178
|
-
const formattedAm = formatter.formatToParts(am).find(part => part.type === 'dayPeriod')?.value ?? 'am';
|
|
179
|
-
const formattedPm = formatter.formatToParts(pm).find(part => part.type === 'dayPeriod')?.value ?? 'pm';
|
|
180
|
-
dayPeriods.forEach((element, index, dayPeriods) => {
|
|
181
|
-
dayPeriods[index].label = element.value === 'am' ? (formattedAm ?? 'am') : (formattedPm ?? 'pm');
|
|
182
|
-
});
|
|
183
|
-
return dayPeriods;
|
|
184
|
-
};
|
|
185
|
-
// testing
|
|
186
|
-
// const langs = [
|
|
187
|
-
// ['Abkhazian', 'ab'],
|
|
188
|
-
// ['Afar', 'aa'],
|
|
189
|
-
// ['Afrikaans', 'af'],
|
|
190
|
-
// ['Akan', 'ak'],
|
|
191
|
-
// ['Albanian', 'sq'],
|
|
192
|
-
// ['Amharic', 'am'],
|
|
193
|
-
// ['Arabic', 'ar'],
|
|
194
|
-
// ['Aragonese', 'an'],
|
|
195
|
-
// ['Argentina', 'es-ar'],
|
|
196
|
-
// ['Armenian', 'hy'],
|
|
197
|
-
// ['Assamese', 'as'],
|
|
198
|
-
// ['Avaric', 'av'],
|
|
199
|
-
// ['Avestan', 'ae'],
|
|
200
|
-
// ['Aymara', 'ay'],
|
|
201
|
-
// ['Azerbaijani', 'az'],
|
|
202
|
-
// ['Bambara', 'bm'],
|
|
203
|
-
// ['Bashkir', 'ba'],
|
|
204
|
-
// ['Basque', 'eu'],
|
|
205
|
-
// ['Belarusian', 'be'],
|
|
206
|
-
// ['Bengali (Bangla)', 'bn'],
|
|
207
|
-
// ['Bihari', 'bh'],
|
|
208
|
-
// ['Bislama', 'bi'],
|
|
209
|
-
// ['Bosnian', 'bs'],
|
|
210
|
-
// ['Breton', 'br'],
|
|
211
|
-
// ['Bulgarian', 'bg'],
|
|
212
|
-
// ['Burmese', 'my'],
|
|
213
|
-
// ['Catalan', 'ca'],
|
|
214
|
-
// ['Chamorro', 'ch'],
|
|
215
|
-
// ['Chechen', 'ce'],
|
|
216
|
-
// ['Chichewa, Chewa, Nyanja', 'ny'],
|
|
217
|
-
// ['Chinese', 'zh'],
|
|
218
|
-
// ['Chinese (Simplified)', 'zh-Hans'],
|
|
219
|
-
// ['Chinese (Traditional)', 'zh-Hant'],
|
|
220
|
-
// ['Chuvash', 'cv'],
|
|
221
|
-
// ['Cornish', 'kw'],
|
|
222
|
-
// ['Corsican', 'co'],
|
|
223
|
-
// ['Cree', 'cr'],
|
|
224
|
-
// ['Croatian', 'hr'],
|
|
225
|
-
// ['Czech', 'cs'],
|
|
226
|
-
// ['Danish', 'da'],
|
|
227
|
-
// ['Divehi, Dhivehi, Maldivian', 'dv'],
|
|
228
|
-
// ['Dutch', 'nl'],
|
|
229
|
-
// ['Dzongkha', 'dz'],
|
|
230
|
-
// ['English', 'en'],
|
|
231
|
-
// ['Esperanto', 'eo'],
|
|
232
|
-
// ['Estonian', 'et'],
|
|
233
|
-
// ['Ewe', 'ee'],
|
|
234
|
-
// ['Faroese', 'fo'],
|
|
235
|
-
// ['Fijian', 'fj'],
|
|
236
|
-
// ['Finnish', 'fi'],
|
|
237
|
-
// ['French', 'fr'],
|
|
238
|
-
// ['Fula, Fulah, Pulaar, Pular', 'ff'],
|
|
239
|
-
// ['Galician', 'gl'],
|
|
240
|
-
// ['Gaelic (Scottish)', 'gd'],
|
|
241
|
-
// ['Gaelic (Manx)', 'gv'],
|
|
242
|
-
// ['Georgian', 'ka'],
|
|
243
|
-
// ['German', 'de'],
|
|
244
|
-
// ['Greek', 'el'],
|
|
245
|
-
// ['Greenlandic', 'kl'],
|
|
246
|
-
// ['Guarani', 'gn'],
|
|
247
|
-
// ['Gujarati', 'gu'],
|
|
248
|
-
// ['Haitian Creole', 'ht'],
|
|
249
|
-
// ['Hausa', 'ha'],
|
|
250
|
-
// ['Hebrew', 'he'],
|
|
251
|
-
// ['Herero', 'hz'],
|
|
252
|
-
// ['Hindi', 'hi'],
|
|
253
|
-
// ['Hiri Motu', 'ho'],
|
|
254
|
-
// ['Hungarian', 'hu'],
|
|
255
|
-
// ['Icelandic', 'is'],
|
|
256
|
-
// ['Ido', 'io'],
|
|
257
|
-
// ['Igbo', 'ig'],
|
|
258
|
-
// ['Indonesian', 'id', 'in'],
|
|
259
|
-
// ['Interlingua', 'ia'],
|
|
260
|
-
// ['Interlingue', 'ie'],
|
|
261
|
-
// ['Inuktitut', 'iu'],
|
|
262
|
-
// ['Inupiak', 'ik'],
|
|
263
|
-
// ['Irish', 'ga'],
|
|
264
|
-
// ['Italian', 'it'],
|
|
265
|
-
// ['Japanese', 'ja'],
|
|
266
|
-
// ['Javanese', 'jv'],
|
|
267
|
-
// ['Kalaallisut, Greenlandic', 'kl'],
|
|
268
|
-
// ['Kannada', 'kn'],
|
|
269
|
-
// ['Kanuri', 'kr'],
|
|
270
|
-
// ['Kashmiri', 'ks'],
|
|
271
|
-
// ['Kazakh', 'kk'],
|
|
272
|
-
// ['Khmer', 'km'],
|
|
273
|
-
// ['Kikuyu', 'ki'],
|
|
274
|
-
// ['Kinyarwanda (Rwanda)', 'rw'],
|
|
275
|
-
// ['Kirundi', 'rn'],
|
|
276
|
-
// ['Kyrgyz', 'ky'],
|
|
277
|
-
// ['Komi', 'kv'],
|
|
278
|
-
// ['Kongo', 'kg'],
|
|
279
|
-
// ['Korean', 'ko'],
|
|
280
|
-
// ['Kurdish', 'ku'],
|
|
281
|
-
// ['Kwanyama', 'kj'],
|
|
282
|
-
// ['Lao', 'lo'],
|
|
283
|
-
// ['Latin', 'la'],
|
|
284
|
-
// ['Latvian (Lettish)', 'lv'],
|
|
285
|
-
// ['Limburgish (Limburger)', 'li'],
|
|
286
|
-
// ['Lingala', 'ln'],
|
|
287
|
-
// ['Lithuanian', 'lt'],
|
|
288
|
-
// ['Luga-Katanga', 'lu'],
|
|
289
|
-
// ['Luganda, Ganda', 'lg'],
|
|
290
|
-
// ['Luxembourgish', 'lb'],
|
|
291
|
-
// ['Manx', 'gv'],
|
|
292
|
-
// ['Macedonian', 'mk'],
|
|
293
|
-
// ['Malagasy', 'mg'],
|
|
294
|
-
// ['Malay', 'ms'],
|
|
295
|
-
// ['Malayalam', 'ml'],
|
|
296
|
-
// ['Maltese', 'mt'],
|
|
297
|
-
// ['Maori', 'mi'],
|
|
298
|
-
// ['Marathi', 'mr'],
|
|
299
|
-
// ['Marshallese', 'mh'],
|
|
300
|
-
// ['Moldavian', 'mo'],
|
|
301
|
-
// ['Mongolian', 'mn'],
|
|
302
|
-
// ['Nauru', 'na'],
|
|
303
|
-
// ['Navajo', 'nv'],
|
|
304
|
-
// ['Ndonga', 'ng'],
|
|
305
|
-
// ['Northern Ndebele', 'nd'],
|
|
306
|
-
// ['Nepali', 'ne'],
|
|
307
|
-
// ['Norwegian', 'no'],
|
|
308
|
-
// ['Norwegian bokmål', 'nb'],
|
|
309
|
-
// ['Norwegian nynorsk', 'nn'],
|
|
310
|
-
// ['Nuosu', 'ii'],
|
|
311
|
-
// ['Occitan', 'oc'],
|
|
312
|
-
// ['Ojibwe', 'oj'],
|
|
313
|
-
// ['Old Church Slavonic, Old Bulgarian', 'cu'],
|
|
314
|
-
// ['Oriya', 'or'],
|
|
315
|
-
// ['Oromo (Afaan Oromo)', 'om'],
|
|
316
|
-
// ['Ossetian', 'os'],
|
|
317
|
-
// ['Pāli', 'pi'],
|
|
318
|
-
// ['Pashto, Pushto', 'ps'],
|
|
319
|
-
// ['Persian (Farsi)', 'fa'],
|
|
320
|
-
// ['Polish', 'pl'],
|
|
321
|
-
// ['Portuguese', 'pt'],
|
|
322
|
-
// ['Punjabi (Eastern)', 'pa'],
|
|
323
|
-
// ['Quechua', 'qu'],
|
|
324
|
-
// ['Romansh', 'rm'],
|
|
325
|
-
// ['Romanian', 'ro'],
|
|
326
|
-
// ['Russian', 'ru'],
|
|
327
|
-
// ['Sami', 'se'],
|
|
328
|
-
// ['Samoan', 'sm'],
|
|
329
|
-
// ['Sango', 'sg'],
|
|
330
|
-
// ['Sanskrit', 'sa'],
|
|
331
|
-
// ['Serbian', 'sr'],
|
|
332
|
-
// ['Serbo-Croatian', 'sh'],
|
|
333
|
-
// ['Sesotho', 'st'],
|
|
334
|
-
// ['Setswana', 'tn'],
|
|
335
|
-
// ['Shona', 'sn'],
|
|
336
|
-
// ['Sichuan Yi', 'ii'],
|
|
337
|
-
// ['Sindhi', 'sd'],
|
|
338
|
-
// ['Sinhalese', 'si'],
|
|
339
|
-
// ['Siswati', 'ss'],
|
|
340
|
-
// ['Slovak', 'sk'],
|
|
341
|
-
// ['Slovenian', 'sl'],
|
|
342
|
-
// ['Somali', 'so'],
|
|
343
|
-
// ['Southern Ndebele', 'nr'],
|
|
344
|
-
// ['Spanish', 'es'],
|
|
345
|
-
// ['Sundanese', 'su'],
|
|
346
|
-
// ['Swahili (Kiswahili)', 'sw'],
|
|
347
|
-
// ['Swati', 'ss'],
|
|
348
|
-
// ['Swedish', 'sv'],
|
|
349
|
-
// ['Tagalog', 'tl'],
|
|
350
|
-
// ['Tahitian', 'ty'],
|
|
351
|
-
// ['Tajik', 'tg'],
|
|
352
|
-
// ['Tamil', 'ta'],
|
|
353
|
-
// ['Tatar', 'tt'],
|
|
354
|
-
// ['Telugu', 'te'],
|
|
355
|
-
// ['Thai', 'th'],
|
|
356
|
-
// ['Tibetan', 'bo'],
|
|
357
|
-
// ['Tigrinya', 'ti'],
|
|
358
|
-
// ['Tonga', 'to'],
|
|
359
|
-
// ['Tsonga', 'ts'],
|
|
360
|
-
// ['Turkish', 'tr'],
|
|
361
|
-
// ['Turkmen', 'tk'],
|
|
362
|
-
// ['Twi', 'tw'],
|
|
363
|
-
// ['Uyghur', 'ug'],
|
|
364
|
-
// ['Ukrainian', 'uk'],
|
|
365
|
-
// ['Urdu', 'ur'],
|
|
366
|
-
// ['Uzbek', 'uz'],
|
|
367
|
-
// ['Venda', 've'],
|
|
368
|
-
// ['Vietnamese', 'vi'],
|
|
369
|
-
// ['Volapük', 'vo'],
|
|
370
|
-
// ['Wallon', 'wa'],
|
|
371
|
-
// ['Welsh', 'cy'],
|
|
372
|
-
// ['Wolof', 'wo'],
|
|
373
|
-
// ['Western Frisian', 'fy'],
|
|
374
|
-
// ['Xhosa', 'xh'],
|
|
375
|
-
// ['Yiddish', 'yi', 'ji'],
|
|
376
|
-
// ['Yoruba', 'yo'],
|
|
377
|
-
// ['Zhuang, Chuang', 'za'],
|
|
378
|
-
// ['Zulu', 'zu'],
|
|
379
|
-
// ]
|
|
380
|
-
//
|
|
381
|
-
// langs.forEach(lang => {const period = getDayPeriods(lang[1]); if (period.am === 'AM') return; console.log(lang[1], period )})
|
|
382
|
-
// Chrome / Opera
|
|
383
|
-
// Amharic am {am: 'ጥዋት', pm: 'ከሰዓት'}
|
|
384
|
-
// Arabic ar {am: 'ص', pm: 'م'}
|
|
385
|
-
// Bulgarian bg {am: 'пр.об.', pm: 'сл.об.'}
|
|
386
|
-
// Chinese (Traditional) zh-Hant {am: '上午', pm: '下午'}
|
|
387
|
-
// Greek el {am: 'π.μ.', pm: 'μ.μ.'}
|
|
388
|
-
// Hindi hi {am: 'am', pm: 'pm'}
|
|
389
|
-
// Kannada kn {am: 'ಪೂರ್ವಾಹ್ನ', pm: 'ಅಪರಾಹ್ನ'}
|
|
390
|
-
// Korean ko {am: '오전', pm: '오후'}
|
|
391
|
-
// Malay ms {am: 'PG', pm: 'PTG'}
|
|
392
|
-
// Tamil ta {am: 'முற்பகல்', pm: 'பிற்பகல்'}
|
|
393
|
-
// Edge Chromium
|
|
394
|
-
// Albanian sq {am: 'e paradites', pm: 'e pasdites'}
|
|
395
|
-
// Amharic am {am: 'ጥዋት', pm: 'ከሰዓት'}
|
|
396
|
-
// Arabic ar {am: 'ص', pm: 'م'}
|
|
397
|
-
// Bulgarian bg {am: 'пр.об.', pm: 'сл.об.'}
|
|
398
|
-
// Chinese (Traditional) zh-Hant {am: '上午', pm: '下午'}
|
|
399
|
-
// Greek el {am: 'π.μ.', pm: 'μ.μ.'}
|
|
400
|
-
// Hindi hi {am: 'am', pm: 'pm'}
|
|
401
|
-
// Kannada kn {am: 'ಪೂರ್ವಾಹ್ನ', pm: 'ಅಪರಾಹ್ನ'}
|
|
402
|
-
// Korean ko {am: '오전', pm: '오후'}
|
|
403
|
-
// Malay ms {am: 'PG', pm: 'PTG'}
|
|
404
|
-
// Punjabi (Eastern) pa {am: 'ਪੂ.ਦੁ.', pm: 'ਬਾ.ਦੁ.'}
|
|
405
|
-
// Sindhi sd {am: 'صبح، منجهند', pm: 'منجهند، شام'}
|
|
406
|
-
// Tamil ta {am: 'முற்பகல்', pm: 'பிற்பகல்'}
|
|
407
|
-
// Firefox
|
|
408
|
-
// Akan ak { am: "AN", pm: "EW" }
|
|
409
|
-
// Albanian sq { am: "e paradites", pm: "e pasdites" }
|
|
410
|
-
// Amharic am { am: "ጥዋት", pm: "ከሰዓት" }
|
|
411
|
-
// Arabic ar { am: "ص", pm: "م" }
|
|
412
|
-
// Assamese as { am: "পূৰ্বাহ্ন", pm: "অপৰাহ্ন" }
|
|
413
|
-
// Bulgarian bg { am: "пр.об.", pm: "сл.об." }
|
|
414
|
-
// Chinese (Traditional) zh-Hant { am: "上午", pm: "下午" }
|
|
415
|
-
// Dzongkha dz { am: "སྔ་ཆ་", pm: "ཕྱི་ཆ་" }
|
|
416
|
-
// Ewe ee { am: "ŋdi", pm: "ɣetrɔ" }
|
|
417
|
-
// Greek el { am: "π.μ.", pm: "μ.μ." }
|
|
418
|
-
// Hindi hi { am: "am", pm: "pm" }
|
|
419
|
-
// Kannada kn { am: "ಪೂರ್ವಾಹ್ನ", pm: "ಅಪರಾಹ್ನ" }
|
|
420
|
-
// Korean ko { am: "오전", pm: "오후" }
|
|
421
|
-
// Malay ms { am: "PG", pm: "PTG" }
|
|
422
|
-
// Oromo (Afaan Oromo) om { am: "WD", pm: "WB" }
|
|
423
|
-
// Punjabi (Eastern) pa { am: "ਪੂ.ਦੁ.", pm: "ਬਾ.ਦੁ." }
|
|
424
|
-
// Sanskrit sa { am: "पूर्वाह्न", pm: "अपराह्न" }
|
|
425
|
-
// Sindhi sd { am: "صبح، منجهند", pm: "منجهند، شام" }
|
|
426
|
-
// Somali so { am: "GH", pm: "GD" }
|
|
427
|
-
// Tamil ta { am: "முற்பகல்", pm: "பிற்பகல்" }
|
|
428
|
-
// Tigrinya ti { am: "ቅ.ቀ.", pm: "ድ.ቀ." }
|
|
429
|
-
// Tonga to { am: "hengihengi", pm: "efiafi" }
|
|
430
|
-
// Twi tw { am: "AN", pm: "EW" }
|
|
431
|
-
// const formats = {
|
|
432
|
-
// "ar-SA" : "dd/MM/yy",
|
|
433
|
-
// "bg-BG" : "dd.M.yyyy",
|
|
434
|
-
// "ca-ES" : "dd/MM/yyyy",
|
|
435
|
-
// "zh-TW" : "yyyy/M/d",
|
|
436
|
-
// "cs-CZ" : "d.M.yyyy",
|
|
437
|
-
// "da-DK" : "dd-MM-yyyy",
|
|
438
|
-
// "de-DE" : "dd.MM.yyyy",
|
|
439
|
-
// "el-GR" : "d/M/yyyy",
|
|
440
|
-
// "en-US" : "M/d/yyyy",
|
|
441
|
-
// "fi-FI" : "d.M.yyyy",
|
|
442
|
-
// "fr-FR" : "dd/MM/yyyy",
|
|
443
|
-
// "he-IL" : "dd/MM/yyyy",
|
|
444
|
-
// "hu-HU" : "yyyy. MM. dd.",
|
|
445
|
-
// "is-IS" : "d.M.yyyy",
|
|
446
|
-
// "it-IT" : "dd/MM/yyyy",
|
|
447
|
-
// "ja-JP" : "yyyy/MM/dd",
|
|
448
|
-
// "ko-KR" : "yyyy-MM-dd",
|
|
449
|
-
// "nl-NL" : "d-M-yyyy",
|
|
450
|
-
// "nb-NO" : "dd.MM.yyyy",
|
|
451
|
-
// "pl-PL" : "yyyy-MM-dd",
|
|
452
|
-
// "pt-BR" : "d/M/yyyy",
|
|
453
|
-
// "ro-RO" : "dd.MM.yyyy",
|
|
454
|
-
// "ru-RU" : "dd.MM.yyyy",
|
|
455
|
-
// "hr-HR" : "d.M.yyyy",
|
|
456
|
-
// "sk-SK" : "d. M. yyyy",
|
|
457
|
-
// "sq-AL" : "yyyy-MM-dd",
|
|
458
|
-
// "sv-SE" : "yyyy-MM-dd",
|
|
459
|
-
// "th-TH" : "d/M/yyyy",
|
|
460
|
-
// "tr-TR" : "dd.MM.yyyy",
|
|
461
|
-
// "ur-PK" : "dd/MM/yyyy",
|
|
462
|
-
// "id-ID" : "dd/MM/yyyy",
|
|
463
|
-
// "uk-UA" : "dd.MM.yyyy",
|
|
464
|
-
// "be-BY" : "dd.MM.yyyy",
|
|
465
|
-
// "sl-SI" : "d.M.yyyy",
|
|
466
|
-
// "et-EE" : "d.MM.yyyy",
|
|
467
|
-
// "lv-LV" : "yyyy.MM.dd.",
|
|
468
|
-
// "lt-LT" : "yyyy.MM.dd",
|
|
469
|
-
// "fa-IR" : "MM/dd/yyyy",
|
|
470
|
-
// "vi-VN" : "dd/MM/yyyy",
|
|
471
|
-
// "hy-AM" : "dd.MM.yyyy",
|
|
472
|
-
// "az-Latn-AZ" : "dd.MM.yyyy",
|
|
473
|
-
// "eu-ES" : "yyyy/MM/dd",
|
|
474
|
-
// "mk-MK" : "dd.MM.yyyy",
|
|
475
|
-
// "af-ZA" : "yyyy/MM/dd",
|
|
476
|
-
// "ka-GE" : "dd.MM.yyyy",
|
|
477
|
-
// "fo-FO" : "dd-MM-yyyy",
|
|
478
|
-
// "hi-IN" : "dd-MM-yyyy",
|
|
479
|
-
// "ms-MY" : "dd/MM/yyyy",
|
|
480
|
-
// "kk-KZ" : "dd.MM.yyyy",
|
|
481
|
-
// "ky-KG" : "dd.MM.yy",
|
|
482
|
-
// "sw-KE" : "M/d/yyyy",
|
|
483
|
-
// "uz-Latn-UZ" : "dd/MM yyyy",
|
|
484
|
-
// "tt-RU" : "dd.MM.yyyy",
|
|
485
|
-
// "pa-IN" : "dd-MM-yy",
|
|
486
|
-
// "gu-IN" : "dd-MM-yy",
|
|
487
|
-
// "ta-IN" : "dd-MM-yyyy",
|
|
488
|
-
// "te-IN" : "dd-MM-yy",
|
|
489
|
-
// "kn-IN" : "dd-MM-yy",
|
|
490
|
-
// "mr-IN" : "dd-MM-yyyy",
|
|
491
|
-
// "sa-IN" : "dd-MM-yyyy",
|
|
492
|
-
// "mn-MN" : "yy.MM.dd",
|
|
493
|
-
// "gl-ES" : "dd/MM/yy",
|
|
494
|
-
// "kok-IN" : "dd-MM-yyyy",
|
|
495
|
-
// "syr-SY" : "dd/MM/yyyy",
|
|
496
|
-
// "dv-MV" : "dd/MM/yy",
|
|
497
|
-
// "ar-IQ" : "dd/MM/yyyy",
|
|
498
|
-
// "zh-CN" : "yyyy/M/d",
|
|
499
|
-
// "de-CH" : "dd.MM.yyyy",
|
|
500
|
-
// "en-GB" : "dd/MM/yyyy",
|
|
501
|
-
// "es-MX" : "dd/MM/yyyy",
|
|
502
|
-
// "fr-BE" : "d/MM/yyyy",
|
|
503
|
-
// "it-CH" : "dd.MM.yyyy",
|
|
504
|
-
// "nl-BE" : "d/MM/yyyy",
|
|
505
|
-
// "nn-NO" : "dd.MM.yyyy",
|
|
506
|
-
// "pt-PT" : "dd-MM-yyyy",
|
|
507
|
-
// "sr-Latn-CS" : "d.M.yyyy",
|
|
508
|
-
// "sv-FI" : "d.M.yyyy",
|
|
509
|
-
// "az-Cyrl-AZ" : "dd.MM.yyyy",
|
|
510
|
-
// "ms-BN" : "dd/MM/yyyy",
|
|
511
|
-
// "uz-Cyrl-UZ" : "dd.MM.yyyy",
|
|
512
|
-
// "ar-EG" : "dd/MM/yyyy",
|
|
513
|
-
// "zh-HK" : "d/M/yyyy",
|
|
514
|
-
// "de-AT" : "dd.MM.yyyy",
|
|
515
|
-
// "en-AU" : "d/MM/yyyy",
|
|
516
|
-
// "es-ES" : "dd/MM/yyyy",
|
|
517
|
-
// "fr-CA" : "yyyy-MM-dd",
|
|
518
|
-
// "sr-Cyrl-CS" : "d.M.yyyy",
|
|
519
|
-
// "ar-LY" : "dd/MM/yyyy",
|
|
520
|
-
// "zh-SG" : "d/M/yyyy",
|
|
521
|
-
// "de-LU" : "dd.MM.yyyy",
|
|
522
|
-
// "en-CA" : "dd/MM/yyyy",
|
|
523
|
-
// "es-GT" : "dd/MM/yyyy",
|
|
524
|
-
// "fr-CH" : "dd.MM.yyyy",
|
|
525
|
-
// "ar-DZ" : "dd-MM-yyyy",
|
|
526
|
-
// "zh-MO" : "d/M/yyyy",
|
|
527
|
-
// "de-LI" : "dd.MM.yyyy",
|
|
528
|
-
// "en-NZ" : "d/MM/yyyy",
|
|
529
|
-
// "es-CR" : "dd/MM/yyyy",
|
|
530
|
-
// "fr-LU" : "dd/MM/yyyy",
|
|
531
|
-
// "ar-MA" : "dd-MM-yyyy",
|
|
532
|
-
// "en-IE" : "dd/MM/yyyy",
|
|
533
|
-
// "es-PA" : "MM/dd/yyyy",
|
|
534
|
-
// "fr-MC" : "dd/MM/yyyy",
|
|
535
|
-
// "ar-TN" : "dd-MM-yyyy",
|
|
536
|
-
// "en-ZA" : "yyyy/MM/dd",
|
|
537
|
-
// "es-DO" : "dd/MM/yyyy",
|
|
538
|
-
// "ar-OM" : "dd/MM/yyyy",
|
|
539
|
-
// "en-JM" : "dd/MM/yyyy",
|
|
540
|
-
// "es-VE" : "dd/MM/yyyy",
|
|
541
|
-
// "ar-YE" : "dd/MM/yyyy",
|
|
542
|
-
// "en-029" : "MM/dd/yyyy",
|
|
543
|
-
// "es-CO" : "dd/MM/yyyy",
|
|
544
|
-
// "ar-SY" : "dd/MM/yyyy",
|
|
545
|
-
// "en-BZ" : "dd/MM/yyyy",
|
|
546
|
-
// "es-PE" : "dd/MM/yyyy",
|
|
547
|
-
// "ar-JO" : "dd/MM/yyyy",
|
|
548
|
-
// "en-TT" : "dd/MM/yyyy",
|
|
549
|
-
// "es-AR" : "dd/MM/yyyy",
|
|
550
|
-
// "ar-LB" : "dd/MM/yyyy",
|
|
551
|
-
// "en-ZW" : "M/d/yyyy",
|
|
552
|
-
// "es-EC" : "dd/MM/yyyy",
|
|
553
|
-
// "ar-KW" : "dd/MM/yyyy",
|
|
554
|
-
// "en-PH" : "M/d/yyyy",
|
|
555
|
-
// "es-CL" : "dd-MM-yyyy",
|
|
556
|
-
// "ar-AE" : "dd/MM/yyyy",
|
|
557
|
-
// "es-UY" : "dd/MM/yyyy",
|
|
558
|
-
// "ar-BH" : "dd/MM/yyyy",
|
|
559
|
-
// "es-PY" : "dd/MM/yyyy",
|
|
560
|
-
// "ar-QA" : "dd/MM/yyyy",
|
|
561
|
-
// "es-BO" : "dd/MM/yyyy",
|
|
562
|
-
// "es-SV" : "dd/MM/yyyy",
|
|
563
|
-
// "es-HN" : "dd/MM/yyyy",
|
|
564
|
-
// "es-NI" : "dd/MM/yyyy",
|
|
565
|
-
// "es-PR" : "dd/MM/yyyy",
|
|
566
|
-
// "am-ET" : "d/M/yyyy",
|
|
567
|
-
// "tzm-Latn-DZ" : "dd-MM-yyyy",
|
|
568
|
-
// "iu-Latn-CA" : "d/MM/yyyy",
|
|
569
|
-
// "sma-NO" : "dd.MM.yyyy",
|
|
570
|
-
// "mn-Mong-CN" : "yyyy/M/d",
|
|
571
|
-
// "gd-GB" : "dd/MM/yyyy",
|
|
572
|
-
// "en-MY" : "d/M/yyyy",
|
|
573
|
-
// "prs-AF" : "dd/MM/yy",
|
|
574
|
-
// "bn-BD" : "dd-MM-yy",
|
|
575
|
-
// "wo-SN" : "dd/MM/yyyy",
|
|
576
|
-
// "rw-RW" : "M/d/yyyy",
|
|
577
|
-
// "qut-GT" : "dd/MM/yyyy",
|
|
578
|
-
// "sah-RU" : "MM.dd.yyyy",
|
|
579
|
-
// "gsw-FR" : "dd/MM/yyyy",
|
|
580
|
-
// "co-FR" : "dd/MM/yyyy",
|
|
581
|
-
// "oc-FR" : "dd/MM/yyyy",
|
|
582
|
-
// "mi-NZ" : "dd/MM/yyyy",
|
|
583
|
-
// "ga-IE" : "dd/MM/yyyy",
|
|
584
|
-
// "se-SE" : "yyyy-MM-dd",
|
|
585
|
-
// "br-FR" : "dd/MM/yyyy",
|
|
586
|
-
// "smn-FI" : "d.M.yyyy",
|
|
587
|
-
// "moh-CA" : "M/d/yyyy",
|
|
588
|
-
// "arn-CL" : "dd-MM-yyyy",
|
|
589
|
-
// "ii-CN" : "yyyy/M/d",
|
|
590
|
-
// "dsb-DE" : "d. M. yyyy",
|
|
591
|
-
// "ig-NG" : "d/M/yyyy",
|
|
592
|
-
// "kl-GL" : "dd-MM-yyyy",
|
|
593
|
-
// "lb-LU" : "dd/MM/yyyy",
|
|
594
|
-
// "ba-RU" : "dd.MM.yy",
|
|
595
|
-
// "nso-ZA" : "yyyy/MM/dd",
|
|
596
|
-
// "quz-BO" : "dd/MM/yyyy",
|
|
597
|
-
// "yo-NG" : "d/M/yyyy",
|
|
598
|
-
// "ha-Latn-NG" : "d/M/yyyy",
|
|
599
|
-
// "fil-PH" : "M/d/yyyy",
|
|
600
|
-
// "ps-AF" : "dd/MM/yy",
|
|
601
|
-
// "fy-NL" : "d-M-yyyy",
|
|
602
|
-
// "ne-NP" : "M/d/yyyy",
|
|
603
|
-
// "se-NO" : "dd.MM.yyyy",
|
|
604
|
-
// "iu-Cans-CA" : "d/M/yyyy",
|
|
605
|
-
// "sr-Latn-RS" : "d.M.yyyy",
|
|
606
|
-
// "si-LK" : "yyyy-MM-dd",
|
|
607
|
-
// "sr-Cyrl-RS" : "d.M.yyyy",
|
|
608
|
-
// "lo-LA" : "dd/MM/yyyy",
|
|
609
|
-
// "km-KH" : "yyyy-MM-dd",
|
|
610
|
-
// "cy-GB" : "dd/MM/yyyy",
|
|
611
|
-
// "bo-CN" : "yyyy/M/d",
|
|
612
|
-
// "sms-FI" : "d.M.yyyy",
|
|
613
|
-
// "as-IN" : "dd-MM-yyyy",
|
|
614
|
-
// "ml-IN" : "dd-MM-yy",
|
|
615
|
-
// "en-IN" : "dd-MM-yyyy",
|
|
616
|
-
// "or-IN" : "dd-MM-yy",
|
|
617
|
-
// "bn-IN" : "dd-MM-yy",
|
|
618
|
-
// "tk-TM" : "dd.MM.yy",
|
|
619
|
-
// "bs-Latn-BA" : "d.M.yyyy",
|
|
620
|
-
// "mt-MT" : "dd/MM/yyyy",
|
|
621
|
-
// "sr-Cyrl-ME" : "d.M.yyyy",
|
|
622
|
-
// "se-FI" : "d.M.yyyy",
|
|
623
|
-
// "zu-ZA" : "yyyy/MM/dd",
|
|
624
|
-
// "xh-ZA" : "yyyy/MM/dd",
|
|
625
|
-
// "tn-ZA" : "yyyy/MM/dd",
|
|
626
|
-
// "hsb-DE" : "d. M. yyyy",
|
|
627
|
-
// "bs-Cyrl-BA" : "d.M.yyyy",
|
|
628
|
-
// "tg-Cyrl-TJ" : "dd.MM.yy",
|
|
629
|
-
// "sr-Latn-BA" : "d.M.yyyy",
|
|
630
|
-
// "smj-NO" : "dd.MM.yyyy",
|
|
631
|
-
// "rm-CH" : "dd/MM/yyyy",
|
|
632
|
-
// "smj-SE" : "yyyy-MM-dd",
|
|
633
|
-
// "quz-EC" : "dd/MM/yyyy",
|
|
634
|
-
// "quz-PE" : "dd/MM/yyyy",
|
|
635
|
-
// "hr-BA" : "d.M.yyyy.",
|
|
636
|
-
// "sr-Latn-ME" : "d.M.yyyy",
|
|
637
|
-
// "sma-SE" : "yyyy-MM-dd",
|
|
638
|
-
// "en-SG" : "d/M/yyyy",
|
|
639
|
-
// "ug-CN" : "yyyy-M-d",
|
|
640
|
-
// "sr-Cyrl-BA" : "d.M.yyyy",
|
|
641
|
-
// "es-US" : "M/d/yyyy"
|
|
642
|
-
// };
|
|
643
|
-
//
|
|
644
|
-
// Object.keys(formats).forEach(lang => {const period = getDayPeriods(lang); if (period.am === 'AM') return; console.log(lang, period )})
|
|
645
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvdGltZS1waWNrZXIvdGltZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBZ0NuQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFNBQWlCLFNBQVMsRUFBRSxFQUFFO0lBQy9ELElBQUksZUFBdUIsQ0FBQztJQUM1QixJQUFJO1FBQ0YsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztLQUM5RjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsZUFBZSxHQUFHLFNBQVMsQ0FBQztLQUM3QjtJQUNELE9BQU8sZUFBZSxDQUFDO0FBQ3pCLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLFNBQWlCLFNBQVMsRUFBVyxFQUFFO0lBQzlELE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxFQUFFLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQ25HLE9BQU8sTUFBTSxJQUFJLEtBQUssQ0FBQztBQUN6QixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxJQUFpQixFQUFFLElBQVksRUFBRSxFQUFFO0lBQ2pFLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFO1FBQ2hDLE9BQU8sQ0FBQyxDQUFBO0tBQ1Q7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SUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE9BQU8sVUFBVSxDQUFDO0tBQ25CO0lBRUQsTUFBTSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkQsTUFBTSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNqSCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQztJQUN2RyxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQztJQUV2RyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRTtRQUNoRCxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FB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O0FBQzFCLDZCQUE2QjtBQUM3Qiw2QkFBNkI7QUFDN0IsMEJBQTBCO0FBQzFCLCtCQUErQjtBQUMvQiwyQkFBMkI7QUFDM0IsMEJBQTBCO0FBQzFCLDBCQUEwQjtBQUMxQiwwQkFBMEI7QUFDMUIsNEJBQTRCO0FBQzVCLCtCQUErQjtBQUMvQiwrQkFBK0I7QUFDL0IsNEJBQTRCO0FBQzVCLCtCQUErQjtBQUMvQiw0QkFBNEI7QUFDNUIsNEJBQTRCO0FBQzVCLDRCQUE0QjtBQUM1QiwwQkFBMEI7QUFDMUIsMkJBQTJCO0FBQzNCLDRCQUE0QjtBQUM1QiwwQkFBMEI7QUFDMUIsNEJBQTRCO0FBQzVCLDBCQUEwQjtBQUMxQiwwQkFBMEI7QUFDMUIsMEJBQTBCO0FBQzFCLCtCQUErQjtBQUMvQiw0QkFBNEI7QUFDNUIsK0JBQStCO0FBQy9CLDBCQUEwQjtBQUMxQiw0QkFBNEI7QUFDNUIsNEJBQTRCO0FBQzVCLDRCQUE0QjtBQUM1Qiw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLCtCQUErQjtBQUMvQiwrQkFBK0I7QUFDL0IsNkJBQTZCO0FBQzdCLDRCQUE0QjtBQUM1Qiw2QkFBNkI7QUFDN0IsNkJBQTZCO0FBQzdCLDZCQUE2QjtBQUM3QiwyQkFBMkI7QUFDM0IsK0JBQStCO0FBQy9CLDZCQUE2QjtBQUM3QiwwQkFBMEI7QUFDMUIsMEJBQTBCO0FBQzFCLCtCQUErQjtBQUMvQix5QkFBeUI7QUFDekIsS0FBSztBQUNMLEVBQUU7QUFDRix5SUFBeUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1ZhbGlkIH0gZnJvbSAnZGF0ZS1mbnMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEYXRlVGltZUZvcm1hdE9wdGlvbnMge1xyXG4gIGxvY2FsZU1hdGNoZXI/OiBcImJlc3QgZml0XCIgfCBcImxvb2t1cFwiIHwgdW5kZWZpbmVkO1xyXG4gIHdlZWtkYXk/OiBcImxvbmdcIiB8IFwic2hvcnRcIiB8IFwibmFycm93XCIgfCB1bmRlZmluZWQ7XHJcbiAgZXJhPzogXCJsb25nXCIgfCBcInNob3J0XCIgfCBcIm5hcnJvd1wiIHwgdW5kZWZpbmVkO1xyXG4gIHllYXI/OiBcIm51bWVyaWNcIiB8IFwiMi1kaWdpdFwiIHwgdW5kZWZpbmVkO1xyXG4gIG1vbnRoPzogXCJudW1lcmljXCIgfCBcIjItZGlnaXRcIiB8IFwibG9uZ1wiIHwgXCJzaG9ydFwiIHwgXCJuYXJyb3dcIiB8IHVuZGVmaW5lZDtcclxuICBkYXk/OiBcIm51bWVyaWNcIiB8IFwiMi1kaWdpdFwiIHwgdW5kZWZpbmVkO1xyXG4gIGhvdXI/OiBcIm51bWVyaWNcIiB8IFwiMi1kaWdpdFwiIHwgdW5kZWZpbmVkO1xyXG4gIG1pbnV0ZT86IFwibnVtZXJpY1wiIHwgXCIyLWRpZ2l0XCIgfCB1bmRlZmluZWQ7XHJcbiAgc2Vjb25kPzogXCJudW1lcmljXCIgfCBcIjItZGlnaXRcIiB8IHVuZGVmaW5lZDtcclxuICB0aW1lWm9uZU5hbWU/OiBcImxvbmdcIiB8IFwic2hvcnRcIiB8IHVuZGVmaW5lZDtcclxuICBmb3JtYXRNYXRjaGVyPzogXCJiZXN0IGZpdFwiIHwgXCJiYXNpY1wiIHwgdW5kZWZpbmVkO1xyXG4gIGhvdXIxMj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgdGltZVpvbmU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIERheVBlcmlvZCA9ICgnYW0nIHwgJ3BtJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElUaW1lVmFsdWUge1xyXG4gIHZhbHVlOiBudW1iZXI7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBkYXlQZXJpb2Q/OiBEYXlQZXJpb2Q7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElEYXlQZXJpb2RzIHtcclxuICBhbTogc3RyaW5nO1xyXG4gIHBtOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBnZXRTdXBwb3J0ZWRMb2NhbGUgPSAobG9jYWxlOiBzdHJpbmcgPSAnZGVmYXVsdCcpID0+IHtcclxuICBsZXQgc3VwcG9ydGVkTG9jYWxlOiBzdHJpbmc7XHJcbiAgdHJ5IHtcclxuICAgIHN1cHBvcnRlZExvY2FsZSA9IEludGwuRGF0ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mKGxvY2FsZSkubGVuZ3RoID8gbG9jYWxlIDogJ2RlZmF1bHQnO1xyXG4gIH0gY2F0Y2ggKGUpIHtcclxuICAgIHN1cHBvcnRlZExvY2FsZSA9ICdkZWZhdWx0JztcclxuICB9XHJcbiAgcmV0dXJuIHN1cHBvcnRlZExvY2FsZTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGlzSG91cjEyID0gKGxvY2FsZTogc3RyaW5nID0gJ2RlZmF1bHQnKTogYm9vbGVhbiA9PiB7XHJcbiAgY29uc3Qgc3VwcG9ydGVkTG9jYWxlID0gZ2V0U3VwcG9ydGVkTG9jYWxlKGxvY2FsZSk7XHJcbiAgY29uc3QgaG91cjEyID0gSW50bC5EYXRlVGltZUZvcm1hdChzdXBwb3J0ZWRMb2NhbGUsIHt0aW1lU3R5bGU6ICdzaG9ydCd9KS5yZXNvbHZlZE9wdGlvbnMoKS5ob3VyMTI7XHJcbiAgcmV0dXJuIGhvdXIxMiA/PyBmYWxzZTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGNvbnZlcnQxMmhUbzI0aCA9IChhYmJyOiAnYW0nIHwgJ3BtJywgaG91cjogbnVtYmVyKSA9PiB7XHJcbiAgaWYgKGFiYnIgPT09ICdhbScgJiYgaG91ciA9PT0gMTIpIHtcclxuICAgIHJldHVybiAwXHJcbiAgfVxyXG4gIGlmIChhYmJyID09PSAnYW0nKSB7XHJcbiAgICByZXR1cm4gaG91clxyXG4gIH1cclxuICBpZiAoYWJiciA9PT0gJ3BtJyAmJiBob3VyID09PSAxMikge1xyXG4gICAgcmV0dXJuIDEyXHJcbiAgfVxyXG4gIHJldHVybiBob3VyICsgMTJcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGNvbnZlcnQyNGhUbzEyaCA9IChob3VyOiBudW1iZXIpID0+IGhvdXIgJSAxMiB8fCAxMlxyXG5cclxuZXhwb3J0IGNvbnN0IGNvbnZlcnRUaW1lVG9EYXRlID0gKHRpbWU6IERhdGUgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKSA9PlxyXG4gIHRpbWUgPyAodGltZSBpbnN0YW5jZW9mIERhdGUgPyBuZXcgRGF0ZSh0aW1lKSA6IG5ldyBEYXRlKGAxOTcwLTAxLTAxICR7dGltZX1gKSkgOiBudWxsXHJcblxyXG4vLyBleHBvcnQgY29uc3QgZ2V0QW1QbSA9IChkYXRlOiBEYXRlLCBsb2NhbGU6IHN0cmluZykgPT4ge1xyXG4vLyAgIGlmIChkYXRlLnRvTG9jYWxlVGltZVN0cmluZyhsb2NhbGUpLmluY2x1ZGVzKCdBTScpKSB7XHJcbi8vICAgICByZXR1cm4gJ2FtJ1xyXG4vLyAgIH1cclxuLy8gICBpZiAoZGF0ZS50b0xvY2FsZVRpbWVTdHJpbmcobG9jYWxlKS5pbmNsdWRlcygnUE0nKSkge1xyXG4vLyAgICAgcmV0dXJuICdwbSdcclxuLy8gICB9XHJcbi8vICAgcmV0dXJuIGRhdGUuZ2V0SG91cnMoKSA+PSAxMiA/ICdwbScgOiAnYW0nXHJcbi8vIH1cclxuXHJcbmV4cG9ydCBjb25zdCBnZXRBbVBtID0gKGRhdGU6IERhdGUsIGxvY2FsZTogc3RyaW5nLCBvcHRpb25zOiBEYXRlVGltZUZvcm1hdE9wdGlvbnMgPSB7fSk6IERheVBlcmlvZCA9PiB7XHJcblxyXG4gIGNvbnN0IGRheVBlcmlvZHMgPSBnZXREYXlQZXJpb2RzKCdlbi1VUycsIG9wdGlvbnMpO1xyXG4gIGNvbnN0IHRpbWUgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgnZW4tVVMnLCB7dGltZVN0eWxlOiBcInNob3J0XCIsIGhvdXIxMjogdHJ1ZX0pLmZvcm1hdChkYXRlKTtcclxuXHJcbiAgY29uc3QgZGF5UGVyaW9kID0gZGF5UGVyaW9kcy5maW5kKGVsZW1lbnQgPT4gdGltZS5pbmNsdWRlcyhlbGVtZW50LmxhYmVsKSk7XHJcblxyXG4gIHJldHVybiA8RGF5UGVyaW9kPihkYXlQZXJpb2Q/LnZhbHVlID8/IChkYXRlLmdldEhvdXJzKCkgPj0gMTIgPyAncG0nIDogJ2FtJykpO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgaXNBbSA9IChkYXRlOiBEYXRlKSA9PiB7XHJcbiAgcmV0dXJuIGRhdGUuZ2V0SG91cnMoKSA8IDEyO1xyXG59XHJcbmV4cG9ydCBjb25zdCBpc1BtID0gKGRhdGU6IERhdGUpID0+IHtcclxuICByZXR1cm4gZGF0ZS5nZXRIb3VycygpID4gMTE7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBpc1ZhbGlkVGltZVpvbmUgPSAodGltZVpvbmU6IHVua25vd24pOiBib29sZWFuID0+IHtcclxuICB0cnkge1xyXG4gICAgaWYgKHRpbWVab25lID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghSW50bCB8fCAhSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGltZSB6b25lcyBub3Qgc3VwcG9ydGVkLicpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlb2YgdGltZVpvbmUgIT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0aW1lWm9uZSB0eXBlIHNwZWNpZmllZDogJHt0aW1lWm9uZX1gKTtcclxuICAgIH1cclxuXHJcbiAgICB0cnkge1xyXG4gICAgICAvLyB0aHJvd3MgYW4gZXJyb3IgaWYgdGltZXpvbmUgaXMgbm90IHZhbGlkXHJcbiAgICAgIEludGwuRGF0ZVRpbWVGb3JtYXQodW5kZWZpbmVkLCB7IHRpbWVab25lOiB0aW1lWm9uZSB9KTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0aW1lWm9uZSBzdHJpbmcgc3BlY2lmaWVkOiAke3RpbWVab25lfWApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICBjb25zb2xlLndhcm4oZXJyb3IpO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRMaXN0T2ZIb3VycyA9IChsb2NhbGU6IHN0cmluZywgb3B0aW9uczogRGF0ZVRpbWVGb3JtYXRPcHRpb25zID0ge30pID0+IHtcclxuICBjb25zdCBob3VyMTIgPSBpc0hvdXIxMihsb2NhbGUpO1xyXG4gIGNvbnN0IHRpbWUgPSBuZXcgRGF0ZSgwKTtcclxuICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogMjQgfSwgKF8sIGkpID0+IHtcclxuICAgIHRpbWUuc2V0SG91cnMoaSk7XHJcbiAgICBjb25zdCBkYXlQZXJpb2QgPSBnZXRBbVBtKHRpbWUsIGxvY2FsZSk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB2YWx1ZTogaSxcclxuICAgICAgZGF5UGVyaW9kOiA8RGF5UGVyaW9kPmRheVBlcmlvZCxcclxuICAgICAgbGFiZWw6IHRpbWUudG9Mb2NhbGVUaW1lU3RyaW5nKGxvY2FsZSwge1xyXG4gICAgICAgIGhvdXI6ICcyLWRpZ2l0JyxcclxuICAgICAgICBob3VyMTI6IGhvdXIxMixcclxuICAgICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcclxuICAgICAgICBzZWNvbmQ6ICcyLWRpZ2l0JyxcclxuICAgICAgfSkuc3BsaXQoJzonKVswXSxcclxuICAgIH1cclxuICB9KVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0TGlzdE9mTWludXRlcyA9IChsb2NhbGU6IHN0cmluZywgb3B0aW9uczogRGF0ZVRpbWVGb3JtYXRPcHRpb25zID0ge30sIHZhbHVlQXNTdHJpbmcgPSBmYWxzZSkgPT4ge1xyXG4gIGNvbnN0IGQgPSBuZXcgRGF0ZSgwKTtcclxuICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogNjAgfSwgKF8sIGkpID0+IHtcclxuICAgIGQuc2V0TWludXRlcyhpKVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdmFsdWU6IGksXHJcbiAgICAgIC8vIHZhbHVlOiB2YWx1ZUFzU3RyaW5nID8gaS50b1N0cmluZygpIDogaSxcclxuICAgICAgbGFiZWw6IGQudG9Mb2NhbGVUaW1lU3RyaW5nKGxvY2FsZSwge1xyXG4gICAgICAgIC8vIC4uLm9wdGlvbnMsXHJcbiAgICAgICAgaG91cjogJzItZGlnaXQnLFxyXG4gICAgICAgIGhvdXIxMjogZmFsc2UsXHJcbiAgICAgICAgbWludXRlOiAnMi1kaWdpdCcsXHJcbiAgICAgICAgc2Vjb25kOiAnMi1kaWdpdCcsXHJcbiAgICAgIH0pLnNwbGl0KCc6JylbMV0sXHJcbiAgICB9XHJcbiAgfSlcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGdldExpc3RPZlNlY29uZHMgPSAobG9jYWxlOiBzdHJpbmcsIG9wdGlvbnM6IERhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHt9LCAgdmFsdWVBc1N0cmluZyA9IGZhbHNlKSA9PlxyXG4gIEFycmF5LmZyb20oeyBsZW5ndGg6IDYwIH0sIChfLCBpKSA9PiB7XHJcbiAgICBjb25zdCBkID0gbmV3IERhdGUoMClcclxuICAgIGQuc2V0U2Vjb25kcyhpKVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdmFsdWU6IGksXHJcbiAgICAgIC8vIHZhbHVlOiB2YWx1ZUFzU3RyaW5nID8gaS50b1N0cmluZygpIDogaSxcclxuICAgICAgbGFiZWw6IGQudG9Mb2NhbGVUaW1lU3RyaW5nKGxvY2FsZSwge1xyXG4gICAgICAgIC8vIC4uLm9wdGlvbnMsXHJcbiAgICAgICAgaG91cjogJzItZGlnaXQnLFxyXG4gICAgICAgIGhvdXIxMjogZmFsc2UsXHJcbiAgICAgICAgbWludXRlOiAnMi1kaWdpdCcsXHJcbiAgICAgICAgc2Vjb25kOiAnMi1kaWdpdCcsXHJcbiAgICAgIH0pLnNwbGl0KCc6JylbMl0sXHJcbiAgICB9XHJcbiAgfSlcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRTZWxlY3RlZEhvdXIgPSAoZGF0ZTogRGF0ZSB8IG51bGwsIGxvY2FsZTogc3RyaW5nKSA9PlxyXG4gIGRhdGUgaW5zdGFuY2VvZiBEYXRlID8gKGlzSG91cjEyKGxvY2FsZSkgPyBjb252ZXJ0MjRoVG8xMmgoZGF0ZS5nZXRIb3VycygpKSA6IGRhdGUuZ2V0SG91cnMoKSkgOiAnJztcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRTZWxlY3RlZE1pbnV0ZXMgPSAoZGF0ZTogRGF0ZSB8IG51bGwpID0+IChkYXRlID8gZGF0ZS5nZXRNaW51dGVzKCkgOiAnJylcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRTZWxlY3RlZFNlY29uZHMgPSAoZGF0ZTogRGF0ZSB8IG51bGwpID0+IChkYXRlID8gZGF0ZS5nZXRTZWNvbmRzKCkgOiAnJylcclxuXHJcbi8vIGV4cG9ydCBjb25zdCBpc0FtUG0gPSAobG9jYWxlOiBzdHJpbmcpID0+XHJcbi8vICAgWydhbScsICdBTScsICdwbScsICdQTSddLnNvbWUoKGVsKSA9PiBuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKGxvY2FsZSkuaW5jbHVkZXMoZWwpKVxyXG5cclxuZXhwb3J0IGNvbnN0IGlzQW1QbSA9IChsb2NhbGU6IHN0cmluZyA9ICdkZWZhdWx0JykgPT4ge1xyXG4gIGNvbnN0IHN1cHBvcnRlZExvY2FsZSA9IGdldFN1cHBvcnRlZExvY2FsZShsb2NhbGUpO1xyXG4gIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIGNvbnN0IHRpbWUgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChzdXBwb3J0ZWRMb2NhbGUsIHt0aW1lU3R5bGU6IFwic2hvcnRcIn0pLmZvcm1hdChkYXRlKTtcclxuICBjb25zdCBpc0FtUG0gPSB0aW1lLm1hdGNoKC8oPzpcXHB7TH1cXHB7TX1cXHB7UH0qKSt8KD86XFxwe0x9XFxwe1B9KikrL2d1KSA/PyBbXTtcclxuICByZXR1cm4gaXNBbVBtLmxlbmd0aCA+IDA7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBpc1ZhbGlkVGltZSA9ICh0aW1lOiBzdHJpbmcgfCBEYXRlIHwgbnVtYmVyIHwgYW55KSA9PiB7XHJcbiAgaWYgKHR5cGVvZiB0aW1lID09PSAnc3RyaW5nJykge1xyXG4gICAgcmV0dXJuIGlzVmFsaWQodGltZSkgfHwgaXNWYWxpZChuZXcgRGF0ZShgMTk3MC0wMS0wMSAke3RpbWV9YCkpO1xyXG4gIH1cclxuICByZXR1cm4gaXNWYWxpZCh0aW1lKTtcclxuICAvLyBjb25zdCBkID0gbmV3IERhdGUoYDE5NzAtMDEtMDEgJHt0aW1lfWApXHJcbiAgLy8gcmV0dXJuIGQgaW5zdGFuY2VvZiBEYXRlICYmIGQuZ2V0VGltZSgpXHJcbn1cclxuXHJcbi8vIGV4cG9ydCBjb25zdCBfZ2V0RGF5UGVyaW9kcyA9IChsb2NhbGU6IHN0cmluZyA9ICdkZWZhdWx0Jywgb3B0aW9uczogRGF0ZVRpbWVGb3JtYXRPcHRpb25zID0ge30pID0+IHtcclxuLy8gICBjb25zdCBzdXBwb3J0ZWRMb2NhbGUgPSBnZXRTdXBwb3J0ZWRMb2NhbGUobG9jYWxlKTtcclxuLy9cclxuLy8gICBjb25zdCBkYXlQZXJpb2RzID0geyBhbTogJ2FtJywgcG06ICdwbScgfTtcclxuLy9cclxuLy8gICBjb25zdCBob3VyMTIgPSBpc0hvdXIxMihzdXBwb3J0ZWRMb2NhbGUpO1xyXG4vLyAgIGlmICghaG91cjEyKSB7XHJcbi8vICAgICByZXR1cm4gZGF5UGVyaW9kcztcclxuLy8gICB9XHJcbi8vXHJcbi8vICAgY29uc3QgYW0gPSBuZXcgRGF0ZShEYXRlLlVUQygxOTcwLCAwLCAxLCAwLCAwLCAwKSk7XHJcbi8vICAgY29uc3QgcG0gPSBuZXcgRGF0ZShEYXRlLlVUQygxOTcwLCAwLCAxLCAxMywgMCwgMCkpO1xyXG4vL1xyXG4vLyAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHN1cHBvcnRlZExvY2FsZSwgeyBob3VyMTI6IGhvdXIxMiwgaG91cjogJ251bWVyaWMnLCB0aW1lWm9uZTogJ1VUQycgfSk7XHJcbi8vICAgZGF5UGVyaW9kcy5hbSA9IGZvcm1hdHRlci5mb3JtYXRUb1BhcnRzKGFtKS5maW5kKHBhcnQgPT4gcGFydC50eXBlID09PSAnZGF5UGVyaW9kJyk/LnZhbHVlID8/ICdhbSc7XHJcbi8vICAgZGF5UGVyaW9kcy5wbSA9IGZvcm1hdHRlci5mb3JtYXRUb1BhcnRzKHBtKS5maW5kKHBhcnQgPT4gcGFydC50eXBlID09PSAnZGF5UGVyaW9kJyk/LnZhbHVlID8/ICdwbSdcclxuLy8gICByZXR1cm4gZGF5UGVyaW9kcztcclxuLy8gfTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXREYXlQZXJpb2RzID0gKGxvY2FsZTogc3RyaW5nID0gJ2RlZmF1bHQnLCBvcHRpb25zOiBEYXRlVGltZUZvcm1hdE9wdGlvbnMgPSB7fSkgPT4ge1xyXG4gIGNvbnN0IHN1cHBvcnRlZExvY2FsZSA9IGdldFN1cHBvcnRlZExvY2FsZShsb2NhbGUpO1xyXG5cclxuICBjb25zdCBkYXlQZXJpb2RzID0gW1xyXG4gICAgeyB2YWx1ZTogJ2FtJywgbGFiZWw6ICdhbScgfSxcclxuICAgIHsgdmFsdWU6ICdwbScsIGxhYmVsOiAncG0nIH0sXHJcbiAgXTtcclxuXHJcbiAgY29uc3QgaG91cjEyID0gaXNIb3VyMTIoc3VwcG9ydGVkTG9jYWxlKTtcclxuICBpZiAoIWhvdXIxMikge1xyXG4gICAgcmV0dXJuIGRheVBlcmlvZHM7XHJcbiAgfVxyXG5cclxuICBjb25zdCBhbSA9IG5ldyBEYXRlKERhdGUuVVRDKDE5NzAsIDAsIDEsIDAsIDAsIDApKTtcclxuICBjb25zdCBwbSA9IG5ldyBEYXRlKERhdGUuVVRDKDE5NzAsIDAsIDEsIDEzLCAwLCAwKSk7XHJcbiAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoc3VwcG9ydGVkTG9jYWxlLCB7IGhvdXIxMjogaG91cjEyLCBob3VyOiAnbnVtZXJpYycsIHRpbWVab25lOiAnVVRDJyB9KTtcclxuICBjb25zdCBmb3JtYXR0ZWRBbSA9IGZvcm1hdHRlci5mb3JtYXRUb1BhcnRzKGFtKS5maW5kKHBhcnQgPT4gcGFydC50eXBlID09PSAnZGF5UGVyaW9kJyk/LnZhbHVlID8/ICdhbSc7XHJcbiAgY29uc3QgZm9ybWF0dGVkUG0gPSBmb3JtYXR0ZXIuZm9ybWF0VG9QYXJ0cyhwbSkuZmluZChwYXJ0ID0+IHBhcnQudHlwZSA9PT0gJ2RheVBlcmlvZCcpPy52YWx1ZSA/PyAncG0nO1xyXG5cclxuICBkYXlQZXJpb2RzLmZvckVhY2goKGVsZW1lbnQsIGluZGV4LCBkYXlQZXJpb2RzKSA9PiB7XHJcbiAgICBkYXlQZXJpb2RzW2luZGV4XS5sYWJlbCA9IGVsZW1lbnQudmFsdWUgPT09ICdhbScgPyAoZm9ybWF0dGVkQW0gPz8gJ2FtJykgOiAoZm9ybWF0dGVkUG0gPz8gJ3BtJyk7XHJcbiAgfSlcclxuXHJcbiAgcmV0dXJuIGRheVBlcmlvZHM7XHJcbn07XHJcblxyXG5cclxuXHJcbi8vIHRlc3RpbmdcclxuLy8gY29uc3QgbGFuZ3MgPSBbXHJcbi8vICAgWydBYmtoYXppYW4nLCAnYWInXSxcclxuLy8gICBbJ0FmYXInLCAnYWEnXSxcclxuLy8gICBbJ0FmcmlrYWFucycsICdhZiddLFxyXG4vLyAgIFsnQWthbicsICdhayddLFxyXG4vLyAgIFsnQWxiYW5pYW4nLCAnc3EnXSxcclxuLy8gICBbJ0FtaGFyaWMnLCAnYW0nXSxcclxuLy8gICBbJ0FyYWJpYycsICdhciddLFxyXG4vLyAgIFsnQXJhZ29uZXNlJywgJ2FuJ10sXHJcbi8vICAgWydBcmdlbnRpbmEnLCAnZXMtYXInXSxcclxuLy8gICBbJ0FybWVuaWFuJywgJ2h5J10sXHJcbi8vICAgWydBc3NhbWVzZScsICdhcyddLFxyXG4vLyAgIFsnQXZhcmljJywgJ2F2J10sXHJcbi8vICAgWydBdmVzdGFuJywgJ2FlJ10sXHJcbi8vICAgWydBeW1hcmEnLCAnYXknXSxcclxuLy8gICBbJ0F6ZXJiYWlqYW5pJywgJ2F6J10sXHJcbi8vICAgWydCYW1iYXJhJywgJ2JtJ10sXHJcbi8vICAgWydCYXNoa2lyJywgJ2JhJ10sXHJcbi8vICAgWydCYXNxdWUnLCAnZXUnXSxcclxuLy8gICBbJ0JlbGFydXNpYW4nLCAnYmUnXSxcclxuLy8gICBbJ0JlbmdhbGkgKEJhbmdsYSknLCAnYm4nXSxcclxuLy8gICBbJ0JpaGFyaScsICdiaCddLFxyXG4vLyAgIFsnQmlzbGFtYScsICdiaSddLFxyXG4vLyAgIFsnQm9zbmlhbicsICdicyddLFxyXG4vLyAgIFsnQnJldG9uJywgJ2JyJ10sXHJcbi8vICAgWydCdWxnYXJpYW4nLCAnYmcnXSxcclxuLy8gICBbJ0J1cm1lc2UnLCAnbXknXSxcclxuLy8gICBbJ0NhdGFsYW4nLCAnY2EnXSxcclxuLy8gICBbJ0NoYW1vcnJvJywgJ2NoJ10sXHJcbi8vICAgWydDaGVjaGVuJywgJ2NlJ10sXHJcbi8vICAgWydDaGljaGV3YSwgQ2hld2EsIE55YW5qYScsICdueSddLFxyXG4vLyAgIFsnQ2hpbmVzZScsICd6aCddLFxyXG4vLyAgIFsnQ2hpbmVzZSAoU2ltcGxpZmllZCknLCAnemgtSGFucyddLFxyXG4vLyAgIFsnQ2hpbmVzZSAoVHJhZGl0aW9uYWwpJywgJ3poLUhhbnQnXSxcclxuLy8gICBbJ0NodXZhc2gnLCAnY3YnXSxcclxuLy8gICBbJ0Nvcm5pc2gnLCAna3cnXSxcclxuLy8gICBbJ0NvcnNpY2FuJywgJ2NvJ10sXHJcbi8vICAgWydDcmVlJywgJ2NyJ10sXHJcbi8vICAgWydDcm9hdGlhbicsICdociddLFxyXG4vLyAgIFsnQ3plY2gnLCAnY3MnXSxcclxuLy8gICBbJ0RhbmlzaCcsICdkYSddLFxyXG4vLyAgIFsnRGl2ZWhpLCBEaGl2ZWhpLCBNYWxkaXZpYW4nLCAnZHYnXSxcclxuLy8gICBbJ0R1dGNoJywgJ25sJ10sXHJcbi8vICAgWydEem9uZ2toYScsICdkeiddLFxyXG4vLyAgIFsnRW5nbGlzaCcsICdlbiddLFxyXG4vLyAgIFsnRXNwZXJhbnRvJywgJ2VvJ10sXHJcbi8vICAgWydFc3RvbmlhbicsICdldCddLFxyXG4vLyAgIFsnRXdlJywgJ2VlJ10sXHJcbi8vICAgWydGYXJvZXNlJywgJ2ZvJ10sXHJcbi8vICAgWydGaWppYW4nLCAnZmonXSxcclxuLy8gICBbJ0Zpbm5pc2gnLCAnZmknXSxcclxuLy8gICBbJ0ZyZW5jaCcsICdmciddLFxyXG4vLyAgIFsnRnVsYSwgRnVsYWgsIFB1bGFhciwgUHVsYXInLCAnZmYnXSxcclxuLy8gICBbJ0dhbGljaWFuJywgJ2dsJ10sXHJcbi8vICAgWydHYWVsaWMgKFNjb3R0aXNoKScsICdnZCddLFxyXG4vLyAgIFsnR2FlbGljIChNYW54KScsICdndiddLFxyXG4vLyAgIFsnR2VvcmdpYW4nLCAna2EnXSxcclxuLy8gICBbJ0dlcm1hbicsICdkZSddLFxyXG4vLyAgIFsnR3JlZWsnLCAnZWwnXSxcclxuLy8gICBbJ0dyZWVubGFuZGljJywgJ2tsJ10sXHJcbi8vICAgWydHdWFyYW5pJywgJ2duJ10sXHJcbi8vICAgWydHdWphcmF0aScsICdndSddLFxyXG4vLyAgIFsnSGFpdGlhbiBDcmVvbGUnLCAnaHQnXSxcclxuLy8gICBbJ0hhdXNhJywgJ2hhJ10sXHJcbi8vICAgWydIZWJyZXcnLCAnaGUnXSxcclxuLy8gICBbJ0hlcmVybycsICdoeiddLFxyXG4vLyAgIFsnSGluZGknLCAnaGknXSxcclxuLy8gICBbJ0hpcmkgTW90dScsICdobyddLFxyXG4vLyAgIFsnSHVuZ2FyaWFuJywgJ2h1J10sXHJcbi8vICAgWydJY2VsYW5kaWMnLCAnaXMnXSxcclxuLy8gICBbJ0lkbycsICdpbyddLFxyXG4vLyAgIFsnSWdibycsICdpZyddLFxyXG4vLyAgIFsnSW5kb25lc2lhbicsICdpZCcsICdpbiddLFxyXG4vLyAgIFsnSW50ZXJsaW5ndWEnLCAnaWEnXSxcclxuLy8gICBbJ0ludGVybGluZ3VlJywgJ2llJ10sXHJcbi8vICAgWydJbnVrdGl0dXQnLCAnaXUnXSxcclxuLy8gICBbJ0ludXBpYWsnLCAnaWsnXSxcclxuLy8gICBbJ0lyaXNoJywgJ2dhJ10sXHJcbi8vICAgWydJdGFsaWFuJywgJ2l0J10sXHJcbi8vICAgWydKYXBhbmVzZScsICdqYSddLFxyXG4vLyAgIFsnSmF2YW5lc2UnLCAnanYnXSxcclxuLy8gICBbJ0thbGFhbGxpc3V0LCBHcmVlbmxhbmRpYycsICdrbCddLFxyXG4vLyAgIFsnS2FubmFkYScsICdrbiddLFxyXG4vLyAgIFsnS2FudXJpJywgJ2tyJ10sXHJcbi8vICAgWydLYXNobWlyaScsICdrcyddLFxyXG4vLyAgIFsnS2F6YWtoJywgJ2trJ10sXHJcbi8vICAgWydLaG1lcicsICdrbSddLFxyXG4vLyAgIFsnS2lrdXl1JywgJ2tpJ10sXHJcbi8vICAgWydLaW55YXJ3YW5kYSAoUndhbmRhKScsICdydyddLFxyXG4vLyAgIFsnS2lydW5kaScsICdybiddLFxyXG4vLyAgIFsnS3lyZ3l6JywgJ2t5J10sXHJcbi8vICAgWydLb21pJywgJ2t2J10sXHJcbi8vICAgWydLb25nbycsICdrZyddLFxyXG4vLyAgIFsnS29yZWFuJywgJ2tvJ10sXHJcbi8vICAgWydLdXJkaXNoJywgJ2t1J10sXHJcbi8vICAgWydLd2FueWFtYScsICdraiddLFxyXG4vLyAgIFsnTGFvJywgJ2xvJ10sXHJcbi8vICAgWydMYXRpbicsICdsYSddLFxyXG4vLyAgIFsnTGF0dmlhbiAoTGV0dGlzaCknLCAnbHYnXSxcclxuLy8gICBbJ0xpbWJ1cmdpc2ggKExpbWJ1cmdlciknLCAnbGknXSxcclxuLy8gICBbJ0xpbmdhbGEnLCAnbG4nXSxcclxuLy8gICBbJ0xpdGh1YW5pYW4nLCAnbHQnXSxcclxuLy8gICBbJ0x1Z2EtS2F0YW5nYScsICdsdSddLFxyXG4vLyAgIFsnTHVnYW5kYSwgR2FuZGEnLCAnbGcnXSxcclxuLy8gICBbJ0x1eGVtYm91cmdpc2gnLCAnbGInXSxcclxuLy8gICBbJ01hbngnLCAnZ3YnXSxcclxuLy8gICBbJ01hY2Vkb25pYW4nLCAnbWsnXSxcclxuLy8gICBbJ01hbGFnYXN5JywgJ21nJ10sXHJcbi8vICAgWydNYWxheScsICdtcyddLFxyXG4vLyAgIFsnTWFsYXlhbGFtJywgJ21sJ10sXHJcbi8vICAgWydNYWx0ZXNlJywgJ210J10sXHJcbi8vICAgWydNYW9yaScsICdtaSddLFxyXG4vLyAgIFsnTWFyYXRoaScsICdtciddLFxyXG4vLyAgIFsnTWFyc2hhbGxlc2UnLCAnbWgnXSxcclxuLy8gICBbJ01vbGRhdmlhbicsICdtbyddLFxyXG4vLyAgIFsnTW9uZ29saWFuJywgJ21uJ10sXHJcbi8vICAgWydOYXVydScsICduYSddLFxyXG4vLyAgIFsnTmF2YWpvJywgJ252J10sXHJcbi8vICAgWydOZG9uZ2EnLCAnbmcnXSxcclxuLy8gICBbJ05vcnRoZXJuIE5kZWJlbGUnLCAnbmQnXSxcclxuLy8gICBbJ05lcGFsaScsICduZSddLFxyXG4vLyAgIFsnTm9yd2VnaWFuJywgJ25vJ10sXHJcbi8vICAgWydOb3J3ZWdpYW4gYm9rbcOlbCcsICduYiddLFxyXG4vLyAgIFsnTm9yd2VnaWFuIG55bm9yc2snLCAnbm4nXSxcclxuLy8gICBbJ051b3N1JywgJ2lpJ10sXHJcbi8vICAgWydPY2NpdGFuJywgJ29jJ10sXHJcbi8vICAgWydPamlid2UnLCAnb2onXSxcclxuLy8gICBbJ09sZCBDaHVyY2ggU2xhdm9uaWMsIE9sZCBCdWxnYXJpYW4nLCAnY3UnXSxcclxuLy8gICBbJ09yaXlhJywgJ29yJ10sXHJcbi8vICAgWydPcm9tbyAoQWZhYW4gT3JvbW8pJywgJ29tJ10sXHJcbi8vICAgWydPc3NldGlhbicsICdvcyddLFxyXG4vLyAgIFsnUMSBbGknLCAncGknXSxcclxuLy8gICBbJ1Bhc2h0bywgUHVzaHRvJywgJ3BzJ10sXHJcbi8vICAgWydQZXJzaWFuIChGYXJzaSknLCAnZmEnXSxcclxuLy8gICBbJ1BvbGlzaCcsICdwbCddLFxyXG4vLyAgIFsnUG9ydHVndWVzZScsICdwdCddLFxyXG4vLyAgIFsnUHVuamFiaSAoRWFzdGVybiknLCAncGEnXSxcclxuLy8gICBbJ1F1ZWNodWEnLCAncXUnXSxcclxuLy8gICBbJ1JvbWFuc2gnLCAncm0nXSxcclxuLy8gICBbJ1JvbWFuaWFuJywgJ3JvJ10sXHJcbi8vICAgWydSdXNzaWFuJywgJ3J1J10sXHJcbi8vICAgWydTYW1pJywgJ3NlJ10sXHJcbi8vICAgWydTYW1vYW4nLCAnc20nXSxcclxuLy8gICBbJ1NhbmdvJywgJ3NnJ10sXHJcbi8vICAgWydTYW5za3JpdCcsICdzYSddLFxyXG4vLyAgIFsnU2VyYmlhbicsICdzciddLFxyXG4vLyAgIFsnU2VyYm8tQ3JvYXRpYW4nLCAnc2gnXSxcclxuLy8gICBbJ1Nlc290aG8nLCAnc3QnXSxcclxuLy8gICBbJ1NldHN3YW5hJywgJ3RuJ10sXHJcbi8vICAgWydTaG9uYScsICdzbiddLFxyXG4vLyAgIFsnU2ljaHVhbiBZaScsICdpaSddLFxyXG4vLyAgIFsnU2luZGhpJywgJ3NkJ10sXHJcbi8vICAgWydTaW5oYWxlc2UnLCAnc2knXSxcclxuLy8gICBbJ1Npc3dhdGknLCAnc3MnXSxcclxuLy8gICBbJ1Nsb3ZhaycsICdzayddLFxyXG4vLyAgIFsnU2xvdmVuaWFuJywgJ3NsJ10sXHJcbi8vICAgWydTb21hbGknLCAnc28nXSxcclxuLy8gICBbJ1NvdXRoZXJuIE5kZWJlbGUnLCAnbnInXSxcclxuLy8gICBbJ1NwYW5pc2gnLCAnZXMnXSxcclxuLy8gICBbJ1N1bmRhbmVzZScsICdzdSddLFxyXG4vLyAgIFsnU3dhaGlsaSAoS2lzd2FoaWxpKScsICdzdyddLFxyXG4vLyAgIFsnU3dhdGknLCAnc3MnXSxcclxuLy8gICBbJ1N3ZWRpc2gnLCAnc3YnXSxcclxuLy8gICBbJ1RhZ2Fsb2cnLCAndGwnXSxcclxuLy8gICBbJ1RhaGl0aWFuJywgJ3R5J10sXHJcbi8vICAgWydUYWppaycsICd0ZyddLFxyXG4vLyAgIFsnVGFtaWwnLCAndGEnXSxcclxuLy8gICBbJ1RhdGFyJywgJ3R0J10sXHJcbi8vICAgWydUZWx1Z3UnLCAndGUnXSxcclxuLy8gICBbJ1RoYWknLCAndGgnXSxcclxuLy8gICBbJ1RpYmV0YW4nLCAnYm8nXSxcclxuLy8gICBbJ1RpZ3JpbnlhJywgJ3RpJ10sXHJcbi8vICAgWydUb25nYScsICd0byddLFxyXG4vLyAgIFsnVHNvbmdhJywgJ3RzJ10sXHJcbi8vICAgWydUdXJraXNoJywgJ3RyJ10sXHJcbi8vICAgWydUdXJrbWVuJywgJ3RrJ10sXHJcbi8vICAgWydUd2knLCAndHcnXSxcclxuLy8gICBbJ1V5Z2h1cicsICd1ZyddLFxyXG4vLyAgIFsnVWtyYWluaWFuJywgJ3VrJ10sXHJcbi8vICAgWydVcmR1JywgJ3VyJ10sXHJcbi8vICAgWydVemJlaycsICd1eiddLFxyXG4vLyAgIFsnVmVuZGEnLCAndmUnXSxcclxuLy8gICBbJ1ZpZXRuYW1lc2UnLCAndmknXSxcclxuLy8gICBbJ1ZvbGFww7xrJywgJ3ZvJ10sXHJcbi8vICAgWydXYWxsb24nLCAnd2EnXSxcclxuLy8gICBbJ1dlbHNoJywgJ2N5J10sXHJcbi8vICAgWydXb2xvZicsICd3byddLFxyXG4vLyAgIFsnV2VzdGVybiBGcmlzaWFuJywgJ2Z5J10sXHJcbi8vICAgWydYaG9zYScsICd4aCddLFxyXG4vLyAgIFsnWWlkZGlzaCcsICd5aScsICdqaSddLFxyXG4vLyAgIFsnWW9ydWJhJywgJ3lvJ10sXHJcbi8vICAgWydaaHVhbmcsIENodWFuZycsICd6YSddLFxyXG4vLyAgIFsnWnVsdScsICd6dSddLFxyXG4vLyBdXHJcbi8vXHJcbi8vIGxhbmdzLmZvckVhY2gobGFuZyA9PiB7Y29uc3QgcGVyaW9kID0gZ2V0RGF5UGVyaW9kcyhsYW5nWzFdKTsgaWYgKHBlcmlvZC5hbSA9PT0gJ0FNJykgcmV0dXJuOyBjb25zb2xlLmxvZyhsYW5nWzFdLCBwZXJpb2QgKX0pXHJcblxyXG5cclxuLy8gQ2hyb21lIC8gT3BlcmFcclxuLy8gQW1oYXJpYyBhbSB7YW06ICfhjKXhi4vhibUnLCBwbTogJ+GKqOGIsOGLk+GJtSd9XHJcbi8vIEFyYWJpYyBhciB7YW06ICfYtScsIHBtOiAn2YUnfVxyXG4vLyBCdWxnYXJpYW4gYmcge2FtOiAn0L/RgC7QvtCxLicsIHBtOiAn0YHQuy7QvtCxLid9XHJcbi8vIENoaW5lc2UgKFRyYWRpdGlvbmFsKSB6aC1IYW50IHthbTogJ+S4iuWNiCcsIHBtOiAn5LiL5Y2IJ31cclxuLy8gR3JlZWsgZWwge2FtOiAnz4AuzrwuJywgcG06ICfOvC7OvC4nfVxyXG4vLyBIaW5kaSBoaSB7YW06ICdhbScsIHBtOiAncG0nfVxyXG4vLyBLYW5uYWRhIGtuIHthbTogJ+CyquCzguCysOCzjeCyteCyvuCyueCzjeCyqCcsIHBtOiAn4LKF4LKq4LKw4LK+4LK54LON4LKoJ31cclxuLy8gS29yZWFuIGtvIHthbTogJ+yYpOyghCcsIHBtOiAn7Jik7ZuEJ31cclxuLy8gTWFsYXkgbXMge2FtOiAnUEcnLCBwbTogJ1BURyd9XHJcbi8vIFRhbWlsIHRhIHthbTogJ+CuruCvgeCuseCvjeCuquCuleCusuCvjScsIHBtOiAn4K6q4K6/4K6x4K+N4K6q4K6V4K6y4K+NJ31cclxuXHJcbi8vIEVkZ2UgQ2hyb21pdW1cclxuLy8gQWxiYW5pYW4gc3Ege2FtOiAnZSBwYXJhZGl0ZXMnLCBwbTogJ2UgcGFzZGl0ZXMnfVxyXG4vLyBBbWhhcmljIGFtIHthbTogJ+GMpeGLi+GJtScsIHBtOiAn4Yqo4Yiw4YuT4Ym1J31cclxuLy8gQXJhYmljIGFyIHthbTogJ9i1JywgcG06ICfZhSd9XHJcbi8vIEJ1bGdhcmlhbiBiZyB7YW06ICfQv9GALtC+0LEuJywgcG06ICfRgdC7LtC+0LEuJ31cclxuLy8gQ2hpbmVzZSAoVHJhZGl0aW9uYWwpIHpoLUhhbnQge2FtOiAn5LiK5Y2IJywgcG06ICfkuIvljYgnfVxyXG4vLyBHcmVlayBlbCB7YW06ICfPgC7OvC4nLCBwbTogJ868Ls68Lid9XHJcbi8vIEhpbmRpIGhpIHthbTogJ2FtJywgcG06ICdwbSd9XHJcbi8vIEthbm5hZGEga24ge2FtOiAn4LKq4LOC4LKw4LON4LK14LK+4LK54LON4LKoJywgcG06ICfgsoXgsqrgsrDgsr7gsrngs43gsqgnfVxyXG4vLyBLb3JlYW4ga28ge2FtOiAn7Jik7KCEJywgcG06ICfsmKTtm4QnfVxyXG4vLyBNYWxheSBtcyB7YW06ICdQRycsIHBtOiAnUFRHJ31cclxuLy8gUHVuamFiaSAoRWFzdGVybikgcGEge2FtOiAn4Kiq4KmCLuCopuCpgS4nLCBwbTogJ+CorOCovi7gqKbgqYEuJ31cclxuLy8gU2luZGhpIHNkIHthbTogJ9i12KjYrdiMINmF2YbYrNmH2YbYrycsIHBtOiAn2YXZhtis2YfZhtiv2Iwg2LTYp9mFJ31cclxuLy8gVGFtaWwgdGEge2FtOiAn4K6u4K+B4K6x4K+N4K6q4K6V4K6y4K+NJywgcG06ICfgrqrgrr/grrHgr43grqrgrpXgrrLgr40nfVxyXG5cclxuXHJcbi8vIEZpcmVmb3hcclxuLy8gQWthbiBhayB7IGFtOiBcIkFOXCIsIHBtOiBcIkVXXCIgfVxyXG4vLyBBbGJhbmlhbiBzcSB7IGFtOiBcImUgcGFyYWRpdGVzXCIsIHBtOiBcImUgcGFzZGl0ZXNcIiB9XHJcbi8vIEFtaGFyaWMgYW0geyBhbTogXCLhjKXhi4vhibVcIiwgcG06IFwi4Yqo4Yiw4YuT4Ym1XCIgfVxyXG4vLyBBcmFiaWMgYXIgeyBhbTogXCLYtVwiLCBwbTogXCLZhVwiIH1cclxuLy8gQXNzYW1lc2UgYXMgeyBhbTogXCLgpqrgp4Lgp7Dgp43gpqzgpr7gprngp43gpqhcIiwgcG06IFwi4KaF4Kaq4Kew4Ka+4Ka54KeN4KaoXCIgfVxyXG4vLyBCdWxnYXJpYW4gYmcgeyBhbTogXCLQv9GALtC+0LEuXCIsIHBtOiBcItGB0Lsu0L7QsS5cIiB9XHJcbi8vIENoaW5lc2UgKFRyYWRpdGlvbmFsKSB6aC1IYW50IHsgYW06IFwi5LiK5Y2IXCIsIHBtOiBcIuS4i+WNiFwiIH1cclxuLy8gRHpvbmdraGEgZHogeyBhbTogXCLgvabgvpTgvIvgvYbgvItcIiwgcG06IFwi4L2V4L6x4L2y4LyL4L2G4LyLXCIgfVxyXG4vLyBFd2UgZWUgeyBhbTogXCLFi2RpXCIsIHBtOiBcIsmjZXRyyZRcIiB9XHJcbi8vIEdyZWVrIGVsIHsgYW06IFwiz4AuzrwuXCIsIHBtOiBcIs68Ls68LlwiIH1cclxuLy8gSGluZGkgaGkgeyBhbTogXCJhbVwiLCBwbTogXCJwbVwiIH1cclxuLy8gS2FubmFkYSBrbiB7IGFtOiBcIuCyquCzguCysOCzjeCyteCyvuCyueCzjeCyqFwiLCBwbTogXCLgsoXgsqrgsrDgsr7gsrngs43gsqhcIiB9XHJcbi8vIEtvcmVhbiBrbyB7IGFtOiBcIuyYpOyghFwiLCBwbTogXCLsmKTtm4RcIiB9XHJcbi8vIE1hbGF5IG1zIHsgYW06IFwiUEdcIiwgcG06IFwiUFRHXCIgfVxyXG4vLyBPcm9tbyAoQWZhYW4gT3JvbW8pIG9tIHsgYW06IFwiV0RcIiwgcG06IFwiV0JcIiB9XHJcbi8vIFB1bmphYmkgKEVhc3Rlcm4pIHBhIHsgYW06IFwi4Kiq4KmCLuCopuCpgS5cIiwgcG06IFwi4Kis4Ki+LuCopuCpgS5cIiB9XHJcbi8vIFNhbnNrcml0IHNhIHsgYW06IFwi4KSq4KWC4KSw4KWN4KS14KS+4KS54KWN4KSoXCIsIHBtOiBcIuCkheCkquCksOCkvuCkueCljeCkqFwiIH1cclxuLy8gU2luZGhpIHNkIHsgYW06IFwi2LXYqNit2Iwg2YXZhtis2YfZhtivXCIsIHBtOiBcItmF2YbYrNmH2YbYr9iMINi02KfZhVwiIH1cclxuLy8gU29tYWxpIHNvIHsgYW06IFwiR0hcIiwgcG06IFwiR0RcIiB9XHJcbi8vIFRhbWlsIHRhIHsgYW06IFwi4K6u4K+B4K6x4K+N4K6q4K6V4K6y4K+NXCIsIHBtOiBcIuCuquCuv+CuseCvjeCuquCuleCusuCvjVwiIH1cclxuLy8gVGlncmlueWEgdGkgeyBhbTogXCLhiYUu4YmALlwiLCBwbTogXCLhi7Uu4YmALlwiIH1cclxuLy8gVG9uZ2EgdG8geyBhbTogXCJoZW5naWhlbmdpXCIsIHBtOiBcImVmaWFmaVwiIH1cclxuLy8gVHdpIHR3IHsgYW06IFwiQU5cIiwgcG06IFwiRVdcIiB9XHJcblxyXG5cclxuXHJcbi8vIGNvbnN0IGZvcm1hdHMgPSB7XHJcbi8vICAgXCJhci1TQVwiIDogXCJkZC9NTS95eVwiLFxyXG4vLyAgIFwiYmctQkdcIiA6IFwiZGQuTS55eXl5XCIsXHJcbi8vICAgXCJjYS1FU1wiIDogXCJkZC9NTS95eXl5XCIsXHJcbi8vICAgXCJ6aC1UV1wiIDogXCJ5eXl5L00vZFwiLFxyXG4vLyAgIFwiY3MtQ1pcIiA6IFwiZC5NLnl5eXlcIixcclxuLy8gICBcImRhLURLXCIgOiBcImRkLU1NLXl5eXlcIixcclxuLy8gICBcImRlLURFXCIgOiBcImRkLk1NLnl5eXlcIixcclxuLy8gICBcImVsLUdSXCIgOiBcImQvTS95eXl5XCIsXHJcbi8vICAgXCJlbi1VU1wiIDogXCJNL2QveXl5eVwiLFxyXG4vLyAgIFwiZmktRklcIiA6IFwiZC5NLnl5eXlcIixcclxuLy8gICBcImZyLUZSXCIgOiBcImRkL01NL3l5eXlcIixcclxuLy8gICBcImhlLUlMXCIgOiBcImRkL01NL3l5eXlcIixcclxuLy8gICBcImh1LUhVXCIgOiBcInl5eXkuIE1NLiBkZC5cIixcclxuLy8gICBcImlzLUlTXCIgOiBcImQuTS55eXl5XCIsXHJcbi8vICAgXCJpdC1JVFwiIDogXCJkZC9NTS95eXl5XCIsXHJcbi8vICAgXCJqYS1KUFwiIDogXCJ5eXl5L01NL2RkXCIsXHJcbi8vICAgXCJrby1LUlwiIDogXCJ5eXl5LU1NLWRkXCIsXHJcbi8vICAgXCJubC1OTFwiIDogXCJkLU0teXl5eVwiLFxyXG4vLyAgIFwibmItTk9cIiA6IFwiZGQuTU0ueXl5eVwiLFxyXG4vLyAgIFwicGwtUExcIiA6IFwieXl5eS1NTS1kZFwiLFxyXG4vLyAgIFwicHQtQlJcIiA6IFwiZC9NL3l5eXlcIixcclxuLy8gICBcInJvLVJPXCIgOiBcImRkLk1NLnl5eXlcIixcclxuLy8gICBcInJ1LVJVXCIgOiBcImRkLk1NLnl5eXlcIixcclxuLy8gICBcImhyLUhSXCIgOiBcImQuTS55eXl5XCIsXHJcbi8vICAgXCJzay1TS1wiIDogXCJkLiBNLiB5eXl5XCIsXHJcbi8vICAgXCJzcS1BTFwiIDogXCJ5eXl5LU1NLWRkXCIsXHJcbi8vICAgXCJzdi1TRVwiIDogXCJ5eXl5LU1NLWRkXCIsXHJcbi8vICAgXCJ0aC1USFwiIDogXCJkL00veXl5eVwiLFxyXG4vLyAgIFwidHItVFJcIiA6IFwiZGQuTU0ueXl5eVwiLFxyXG4vLyAgIFwidXItUEtcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiaWQtSURcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwidWstVUFcIiA6IFwiZGQuTU0ueXl5eVwiLFxyXG4vLyAgIFwiYmUtQllcIiA6IFwiZGQuTU0ueXl5eVwiLFxyXG4vLyAgIFwic2wtU0lcIiA6IFwiZC5NLnl5eXlcIixcclxuLy8gICBcImV0LUVFXCIgOiBcImQuTU0ueXl5eVwiLFxyXG4vLyAgIFwibHYtTFZcIiA6IFwieXl5eS5NTS5kZC5cIixcclxuLy8gICBcImx0LUxUXCIgOiBcInl5eXkuTU0uZGRcIixcclxuLy8gICBcImZhLUlSXCIgOiBcIk1NL2RkL3l5eXlcIixcclxuLy8gICBcInZpLVZOXCIgOiBcImRkL01NL3l5eXlcIixcclxuLy8gICBcImh5LUFNXCIgOiBcImRkLk1NLnl5eXlcIixcclxuLy8gICBcImF6LUxhdG4tQVpcIiA6IFwiZGQuTU0ueXl5eVwiLFxyXG4vLyAgIFwiZXUtRVNcIiA6IFwieXl5eS9NTS9kZFwiLFxyXG4vLyAgIFwibWstTUtcIiA6IFwiZGQuTU0ueXl5eVwiLFxyXG4vLyAgIFwiYWYtWkFcIiA6IFwieXl5eS9NTS9kZFwiLFxyXG4vLyAgIFwia2EtR0VcIiA6IFwiZGQuTU0ueXl5eVwiLFxyXG4vLyAgIFwiZm8tRk9cIiA6IFwiZGQtTU0teXl5eVwiLFxyXG4vLyAgIFwiaGktSU5cIiA6IFwiZGQtTU0teXl5eVwiLFxyXG4vLyAgIFwibXMtTVlcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwia2stS1pcIiA6IFwiZGQuTU0ueXl5eVwiLFxyXG4vLyAgIFwia3ktS0dcIiA6IFwiZGQuTU0ueXlcIixcclxuLy8gICBcInN3LUtFXCIgOiBcIk0vZC95eXl5XCIsXHJcbi8vICAgXCJ1ei1MYXRuLVVaXCIgOiBcImRkL01NIHl5eXlcIixcclxuLy8gICBcInR0LVJVXCIgOiBcImRkLk1NLnl5eXlcIixcclxuLy8gICBcInBhLUlOXCIgOiBcImRkLU1NLXl5XCIsXHJcbi8vICAgXCJndS1JTlwiIDogXCJkZC1NTS15eVwiLFxyXG4vLyAgIFwidGEtSU5cIiA6IFwiZGQtTU0teXl5eVwiLFxyXG4vLyAgIFwidGUtSU5cIiA6IFwiZGQtTU0teXlcIixcclxuLy8gICBcImtuLUlOXCIgOiBcImRkLU1NLXl5XCIsXHJcbi8vICAgXCJtci1JTlwiIDogXCJkZC1NTS15eXl5XCIsXHJcbi8vICAgXCJzYS1JTlwiIDogXCJkZC1NTS15eXl5XCIsXHJcbi8vICAgXCJtbi1NTlwiIDogXCJ5eS5NTS5kZFwiLFxyXG4vLyAgIFwiZ2wtRVNcIiA6IFwiZGQvTU0veXlcIixcclxuLy8gICBcImtvay1JTlwiIDogXCJkZC1NTS15eXl5XCIsXHJcbi8vICAgXCJzeXItU1lcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiZHYtTVZcIiA6IFwiZGQvTU0veXlcIixcclxuLy8gICBcImFyLUlRXCIgOiBcImRkL01NL3l5eXlcIixcclxuLy8gICBcInpoLUNOXCIgOiBcInl5eXkvTS9kXCIsXHJcbi8vICAgXCJkZS1DSFwiIDogXCJkZC5NTS55eXl5XCIsXHJcbi8vICAgXCJlbi1HQlwiIDogXCJkZC9NTS95eXl5XCIsXHJcbi8vICAgXCJlcy1NWFwiIDogXCJkZC9NTS95eXl5XCIsXHJcbi8vICAgXCJmci1CRVwiIDogXCJkL01NL3l5eXlcIixcclxuLy8gICBcIml0LUNIXCIgOiBcImRkLk1NLnl5eXlcIixcclxuLy8gICBcIm5sLUJFXCIgOiBcImQvTU0veXl5eVwiLFxyXG4vLyAgIFwibm4tTk9cIiA6IFwiZGQuTU0ueXl5eVwiLFxyXG4vLyAgIFwicHQtUFRcIiA6IFwiZGQtTU0teXl5eVwiLFxyXG4vLyAgIFwic3ItTGF0bi1DU1wiIDogXCJkLk0ueXl5eVwiLFxyXG4vLyAgIFwic3YtRklcIiA6IFwiZC5NLnl5eXlcIixcclxuLy8gICBcImF6LUN5cmwtQVpcIiA6IFwiZGQuTU0ueXl5eVwiLFxyXG4vLyAgIFwibXMtQk5cIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwidXotQ3lybC1VWlwiIDogXCJkZC5NTS55eXl5XCIsXHJcbi8vICAgXCJhci1FR1wiIDogXCJkZC9NTS95eXl5XCIsXHJcbi8vICAgXCJ6aC1IS1wiIDogXCJkL00veXl5eVwiLFxyXG4vLyAgIFwiZGUtQVRcIiA6IFwiZGQuTU0ueXl5eVwiLFxyXG4vLyAgIFwiZW4tQVVcIiA6IFwiZC9NTS95eXl5XCIsXHJcbi8vICAgXCJlcy1FU1wiIDogXCJkZC9NTS95eXl5XCIsXHJcbi8vICAgXCJmci1DQVwiIDogXCJ5eXl5LU1NLWRkXCIsXHJcbi8vICAgXCJzci1DeXJsLUNTXCIgOiBcImQuTS55eXl5XCIsXHJcbi8vICAgXCJhci1MWVwiIDogXCJkZC9NTS95eXl5XCIsXHJcbi8vICAgXCJ6aC1TR1wiIDogXCJkL00veXl5eVwiLFxyXG4vLyAgIFwiZGUtTFVcIiA6IFwiZGQuTU0ueXl5eVwiLFxyXG4vLyAgIFwiZW4tQ0FcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiZXMtR1RcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiZnItQ0hcIiA6IFwiZGQuTU0ueXl5eVwiLFxyXG4vLyAgIFwiYXItRFpcIiA6IFwiZGQtTU0teXl5eVwiLFxyXG4vLyAgIFwiemgtTU9cIiA6IFwiZC9NL3l5eXlcIixcclxuLy8gICBcImRlLUxJXCIgOiBcImRkLk1NLnl5eXlcIixcclxuLy8gICBcImVuLU5aXCIgOiBcImQvTU0veXl5eVwiLFxyXG4vLyAgIFwiZXMtQ1JcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiZnItTFVcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiYXItTUFcIiA6IFwiZGQtTU0teXl5eVwiLFxyXG4vLyAgIFwiZW4tSUVcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiZXMtUEFcIiA6IFwiTU0vZGQveXl5eVwiLFxyXG4vLyAgIFwiZnItTUNcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiYXItVE5cIiA6IFwiZGQtTU0teXl5eVwiLFxyXG4vLyAgIFwiZW4tWkFcIiA6IFwieXl5eS9NTS9kZFwiLFxyXG4vLyAgIFwiZXMtRE9cIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiYXItT01cIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiZW4tSk1cIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiZXMtVkVcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiYXItWUVcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiZW4tMDI5XCIgOiBcIk1NL2RkL3l5eXlcIixcclxuLy8gICBcImVzLUNPXCIgOiBcImRkL01NL3l5eXlcIixcclxuLy8gICBcImFyLVNZXCIgOiBcImRkL01NL3l5eXlcIixcclxuLy8gICBcImVuLUJaXCIgOiBcImRkL01NL3l5eXlcIixcclxuLy8gICBcImVzLVBFXCIgOiBcImRkL01NL3l5eXlcIixcclxuLy8gICBcImFyLUpPXCIgOiBcImRkL01NL3l5eXlcIixcclxuLy8gICBcImVuLVRUXCIgOiBcImRkL01NL3l5eXlcIixcclxuLy8gICBcImVzLUFSXCIgOiBcImRkL01NL3l5eXlcIixcclxuLy8gICBcImFyLUxCXCIgOiBcImRkL01NL3l5eXlcIixcclxuLy8gICBcImVuLVpXXCIgOiBcIk0vZC95eXl5XCIsXHJcbi8vICAgXCJlcy1FQ1wiIDogXCJkZC9NTS95eXl5XCIsXHJcbi8vICAgXCJhci1LV1wiIDogXCJkZC9NTS95eXl5XCIsXHJcbi8vICAgXCJlbi1QSFwiIDogXCJNL2QveXl5eVwiLFxyXG4vLyAgIFwiZXMtQ0xcIiA6IFwiZGQtTU0teXl5eVwiLFxyXG4vLyAgIFwiYXItQUVcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiZXMtVVlcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiYXItQkhcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiZXMtUFlcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiYXItUUFcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiZXMtQk9cIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiZXMtU1ZcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiZXMtSE5cIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiZXMtTklcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiZXMtUFJcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiYW0tRVRcIiA6IFwiZC9NL3l5eXlcIixcclxuLy8gICBcInR6bS1MYXRuLURaXCIgOiBcImRkLU1NLXl5eXlcIixcclxuLy8gICBcIml1LUxhdG4tQ0FcIiA6IFwiZC9NTS95eXl5XCIsXHJcbi8vICAgXCJzbWEtTk9cIiA6IFwiZGQuTU0ueXl5eVwiLFxyXG4vLyAgIFwibW4tTW9uZy1DTlwiIDogXCJ5eXl5L00vZFwiLFxyXG4vLyAgIFwiZ2QtR0JcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwiZW4tTVlcIiA6IFwiZC9NL3l5eXlcIixcclxuLy8gICBcInBycy1BRlwiIDogXCJkZC9NTS95eVwiLFxyXG4vLyAgIFwiYm4tQkRcIiA6IFwiZGQtTU0teXlcIixcclxuLy8gICBcIndvLVNOXCIgOiBcImRkL01NL3l5eXlcIixcclxuLy8gICBcInJ3LVJXXCIgOiBcIk0vZC95eXl5XCIsXHJcbi8vICAgXCJxdXQtR1RcIiA6IFwiZGQvTU0veXl5eVwiLFxyXG4vLyAgIFwic2FoLVJVXCIgOiBcIk1NLmRkLnl5eXlcIixcclxuLy8gICBcImdzdy1GUlwiIDogXCJkZC9NTS95eXl5XCIsXHJcbi8vICAgXCJjby1GUlwiIDogXCJkZC9NTS95eXl5XCIsXHJcbi8vICAgXCJvYy1GUlwiIDogXCJkZC9NTS95eXl5XCIsXHJcbi8vICAgXCJtaS1OWlwiIDogXCJkZC9NTS95eXl5XCIsXHJcbi8vICAgXCJnYS1JRVwiIDogXCJkZC9NTS95eXl5XCIsXHJcbi8vICAgXCJzZS1TRVwiIDogXCJ5eXl5LU1NLWRkXCIsXHJcbi8vICAgXCJici1GUlwiIDogXCJkZC9NTS95eXl5XCIsXHJcbi8vICAgXCJzbW4tRklcIiA6IFwiZC5NLnl5eXlcIixcclxuLy8gICBcIm1vaC1DQVwiIDogXCJNL2QveXl5eVwiLFxyXG4vLyAgIFwiYXJuLUNMXCIgOiBcImRkLU1NLXl5eXlcIixcclxuLy8gICBcImlpLUNOXCIgOiBcInl5eXkvTS9kXCIsXHJcbi8vICAgXCJkc2ItREVcIiA6IFwiZC4gTS4geXl5eVwiLFxyXG4vLyAgIFwiaWctTkdcIiA6IFwiZC9NL3l5eXlcIixcclxuLy8gICBcImtsLUdMXCIgOiBcImRkLU1NLXl5eXlcIixcclxuLy8gICBcImxiLUxVXCIgOiBcImRkL01NL3l5eXlcIixcclxuLy8gICBcImJhLVJVXCIgOiBcImRkLk1NLnl5XCIsXHJcbi8vICAgXCJuc28tWkFcIiA6IFwieXl5eS9NTS9kZFwiLFxyXG4vLyAgIFwicXV6LUJPXCIgOiBcImRkL01NL3l5eXlcIixcclxuLy8gICBcInlvLU5HXCIgOiBcImQvTS95eXl5XCIsXHJcbi8vICAgXCJoYS1MYXRuLU5HXCIgOiBcImQvTS95eXl5XCIsXHJcbi8vICAgXCJmaWwtUEhcIiA6IFwiTS9kL3l5eXlcIixcclxuLy8gICBcInBzLUFGXCIgOiBcImRkL01NL3l5XCIsXHJcbi8vICAgXCJmeS1OTFwiIDogXCJkLU0teXl5eVwiLFxyXG4vLyAgIFwibmUtTlBcIiA6IFwiTS9kL3l5eXlcIixcclxuLy8gICBcInNlLU5PXCIgOiBcImRkLk1NLnl5eXlcIixcclxuLy8gICBcIml1LUNhbnMtQ0FcIiA6IFwiZC9NL3l5eXlcIixcclxuLy8gICBcInNyLUxhdG4tUlNcIiA6IFwiZC5NLnl5eXlcIixcclxuLy8gICBcInNpLUxLXCIgOiBcInl5eXktTU0tZGRcIixcclxuLy8gICBcInNyLUN5cmwtUlNcIiA6IFwiZC5NLnl5eXlcIixcclxuLy8gICBcImxvLUxBXCIgOiBcImRkL01NL3l5eXlcIixcclxuLy8gICBcImttLUtIXCIgOiBcInl5eXktTU0tZGRcIixcclxuLy8gICBcImN5LUdCXCIgOiBcImRkL01NL3l5eXlcIixcclxuLy8gICBcImJvLUNOXCIgOiBcInl5eXkvTS9kXCIsXHJcbi8vICAgXCJzbXMtRklcIiA6IFwiZC5NLnl5eXlcIixcclxuLy8gICBcImFzLUlOXCIgOiBcImRkLU1NLXl5eXlcIixcclxuLy8gICBcIm1sLUlOXCIgOiBcImRkLU1NLXl5XCIsXHJcbi8vICAgXCJlbi1JTlwiIDogXCJkZC1NTS15eXl5XCIsXHJcbi8vICAgXCJvci1JTlwiIDogXCJkZC1NTS15eVwiLFxyXG4vLyAgIFwiYm4tSU5cIiA6IFwiZGQtTU0teXlcIixcclxuLy8gICBcInRrLVRNXCIgOiBcImRkLk1NLnl5XCIsXHJcbi8vICAgXCJicy1MYXRuLUJBXCIgOiBcImQuTS55eXl5XCIsXHJcbi8vICAgXCJtdC1NVFwiIDogXCJkZC9NTS95eXl5XCIsXHJcbi8vICAgXCJzci1DeXJsLU1FXCIgOiBcImQuTS55eXl5XCIsXHJcbi8vICAgXCJzZS1GSVwiIDogXCJkLk0ueXl5eVwiLFxyXG4vLyAgIFwienUtWkFcIiA6IFwieXl5eS9NTS9kZFwiLFxyXG4vLyAgIFwieGgtWkFcIiA6IFwieXl5eS9NTS9kZFwiLFxyXG4vLyAgIFwidG4tWkFcIiA6IFwieXl5eS9NTS9kZFwiLFxyXG4vLyAgIFwiaHNiLURFXCIgOiBcImQuIE0uIHl5eXlcIixcclxuLy8gICBcImJzLUN5cmwtQkFcIiA6IFwiZC5NLnl5eXlcIixcclxuLy8gICBcInRnLUN5cmwtVEpcIiA6IFwiZGQuTU0ueXlcIixcclxuLy8gICBcInNyLUxhdG4tQkFcIiA6IFwiZC5NLnl5eXlcIixcclxuLy8gICBcInNtai1OT1wiIDogXCJkZC5NTS55eXl5XCIsXHJcbi8vICAgXCJybS1DSFwiIDogXCJkZC9NTS95eXl5XCIsXHJcbi8vICAgXCJzbWotU0VcIiA6IFwieXl5eS1NTS1kZFwiLFxyXG4vLyAgIFwicXV6LUVDXCIgOiBcImRkL01NL3l5eXlcIixcclxuLy8gICBcInF1ei1QRVwiIDogXCJkZC9NTS95eXl5XCIsXHJcbi8vICAgXCJoci1CQVwiIDogXCJkLk0ueXl5eS5cIixcclxuLy8gICBcInNyLUxhdG4tTUVcIiA6IFwiZC5NLnl5eXlcIixcclxuLy8gICBcInNtYS1TRVwiIDogXCJ5eXl5LU1NLWRkXCIsXHJcbi8vICAgXCJlbi1TR1wiIDogXCJkL00veXl5eVwiLFxyXG4vLyAgIFwidWctQ05cIiA6IFwieXl5eS1NLWRcIixcclxuLy8gICBcInNyLUN5cmwtQkFcIiA6IFwiZC5NLnl5eXlcIixcclxuLy8gICBcImVzLVVTXCIgOiBcIk0vZC95eXl5XCJcclxuLy8gfTtcclxuLy9cclxuLy8gT2JqZWN0LmtleXMoZm9ybWF0cykuZm9yRWFjaChsYW5nID0+IHtjb25zdCBwZXJpb2QgPSBnZXREYXlQZXJpb2RzKGxhbmcpOyBpZiAocGVyaW9kLmFtID09PSAnQU0nKSByZXR1cm47IGNvbnNvbGUubG9nKGxhbmcsIHBlcmlvZCApfSlcclxuIl19
|
|
1
|
+
import { isValid } from 'date-fns';
|
|
2
|
+
export const getSupportedLocale = (locale = 'default') => {
|
|
3
|
+
let supportedLocale;
|
|
4
|
+
try {
|
|
5
|
+
supportedLocale = Intl.DateTimeFormat.supportedLocalesOf(locale).length ? locale : 'default';
|
|
6
|
+
}
|
|
7
|
+
catch (e) {
|
|
8
|
+
supportedLocale = 'default';
|
|
9
|
+
}
|
|
10
|
+
return supportedLocale;
|
|
11
|
+
};
|
|
12
|
+
export const isHour12 = (locale = 'default') => {
|
|
13
|
+
const supportedLocale = getSupportedLocale(locale);
|
|
14
|
+
const hour12 = Intl.DateTimeFormat(supportedLocale, { timeStyle: 'short' }).resolvedOptions().hour12;
|
|
15
|
+
return hour12 ?? false;
|
|
16
|
+
};
|
|
17
|
+
export const convert12hTo24h = (abbr, hour) => {
|
|
18
|
+
if (abbr === 'am' && hour === 12) {
|
|
19
|
+
return 0;
|
|
20
|
+
}
|
|
21
|
+
if (abbr === 'am') {
|
|
22
|
+
return hour;
|
|
23
|
+
}
|
|
24
|
+
if (abbr === 'pm' && hour === 12) {
|
|
25
|
+
return 12;
|
|
26
|
+
}
|
|
27
|
+
return hour + 12;
|
|
28
|
+
};
|
|
29
|
+
export const convert24hTo12h = (hour) => hour % 12 || 12;
|
|
30
|
+
export const convertTimeToDate = (time) => time ? (time instanceof Date ? new Date(time) : new Date(`1970-01-01 ${time}`)) : null;
|
|
31
|
+
// export const getAmPm = (date: Date, locale: string) => {
|
|
32
|
+
// if (date.toLocaleTimeString(locale).includes('AM')) {
|
|
33
|
+
// return 'am'
|
|
34
|
+
// }
|
|
35
|
+
// if (date.toLocaleTimeString(locale).includes('PM')) {
|
|
36
|
+
// return 'pm'
|
|
37
|
+
// }
|
|
38
|
+
// return date.getHours() >= 12 ? 'pm' : 'am'
|
|
39
|
+
// }
|
|
40
|
+
export const getAmPm = (date, locale, options = {}) => {
|
|
41
|
+
const dayPeriods = getDayPeriods('en-US', options);
|
|
42
|
+
const time = new Intl.DateTimeFormat('en-US', { timeStyle: "short", hour12: true }).format(date);
|
|
43
|
+
const dayPeriod = dayPeriods.find(element => time.includes(element.label));
|
|
44
|
+
return (dayPeriod?.value ?? (date.getHours() >= 12 ? 'pm' : 'am'));
|
|
45
|
+
};
|
|
46
|
+
export const isAm = (date) => {
|
|
47
|
+
return date.getHours() < 12;
|
|
48
|
+
};
|
|
49
|
+
export const isPm = (date) => {
|
|
50
|
+
return date.getHours() > 11;
|
|
51
|
+
};
|
|
52
|
+
export const isValidTimeZone = (timeZone) => {
|
|
53
|
+
try {
|
|
54
|
+
if (timeZone === undefined) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
if (!Intl || !Intl.DateTimeFormat().resolvedOptions().timeZone) {
|
|
58
|
+
throw new Error('Time zones not supported.');
|
|
59
|
+
}
|
|
60
|
+
if (typeof timeZone !== 'string') {
|
|
61
|
+
throw new Error(`Invalid timeZone type specified: ${timeZone}`);
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
// throws an error if timezone is not valid
|
|
65
|
+
Intl.DateTimeFormat(undefined, { timeZone: timeZone });
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
throw new Error(`Invalid timeZone string specified: ${timeZone}`);
|
|
69
|
+
}
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
console.warn(error);
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
export const getListOfHours = (locale, options = {}) => {
|
|
78
|
+
const hour12 = isHour12(locale);
|
|
79
|
+
const time = new Date(0);
|
|
80
|
+
return Array.from({ length: 24 }, (_, i) => {
|
|
81
|
+
time.setHours(i);
|
|
82
|
+
const dayPeriod = getAmPm(time, locale);
|
|
83
|
+
return {
|
|
84
|
+
value: i,
|
|
85
|
+
dayPeriod: dayPeriod,
|
|
86
|
+
label: time.toLocaleTimeString(locale, {
|
|
87
|
+
hour: '2-digit',
|
|
88
|
+
hour12: hour12,
|
|
89
|
+
minute: '2-digit',
|
|
90
|
+
second: '2-digit',
|
|
91
|
+
}).split(':')[0],
|
|
92
|
+
};
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
export const getListOfMinutes = (locale, options = {}, valueAsString = false) => {
|
|
96
|
+
const d = new Date(0);
|
|
97
|
+
return Array.from({ length: 60 }, (_, i) => {
|
|
98
|
+
d.setMinutes(i);
|
|
99
|
+
return {
|
|
100
|
+
value: i,
|
|
101
|
+
// value: valueAsString ? i.toString() : i,
|
|
102
|
+
label: d.toLocaleTimeString(locale, {
|
|
103
|
+
// ...options,
|
|
104
|
+
hour: '2-digit',
|
|
105
|
+
hour12: false,
|
|
106
|
+
minute: '2-digit',
|
|
107
|
+
second: '2-digit',
|
|
108
|
+
}).split(':')[1],
|
|
109
|
+
};
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
export const getListOfSeconds = (locale, options = {}, valueAsString = false) => Array.from({ length: 60 }, (_, i) => {
|
|
113
|
+
const d = new Date(0);
|
|
114
|
+
d.setSeconds(i);
|
|
115
|
+
return {
|
|
116
|
+
value: i,
|
|
117
|
+
// value: valueAsString ? i.toString() : i,
|
|
118
|
+
label: d.toLocaleTimeString(locale, {
|
|
119
|
+
// ...options,
|
|
120
|
+
hour: '2-digit',
|
|
121
|
+
hour12: false,
|
|
122
|
+
minute: '2-digit',
|
|
123
|
+
second: '2-digit',
|
|
124
|
+
}).split(':')[2],
|
|
125
|
+
};
|
|
126
|
+
});
|
|
127
|
+
export const getSelectedHour = (date, locale) => date instanceof Date ? (isHour12(locale) ? convert24hTo12h(date.getHours()) : date.getHours()) : '';
|
|
128
|
+
export const getSelectedMinutes = (date) => (date ? date.getMinutes() : '');
|
|
129
|
+
export const getSelectedSeconds = (date) => (date ? date.getSeconds() : '');
|
|
130
|
+
// export const isAmPm = (locale: string) =>
|
|
131
|
+
// ['am', 'AM', 'pm', 'PM'].some((el) => new Date().toLocaleString(locale).includes(el))
|
|
132
|
+
export const isAmPm = (locale = 'default') => {
|
|
133
|
+
const supportedLocale = getSupportedLocale(locale);
|
|
134
|
+
const date = new Date();
|
|
135
|
+
const time = new Intl.DateTimeFormat(supportedLocale, { timeStyle: "short" }).format(date);
|
|
136
|
+
const isAmPm = time.match(/(?:\p{L}\p{M}\p{P}*)+|(?:\p{L}\p{P}*)+/gu) ?? [];
|
|
137
|
+
return isAmPm.length > 0;
|
|
138
|
+
};
|
|
139
|
+
export const isValidTime = (time) => {
|
|
140
|
+
if (typeof time === 'string') {
|
|
141
|
+
return isValid(time) || isValid(new Date(`1970-01-01 ${time}`));
|
|
142
|
+
}
|
|
143
|
+
return isValid(time);
|
|
144
|
+
// const d = new Date(`1970-01-01 ${time}`)
|
|
145
|
+
// return d instanceof Date && d.getTime()
|
|
146
|
+
};
|
|
147
|
+
// export const _getDayPeriods = (locale: string = 'default', options: DateTimeFormatOptions = {}) => {
|
|
148
|
+
// const supportedLocale = getSupportedLocale(locale);
|
|
149
|
+
//
|
|
150
|
+
// const dayPeriods = { am: 'am', pm: 'pm' };
|
|
151
|
+
//
|
|
152
|
+
// const hour12 = isHour12(supportedLocale);
|
|
153
|
+
// if (!hour12) {
|
|
154
|
+
// return dayPeriods;
|
|
155
|
+
// }
|
|
156
|
+
//
|
|
157
|
+
// const am = new Date(Date.UTC(1970, 0, 1, 0, 0, 0));
|
|
158
|
+
// const pm = new Date(Date.UTC(1970, 0, 1, 13, 0, 0));
|
|
159
|
+
//
|
|
160
|
+
// const formatter = new Intl.DateTimeFormat(supportedLocale, { hour12: hour12, hour: 'numeric', timeZone: 'UTC' });
|
|
161
|
+
// dayPeriods.am = formatter.formatToParts(am).find(part => part.type === 'dayPeriod')?.value ?? 'am';
|
|
162
|
+
// dayPeriods.pm = formatter.formatToParts(pm).find(part => part.type === 'dayPeriod')?.value ?? 'pm'
|
|
163
|
+
// return dayPeriods;
|
|
164
|
+
// };
|
|
165
|
+
export const getDayPeriods = (locale = 'default', options = {}) => {
|
|
166
|
+
const supportedLocale = getSupportedLocale(locale);
|
|
167
|
+
const dayPeriods = [
|
|
168
|
+
{ value: 'am', label: 'am' },
|
|
169
|
+
{ value: 'pm', label: 'pm' },
|
|
170
|
+
];
|
|
171
|
+
const hour12 = isHour12(supportedLocale);
|
|
172
|
+
if (!hour12) {
|
|
173
|
+
return dayPeriods;
|
|
174
|
+
}
|
|
175
|
+
const am = new Date(Date.UTC(1970, 0, 1, 0, 0, 0));
|
|
176
|
+
const pm = new Date(Date.UTC(1970, 0, 1, 13, 0, 0));
|
|
177
|
+
const formatter = new Intl.DateTimeFormat(supportedLocale, { hour12: hour12, hour: 'numeric', timeZone: 'UTC' });
|
|
178
|
+
const formattedAm = formatter.formatToParts(am).find(part => part.type === 'dayPeriod')?.value ?? 'am';
|
|
179
|
+
const formattedPm = formatter.formatToParts(pm).find(part => part.type === 'dayPeriod')?.value ?? 'pm';
|
|
180
|
+
dayPeriods.forEach((element, index, dayPeriods) => {
|
|
181
|
+
dayPeriods[index].label = element.value === 'am' ? (formattedAm ?? 'am') : (formattedPm ?? 'pm');
|
|
182
|
+
});
|
|
183
|
+
return dayPeriods;
|
|
184
|
+
};
|
|
185
|
+
// testing
|
|
186
|
+
// const langs = [
|
|
187
|
+
// ['Abkhazian', 'ab'],
|
|
188
|
+
// ['Afar', 'aa'],
|
|
189
|
+
// ['Afrikaans', 'af'],
|
|
190
|
+
// ['Akan', 'ak'],
|
|
191
|
+
// ['Albanian', 'sq'],
|
|
192
|
+
// ['Amharic', 'am'],
|
|
193
|
+
// ['Arabic', 'ar'],
|
|
194
|
+
// ['Aragonese', 'an'],
|
|
195
|
+
// ['Argentina', 'es-ar'],
|
|
196
|
+
// ['Armenian', 'hy'],
|
|
197
|
+
// ['Assamese', 'as'],
|
|
198
|
+
// ['Avaric', 'av'],
|
|
199
|
+
// ['Avestan', 'ae'],
|
|
200
|
+
// ['Aymara', 'ay'],
|
|
201
|
+
// ['Azerbaijani', 'az'],
|
|
202
|
+
// ['Bambara', 'bm'],
|
|
203
|
+
// ['Bashkir', 'ba'],
|
|
204
|
+
// ['Basque', 'eu'],
|
|
205
|
+
// ['Belarusian', 'be'],
|
|
206
|
+
// ['Bengali (Bangla)', 'bn'],
|
|
207
|
+
// ['Bihari', 'bh'],
|
|
208
|
+
// ['Bislama', 'bi'],
|
|
209
|
+
// ['Bosnian', 'bs'],
|
|
210
|
+
// ['Breton', 'br'],
|
|
211
|
+
// ['Bulgarian', 'bg'],
|
|
212
|
+
// ['Burmese', 'my'],
|
|
213
|
+
// ['Catalan', 'ca'],
|
|
214
|
+
// ['Chamorro', 'ch'],
|
|
215
|
+
// ['Chechen', 'ce'],
|
|
216
|
+
// ['Chichewa, Chewa, Nyanja', 'ny'],
|
|
217
|
+
// ['Chinese', 'zh'],
|
|
218
|
+
// ['Chinese (Simplified)', 'zh-Hans'],
|
|
219
|
+
// ['Chinese (Traditional)', 'zh-Hant'],
|
|
220
|
+
// ['Chuvash', 'cv'],
|
|
221
|
+
// ['Cornish', 'kw'],
|
|
222
|
+
// ['Corsican', 'co'],
|
|
223
|
+
// ['Cree', 'cr'],
|
|
224
|
+
// ['Croatian', 'hr'],
|
|
225
|
+
// ['Czech', 'cs'],
|
|
226
|
+
// ['Danish', 'da'],
|
|
227
|
+
// ['Divehi, Dhivehi, Maldivian', 'dv'],
|
|
228
|
+
// ['Dutch', 'nl'],
|
|
229
|
+
// ['Dzongkha', 'dz'],
|
|
230
|
+
// ['English', 'en'],
|
|
231
|
+
// ['Esperanto', 'eo'],
|
|
232
|
+
// ['Estonian', 'et'],
|
|
233
|
+
// ['Ewe', 'ee'],
|
|
234
|
+
// ['Faroese', 'fo'],
|
|
235
|
+
// ['Fijian', 'fj'],
|
|
236
|
+
// ['Finnish', 'fi'],
|
|
237
|
+
// ['French', 'fr'],
|
|
238
|
+
// ['Fula, Fulah, Pulaar, Pular', 'ff'],
|
|
239
|
+
// ['Galician', 'gl'],
|
|
240
|
+
// ['Gaelic (Scottish)', 'gd'],
|
|
241
|
+
// ['Gaelic (Manx)', 'gv'],
|
|
242
|
+
// ['Georgian', 'ka'],
|
|
243
|
+
// ['German', 'de'],
|
|
244
|
+
// ['Greek', 'el'],
|
|
245
|
+
// ['Greenlandic', 'kl'],
|
|
246
|
+
// ['Guarani', 'gn'],
|
|
247
|
+
// ['Gujarati', 'gu'],
|
|
248
|
+
// ['Haitian Creole', 'ht'],
|
|
249
|
+
// ['Hausa', 'ha'],
|
|
250
|
+
// ['Hebrew', 'he'],
|
|
251
|
+
// ['Herero', 'hz'],
|
|
252
|
+
// ['Hindi', 'hi'],
|
|
253
|
+
// ['Hiri Motu', 'ho'],
|
|
254
|
+
// ['Hungarian', 'hu'],
|
|
255
|
+
// ['Icelandic', 'is'],
|
|
256
|
+
// ['Ido', 'io'],
|
|
257
|
+
// ['Igbo', 'ig'],
|
|
258
|
+
// ['Indonesian', 'id', 'in'],
|
|
259
|
+
// ['Interlingua', 'ia'],
|
|
260
|
+
// ['Interlingue', 'ie'],
|
|
261
|
+
// ['Inuktitut', 'iu'],
|
|
262
|
+
// ['Inupiak', 'ik'],
|
|
263
|
+
// ['Irish', 'ga'],
|
|
264
|
+
// ['Italian', 'it'],
|
|
265
|
+
// ['Japanese', 'ja'],
|
|
266
|
+
// ['Javanese', 'jv'],
|
|
267
|
+
// ['Kalaallisut, Greenlandic', 'kl'],
|
|
268
|
+
// ['Kannada', 'kn'],
|
|
269
|
+
// ['Kanuri', 'kr'],
|
|
270
|
+
// ['Kashmiri', 'ks'],
|
|
271
|
+
// ['Kazakh', 'kk'],
|
|
272
|
+
// ['Khmer', 'km'],
|
|
273
|
+
// ['Kikuyu', 'ki'],
|
|
274
|
+
// ['Kinyarwanda (Rwanda)', 'rw'],
|
|
275
|
+
// ['Kirundi', 'rn'],
|
|
276
|
+
// ['Kyrgyz', 'ky'],
|
|
277
|
+
// ['Komi', 'kv'],
|
|
278
|
+
// ['Kongo', 'kg'],
|
|
279
|
+
// ['Korean', 'ko'],
|
|
280
|
+
// ['Kurdish', 'ku'],
|
|
281
|
+
// ['Kwanyama', 'kj'],
|
|
282
|
+
// ['Lao', 'lo'],
|
|
283
|
+
// ['Latin', 'la'],
|
|
284
|
+
// ['Latvian (Lettish)', 'lv'],
|
|
285
|
+
// ['Limburgish (Limburger)', 'li'],
|
|
286
|
+
// ['Lingala', 'ln'],
|
|
287
|
+
// ['Lithuanian', 'lt'],
|
|
288
|
+
// ['Luga-Katanga', 'lu'],
|
|
289
|
+
// ['Luganda, Ganda', 'lg'],
|
|
290
|
+
// ['Luxembourgish', 'lb'],
|
|
291
|
+
// ['Manx', 'gv'],
|
|
292
|
+
// ['Macedonian', 'mk'],
|
|
293
|
+
// ['Malagasy', 'mg'],
|
|
294
|
+
// ['Malay', 'ms'],
|
|
295
|
+
// ['Malayalam', 'ml'],
|
|
296
|
+
// ['Maltese', 'mt'],
|
|
297
|
+
// ['Maori', 'mi'],
|
|
298
|
+
// ['Marathi', 'mr'],
|
|
299
|
+
// ['Marshallese', 'mh'],
|
|
300
|
+
// ['Moldavian', 'mo'],
|
|
301
|
+
// ['Mongolian', 'mn'],
|
|
302
|
+
// ['Nauru', 'na'],
|
|
303
|
+
// ['Navajo', 'nv'],
|
|
304
|
+
// ['Ndonga', 'ng'],
|
|
305
|
+
// ['Northern Ndebele', 'nd'],
|
|
306
|
+
// ['Nepali', 'ne'],
|
|
307
|
+
// ['Norwegian', 'no'],
|
|
308
|
+
// ['Norwegian bokmål', 'nb'],
|
|
309
|
+
// ['Norwegian nynorsk', 'nn'],
|
|
310
|
+
// ['Nuosu', 'ii'],
|
|
311
|
+
// ['Occitan', 'oc'],
|
|
312
|
+
// ['Ojibwe', 'oj'],
|
|
313
|
+
// ['Old Church Slavonic, Old Bulgarian', 'cu'],
|
|
314
|
+
// ['Oriya', 'or'],
|
|
315
|
+
// ['Oromo (Afaan Oromo)', 'om'],
|
|
316
|
+
// ['Ossetian', 'os'],
|
|
317
|
+
// ['Pāli', 'pi'],
|
|
318
|
+
// ['Pashto, Pushto', 'ps'],
|
|
319
|
+
// ['Persian (Farsi)', 'fa'],
|
|
320
|
+
// ['Polish', 'pl'],
|
|
321
|
+
// ['Portuguese', 'pt'],
|
|
322
|
+
// ['Punjabi (Eastern)', 'pa'],
|
|
323
|
+
// ['Quechua', 'qu'],
|
|
324
|
+
// ['Romansh', 'rm'],
|
|
325
|
+
// ['Romanian', 'ro'],
|
|
326
|
+
// ['Russian', 'ru'],
|
|
327
|
+
// ['Sami', 'se'],
|
|
328
|
+
// ['Samoan', 'sm'],
|
|
329
|
+
// ['Sango', 'sg'],
|
|
330
|
+
// ['Sanskrit', 'sa'],
|
|
331
|
+
// ['Serbian', 'sr'],
|
|
332
|
+
// ['Serbo-Croatian', 'sh'],
|
|
333
|
+
// ['Sesotho', 'st'],
|
|
334
|
+
// ['Setswana', 'tn'],
|
|
335
|
+
// ['Shona', 'sn'],
|
|
336
|
+
// ['Sichuan Yi', 'ii'],
|
|
337
|
+
// ['Sindhi', 'sd'],
|
|
338
|
+
// ['Sinhalese', 'si'],
|
|
339
|
+
// ['Siswati', 'ss'],
|
|
340
|
+
// ['Slovak', 'sk'],
|
|
341
|
+
// ['Slovenian', 'sl'],
|
|
342
|
+
// ['Somali', 'so'],
|
|
343
|
+
// ['Southern Ndebele', 'nr'],
|
|
344
|
+
// ['Spanish', 'es'],
|
|
345
|
+
// ['Sundanese', 'su'],
|
|
346
|
+
// ['Swahili (Kiswahili)', 'sw'],
|
|
347
|
+
// ['Swati', 'ss'],
|
|
348
|
+
// ['Swedish', 'sv'],
|
|
349
|
+
// ['Tagalog', 'tl'],
|
|
350
|
+
// ['Tahitian', 'ty'],
|
|
351
|
+
// ['Tajik', 'tg'],
|
|
352
|
+
// ['Tamil', 'ta'],
|
|
353
|
+
// ['Tatar', 'tt'],
|
|
354
|
+
// ['Telugu', 'te'],
|
|
355
|
+
// ['Thai', 'th'],
|
|
356
|
+
// ['Tibetan', 'bo'],
|
|
357
|
+
// ['Tigrinya', 'ti'],
|
|
358
|
+
// ['Tonga', 'to'],
|
|
359
|
+
// ['Tsonga', 'ts'],
|
|
360
|
+
// ['Turkish', 'tr'],
|
|
361
|
+
// ['Turkmen', 'tk'],
|
|
362
|
+
// ['Twi', 'tw'],
|
|
363
|
+
// ['Uyghur', 'ug'],
|
|
364
|
+
// ['Ukrainian', 'uk'],
|
|
365
|
+
// ['Urdu', 'ur'],
|
|
366
|
+
// ['Uzbek', 'uz'],
|
|
367
|
+
// ['Venda', 've'],
|
|
368
|
+
// ['Vietnamese', 'vi'],
|
|
369
|
+
// ['Volapük', 'vo'],
|
|
370
|
+
// ['Wallon', 'wa'],
|
|
371
|
+
// ['Welsh', 'cy'],
|
|
372
|
+
// ['Wolof', 'wo'],
|
|
373
|
+
// ['Western Frisian', 'fy'],
|
|
374
|
+
// ['Xhosa', 'xh'],
|
|
375
|
+
// ['Yiddish', 'yi', 'ji'],
|
|
376
|
+
// ['Yoruba', 'yo'],
|
|
377
|
+
// ['Zhuang, Chuang', 'za'],
|
|
378
|
+
// ['Zulu', 'zu'],
|
|
379
|
+
// ]
|
|
380
|
+
//
|
|
381
|
+
// langs.forEach(lang => {const period = getDayPeriods(lang[1]); if (period.am === 'AM') return; console.log(lang[1], period )})
|
|
382
|
+
// Chrome / Opera
|
|
383
|
+
// Amharic am {am: 'ጥዋት', pm: 'ከሰዓት'}
|
|
384
|
+
// Arabic ar {am: 'ص', pm: 'م'}
|
|
385
|
+
// Bulgarian bg {am: 'пр.об.', pm: 'сл.об.'}
|
|
386
|
+
// Chinese (Traditional) zh-Hant {am: '上午', pm: '下午'}
|
|
387
|
+
// Greek el {am: 'π.μ.', pm: 'μ.μ.'}
|
|
388
|
+
// Hindi hi {am: 'am', pm: 'pm'}
|
|
389
|
+
// Kannada kn {am: 'ಪೂರ್ವಾಹ್ನ', pm: 'ಅಪರಾಹ್ನ'}
|
|
390
|
+
// Korean ko {am: '오전', pm: '오후'}
|
|
391
|
+
// Malay ms {am: 'PG', pm: 'PTG'}
|
|
392
|
+
// Tamil ta {am: 'முற்பகல்', pm: 'பிற்பகல்'}
|
|
393
|
+
// Edge Chromium
|
|
394
|
+
// Albanian sq {am: 'e paradites', pm: 'e pasdites'}
|
|
395
|
+
// Amharic am {am: 'ጥዋት', pm: 'ከሰዓት'}
|
|
396
|
+
// Arabic ar {am: 'ص', pm: 'م'}
|
|
397
|
+
// Bulgarian bg {am: 'пр.об.', pm: 'сл.об.'}
|
|
398
|
+
// Chinese (Traditional) zh-Hant {am: '上午', pm: '下午'}
|
|
399
|
+
// Greek el {am: 'π.μ.', pm: 'μ.μ.'}
|
|
400
|
+
// Hindi hi {am: 'am', pm: 'pm'}
|
|
401
|
+
// Kannada kn {am: 'ಪೂರ್ವಾಹ್ನ', pm: 'ಅಪರಾಹ್ನ'}
|
|
402
|
+
// Korean ko {am: '오전', pm: '오후'}
|
|
403
|
+
// Malay ms {am: 'PG', pm: 'PTG'}
|
|
404
|
+
// Punjabi (Eastern) pa {am: 'ਪੂ.ਦੁ.', pm: 'ਬਾ.ਦੁ.'}
|
|
405
|
+
// Sindhi sd {am: 'صبح، منجهند', pm: 'منجهند، شام'}
|
|
406
|
+
// Tamil ta {am: 'முற்பகல்', pm: 'பிற்பகல்'}
|
|
407
|
+
// Firefox
|
|
408
|
+
// Akan ak { am: "AN", pm: "EW" }
|
|
409
|
+
// Albanian sq { am: "e paradites", pm: "e pasdites" }
|
|
410
|
+
// Amharic am { am: "ጥዋት", pm: "ከሰዓት" }
|
|
411
|
+
// Arabic ar { am: "ص", pm: "م" }
|
|
412
|
+
// Assamese as { am: "পূৰ্বাহ্ন", pm: "অপৰাহ্ন" }
|
|
413
|
+
// Bulgarian bg { am: "пр.об.", pm: "сл.об." }
|
|
414
|
+
// Chinese (Traditional) zh-Hant { am: "上午", pm: "下午" }
|
|
415
|
+
// Dzongkha dz { am: "སྔ་ཆ་", pm: "ཕྱི་ཆ་" }
|
|
416
|
+
// Ewe ee { am: "ŋdi", pm: "ɣetrɔ" }
|
|
417
|
+
// Greek el { am: "π.μ.", pm: "μ.μ." }
|
|
418
|
+
// Hindi hi { am: "am", pm: "pm" }
|
|
419
|
+
// Kannada kn { am: "ಪೂರ್ವಾಹ್ನ", pm: "ಅಪರಾಹ್ನ" }
|
|
420
|
+
// Korean ko { am: "오전", pm: "오후" }
|
|
421
|
+
// Malay ms { am: "PG", pm: "PTG" }
|
|
422
|
+
// Oromo (Afaan Oromo) om { am: "WD", pm: "WB" }
|
|
423
|
+
// Punjabi (Eastern) pa { am: "ਪੂ.ਦੁ.", pm: "ਬਾ.ਦੁ." }
|
|
424
|
+
// Sanskrit sa { am: "पूर्वाह्न", pm: "अपराह्न" }
|
|
425
|
+
// Sindhi sd { am: "صبح، منجهند", pm: "منجهند، شام" }
|
|
426
|
+
// Somali so { am: "GH", pm: "GD" }
|
|
427
|
+
// Tamil ta { am: "முற்பகல்", pm: "பிற்பகல்" }
|
|
428
|
+
// Tigrinya ti { am: "ቅ.ቀ.", pm: "ድ.ቀ." }
|
|
429
|
+
// Tonga to { am: "hengihengi", pm: "efiafi" }
|
|
430
|
+
// Twi tw { am: "AN", pm: "EW" }
|
|
431
|
+
// const formats = {
|
|
432
|
+
// "ar-SA" : "dd/MM/yy",
|
|
433
|
+
// "bg-BG" : "dd.M.yyyy",
|
|
434
|
+
// "ca-ES" : "dd/MM/yyyy",
|
|
435
|
+
// "zh-TW" : "yyyy/M/d",
|
|
436
|
+
// "cs-CZ" : "d.M.yyyy",
|
|
437
|
+
// "da-DK" : "dd-MM-yyyy",
|
|
438
|
+
// "de-DE" : "dd.MM.yyyy",
|
|
439
|
+
// "el-GR" : "d/M/yyyy",
|
|
440
|
+
// "en-US" : "M/d/yyyy",
|
|
441
|
+
// "fi-FI" : "d.M.yyyy",
|
|
442
|
+
// "fr-FR" : "dd/MM/yyyy",
|
|
443
|
+
// "he-IL" : "dd/MM/yyyy",
|
|
444
|
+
// "hu-HU" : "yyyy. MM. dd.",
|
|
445
|
+
// "is-IS" : "d.M.yyyy",
|
|
446
|
+
// "it-IT" : "dd/MM/yyyy",
|
|
447
|
+
// "ja-JP" : "yyyy/MM/dd",
|
|
448
|
+
// "ko-KR" : "yyyy-MM-dd",
|
|
449
|
+
// "nl-NL" : "d-M-yyyy",
|
|
450
|
+
// "nb-NO" : "dd.MM.yyyy",
|
|
451
|
+
// "pl-PL" : "yyyy-MM-dd",
|
|
452
|
+
// "pt-BR" : "d/M/yyyy",
|
|
453
|
+
// "ro-RO" : "dd.MM.yyyy",
|
|
454
|
+
// "ru-RU" : "dd.MM.yyyy",
|
|
455
|
+
// "hr-HR" : "d.M.yyyy",
|
|
456
|
+
// "sk-SK" : "d. M. yyyy",
|
|
457
|
+
// "sq-AL" : "yyyy-MM-dd",
|
|
458
|
+
// "sv-SE" : "yyyy-MM-dd",
|
|
459
|
+
// "th-TH" : "d/M/yyyy",
|
|
460
|
+
// "tr-TR" : "dd.MM.yyyy",
|
|
461
|
+
// "ur-PK" : "dd/MM/yyyy",
|
|
462
|
+
// "id-ID" : "dd/MM/yyyy",
|
|
463
|
+
// "uk-UA" : "dd.MM.yyyy",
|
|
464
|
+
// "be-BY" : "dd.MM.yyyy",
|
|
465
|
+
// "sl-SI" : "d.M.yyyy",
|
|
466
|
+
// "et-EE" : "d.MM.yyyy",
|
|
467
|
+
// "lv-LV" : "yyyy.MM.dd.",
|
|
468
|
+
// "lt-LT" : "yyyy.MM.dd",
|
|
469
|
+
// "fa-IR" : "MM/dd/yyyy",
|
|
470
|
+
// "vi-VN" : "dd/MM/yyyy",
|
|
471
|
+
// "hy-AM" : "dd.MM.yyyy",
|
|
472
|
+
// "az-Latn-AZ" : "dd.MM.yyyy",
|
|
473
|
+
// "eu-ES" : "yyyy/MM/dd",
|
|
474
|
+
// "mk-MK" : "dd.MM.yyyy",
|
|
475
|
+
// "af-ZA" : "yyyy/MM/dd",
|
|
476
|
+
// "ka-GE" : "dd.MM.yyyy",
|
|
477
|
+
// "fo-FO" : "dd-MM-yyyy",
|
|
478
|
+
// "hi-IN" : "dd-MM-yyyy",
|
|
479
|
+
// "ms-MY" : "dd/MM/yyyy",
|
|
480
|
+
// "kk-KZ" : "dd.MM.yyyy",
|
|
481
|
+
// "ky-KG" : "dd.MM.yy",
|
|
482
|
+
// "sw-KE" : "M/d/yyyy",
|
|
483
|
+
// "uz-Latn-UZ" : "dd/MM yyyy",
|
|
484
|
+
// "tt-RU" : "dd.MM.yyyy",
|
|
485
|
+
// "pa-IN" : "dd-MM-yy",
|
|
486
|
+
// "gu-IN" : "dd-MM-yy",
|
|
487
|
+
// "ta-IN" : "dd-MM-yyyy",
|
|
488
|
+
// "te-IN" : "dd-MM-yy",
|
|
489
|
+
// "kn-IN" : "dd-MM-yy",
|
|
490
|
+
// "mr-IN" : "dd-MM-yyyy",
|
|
491
|
+
// "sa-IN" : "dd-MM-yyyy",
|
|
492
|
+
// "mn-MN" : "yy.MM.dd",
|
|
493
|
+
// "gl-ES" : "dd/MM/yy",
|
|
494
|
+
// "kok-IN" : "dd-MM-yyyy",
|
|
495
|
+
// "syr-SY" : "dd/MM/yyyy",
|
|
496
|
+
// "dv-MV" : "dd/MM/yy",
|
|
497
|
+
// "ar-IQ" : "dd/MM/yyyy",
|
|
498
|
+
// "zh-CN" : "yyyy/M/d",
|
|
499
|
+
// "de-CH" : "dd.MM.yyyy",
|
|
500
|
+
// "en-GB" : "dd/MM/yyyy",
|
|
501
|
+
// "es-MX" : "dd/MM/yyyy",
|
|
502
|
+
// "fr-BE" : "d/MM/yyyy",
|
|
503
|
+
// "it-CH" : "dd.MM.yyyy",
|
|
504
|
+
// "nl-BE" : "d/MM/yyyy",
|
|
505
|
+
// "nn-NO" : "dd.MM.yyyy",
|
|
506
|
+
// "pt-PT" : "dd-MM-yyyy",
|
|
507
|
+
// "sr-Latn-CS" : "d.M.yyyy",
|
|
508
|
+
// "sv-FI" : "d.M.yyyy",
|
|
509
|
+
// "az-Cyrl-AZ" : "dd.MM.yyyy",
|
|
510
|
+
// "ms-BN" : "dd/MM/yyyy",
|
|
511
|
+
// "uz-Cyrl-UZ" : "dd.MM.yyyy",
|
|
512
|
+
// "ar-EG" : "dd/MM/yyyy",
|
|
513
|
+
// "zh-HK" : "d/M/yyyy",
|
|
514
|
+
// "de-AT" : "dd.MM.yyyy",
|
|
515
|
+
// "en-AU" : "d/MM/yyyy",
|
|
516
|
+
// "es-ES" : "dd/MM/yyyy",
|
|
517
|
+
// "fr-CA" : "yyyy-MM-dd",
|
|
518
|
+
// "sr-Cyrl-CS" : "d.M.yyyy",
|
|
519
|
+
// "ar-LY" : "dd/MM/yyyy",
|
|
520
|
+
// "zh-SG" : "d/M/yyyy",
|
|
521
|
+
// "de-LU" : "dd.MM.yyyy",
|
|
522
|
+
// "en-CA" : "dd/MM/yyyy",
|
|
523
|
+
// "es-GT" : "dd/MM/yyyy",
|
|
524
|
+
// "fr-CH" : "dd.MM.yyyy",
|
|
525
|
+
// "ar-DZ" : "dd-MM-yyyy",
|
|
526
|
+
// "zh-MO" : "d/M/yyyy",
|
|
527
|
+
// "de-LI" : "dd.MM.yyyy",
|
|
528
|
+
// "en-NZ" : "d/MM/yyyy",
|
|
529
|
+
// "es-CR" : "dd/MM/yyyy",
|
|
530
|
+
// "fr-LU" : "dd/MM/yyyy",
|
|
531
|
+
// "ar-MA" : "dd-MM-yyyy",
|
|
532
|
+
// "en-IE" : "dd/MM/yyyy",
|
|
533
|
+
// "es-PA" : "MM/dd/yyyy",
|
|
534
|
+
// "fr-MC" : "dd/MM/yyyy",
|
|
535
|
+
// "ar-TN" : "dd-MM-yyyy",
|
|
536
|
+
// "en-ZA" : "yyyy/MM/dd",
|
|
537
|
+
// "es-DO" : "dd/MM/yyyy",
|
|
538
|
+
// "ar-OM" : "dd/MM/yyyy",
|
|
539
|
+
// "en-JM" : "dd/MM/yyyy",
|
|
540
|
+
// "es-VE" : "dd/MM/yyyy",
|
|
541
|
+
// "ar-YE" : "dd/MM/yyyy",
|
|
542
|
+
// "en-029" : "MM/dd/yyyy",
|
|
543
|
+
// "es-CO" : "dd/MM/yyyy",
|
|
544
|
+
// "ar-SY" : "dd/MM/yyyy",
|
|
545
|
+
// "en-BZ" : "dd/MM/yyyy",
|
|
546
|
+
// "es-PE" : "dd/MM/yyyy",
|
|
547
|
+
// "ar-JO" : "dd/MM/yyyy",
|
|
548
|
+
// "en-TT" : "dd/MM/yyyy",
|
|
549
|
+
// "es-AR" : "dd/MM/yyyy",
|
|
550
|
+
// "ar-LB" : "dd/MM/yyyy",
|
|
551
|
+
// "en-ZW" : "M/d/yyyy",
|
|
552
|
+
// "es-EC" : "dd/MM/yyyy",
|
|
553
|
+
// "ar-KW" : "dd/MM/yyyy",
|
|
554
|
+
// "en-PH" : "M/d/yyyy",
|
|
555
|
+
// "es-CL" : "dd-MM-yyyy",
|
|
556
|
+
// "ar-AE" : "dd/MM/yyyy",
|
|
557
|
+
// "es-UY" : "dd/MM/yyyy",
|
|
558
|
+
// "ar-BH" : "dd/MM/yyyy",
|
|
559
|
+
// "es-PY" : "dd/MM/yyyy",
|
|
560
|
+
// "ar-QA" : "dd/MM/yyyy",
|
|
561
|
+
// "es-BO" : "dd/MM/yyyy",
|
|
562
|
+
// "es-SV" : "dd/MM/yyyy",
|
|
563
|
+
// "es-HN" : "dd/MM/yyyy",
|
|
564
|
+
// "es-NI" : "dd/MM/yyyy",
|
|
565
|
+
// "es-PR" : "dd/MM/yyyy",
|
|
566
|
+
// "am-ET" : "d/M/yyyy",
|
|
567
|
+
// "tzm-Latn-DZ" : "dd-MM-yyyy",
|
|
568
|
+
// "iu-Latn-CA" : "d/MM/yyyy",
|
|
569
|
+
// "sma-NO" : "dd.MM.yyyy",
|
|
570
|
+
// "mn-Mong-CN" : "yyyy/M/d",
|
|
571
|
+
// "gd-GB" : "dd/MM/yyyy",
|
|
572
|
+
// "en-MY" : "d/M/yyyy",
|
|
573
|
+
// "prs-AF" : "dd/MM/yy",
|
|
574
|
+
// "bn-BD" : "dd-MM-yy",
|
|
575
|
+
// "wo-SN" : "dd/MM/yyyy",
|
|
576
|
+
// "rw-RW" : "M/d/yyyy",
|
|
577
|
+
// "qut-GT" : "dd/MM/yyyy",
|
|
578
|
+
// "sah-RU" : "MM.dd.yyyy",
|
|
579
|
+
// "gsw-FR" : "dd/MM/yyyy",
|
|
580
|
+
// "co-FR" : "dd/MM/yyyy",
|
|
581
|
+
// "oc-FR" : "dd/MM/yyyy",
|
|
582
|
+
// "mi-NZ" : "dd/MM/yyyy",
|
|
583
|
+
// "ga-IE" : "dd/MM/yyyy",
|
|
584
|
+
// "se-SE" : "yyyy-MM-dd",
|
|
585
|
+
// "br-FR" : "dd/MM/yyyy",
|
|
586
|
+
// "smn-FI" : "d.M.yyyy",
|
|
587
|
+
// "moh-CA" : "M/d/yyyy",
|
|
588
|
+
// "arn-CL" : "dd-MM-yyyy",
|
|
589
|
+
// "ii-CN" : "yyyy/M/d",
|
|
590
|
+
// "dsb-DE" : "d. M. yyyy",
|
|
591
|
+
// "ig-NG" : "d/M/yyyy",
|
|
592
|
+
// "kl-GL" : "dd-MM-yyyy",
|
|
593
|
+
// "lb-LU" : "dd/MM/yyyy",
|
|
594
|
+
// "ba-RU" : "dd.MM.yy",
|
|
595
|
+
// "nso-ZA" : "yyyy/MM/dd",
|
|
596
|
+
// "quz-BO" : "dd/MM/yyyy",
|
|
597
|
+
// "yo-NG" : "d/M/yyyy",
|
|
598
|
+
// "ha-Latn-NG" : "d/M/yyyy",
|
|
599
|
+
// "fil-PH" : "M/d/yyyy",
|
|
600
|
+
// "ps-AF" : "dd/MM/yy",
|
|
601
|
+
// "fy-NL" : "d-M-yyyy",
|
|
602
|
+
// "ne-NP" : "M/d/yyyy",
|
|
603
|
+
// "se-NO" : "dd.MM.yyyy",
|
|
604
|
+
// "iu-Cans-CA" : "d/M/yyyy",
|
|
605
|
+
// "sr-Latn-RS" : "d.M.yyyy",
|
|
606
|
+
// "si-LK" : "yyyy-MM-dd",
|
|
607
|
+
// "sr-Cyrl-RS" : "d.M.yyyy",
|
|
608
|
+
// "lo-LA" : "dd/MM/yyyy",
|
|
609
|
+
// "km-KH" : "yyyy-MM-dd",
|
|
610
|
+
// "cy-GB" : "dd/MM/yyyy",
|
|
611
|
+
// "bo-CN" : "yyyy/M/d",
|
|
612
|
+
// "sms-FI" : "d.M.yyyy",
|
|
613
|
+
// "as-IN" : "dd-MM-yyyy",
|
|
614
|
+
// "ml-IN" : "dd-MM-yy",
|
|
615
|
+
// "en-IN" : "dd-MM-yyyy",
|
|
616
|
+
// "or-IN" : "dd-MM-yy",
|
|
617
|
+
// "bn-IN" : "dd-MM-yy",
|
|
618
|
+
// "tk-TM" : "dd.MM.yy",
|
|
619
|
+
// "bs-Latn-BA" : "d.M.yyyy",
|
|
620
|
+
// "mt-MT" : "dd/MM/yyyy",
|
|
621
|
+
// "sr-Cyrl-ME" : "d.M.yyyy",
|
|
622
|
+
// "se-FI" : "d.M.yyyy",
|
|
623
|
+
// "zu-ZA" : "yyyy/MM/dd",
|
|
624
|
+
// "xh-ZA" : "yyyy/MM/dd",
|
|
625
|
+
// "tn-ZA" : "yyyy/MM/dd",
|
|
626
|
+
// "hsb-DE" : "d. M. yyyy",
|
|
627
|
+
// "bs-Cyrl-BA" : "d.M.yyyy",
|
|
628
|
+
// "tg-Cyrl-TJ" : "dd.MM.yy",
|
|
629
|
+
// "sr-Latn-BA" : "d.M.yyyy",
|
|
630
|
+
// "smj-NO" : "dd.MM.yyyy",
|
|
631
|
+
// "rm-CH" : "dd/MM/yyyy",
|
|
632
|
+
// "smj-SE" : "yyyy-MM-dd",
|
|
633
|
+
// "quz-EC" : "dd/MM/yyyy",
|
|
634
|
+
// "quz-PE" : "dd/MM/yyyy",
|
|
635
|
+
// "hr-BA" : "d.M.yyyy.",
|
|
636
|
+
// "sr-Latn-ME" : "d.M.yyyy",
|
|
637
|
+
// "sma-SE" : "yyyy-MM-dd",
|
|
638
|
+
// "en-SG" : "d/M/yyyy",
|
|
639
|
+
// "ug-CN" : "yyyy-M-d",
|
|
640
|
+
// "sr-Cyrl-BA" : "d.M.yyyy",
|
|
641
|
+
// "es-US" : "M/d/yyyy"
|
|
642
|
+
// };
|
|
643
|
+
//
|
|
644
|
+
// Object.keys(formats).forEach(lang => {const period = getDayPeriods(lang); if (period.am === 'AM') return; console.log(lang, period )})
|
|
645
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvdGltZS1waWNrZXIvdGltZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBZ0NuQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFNBQWlCLFNBQVMsRUFBRSxFQUFFO0lBQy9ELElBQUksZUFBdUIsQ0FBQztJQUM1QixJQUFJO1FBQ0YsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztLQUM5RjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsZUFBZSxHQUFHLFNBQVMsQ0FBQztLQUM3QjtJQUNELE9BQU8sZUFBZSxDQUFDO0FBQ3pCLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLFNBQWlCLFNBQVMsRUFBVyxFQUFFO0lBQzlELE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxFQUFFLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQ25HLE9BQU8sTUFBTSxJQUFJLEtBQUssQ0FBQztBQUN6QixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxJQUFpQixFQUFFLElBQVksRUFBRSxFQUFFO0lBQ2pFLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFO1FBQ2hDLE9BQU8sQ0FBQyxDQUFBO0tBQ1Q7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SUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE9BQU8sVUFBVSxDQUFDO0tBQ25CO0lBRUQsTUFBTSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkQsTUFBTSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNqSCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQztJQUN2RyxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQztJQUV2RyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRTtRQUNoRCxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FB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O0FBQzFCLDZCQUE2QjtBQUM3Qiw2QkFBNkI7QUFDN0IsMEJBQTBCO0FBQzFCLCtCQUErQjtBQUMvQiwyQkFBMkI7QUFDM0IsMEJBQTBCO0FBQzFCLDBCQUEwQjtBQUMxQiwwQkFBMEI7QUFDMUIsNEJBQTRCO0FBQzVCLCtCQUErQjtBQUMvQiwrQkFBK0I7QUFDL0IsNEJBQTRCO0FBQzVCLCtCQUErQjtBQUMvQiw0QkFBNEI7QUFDNUIsNEJBQTRCO0FBQzVCLDRCQUE0QjtBQUM1QiwwQkFBMEI7QUFDMUIsMkJBQTJCO0FBQzNCLDRCQUE0QjtBQUM1QiwwQkFBMEI7QUFDMUIsNEJBQTRCO0FBQzVCLDBCQUEwQjtBQUMxQiwwQkFBMEI7QUFDMUIsMEJBQTBCO0FBQzFCLCtCQUErQjtBQUMvQiw0QkFBNEI7QUFDNUIsK0JBQStCO0FBQy9CLDBCQUEwQjtBQUMxQiw0QkFBNEI7QUFDNUIsNEJBQTRCO0FBQzVCLDRCQUE0QjtBQUM1Qiw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLCtCQUErQjtBQUMvQiwrQkFBK0I7QUFDL0IsNkJBQTZCO0FBQzdCLDRCQUE0QjtBQUM1Qiw2QkFBNkI7QUFDN0IsNkJBQTZCO0FBQzdCLDZCQUE2QjtBQUM3QiwyQkFBMkI7QUFDM0IsK0JBQStCO0FBQy9CLDZCQUE2QjtBQUM3QiwwQkFBMEI7QUFDMUIsMEJBQTBCO0FBQzFCLCtCQUErQjtBQUMvQix5QkFBeUI7QUFDekIsS0FBSztBQUNMLEVBQUU7QUFDRix5SUFBeUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1ZhbGlkIH0gZnJvbSAnZGF0ZS1mbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGVUaW1lRm9ybWF0T3B0aW9ucyB7XG4gIGxvY2FsZU1hdGNoZXI/OiBcImJlc3QgZml0XCIgfCBcImxvb2t1cFwiIHwgdW5kZWZpbmVkO1xuICB3ZWVrZGF5PzogXCJsb25nXCIgfCBcInNob3J0XCIgfCBcIm5hcnJvd1wiIHwgdW5kZWZpbmVkO1xuICBlcmE/OiBcImxvbmdcIiB8IFwic2hvcnRcIiB8IFwibmFycm93XCIgfCB1bmRlZmluZWQ7XG4gIHllYXI/OiBcIm51bWVyaWNcIiB8IFwiMi1kaWdpdFwiIHwgdW5kZWZpbmVkO1xuICBtb250aD86IFwibnVtZXJpY1wiIHwgXCIyLWRpZ2l0XCIgfCBcImxvbmdcIiB8IFwic2hvcnRcIiB8IFwibmFycm93XCIgfCB1bmRlZmluZWQ7XG4gIGRheT86IFwibnVtZXJpY1wiIHwgXCIyLWRpZ2l0XCIgfCB1bmRlZmluZWQ7XG4gIGhvdXI/OiBcIm51bWVyaWNcIiB8IFwiMi1kaWdpdFwiIHwgdW5kZWZpbmVkO1xuICBtaW51dGU/OiBcIm51bWVyaWNcIiB8IFwiMi1kaWdpdFwiIHwgdW5kZWZpbmVkO1xuICBzZWNvbmQ/OiBcIm51bWVyaWNcIiB8IFwiMi1kaWdpdFwiIHwgdW5kZWZpbmVkO1xuICB0aW1lWm9uZU5hbWU/OiBcImxvbmdcIiB8IFwic2hvcnRcIiB8IHVuZGVmaW5lZDtcbiAgZm9ybWF0TWF0Y2hlcj86IFwiYmVzdCBmaXRcIiB8IFwiYmFzaWNcIiB8IHVuZGVmaW5lZDtcbiAgaG91cjEyPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgdGltZVpvbmU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCB0eXBlIERheVBlcmlvZCA9ICgnYW0nIHwgJ3BtJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRpbWVWYWx1ZSB7XG4gIHZhbHVlOiBudW1iZXI7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGRheVBlcmlvZD86IERheVBlcmlvZDtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEYXlQZXJpb2RzIHtcbiAgYW06IHN0cmluZztcbiAgcG06IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGdldFN1cHBvcnRlZExvY2FsZSA9IChsb2NhbGU6IHN0cmluZyA9ICdkZWZhdWx0JykgPT4ge1xuICBsZXQgc3VwcG9ydGVkTG9jYWxlOiBzdHJpbmc7XG4gIHRyeSB7XG4gICAgc3VwcG9ydGVkTG9jYWxlID0gSW50bC5EYXRlVGltZUZvcm1hdC5zdXBwb3J0ZWRMb2NhbGVzT2YobG9jYWxlKS5sZW5ndGggPyBsb2NhbGUgOiAnZGVmYXVsdCc7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBzdXBwb3J0ZWRMb2NhbGUgPSAnZGVmYXVsdCc7XG4gIH1cbiAgcmV0dXJuIHN1cHBvcnRlZExvY2FsZTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzSG91cjEyID0gKGxvY2FsZTogc3RyaW5nID0gJ2RlZmF1bHQnKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IHN1cHBvcnRlZExvY2FsZSA9IGdldFN1cHBvcnRlZExvY2FsZShsb2NhbGUpO1xuICBjb25zdCBob3VyMTIgPSBJbnRsLkRhdGVUaW1lRm9ybWF0KHN1cHBvcnRlZExvY2FsZSwge3RpbWVTdHlsZTogJ3Nob3J0J30pLnJlc29sdmVkT3B0aW9ucygpLmhvdXIxMjtcbiAgcmV0dXJuIGhvdXIxMiA/PyBmYWxzZTtcbn1cblxuZXhwb3J0IGNvbnN0IGNvbnZlcnQxMmhUbzI0aCA9IChhYmJyOiAnYW0nIHwgJ3BtJywgaG91cjogbnVtYmVyKSA9PiB7XG4gIGlmIChhYmJyID09PSAnYW0nICYmIGhvdXIgPT09IDEyKSB7XG4gICAgcmV0dXJuIDBcbiAgfVxuICBpZiAoYWJiciA9PT0gJ2FtJykge1xuICAgIHJldHVybiBob3VyXG4gIH1cbiAgaWYgKGFiYnIgPT09ICdwbScgJiYgaG91ciA9PT0gMTIpIHtcbiAgICByZXR1cm4gMTJcbiAgfVxuICByZXR1cm4gaG91ciArIDEyXG59XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0MjRoVG8xMmggPSAoaG91cjogbnVtYmVyKSA9PiBob3VyICUgMTIgfHwgMTJcblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRUaW1lVG9EYXRlID0gKHRpbWU6IERhdGUgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKSA9PlxuICB0aW1lID8gKHRpbWUgaW5zdGFuY2VvZiBEYXRlID8gbmV3IERhdGUodGltZSkgOiBuZXcgRGF0ZShgMTk3MC0wMS0wMSAke3RpbWV9YCkpIDogbnVsbFxuXG4vLyBleHBvcnQgY29uc3QgZ2V0QW1QbSA9IChkYXRlOiBEYXRlLCBsb2NhbGU6IHN0cmluZykgPT4ge1xuLy8gICBpZiAoZGF0ZS50b0xvY2FsZVRpbWVTdHJpbmcobG9jYWxlKS5pbmNsdWRlcygnQU0nKSkge1xuLy8gICAgIHJldHVybiAnYW0nXG4vLyAgIH1cbi8vICAgaWYgKGRhdGUudG9Mb2NhbGVUaW1lU3RyaW5nKGxvY2FsZSkuaW5jbHVkZXMoJ1BNJykpIHtcbi8vICAgICByZXR1cm4gJ3BtJ1xuLy8gICB9XG4vLyAgIHJldHVybiBkYXRlLmdldEhvdXJzKCkgPj0gMTIgPyAncG0nIDogJ2FtJ1xuLy8gfVxuXG5leHBvcnQgY29uc3QgZ2V0QW1QbSA9IChkYXRlOiBEYXRlLCBsb2NhbGU6IHN0cmluZywgb3B0aW9uczogRGF0ZVRpbWVGb3JtYXRPcHRpb25zID0ge30pOiBEYXlQZXJpb2QgPT4ge1xuXG4gIGNvbnN0IGRheVBlcmlvZHMgPSBnZXREYXlQZXJpb2RzKCdlbi1VUycsIG9wdGlvbnMpO1xuICBjb25zdCB0aW1lID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2VuLVVTJywge3RpbWVTdHlsZTogXCJzaG9ydFwiLCBob3VyMTI6IHRydWV9KS5mb3JtYXQoZGF0ZSk7XG5cbiAgY29uc3QgZGF5UGVyaW9kID0gZGF5UGVyaW9kcy5maW5kKGVsZW1lbnQgPT4gdGltZS5pbmNsdWRlcyhlbGVtZW50LmxhYmVsKSk7XG5cbiAgcmV0dXJuIDxEYXlQZXJpb2Q+KGRheVBlcmlvZD8udmFsdWUgPz8gKGRhdGUuZ2V0SG91cnMoKSA+PSAxMiA/ICdwbScgOiAnYW0nKSk7XG59XG5cbmV4cG9ydCBjb25zdCBpc0FtID0gKGRhdGU6IERhdGUpID0+IHtcbiAgcmV0dXJuIGRhdGUuZ2V0SG91cnMoKSA8IDEyO1xufVxuZXhwb3J0IGNvbnN0IGlzUG0gPSAoZGF0ZTogRGF0ZSkgPT4ge1xuICByZXR1cm4gZGF0ZS5nZXRIb3VycygpID4gMTE7XG59XG5cbmV4cG9ydCBjb25zdCBpc1ZhbGlkVGltZVpvbmUgPSAodGltZVpvbmU6IHVua25vd24pOiBib29sZWFuID0+IHtcbiAgdHJ5IHtcbiAgICBpZiAodGltZVpvbmUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghSW50bCB8fCAhSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RpbWUgem9uZXMgbm90IHN1cHBvcnRlZC4nKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRpbWVab25lICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHRpbWVab25lIHR5cGUgc3BlY2lmaWVkOiAke3RpbWVab25lfWApO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICAvLyB0aHJvd3MgYW4gZXJyb3IgaWYgdGltZXpvbmUgaXMgbm90IHZhbGlkXG4gICAgICBJbnRsLkRhdGVUaW1lRm9ybWF0KHVuZGVmaW5lZCwgeyB0aW1lWm9uZTogdGltZVpvbmUgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0aW1lWm9uZSBzdHJpbmcgc3BlY2lmaWVkOiAke3RpbWVab25lfWApO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUud2FybihlcnJvcik7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TGlzdE9mSG91cnMgPSAobG9jYWxlOiBzdHJpbmcsIG9wdGlvbnM6IERhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHt9KSA9PiB7XG4gIGNvbnN0IGhvdXIxMiA9IGlzSG91cjEyKGxvY2FsZSk7XG4gIGNvbnN0IHRpbWUgPSBuZXcgRGF0ZSgwKTtcbiAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IDI0IH0sIChfLCBpKSA9PiB7XG4gICAgdGltZS5zZXRIb3VycyhpKTtcbiAgICBjb25zdCBkYXlQZXJpb2QgPSBnZXRBbVBtKHRpbWUsIGxvY2FsZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiBpLFxuICAgICAgZGF5UGVyaW9kOiA8RGF5UGVyaW9kPmRheVBlcmlvZCxcbiAgICAgIGxhYmVsOiB0aW1lLnRvTG9jYWxlVGltZVN0cmluZyhsb2NhbGUsIHtcbiAgICAgICAgaG91cjogJzItZGlnaXQnLFxuICAgICAgICBob3VyMTI6IGhvdXIxMixcbiAgICAgICAgbWludXRlOiAnMi1kaWdpdCcsXG4gICAgICAgIHNlY29uZDogJzItZGlnaXQnLFxuICAgICAgfSkuc3BsaXQoJzonKVswXSxcbiAgICB9XG4gIH0pXG59XG5cbmV4cG9ydCBjb25zdCBnZXRMaXN0T2ZNaW51dGVzID0gKGxvY2FsZTogc3RyaW5nLCBvcHRpb25zOiBEYXRlVGltZUZvcm1hdE9wdGlvbnMgPSB7fSwgdmFsdWVBc1N0cmluZyA9IGZhbHNlKSA9PiB7XG4gIGNvbnN0IGQgPSBuZXcgRGF0ZSgwKTtcbiAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IDYwIH0sIChfLCBpKSA9PiB7XG4gICAgZC5zZXRNaW51dGVzKGkpXG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiBpLFxuICAgICAgLy8gdmFsdWU6IHZhbHVlQXNTdHJpbmcgPyBpLnRvU3RyaW5nKCkgOiBpLFxuICAgICAgbGFiZWw6IGQudG9Mb2NhbGVUaW1lU3RyaW5nKGxvY2FsZSwge1xuICAgICAgICAvLyAuLi5vcHRpb25zLFxuICAgICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICAgIGhvdXIxMjogZmFsc2UsXG4gICAgICAgIG1pbnV0ZTogJzItZGlnaXQnLFxuICAgICAgICBzZWNvbmQ6ICcyLWRpZ2l0JyxcbiAgICAgIH0pLnNwbGl0KCc6JylbMV0sXG4gICAgfVxuICB9KVxufVxuXG5leHBvcnQgY29uc3QgZ2V0TGlzdE9mU2Vjb25kcyA9IChsb2NhbGU6IHN0cmluZywgb3B0aW9uczogRGF0ZVRpbWVGb3JtYXRPcHRpb25zID0ge30sICB2YWx1ZUFzU3RyaW5nID0gZmFsc2UpID0+XG4gIEFycmF5LmZyb20oeyBsZW5ndGg6IDYwIH0sIChfLCBpKSA9PiB7XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKDApXG4gICAgZC5zZXRTZWNvbmRzKGkpXG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiBpLFxuICAgICAgLy8gdmFsdWU6IHZhbHVlQXNTdHJpbmcgPyBpLnRvU3RyaW5nKCkgOiBpLFxuICAgICAgbGFiZWw6IGQudG9Mb2NhbGVUaW1lU3RyaW5nKGxvY2FsZSwge1xuICAgICAgICAvLyAuLi5vcHRpb25zLFxuICAgICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICAgIGhvdXIxMjogZmFsc2UsXG4gICAgICAgIG1pbnV0ZTogJzItZGlnaXQnLFxuICAgICAgICBzZWNvbmQ6ICcyLWRpZ2l0JyxcbiAgICAgIH0pLnNwbGl0KCc6JylbMl0sXG4gICAgfVxuICB9KVxuXG5leHBvcnQgY29uc3QgZ2V0U2VsZWN0ZWRIb3VyID0gKGRhdGU6IERhdGUgfCBudWxsLCBsb2NhbGU6IHN0cmluZykgPT5cbiAgZGF0ZSBpbnN0YW5jZW9mIERhdGUgPyAoaXNIb3VyMTIobG9jYWxlKSA/IGNvbnZlcnQyNGhUbzEyaChkYXRlLmdldEhvdXJzKCkpIDogZGF0ZS5nZXRIb3VycygpKSA6ICcnO1xuXG5leHBvcnQgY29uc3QgZ2V0U2VsZWN0ZWRNaW51dGVzID0gKGRhdGU6IERhdGUgfCBudWxsKSA9PiAoZGF0ZSA/IGRhdGUuZ2V0TWludXRlcygpIDogJycpXG5cbmV4cG9ydCBjb25zdCBnZXRTZWxlY3RlZFNlY29uZHMgPSAoZGF0ZTogRGF0ZSB8IG51bGwpID0+IChkYXRlID8gZGF0ZS5nZXRTZWNvbmRzKCkgOiAnJylcblxuLy8gZXhwb3J0IGNvbnN0IGlzQW1QbSA9IChsb2NhbGU6IHN0cmluZykgPT5cbi8vICAgWydhbScsICdBTScsICdwbScsICdQTSddLnNvbWUoKGVsKSA9PiBuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKGxvY2FsZSkuaW5jbHVkZXMoZWwpKVxuXG5leHBvcnQgY29uc3QgaXNBbVBtID0gKGxvY2FsZTogc3RyaW5nID0gJ2RlZmF1bHQnKSA9PiB7XG4gIGNvbnN0IHN1cHBvcnRlZExvY2FsZSA9IGdldFN1cHBvcnRlZExvY2FsZShsb2NhbGUpO1xuICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcbiAgY29uc3QgdGltZSA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHN1cHBvcnRlZExvY2FsZSwge3RpbWVTdHlsZTogXCJzaG9ydFwifSkuZm9ybWF0KGRhdGUpO1xuICBjb25zdCBpc0FtUG0gPSB0aW1lLm1hdGNoKC8oPzpcXHB7TH1cXHB7TX1cXHB7UH0qKSt8KD86XFxwe0x9XFxwe1B9KikrL2d1KSA/PyBbXTtcbiAgcmV0dXJuIGlzQW1QbS5sZW5ndGggPiAwO1xufVxuXG5leHBvcnQgY29uc3QgaXNWYWxpZFRpbWUgPSAodGltZTogc3RyaW5nIHwgRGF0ZSB8IG51bWJlciB8IGFueSkgPT4ge1xuICBpZiAodHlwZW9mIHRpbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGlzVmFsaWQodGltZSkgfHwgaXNWYWxpZChuZXcgRGF0ZShgMTk3MC0wMS0wMSAke3RpbWV9YCkpO1xuICB9XG4gIHJldHVybiBpc1ZhbGlkKHRpbWUpO1xuICAvLyBjb25zdCBkID0gbmV3IERhdGUoYDE5NzAtMDEtMDEgJHt0aW1lfWApXG4gIC8vIHJldHVybiBkIGluc3RhbmNlb2YgRGF0ZSAmJiBkLmdldFRpbWUoKVxufVxuXG4vLyBleHBvcnQgY29uc3QgX2dldERheVBlcmlvZHMgPSAobG9jYWxlOiBzdHJpbmcgPSAnZGVmYXVsdCcsIG9wdGlvbnM6IERhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHt9KSA9PiB7XG4vLyAgIGNvbnN0IHN1cHBvcnRlZExvY2FsZSA9IGdldFN1cHBvcnRlZExvY2FsZShsb2NhbGUpO1xuLy9cbi8vICAgY29uc3QgZGF5UGVyaW9kcyA9IHsgYW06ICdhbScsIHBtOiAncG0nIH07XG4vL1xuLy8gICBjb25zdCBob3VyMTIgPSBpc0hvdXIxMihzdXBwb3J0ZWRMb2NhbGUpO1xuLy8gICBpZiAoIWhvdXIxMikge1xuLy8gICAgIHJldHVybiBkYXlQZXJpb2RzO1xuLy8gICB9XG4vL1xuLy8gICBjb25zdCBhbSA9IG5ldyBEYXRlKERhdGUuVVRDKDE5NzAsIDAsIDEsIDAsIDAsIDApKTtcbi8vICAgY29uc3QgcG0gPSBuZXcgRGF0ZShEYXRlLlVUQygxOTcwLCAwLCAxLCAxMywgMCwgMCkpO1xuLy9cbi8vICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoc3VwcG9ydGVkTG9jYWxlLCB7IGhvdXIxMjogaG91cjEyLCBob3VyOiAnbnVtZXJpYycsIHRpbWVab25lOiAnVVRDJyB9KTtcbi8vICAgZGF5UGVyaW9kcy5hbSA9IGZvcm1hdHRlci5mb3JtYXRUb1BhcnRzKGFtKS5maW5kKHBhcnQgPT4gcGFydC50eXBlID09PSAnZGF5UGVyaW9kJyk/LnZhbHVlID8/ICdhbSc7XG4vLyAgIGRheVBlcmlvZHMucG0gPSBmb3JtYXR0ZXIuZm9ybWF0VG9QYXJ0cyhwbSkuZmluZChwYXJ0ID0+IHBhcnQudHlwZSA9PT0gJ2RheVBlcmlvZCcpPy52YWx1ZSA/PyAncG0nXG4vLyAgIHJldHVybiBkYXlQZXJpb2RzO1xuLy8gfTtcblxuZXhwb3J0IGNvbnN0IGdldERheVBlcmlvZHMgPSAobG9jYWxlOiBzdHJpbmcgPSAnZGVmYXVsdCcsIG9wdGlvbnM6IERhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHt9KSA9PiB7XG4gIGNvbnN0IHN1cHBvcnRlZExvY2FsZSA9IGdldFN1cHBvcnRlZExvY2FsZShsb2NhbGUpO1xuXG4gIGNvbnN0IGRheVBlcmlvZHMgPSBbXG4gICAgeyB2YWx1ZTogJ2FtJywgbGFiZWw6ICdhbScgfSxcbiAgICB7IHZhbHVlOiAncG0nLCBsYWJlbDogJ3BtJyB9LFxuICBdO1xuXG4gIGNvbnN0IGhvdXIxMiA9IGlzSG91cjEyKHN1cHBvcnRlZExvY2FsZSk7XG4gIGlmICghaG91cjEyKSB7XG4gICAgcmV0dXJuIGRheVBlcmlvZHM7XG4gIH1cblxuICBjb25zdCBhbSA9IG5ldyBEYXRlKERhdGUuVVRDKDE5NzAsIDAsIDEsIDAsIDAsIDApKTtcbiAgY29uc3QgcG0gPSBuZXcgRGF0ZShEYXRlLlVUQygxOTcwLCAwLCAxLCAxMywgMCwgMCkpO1xuICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChzdXBwb3J0ZWRMb2NhbGUsIHsgaG91cjEyOiBob3VyMTIsIGhvdXI6ICdudW1lcmljJywgdGltZVpvbmU6ICdVVEMnIH0pO1xuICBjb25zdCBmb3JtYXR0ZWRBbSA9IGZvcm1hdHRlci5mb3JtYXRUb1BhcnRzKGFtKS5maW5kKHBhcnQgPT4gcGFydC50eXBlID09PSAnZGF5UGVyaW9kJyk/LnZhbHVlID8/ICdhbSc7XG4gIGNvbnN0IGZvcm1hdHRlZFBtID0gZm9ybWF0dGVyLmZvcm1hdFRvUGFydHMocG0pLmZpbmQocGFydCA9PiBwYXJ0LnR5cGUgPT09ICdkYXlQZXJpb2QnKT8udmFsdWUgPz8gJ3BtJztcblxuICBkYXlQZXJpb2RzLmZvckVhY2goKGVsZW1lbnQsIGluZGV4LCBkYXlQZXJpb2RzKSA9PiB7XG4gICAgZGF5UGVyaW9kc1tpbmRleF0ubGFiZWwgPSBlbGVtZW50LnZhbHVlID09PSAnYW0nID8gKGZvcm1hdHRlZEFtID8/ICdhbScpIDogKGZvcm1hdHRlZFBtID8/ICdwbScpO1xuICB9KVxuXG4gIHJldHVybiBkYXlQZXJpb2RzO1xufTtcblxuXG5cbi8vIHRlc3Rpbmdcbi8vIGNvbnN0IGxhbmdzID0gW1xuLy8gICBbJ0Fia2hhemlhbicsICdhYiddLFxuLy8gICBbJ0FmYXInLCAnYWEnXSxcbi8vICAgWydBZnJpa2FhbnMnLCAnYWYnXSxcbi8vICAgWydBa2FuJywgJ2FrJ10sXG4vLyAgIFsnQWxiYW5pYW4nLCAnc3EnXSxcbi8vICAgWydBbWhhcmljJywgJ2FtJ10sXG4vLyAgIFsnQXJhYmljJywgJ2FyJ10sXG4vLyAgIFsnQXJhZ29uZXNlJywgJ2FuJ10sXG4vLyAgIFsnQXJnZW50aW5hJywgJ2VzLWFyJ10sXG4vLyAgIFsnQXJtZW5pYW4nLCAnaHknXSxcbi8vICAgWydBc3NhbWVzZScsICdhcyddLFxuLy8gICBbJ0F2YXJpYycsICdhdiddLFxuLy8gICBbJ0F2ZXN0YW4nLCAnYWUnXSxcbi8vICAgWydBeW1hcmEnLCAnYXknXSxcbi8vICAgWydBemVyYmFpamFuaScsICdheiddLFxuLy8gICBbJ0JhbWJhcmEnLCAnYm0nXSxcbi8vICAgWydCYXNoa2lyJywgJ2JhJ10sXG4vLyAgIFsnQmFzcXVlJywgJ2V1J10sXG4vLyAgIFsnQmVsYXJ1c2lhbicsICdiZSddLFxuLy8gICBbJ0JlbmdhbGkgKEJhbmdsYSknLCAnYm4nXSxcbi8vICAgWydCaWhhcmknLCAnYmgnXSxcbi8vICAgWydCaXNsYW1hJywgJ2JpJ10sXG4vLyAgIFsnQm9zbmlhbicsICdicyddLFxuLy8gICBbJ0JyZXRvbicsICdiciddLFxuLy8gICBbJ0J1bGdhcmlhbicsICdiZyddLFxuLy8gICBbJ0J1cm1lc2UnLCAnbXknXSxcbi8vICAgWydDYXRhbGFuJywgJ2NhJ10sXG4vLyAgIFsnQ2hhbW9ycm8nLCAnY2gnXSxcbi8vICAgWydDaGVjaGVuJywgJ2NlJ10sXG4vLyAgIFsnQ2hpY2hld2EsIENoZXdhLCBOeWFuamEnLCAnbnknXSxcbi8vICAgWydDaGluZXNlJywgJ3poJ10sXG4vLyAgIFsnQ2hpbmVzZSAoU2ltcGxpZmllZCknLCAnemgtSGFucyddLFxuLy8gICBbJ0NoaW5lc2UgKFRyYWRpdGlvbmFsKScsICd6aC1IYW50J10sXG4vLyAgIFsnQ2h1dmFzaCcsICdjdiddLFxuLy8gICBbJ0Nvcm5pc2gnLCAna3cnXSxcbi8vICAgWydDb3JzaWNhbicsICdjbyddLFxuLy8gICBbJ0NyZWUnLCAnY3InXSxcbi8vICAgWydDcm9hdGlhbicsICdociddLFxuLy8gICBbJ0N6ZWNoJywgJ2NzJ10sXG4vLyAgIFsnRGFuaXNoJywgJ2RhJ10sXG4vLyAgIFsnRGl2ZWhpLCBEaGl2ZWhpLCBNYWxkaXZpYW4nLCAnZHYnXSxcbi8vICAgWydEdXRjaCcsICdubCddLFxuLy8gICBbJ0R6b25na2hhJywgJ2R6J10sXG4vLyAgIFsnRW5nbGlzaCcsICdlbiddLFxuLy8gICBbJ0VzcGVyYW50bycsICdlbyddLFxuLy8gICBbJ0VzdG9uaWFuJywgJ2V0J10sXG4vLyAgIFsnRXdlJywgJ2VlJ10sXG4vLyAgIFsnRmFyb2VzZScsICdmbyddLFxuLy8gICBbJ0ZpamlhbicsICdmaiddLFxuLy8gICBbJ0Zpbm5pc2gnLCAnZmknXSxcbi8vICAgWydGcmVuY2gnLCAnZnInXSxcbi8vICAgWydGdWxhLCBGdWxhaCwgUHVsYWFyLCBQdWxhcicsICdmZiddLFxuLy8gICBbJ0dhbGljaWFuJywgJ2dsJ10sXG4vLyAgIFsnR2FlbGljIChTY290dGlzaCknLCAnZ2QnXSxcbi8vICAgWydHYWVsaWMgKE1hbngpJywgJ2d2J10sXG4vLyAgIFsnR2VvcmdpYW4nLCAna2EnXSxcbi8vICAgWydHZXJtYW4nLCAnZGUnXSxcbi8vICAgWydHcmVlaycsICdlbCddLFxuLy8gICBbJ0dyZWVubGFuZGljJywgJ2tsJ10sXG4vLyAgIFsnR3VhcmFuaScsICdnbiddLFxuLy8gICBbJ0d1amFyYXRpJywgJ2d1J10sXG4vLyAgIFsnSGFpdGlhbiBDcmVvbGUnLCAnaHQnXSxcbi8vICAgWydIYXVzYScsICdoYSddLFxuLy8gICBbJ0hlYnJldycsICdoZSddLFxuLy8gICBbJ0hlcmVybycsICdoeiddLFxuLy8gICBbJ0hpbmRpJywgJ2hpJ10sXG4vLyAgIFsnSGlyaSBNb3R1JywgJ2hvJ10sXG4vLyAgIFsnSHVuZ2FyaWFuJywgJ2h1J10sXG4vLyAgIFsnSWNlbGFuZGljJywgJ2lzJ10sXG4vLyAgIFsnSWRvJywgJ2lvJ10sXG4vLyAgIFsnSWdibycsICdpZyddLFxuLy8gICBbJ0luZG9uZXNpYW4nLCAnaWQnLCAnaW4nXSxcbi8vICAgWydJbnRlcmxpbmd1YScsICdpYSddLFxuLy8gICBbJ0ludGVybGluZ3VlJywgJ2llJ10sXG4vLyAgIFsnSW51a3RpdHV0JywgJ2l1J10sXG4vLyAgIFsnSW51cGlhaycsICdpayddLFxuLy8gICBbJ0lyaXNoJywgJ2dhJ10sXG4vLyAgIFsnSXRhbGlhbicsICdpdCddLFxuLy8gICBbJ0phcGFuZXNlJywgJ2phJ10sXG4vLyAgIFsnSmF2YW5lc2UnLCAnanYnXSxcbi8vICAgWydLYWxhYWxsaXN1dCwgR3JlZW5sYW5kaWMnLCAna2wnXSxcbi8vICAgWydLYW5uYWRhJywgJ2tuJ10sXG4vLyAgIFsnS2FudXJpJywgJ2tyJ10sXG4vLyAgIFsnS2FzaG1pcmknLCAna3MnXSxcbi8vICAgWydLYXpha2gnLCAna2snXSxcbi8vICAgWydLaG1lcicsICdrbSddLFxuLy8gICBbJ0tpa3V5dScsICdraSddLFxuLy8gICBbJ0tpbnlhcndhbmRhIChSd2FuZGEpJywgJ3J3J10sXG4vLyAgIFsnS2lydW5kaScsICdybiddLFxuLy8gICBbJ0t5cmd5eicsICdreSddLFxuLy8gICBbJ0tvbWknLCAna3YnXSxcbi8vICAgWydLb25nbycsICdrZyddLFxuLy8gICBbJ0tvcmVhbicsICdrbyddLFxuLy8gICBbJ0t1cmRpc2gnLCAna3UnXSxcbi8vICAgWydLd2FueWFtYScsICdraiddLFxuLy8gICBbJ0xhbycsICdsbyddLFxuLy8gICBbJ0xhdGluJywgJ2xhJ10sXG4vLyAgIFsnTGF0dmlhbiAoTGV0dGlzaCknLCAnbHYnXSxcbi8vICAgWydMaW1idXJnaXNoIChMaW1idXJnZXIpJywgJ2xpJ10sXG4vLyAgIFsnTGluZ2FsYScsICdsbiddLFxuLy8gICBbJ0xpdGh1YW5pYW4nLCAnbHQnXSxcbi8vICAgWydMdWdhLUthdGFuZ2EnLCAnbHUnXSxcbi8vICAgWydMdWdhbmRhLCBHYW5kYScsICdsZyddLFxuLy8gICBbJ0x1eGVtYm91cmdpc2gnLCAnbGInXSxcbi8vICAgWydNYW54JywgJ2d2J10sXG4vLyAgIFsnTWFjZWRvbmlhbicsICdtayddLFxuLy8gICBbJ01hbGFnYXN5JywgJ21nJ10sXG4vLyAgIFsnTWFsYXknLCAnbXMnXSxcbi8vICAgWydNYWxheWFsYW0nLCAnbWwnXSxcbi8vICAgWydNYWx0ZXNlJywgJ210J10sXG4vLyAgIFsnTWFvcmknLCAnbWknXSxcbi8vICAgWydNYXJhdGhpJywgJ21yJ10sXG4vLyAgIFsnTWFyc2hhbGxlc2UnLCAnbWgnXSxcbi8vICAgWydNb2xkYXZpYW4nLCAnbW8nXSxcbi8vICAgWydNb25nb2xpYW4nLCAnbW4nXSxcbi8vICAgWydOYXVydScsICduYSddLFxuLy8gICBbJ05hdmFqbycsICdudiddLFxuLy8gICBbJ05kb25nYScsICduZyddLFxuLy8gICBbJ05vcnRoZXJuIE5kZWJlbGUnLCAnbmQnXSxcbi8vICAgWydOZXBhbGknLCAnbmUnXSxcbi8vICAgWydOb3J3ZWdpYW4nLCAnbm8nXSxcbi8vICAgWydOb3J3ZWdpYW4gYm9rbcOlbCcsICduYiddLFxuLy8gICBbJ05vcndlZ2lhbiBueW5vcnNrJywgJ25uJ10sXG4vLyAgIFsnTnVvc3UnLCAnaWknXSxcbi8vICAgWydPY2NpdGFuJywgJ29jJ10sXG4vLyAgIFsnT2ppYndlJywgJ29qJ10sXG4vLyAgIFsnT2xkIENodXJjaCBTbGF2b25pYywgT2xkIEJ1bGdhcmlhbicsICdjdSddLFxuLy8gICBbJ09yaXlhJywgJ29yJ10sXG4vLyAgIFsnT3JvbW8gKEFmYWFuIE9yb21vKScsICdvbSddLFxuLy8gICBbJ09zc2V0aWFuJywgJ29zJ10sXG4vLyAgIFsnUMSBbGknLCAncGknXSxcbi8vICAgWydQYXNodG8sIFB1c2h0bycsICdwcyddLFxuLy8gICBbJ1BlcnNpYW4gKEZhcnNpKScsICdmYSddLFxuLy8gICBbJ1BvbGlzaCcsICdwbCddLFxuLy8gICBbJ1BvcnR1Z3Vlc2UnLCAncHQnXSxcbi8vICAgWydQdW5qYWJpIChFYXN0ZXJuKScsICdwYSddLFxuLy8gICBbJ1F1ZWNodWEnLCAncXUnXSxcbi8vICAgWydSb21hbnNoJywgJ3JtJ10sXG4vLyAgIFsnUm9tYW5pYW4nLCAncm8nXSxcbi8vICAgWydSdXNzaWFuJywgJ3J1J10sXG4vLyAgIFsnU2FtaScsICdzZSddLFxuLy8gICBbJ1NhbW9hbicsICdzbSddLFxuLy8gICBbJ1NhbmdvJywgJ3NnJ10sXG4vLyAgIFsnU2Fuc2tyaXQnLCAnc2EnXSxcbi8vICAgWydTZXJiaWFuJywgJ3NyJ10sXG4vLyAgIFsnU2VyYm8tQ3JvYXRpYW4nLCAnc2gnXSxcbi8vICAgWydTZXNvdGhvJywgJ3N0J10sXG4vLyAgIFsnU2V0c3dhbmEnLCAndG4nXSxcbi8vICAgWydTaG9uYScsICdzbiddLFxuLy8gICBbJ1NpY2h1YW4gWWknLCAnaWknXSxcbi8vICAgWydTaW5kaGknLCAnc2QnXSxcbi8vICAgWydTaW5oYWxlc2UnLCAnc2knXSxcbi8vICAgWydTaXN3YXRpJywgJ3NzJ10sXG4vLyAgIFsnU2xvdmFrJywgJ3NrJ10sXG4vLyAgIFsnU2xvdmVuaWFuJywgJ3NsJ10sXG4vLyAgIFsnU29tYWxpJywgJ3NvJ10sXG4vLyAgIFsnU291dGhlcm4gTmRlYmVsZScsICduciddLFxuLy8gICBbJ1NwYW5pc2gnLCAnZXMnXSxcbi8vICAgWydTdW5kYW5lc2UnLCAnc3UnXSxcbi8vICAgWydTd2FoaWxpIChLaXN3YWhpbGkpJywgJ3N3J10sXG4vLyAgIFsnU3dhdGknLCAnc3MnXSxcbi8vICAgWydTd2VkaXNoJywgJ3N2J10sXG4vLyAgIFsnVGFnYWxvZycsICd0bCddLFxuLy8gICBbJ1RhaGl0aWFuJywgJ3R5J10sXG4vLyAgIFsnVGFqaWsnLCAndGcnXSxcbi8vICAgWydUYW1pbCcsICd0YSddLFxuLy8gICBbJ1RhdGFyJywgJ3R0J10sXG4vLyAgIFsnVGVsdWd1JywgJ3RlJ10sXG4vLyAgIFsnVGhhaScsICd0aCddLFxuLy8gICBbJ1RpYmV0YW4nLCAnYm8nXSxcbi8vICAgWydUaWdyaW55YScsICd0aSddLFxuLy8gICBbJ1RvbmdhJywgJ3RvJ10sXG4vLyAgIFsnVHNvbmdhJywgJ3RzJ10sXG4vLyAgIFsnVHVya2lzaCcsICd0ciddLFxuLy8gICBbJ1R1cmttZW4nLCAndGsnXSxcbi8vICAgWydUd2knLCAndHcnXSxcbi8vICAgWydVeWdodXInLCAndWcnXSxcbi8vICAgWydVa3JhaW5pYW4nLCAndWsnXSxcbi8vICAgWydVcmR1JywgJ3VyJ10sXG4vLyAgIFsnVXpiZWsnLCAndXonXSxcbi8vICAgWydWZW5kYScsICd2ZSddLFxuLy8gICBbJ1ZpZXRuYW1lc2UnLCAndmknXSxcbi8vICAgWydWb2xhcMO8aycsICd2byddLFxuLy8gICBbJ1dhbGxvbicsICd3YSddLFxuLy8gICBbJ1dlbHNoJywgJ2N5J10sXG4vLyAgIFsnV29sb2YnLCAnd28nXSxcbi8vICAgWydXZXN0ZXJuIEZyaXNpYW4nLCAnZnknXSxcbi8vICAgWydYaG9zYScsICd4aCddLFxuLy8gICBbJ1lpZGRpc2gnLCAneWknLCAnamknXSxcbi8vICAgWydZb3J1YmEnLCAneW8nXSxcbi8vICAgWydaaHVhbmcsIENodWFuZycsICd6YSddLFxuLy8gICBbJ1p1bHUnLCAnenUnXSxcbi8vIF1cbi8vXG4vLyBsYW5ncy5mb3JFYWNoKGxhbmcgPT4ge2NvbnN0IHBlcmlvZCA9IGdldERheVBlcmlvZHMobGFuZ1sxXSk7IGlmIChwZXJpb2QuYW0gPT09ICdBTScpIHJldHVybjsgY29uc29sZS5sb2cobGFuZ1sxXSwgcGVyaW9kICl9KVxuXG5cbi8vIENocm9tZSAvIE9wZXJhXG4vLyBBbWhhcmljIGFtIHthbTogJ+GMpeGLi+GJtScsIHBtOiAn4Yqo4Yiw4YuT4Ym1J31cbi8vIEFyYWJpYyBhciB7YW06ICfYtScsIHBtOiAn2YUnfVxuLy8gQnVsZ2FyaWFuIGJnIHthbTogJ9C/0YAu0L7QsS4nLCBwbTogJ9GB0Lsu0L7QsS4nfVxuLy8gQ2hpbmVzZSAoVHJhZGl0aW9uYWwpIHpoLUhhbnQge2FtOiAn5LiK5Y2IJywgcG06ICfkuIvljYgnfVxuLy8gR3JlZWsgZWwge2FtOiAnz4AuzrwuJywgcG06ICfOvC7OvC4nfVxuLy8gSGluZGkgaGkge2FtOiAnYW0nLCBwbTogJ3BtJ31cbi8vIEthbm5hZGEga24ge2FtOiAn4LKq4LOC4LKw4LON4LK14LK+4LK54LON4LKoJywgcG06ICfgsoXgsqrgsrDgsr7gsrngs43gsqgnfVxuLy8gS29yZWFuIGtvIHthbTogJ+yYpOyghCcsIHBtOiAn7Jik7ZuEJ31cbi8vIE1hbGF5IG1zIHthbTogJ1BHJywgcG06ICdQVEcnfVxuLy8gVGFtaWwgdGEge2FtOiAn4K6u4K+B4K6x4K+N4K6q4K6V4K6y4K+NJywgcG06ICfgrqrgrr/grrHgr43grqrgrpXgrrLgr40nfVxuXG4vLyBFZGdlIENocm9taXVtXG4vLyBBbGJhbmlhbiBzcSB7YW06ICdlIHBhcmFkaXRlcycsIHBtOiAnZSBwYXNkaXRlcyd9XG4vLyBBbWhhcmljIGFtIHthbTogJ+GMpeGLi+GJtScsIHBtOiAn4Yqo4Yiw4YuT4Ym1J31cbi8vIEFyYWJpYyBhciB7YW06ICfYtScsIHBtOiAn2YUnfVxuLy8gQnVsZ2FyaWFuIGJnIHthbTogJ9C/0YAu0L7QsS4nLCBwbTogJ9GB0Lsu0L7QsS4nfVxuLy8gQ2hpbmVzZSAoVHJhZGl0aW9uYWwpIHpoLUhhbnQge2FtOiAn5LiK5Y2IJywgcG06ICfkuIvljYgnfVxuLy8gR3JlZWsgZWwge2FtOiAnz4AuzrwuJywgcG06ICfOvC7OvC4nfVxuLy8gSGluZGkgaGkge2FtOiAnYW0nLCBwbTogJ3BtJ31cbi8vIEthbm5hZGEga24ge2FtOiAn4LKq4LOC4LKw4LON4LK14LK+4LK54LON4LKoJywgcG06ICfgsoXgsqrgsrDgsr7gsrngs43gsqgnfVxuLy8gS29yZWFuIGtvIHthbTogJ+yYpOyghCcsIHBtOiAn7Jik7ZuEJ31cbi8vIE1hbGF5IG1zIHthbTogJ1BHJywgcG06ICdQVEcnfVxuLy8gUHVuamFiaSAoRWFzdGVybikgcGEge2FtOiAn4Kiq4KmCLuCopuCpgS4nLCBwbTogJ+CorOCovi7gqKbgqYEuJ31cbi8vIFNpbmRoaSBzZCB7YW06ICfYtdio2K3YjCDZhdmG2KzZh9mG2K8nLCBwbTogJ9mF2YbYrNmH2YbYr9iMINi02KfZhSd9XG4vLyBUYW1pbCB0YSB7YW06ICfgrq7gr4HgrrHgr43grqrgrpXgrrLgr40nLCBwbTogJ+CuquCuv+CuseCvjeCuquCuleCusuCvjSd9XG5cblxuLy8gRmlyZWZveFxuLy8gQWthbiBhayB7IGFtOiBcIkFOXCIsIHBtOiBcIkVXXCIgfVxuLy8gQWxiYW5pYW4gc3EgeyBhbTogXCJlIHBhcmFkaXRlc1wiLCBwbTogXCJlIHBhc2RpdGVzXCIgfVxuLy8gQW1oYXJpYyBhbSB7IGFtOiBcIuGMpeGLi+GJtVwiLCBwbTogXCLhiqjhiLDhi5PhibVcIiB9XG4vLyBBcmFiaWMgYXIgeyBhbTogXCLYtVwiLCBwbTogXCLZhVwiIH1cbi8vIEFzc2FtZXNlIGFzIHsgYW06IFwi4Kaq4KeC4Kew4KeN4Kas4Ka+4Ka54KeN4KaoXCIsIHBtOiBcIuCmheCmquCnsOCmvuCmueCnjeCmqFwiIH1cbi8vIEJ1bGdhcmlhbiBiZyB7IGFtOiBcItC/0YAu0L7QsS5cIiwgcG06IFwi0YHQuy7QvtCxLlwiIH1cbi8vIENoaW5lc2UgKFRyYWRpdGlvbmFsKSB6aC1IYW50IHsgYW06IFwi5LiK5Y2IXCIsIHBtOiBcIuS4i+WNiFwiIH1cbi8vIER6b25na2hhIGR6IHsgYW06IFwi4L2m4L6U4LyL4L2G4LyLXCIsIHBtOiBcIuC9leC+seC9suC8i+C9huC8i1wiIH1cbi8vIEV3ZSBlZSB7IGFtOiBcIsWLZGlcIiwgcG06IFwiyaNldHLJlFwiIH1cbi8vIEdyZWVrIGVsIHsgYW06IFwiz4AuzrwuXCIsIHBtOiBcIs68Ls68LlwiIH1cbi8vIEhpbmRpIGhpIHsgYW06IFwiYW1cIiwgcG06IFwicG1cIiB9XG4vLyBLYW5uYWRhIGtuIHsgYW06IFwi4LKq4LOC4LKw4LON4LK14LK+4LK54LON4LKoXCIsIHBtOiBcIuCyheCyquCysOCyvuCyueCzjeCyqFwiIH1cbi8vIEtvcmVhbiBrbyB7IGFtOiBcIuyYpOyghFwiLCBwbTogXCLsmKTtm4RcIiB9XG4vLyBNYWxheSBtcyB7IGFtOiBcIlBHXCIsIHBtOiBcIlBUR1wiIH1cbi8vIE9yb21vIChBZmFhbiBPcm9tbykgb20geyBhbTogXCJXRFwiLCBwbTogXCJXQlwiIH1cbi8vIFB1bmphYmkgKEVhc3Rlcm4pIHBhIHsgYW06IFwi4Kiq4KmCLuCopuCpgS5cIiwgcG06IFwi4Kis4Ki+LuCopuCpgS5cIiB9XG4vLyBTYW5za3JpdCBzYSB7IGFtOiBcIuCkquClguCksOCljeCkteCkvuCkueCljeCkqFwiLCBwbTogXCLgpIXgpKrgpLDgpL7gpLngpY3gpKhcIiB9XG4vLyBTaW5kaGkgc2QgeyBhbTogXCLYtdio2K3YjCDZhdmG2KzZh9mG2K9cIiwgcG06IFwi2YXZhtis2YfZhtiv2Iwg2LTYp9mFXCIgfVxuLy8gU29tYWxpIHNvIHsgYW06IFwiR0hcIiwgcG06IFwiR0RcIiB9XG4vLyBUYW1pbCB0YSB7IGFtOiBcIuCuruCvgeCuseCvjeCuquCuleCusuCvjVwiLCBwbTogXCLgrqrgrr/grrHgr43grqrgrpXgrrLgr41cIiB9XG4vLyBUaWdyaW55YSB0aSB7IGFtOiBcIuGJhS7hiYAuXCIsIHBtOiBcIuGLtS7hiYAuXCIgfVxuLy8gVG9uZ2EgdG8geyBhbTogXCJoZW5naWhlbmdpXCIsIHBtOiBcImVmaWFmaVwiIH1cbi8vIFR3aSB0dyB7IGFtOiBcIkFOXCIsIHBtOiBcIkVXXCIgfVxuXG5cblxuLy8gY29uc3QgZm9ybWF0cyA9IHtcbi8vICAgXCJhci1TQVwiIDogXCJkZC9NTS95eVwiLFxuLy8gICBcImJnLUJHXCIgOiBcImRkLk0ueXl5eVwiLFxuLy8gICBcImNhLUVTXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJ6aC1UV1wiIDogXCJ5eXl5L00vZFwiLFxuLy8gICBcImNzLUNaXCIgOiBcImQuTS55eXl5XCIsXG4vLyAgIFwiZGEtREtcIiA6IFwiZGQtTU0teXl5eVwiLFxuLy8gICBcImRlLURFXCIgOiBcImRkLk1NLnl5eXlcIixcbi8vICAgXCJlbC1HUlwiIDogXCJkL00veXl5eVwiLFxuLy8gICBcImVuLVVTXCIgOiBcIk0vZC95eXl5XCIsXG4vLyAgIFwiZmktRklcIiA6IFwiZC5NLnl5eXlcIixcbi8vICAgXCJmci1GUlwiIDogXCJkZC9NTS95eXl5XCIsXG4vLyAgIFwiaGUtSUxcIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcImh1LUhVXCIgOiBcInl5eXkuIE1NLiBkZC5cIixcbi8vICAgXCJpcy1JU1wiIDogXCJkLk0ueXl5eVwiLFxuLy8gICBcIml0LUlUXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJqYS1KUFwiIDogXCJ5eXl5L01NL2RkXCIsXG4vLyAgIFwia28tS1JcIiA6IFwieXl5eS1NTS1kZFwiLFxuLy8gICBcIm5sLU5MXCIgOiBcImQtTS15eXl5XCIsXG4vLyAgIFwibmItTk9cIiA6IFwiZGQuTU0ueXl5eVwiLFxuLy8gICBcInBsLVBMXCIgOiBcInl5eXktTU0tZGRcIixcbi8vICAgXCJwdC1CUlwiIDogXCJkL00veXl5eVwiLFxuLy8gICBcInJvLVJPXCIgOiBcImRkLk1NLnl5eXlcIixcbi8vICAgXCJydS1SVVwiIDogXCJkZC5NTS55eXl5XCIsXG4vLyAgIFwiaHItSFJcIiA6IFwiZC5NLnl5eXlcIixcbi8vICAgXCJzay1TS1wiIDogXCJkLiBNLiB5eXl5XCIsXG4vLyAgIFwic3EtQUxcIiA6IFwieXl5eS1NTS1kZFwiLFxuLy8gICBcInN2LVNFXCIgOiBcInl5eXktTU0tZGRcIixcbi8vICAgXCJ0aC1USFwiIDogXCJkL00veXl5eVwiLFxuLy8gICBcInRyLVRSXCIgOiBcImRkLk1NLnl5eXlcIixcbi8vICAgXCJ1ci1QS1wiIDogXCJkZC9NTS95eXl5XCIsXG4vLyAgIFwiaWQtSURcIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcInVrLVVBXCIgOiBcImRkLk1NLnl5eXlcIixcbi8vICAgXCJiZS1CWVwiIDogXCJkZC5NTS55eXl5XCIsXG4vLyAgIFwic2wtU0lcIiA6IFwiZC5NLnl5eXlcIixcbi8vICAgXCJldC1FRVwiIDogXCJkLk1NLnl5eXlcIixcbi8vICAgXCJsdi1MVlwiIDogXCJ5eXl5Lk1NLmRkLlwiLFxuLy8gICBcImx0LUxUXCIgOiBcInl5eXkuTU0uZGRcIixcbi8vICAgXCJmYS1JUlwiIDogXCJNTS9kZC95eXl5XCIsXG4vLyAgIFwidmktVk5cIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcImh5LUFNXCIgOiBcImRkLk1NLnl5eXlcIixcbi8vICAgXCJhei1MYXRuLUFaXCIgOiBcImRkLk1NLnl5eXlcIixcbi8vICAgXCJldS1FU1wiIDogXCJ5eXl5L01NL2RkXCIsXG4vLyAgIFwibWstTUtcIiA6IFwiZGQuTU0ueXl5eVwiLFxuLy8gICBcImFmLVpBXCIgOiBcInl5eXkvTU0vZGRcIixcbi8vICAgXCJrYS1HRVwiIDogXCJkZC5NTS55eXl5XCIsXG4vLyAgIFwiZm8tRk9cIiA6IFwiZGQtTU0teXl5eVwiLFxuLy8gICBcImhpLUlOXCIgOiBcImRkLU1NLXl5eXlcIixcbi8vICAgXCJtcy1NWVwiIDogXCJkZC9NTS95eXl5XCIsXG4vLyAgIFwia2stS1pcIiA6IFwiZGQuTU0ueXl5eVwiLFxuLy8gICBcImt5LUtHXCIgOiBcImRkLk1NLnl5XCIsXG4vLyAgIFwic3ctS0VcIiA6IFwiTS9kL3l5eXlcIixcbi8vICAgXCJ1ei1MYXRuLVVaXCIgOiBcImRkL01NIHl5eXlcIixcbi8vICAgXCJ0dC1SVVwiIDogXCJkZC5NTS55eXl5XCIsXG4vLyAgIFwicGEtSU5cIiA6IFwiZGQtTU0teXlcIixcbi8vICAgXCJndS1JTlwiIDogXCJkZC1NTS15eVwiLFxuLy8gICBcInRhLUlOXCIgOiBcImRkLU1NLXl5eXlcIixcbi8vICAgXCJ0ZS1JTlwiIDogXCJkZC1NTS15eVwiLFxuLy8gICBcImtuLUlOXCIgOiBcImRkLU1NLXl5XCIsXG4vLyAgIFwibXItSU5cIiA6IFwiZGQtTU0teXl5eVwiLFxuLy8gICBcInNhLUlOXCIgOiBcImRkLU1NLXl5eXlcIixcbi8vICAgXCJtbi1NTlwiIDogXCJ5eS5NTS5kZFwiLFxuLy8gICBcImdsLUVTXCIgOiBcImRkL01NL3l5XCIsXG4vLyAgIFwia29rLUlOXCIgOiBcImRkLU1NLXl5eXlcIixcbi8vICAgXCJzeXItU1lcIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcImR2LU1WXCIgOiBcImRkL01NL3l5XCIsXG4vLyAgIFwiYXItSVFcIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcInpoLUNOXCIgOiBcInl5eXkvTS9kXCIsXG4vLyAgIFwiZGUtQ0hcIiA6IFwiZGQuTU0ueXl5eVwiLFxuLy8gICBcImVuLUdCXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJlcy1NWFwiIDogXCJkZC9NTS95eXl5XCIsXG4vLyAgIFwiZnItQkVcIiA6IFwiZC9NTS95eXl5XCIsXG4vLyAgIFwiaXQtQ0hcIiA6IFwiZGQuTU0ueXl5eVwiLFxuLy8gICBcIm5sLUJFXCIgOiBcImQvTU0veXl5eVwiLFxuLy8gICBcIm5uLU5PXCIgOiBcImRkLk1NLnl5eXlcIixcbi8vICAgXCJwdC1QVFwiIDogXCJkZC1NTS15eXl5XCIsXG4vLyAgIFwic3ItTGF0bi1DU1wiIDogXCJkLk0ueXl5eVwiLFxuLy8gICBcInN2LUZJXCIgOiBcImQuTS55eXl5XCIsXG4vLyAgIFwiYXotQ3lybC1BWlwiIDogXCJkZC5NTS55eXl5XCIsXG4vLyAgIFwibXMtQk5cIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcInV6LUN5cmwtVVpcIiA6IFwiZGQuTU0ueXl5eVwiLFxuLy8gICBcImFyLUVHXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJ6aC1IS1wiIDogXCJkL00veXl5eVwiLFxuLy8gICBcImRlLUFUXCIgOiBcImRkLk1NLnl5eXlcIixcbi8vICAgXCJlbi1BVVwiIDogXCJkL01NL3l5eXlcIixcbi8vICAgXCJlcy1FU1wiIDogXCJkZC9NTS95eXl5XCIsXG4vLyAgIFwiZnItQ0FcIiA6IFwieXl5eS1NTS1kZFwiLFxuLy8gICBcInNyLUN5cmwtQ1NcIiA6IFwiZC5NLnl5eXlcIixcbi8vICAgXCJhci1MWVwiIDogXCJkZC9NTS95eXl5XCIsXG4vLyAgIFwiemgtU0dcIiA6IFwiZC9NL3l5eXlcIixcbi8vICAgXCJkZS1MVVwiIDogXCJkZC5NTS55eXl5XCIsXG4vLyAgIFwiZW4tQ0FcIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcImVzLUdUXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJmci1DSFwiIDogXCJkZC5NTS55eXl5XCIsXG4vLyAgIFwiYXItRFpcIiA6IFwiZGQtTU0teXl5eVwiLFxuLy8gICBcInpoLU1PXCIgOiBcImQvTS95eXl5XCIsXG4vLyAgIFwiZGUtTElcIiA6IFwiZGQuTU0ueXl5eVwiLFxuLy8gICBcImVuLU5aXCIgOiBcImQvTU0veXl5eVwiLFxuLy8gICBcImVzLUNSXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJmci1MVVwiIDogXCJkZC9NTS95eXl5XCIsXG4vLyAgIFwiYXItTUFcIiA6IFwiZGQtTU0teXl5eVwiLFxuLy8gICBcImVuLUlFXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJlcy1QQVwiIDogXCJNTS9kZC95eXl5XCIsXG4vLyAgIFwiZnItTUNcIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcImFyLVROXCIgOiBcImRkLU1NLXl5eXlcIixcbi8vICAgXCJlbi1aQVwiIDogXCJ5eXl5L01NL2RkXCIsXG4vLyAgIFwiZXMtRE9cIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcImFyLU9NXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJlbi1KTVwiIDogXCJkZC9NTS95eXl5XCIsXG4vLyAgIFwiZXMtVkVcIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcImFyLVlFXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJlbi0wMjlcIiA6IFwiTU0vZGQveXl5eVwiLFxuLy8gICBcImVzLUNPXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJhci1TWVwiIDogXCJkZC9NTS95eXl5XCIsXG4vLyAgIFwiZW4tQlpcIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcImVzLVBFXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJhci1KT1wiIDogXCJkZC9NTS95eXl5XCIsXG4vLyAgIFwiZW4tVFRcIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcImVzLUFSXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJhci1MQlwiIDogXCJkZC9NTS95eXl5XCIsXG4vLyAgIFwiZW4tWldcIiA6IFwiTS9kL3l5eXlcIixcbi8vICAgXCJlcy1FQ1wiIDogXCJkZC9NTS95eXl5XCIsXG4vLyAgIFwiYXItS1dcIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcImVuLVBIXCIgOiBcIk0vZC95eXl5XCIsXG4vLyAgIFwiZXMtQ0xcIiA6IFwiZGQtTU0teXl5eVwiLFxuLy8gICBcImFyLUFFXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJlcy1VWVwiIDogXCJkZC9NTS95eXl5XCIsXG4vLyAgIFwiYXItQkhcIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcImVzLVBZXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJhci1RQVwiIDogXCJkZC9NTS95eXl5XCIsXG4vLyAgIFwiZXMtQk9cIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcImVzLVNWXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJlcy1ITlwiIDogXCJkZC9NTS95eXl5XCIsXG4vLyAgIFwiZXMtTklcIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcImVzLVBSXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJhbS1FVFwiIDogXCJkL00veXl5eVwiLFxuLy8gICBcInR6bS1MYXRuLURaXCIgOiBcImRkLU1NLXl5eXlcIixcbi8vICAgXCJpdS1MYXRuLUNBXCIgOiBcImQvTU0veXl5eVwiLFxuLy8gICBcInNtYS1OT1wiIDogXCJkZC5NTS55eXl5XCIsXG4vLyAgIFwibW4tTW9uZy1DTlwiIDogXCJ5eXl5L00vZFwiLFxuLy8gICBcImdkLUdCXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJlbi1NWVwiIDogXCJkL00veXl5eVwiLFxuLy8gICBcInBycy1BRlwiIDogXCJkZC9NTS95eVwiLFxuLy8gICBcImJuLUJEXCIgOiBcImRkLU1NLXl5XCIsXG4vLyAgIFwid28tU05cIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcInJ3LVJXXCIgOiBcIk0vZC95eXl5XCIsXG4vLyAgIFwicXV0LUdUXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJzYWgtUlVcIiA6IFwiTU0uZGQueXl5eVwiLFxuLy8gICBcImdzdy1GUlwiIDogXCJkZC9NTS95eXl5XCIsXG4vLyAgIFwiY28tRlJcIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcIm9jLUZSXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJtaS1OWlwiIDogXCJkZC9NTS95eXl5XCIsXG4vLyAgIFwiZ2EtSUVcIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcInNlLVNFXCIgOiBcInl5eXktTU0tZGRcIixcbi8vICAgXCJici1GUlwiIDogXCJkZC9NTS95eXl5XCIsXG4vLyAgIFwic21uLUZJXCIgOiBcImQuTS55eXl5XCIsXG4vLyAgIFwibW9oLUNBXCIgOiBcIk0vZC95eXl5XCIsXG4vLyAgIFwiYXJuLUNMXCIgOiBcImRkLU1NLXl5eXlcIixcbi8vICAgXCJpaS1DTlwiIDogXCJ5eXl5L00vZFwiLFxuLy8gICBcImRzYi1ERVwiIDogXCJkLiBNLiB5eXl5XCIsXG4vLyAgIFwiaWctTkdcIiA6IFwiZC9NL3l5eXlcIixcbi8vICAgXCJrbC1HTFwiIDogXCJkZC1NTS15eXl5XCIsXG4vLyAgIFwibGItTFVcIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcImJhLVJVXCIgOiBcImRkLk1NLnl5XCIsXG4vLyAgIFwibnNvLVpBXCIgOiBcInl5eXkvTU0vZGRcIixcbi8vICAgXCJxdXotQk9cIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcInlvLU5HXCIgOiBcImQvTS95eXl5XCIsXG4vLyAgIFwiaGEtTGF0bi1OR1wiIDogXCJkL00veXl5eVwiLFxuLy8gICBcImZpbC1QSFwiIDogXCJNL2QveXl5eVwiLFxuLy8gICBcInBzLUFGXCIgOiBcImRkL01NL3l5XCIsXG4vLyAgIFwiZnktTkxcIiA6IFwiZC1NLXl5eXlcIixcbi8vICAgXCJuZS1OUFwiIDogXCJNL2QveXl5eVwiLFxuLy8gICBcInNlLU5PXCIgOiBcImRkLk1NLnl5eXlcIixcbi8vICAgXCJpdS1DYW5zLUNBXCIgOiBcImQvTS95eXl5XCIsXG4vLyAgIFwic3ItTGF0bi1SU1wiIDogXCJkLk0ueXl5eVwiLFxuLy8gICBcInNpLUxLXCIgOiBcInl5eXktTU0tZGRcIixcbi8vICAgXCJzci1DeXJsLVJTXCIgOiBcImQuTS55eXl5XCIsXG4vLyAgIFwibG8tTEFcIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcImttLUtIXCIgOiBcInl5eXktTU0tZGRcIixcbi8vICAgXCJjeS1HQlwiIDogXCJkZC9NTS95eXl5XCIsXG4vLyAgIFwiYm8tQ05cIiA6IFwieXl5eS9NL2RcIixcbi8vICAgXCJzbXMtRklcIiA6IFwiZC5NLnl5eXlcIixcbi8vICAgXCJhcy1JTlwiIDogXCJkZC1NTS15eXl5XCIsXG4vLyAgIFwibWwtSU5cIiA6IFwiZGQtTU0teXlcIixcbi8vICAgXCJlbi1JTlwiIDogXCJkZC1NTS15eXl5XCIsXG4vLyAgIFwib3ItSU5cIiA6IFwiZGQtTU0teXlcIixcbi8vICAgXCJibi1JTlwiIDogXCJkZC1NTS15eVwiLFxuLy8gICBcInRrLVRNXCIgOiBcImRkLk1NLnl5XCIsXG4vLyAgIFwiYnMtTGF0bi1CQVwiIDogXCJkLk0ueXl5eVwiLFxuLy8gICBcIm10LU1UXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJzci1DeXJsLU1FXCIgOiBcImQuTS55eXl5XCIsXG4vLyAgIFwic2UtRklcIiA6IFwiZC5NLnl5eXlcIixcbi8vICAgXCJ6dS1aQVwiIDogXCJ5eXl5L01NL2RkXCIsXG4vLyAgIFwieGgtWkFcIiA6IFwieXl5eS9NTS9kZFwiLFxuLy8gICBcInRuLVpBXCIgOiBcInl5eXkvTU0vZGRcIixcbi8vICAgXCJoc2ItREVcIiA6IFwiZC4gTS4geXl5eVwiLFxuLy8gICBcImJzLUN5cmwtQkFcIiA6IFwiZC5NLnl5eXlcIixcbi8vICAgXCJ0Zy1DeXJsLVRKXCIgOiBcImRkLk1NLnl5XCIsXG4vLyAgIFwic3ItTGF0bi1CQVwiIDogXCJkLk0ueXl5eVwiLFxuLy8gICBcInNtai1OT1wiIDogXCJkZC5NTS55eXl5XCIsXG4vLyAgIFwicm0tQ0hcIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcInNtai1TRVwiIDogXCJ5eXl5LU1NLWRkXCIsXG4vLyAgIFwicXV6LUVDXCIgOiBcImRkL01NL3l5eXlcIixcbi8vICAgXCJxdXotUEVcIiA6IFwiZGQvTU0veXl5eVwiLFxuLy8gICBcImhyLUJBXCIgOiBcImQuTS55eXl5LlwiLFxuLy8gICBcInNyLUxhdG4tTUVcIiA6IFwiZC5NLnl5eXlcIixcbi8vICAgXCJzbWEtU0VcIiA6IFwieXl5eS1NTS1kZFwiLFxuLy8gICBcImVuLVNHXCIgOiBcImQvTS95eXl5XCIsXG4vLyAgIFwidWctQ05cIiA6IFwieXl5eS1NLWRcIixcbi8vICAgXCJzci1DeXJsLUJBXCIgOiBcImQuTS55eXl5XCIsXG4vLyAgIFwiZXMtVVNcIiA6IFwiTS9kL3l5eXlcIlxuLy8gfTtcbi8vXG4vLyBPYmplY3Qua2V5cyhmb3JtYXRzKS5mb3JFYWNoKGxhbmcgPT4ge2NvbnN0IHBlcmlvZCA9IGdldERheVBlcmlvZHMobGFuZyk7IGlmIChwZXJpb2QuYW0gPT09ICdBTScpIHJldHVybjsgY29uc29sZS5sb2cobGFuZywgcGVyaW9kICl9KVxuIl19
|